PackageLine_PkgInShelf.cs 2.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 PackageLine
    {

        /// <summary>
        /// 料架进入步骤
        /// </summary>
        private enum IN_SHELF
        {
            NONE,
            /// <summary>
            /// 线体转动
            /// </summary>
            LINE_RUN,
        }

        StepInfo<IN_SHELF> inStep;
        /// <summary>
        /// 料架进入处理
        /// </summary>
        private void ProcessInShelf()
        {
            //检测左侧入口IO,检测到后线体转60S
            bool hasShelfIn = IOValue(IO_Type.Pkg_In_Check).Equals(IO_VALUE.HIGH);
            if (hasShelfIn)
            {
                inStep.Msg = "包装线检测到有料架进入,启动线体1和2";
                inStep.ToNextStep(IN_SHELF.LINE_RUN);
                int lineRunTime = 60000;
                inStep.AddTimeWait(lineRunTime);
                inStep.AddIoWait(IO_Type.Pkg_Stop_Check2, IO_VALUE.HIGH);
                KeepLineRun(IO_Type.Pkg_Line1_Forward);
                KeepLineRun(IO_Type.Pkg_Line2_Forward);
            }

            if (inStep.IsStep(IN_SHELF.NONE))
            {
                
            }
            else if (inStep.IsStep(IN_SHELF.LINE_RUN))
            {
                if (inStep.IsFinished())
                {
                    inStep.Msg = "包装线料架进入后,线体已启动60秒,停止线体";
                    //10秒已到,停止线体
                    inStep.ToNextStep(IN_SHELF.NONE);
                    IOMove(IO_Type.Pkg_Line1_Forward, IO_VALUE.LOW);
                    IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
                }
                else
                {
                    KeepLineRun(IO_Type.Pkg_Line1_Forward);
                    KeepLineRun(IO_Type.Pkg_Line2_Forward);
                }
            }
        }

    }
}