OutletEquip_OutStore.cs 3.3 KB
using Asa;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    partial class OutletEquip
    {
        /// <summary>
        /// 等待机器人在安全位置
        /// </summary>
        /// <param name="moveInfo"></param>
        /// <param name="wait"></param>
        /// <returns></returns>
        protected override bool CheckWaitResult(DeviceMoveInfo moveInfo, WaitResultInfo wait)
        {
            if (wait.WaitType.Equals(WaitEnum.W201_RobotMove))
            {
                if (StoreManager.Client.robotEquip.RobotInSafeAtOutlet())
                {
                    wait.IsEnd = true;
                }
            }
            return wait.IsEnd;
        }
        #region 自动出料
        private DateTime startInTime = DateTime.Now;

        private void NextMoveStep(StepEnum step, string msg)
        {
            MoveInfo.NextMoveStep(step);
            MoveLog($" {MoveInfo.SLog}:{msg}");
        }

        protected override void OutstoreProcess()
        {
            if (MoveInfo.IsInWait)
            {
                CheckWait(MoveInfo);
            }
            if (MoveInfo.IsInWait)
            {
                return;
            }

            if (MoveInfo.IsStep(StepEnum.Outlet_01_Wait))
            {
                NextMoveStep(StepEnum.Outlet_02_CheckTray, "检查是否有料盘");
                JackUp(false);
            }
            else if (MoveInfo.IsStep(StepEnum.Outlet_02_CheckTray))
            {
                if (TrayCheck())
                {
                    NextMoveStep(StepEnum.Outlet_03_CheckAllowFeedOut, "有料盘,准备送走");
                    AddWaitAllowFeedOut(true);
                    AddWaitTime(2000);
                    MoveInfo.OneWaitCanEndStep = true;
                }
                else//无料盘
                {
                    NextMoveStep(StepEnum.Outlet_05_JackUp, "无料盘,顶升抬起,准备料盘放入");
                    JackUp(true);
                    if (BufferDataManager.TrayInOutletInfo != null)
                        BufferDataManager.TrayInOutletInfo = null;
                }
            }
            else if (MoveInfo.IsStep(StepEnum.Outlet_03_CheckAllowFeedOut))
            {
                NextMoveStep(StepEnum.Outlet_04_WaitTrayLeave, "允许料盘离开,链条运行");
                OutletRun(true);
                AddWaitTrayCheck1(false);
                AddWaitTrayCheck2(false);
                //AddWaitAllowFeedOut(false);
            }
            else if (MoveInfo.IsStep(StepEnum.Outlet_04_WaitTrayLeave))
            {
                NextMoveStep(StepEnum.Outlet_05_JackUp, "料盘离开完成,链条停止,顶升抬起");
                BufferDataManager.TrayInOutletInfo = null;
                OutletRun(false);
                JackUp(true);
                AddWaitTrayCheck2(false);
            }
            else if (MoveInfo.IsStep(StepEnum.Outlet_05_JackUp))
            {
                MoveInfo.EndMove();
                runStatus = RunStatus.Runing;
            }
        }
        #endregion
    }
}