StationEquip_OutStore.cs 2.5 KB
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    partial class StationEquip
    {
        #region 出料流程
        private InOutParam LastOutParam = new InOutParam();
         
        public override bool StartOutStoreMove(InOutParam param)
        {

            runStatus = LineRunStatus.Busy; 
            MoveInfo.NewMove(LineMoveType.OutStore);
            MoveInfo.MoveParam = param;
            MoveInfo.NextMoveStep(LineMoveStep.SO_01_FrontStopUp);
            FrontStopUp(MoveInfo);
            StopUp(MoveInfo);
            LogInfo($"开始出库,前阻挡上升,阻挡上升");
            return true;
        }
        protected override void OutStoreProcess()
        {
            if (MoveInfo.IsInWait)
            {
                CheckWait(MoveInfo);
            }
            if (MoveInfo.IsInWait)
            {
                return;
            }
            if (MoveInfo.IsStep(LineMoveStep.SO_01_FrontStopUp))
            {
                MoveInfo.NextMoveStep(LineMoveStep.SO_02_WaitBoxInToLine);
                AddWaitBoxCheck(true);
                WaitTime(15000);
                MoveInfo.OneWaitCanEndStep = true;
                LogInfo($"等待箱子离开工作站");
            }       
            else if (MoveInfo.IsStep(LineMoveStep.SO_02_WaitBoxInToLine))
            {
                LogUtil.info("进入 SO_03_WaitTime 前");
                MoveInfo.NextMoveStep(LineMoveStep.SO_03_WaitTime);
                LogUtil.info("进入 SO_03_WaitTime 后"+$" barcode={MoveInfo?.MoveParam?.Containercode??""}");
                ContainerManager.UpdateTaskStatus(MoveInfo.MoveParam.Containercode, TaskStatus.IN_ON_LINE);
                LogInfo($" 箱子到达线体,阻挡下降");
                StopDown(MoveInfo);
                WaitTime(3000);
            }
            else if (MoveInfo.IsStep(LineMoveStep.SO_03_WaitTime))
            {
                MoveInfo.NextMoveStep(LineMoveStep.SO_04_FrontStopDown);
                LogInfo($"前阻挡下降");
                FrontStopDown(MoveInfo);
            }
            else if (MoveInfo.IsStep(LineMoveStep.SO_04_FrontStopDown))
            {
                MoveEndS();
            }
            else
            {
                LogUtil.error(Name + " " + MoveInfo.MoveType + MoveInfo.SLog + "未找到相关处理", 19);
            }
        }     
        #endregion
    }
}