DischargeLine_Partial.cs 3.0 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 DischargeLine
    {
        #region 托盘检测
        private void StartCheckFixture()
        {
            
        }
        private bool CheckIsNeedOutStore()
        { 
            return false;
        }
        protected override void CheckFixtureProcess()
        {
            if (!LineManager.Line.LineCanRun())
            {
                return;
            }
            if (SecondMoveInfo.IsInWait)
            {
                CheckWait(SecondMoveInfo);
            }
            if (SecondMoveInfo.IsInWait)
            {
                return;
            }
             
        }

        #endregion

        #region 料盘移栽处理
        public override bool StartOutStoreMove(InOutParam param)
        {
            string posId = param != null ? param.PosId : "";
            //调试模式移栽装置不需要有操作
            if (IsDebug)
            {
                LogInfo("需要出料【" + posId + "】处于调试模式,暂时不再进行出出料操作");
                return false;
            }
            if (runStatus.Equals(LineRunStatus.Runing))
            {
                runStatus = LineRunStatus.Busy;
                lineStatus = LineStatus.OutStoreExecute;
                MoveInfo.MoveParam = param;
                MoveInfo.NewMove(LineMoveType.OutStore);
                LogInfo("出料【" + posId + "】处理(移栽):(PO_01_UpDownCylinderDown,上下气缸1下降)");
                MoveInfo.NextMoveStep(LineMoveStep.PO_01_UpDownCylinderDown);
                MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
                CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down);
                return true;
            }
            else
            {
                LogUtil.error(Name + " 启动出料【" + posId + "】 失败,当前 storeStatus=" + runStatus);
                return false;
            }
        }

        protected override void OutStoreProcess()
        {
            if (MoveInfo.IsInWait)
            {
                CheckWait(MoveInfo);
            }
            if (SecondMoveInfo.IsInWait)
            {
                CheckWait(SecondMoveInfo);
            }
            if (MoveInfo.IsInWait)
            {
                return;
            }
            string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
            if (MoveInfo.MoveStep.Equals(LineMoveStep.DL_R_LineCheck))
            {

            }

            else if (MoveInfo.MoveStep.Equals(LineMoveStep.DL_R_LineCheck))
            {
                LogInfo("出料【" + posId + "】处理完成!");
                runStatus = LineRunStatus.Runing;
                lineStatus = LineStatus.StoreOnline;
                MoveInfo.EndMove();
            }
        } 
        #endregion

       
    }
}