PackageLine_PkgStation.cs 7.7 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
    {
      // public  StepInfo<PKG_STATION_STEP> pkgStationStep = new StepInfo<PKG_STATION_STEP>(PKG_STATION_STEP.NONE);
        /// <summary>
        /// 包装料架工位
        /// </summary>
        public enum PKG_STATION_STEP
        {
            NONE,
            /// <summary>
            /// 等待料架
            /// </summary>
            WAIT_SHELF,
            /// <summary>
            ///  等待料架进入工位
            /// </summary>
            WAIT_SHELF_TO_STATION,
            /// <summary>
            /// 等待读取RFID
            /// </summary>
            READ_RFID,
            /// <summary>
            /// 等待顶升上升
            /// </summary>
            WAIT_STATION_UP,
            /// <summary>
            /// 等待机器人抓取
            /// </summary>
            WAIT_ROBOT,
            /// <summary>
            /// 料架已空
            /// </summary>
            SHELF_EMPTY,
            /// <summary>
            /// 等待顶升下降
            /// </summary>
            WAIT_STATION_DOWN,
            /// <summary>
            /// 去空料架位置(线体右侧)
            /// </summary>
            TO_EMPTY_STATION,
        }

        /// <summary>
        /// 包装线工位
        /// </summary>
        //private void ProcessPkgStation()
        //{
        //    if (pkgStationStep.IsStep(PKG_STATION_STEP.NONE))
        //    {
        //        bool hasPkgShelf = IOValue(IO_Type.Pkg_Station_Check).Equals(IO_VALUE.HIGH);
        //        if (hasPkgShelf)
        //        {
        //            pkgStationStep.Msg = "包装线已有料架,等待读取RFID";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
        //        }
        //        else
        //        {
        //            pkgStationStep.Msg = "包装线无料架,等待料架进入";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_SHELF);
        //        }
        //    }
        //    else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_SHELF))
        //    {
        //        bool hasWaitShelf = IOValue(IO_Type.Pkg_Stop_Check2).Equals(IO_VALUE.HIGH);
        //        //有等待的料架
        //        if (hasWaitShelf)
        //        {
        //            pkgStationStep.Msg = "包装线等待位发现料架, 将其送入工位";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_SHELF_TO_STATION);
        //            pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Check, IO_VALUE.HIGH,3000);

        //            //IOMove(IO_Type.Pkg_Line1_Forward, IO_VALUE.HIGH);
        //            IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);

        //            IOMove(IO_Type.Pkg_Stop2_Down, IO_VALUE.HIGH, 2000);
        //        }
        //    }
        //    else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_SHELF_TO_STATION))
        //    {
        //        if (pkgStationStep.IsFinished())
        //        {
        //            pkgStationStep.Msg = "包装线料架到达工位,停止线体1和2,等待读取RFID";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
        //            IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
        //        }
        //        else
        //        {
        //            bool line2Stop = IOValue(IO_Type.Pkg_Line2_Forward).Equals(IO_VALUE.LOW);
        //            if (line2Stop)
        //            {
        //                LogUtil.info("包装线线体2已停止,但料架还未到达工位,重新启动");
        //                IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);
        //            }
        //        }

        //    }
        //    else if (pkgStationStep.IsStep(PKG_STATION_STEP.READ_RFID))
        //    {
        //        if (pkgStationStep.IsTimeOut(1000))
        //        {
        //            //1秒读取1次
        //            PkgShelfRFID = "";
        //            string rfid = RFIDManager.ReadRFID(Config.Pkg_Rfid, true).NumStr();
        //            if (rfid.Contains("A"))
        //            {
        //                pkgStationStep.Msg = "包装线读取到RFID[" + rfid + "], 工位顶升";
        //                pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_STATION_UP);
        //                pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Down, IO_VALUE.LOW);
        //                pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Up, IO_VALUE.HIGH);
        //                PkgShelfRFID = rfid;
        //                //包装线体工位上升
        //                CylinderMove(null, IO_Type.Pkg_Station_SOL_Down, IO_Type.Pkg_Station_SOL_UP);
        //            }
        //            else
        //            {
        //                pkgStationStep.Msg = "包装线读取到的RFID数据[" + rfid + "]错误";
        //                pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
        //            }
        //        }
                    
        //    }
        //    else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_STATION_UP))
        //    {
        //        if (pkgStationStep.IsFinished())
        //        {
        //            pkgStationStep.Msg = "包装线工位顶升到位,等待机器人抓取[" + PkgShelfRFID + "]";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_ROBOT);
        //        }
        //    }else if (pkgStationStep.IsStep(PKG_STATION_STEP.SHELF_EMPTY))
        //    {
        //        pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "]已空,下降顶升,准备放行";

        //        pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_STATION_DOWN);
        //        pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Down, IO_VALUE.HIGH);
        //        pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Up, IO_VALUE.LOW);
        //        //包装线体工位下降
        //        CylinderMove(null, IO_Type.Pkg_Station_SOL_UP, IO_Type.Pkg_Station_SOL_Down);
        //    }
        //    else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_STATION_DOWN))
        //    {
        //        if (pkgStationStep.IsFinished())
        //        {
        //            pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "]顶升下降到位,开始放行";
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.TO_EMPTY_STATION);
        //            pkgStationStep.AddIoWait(IO_Type.Pkg_Out_Stop_Check, IO_VALUE.HIGH);
        //            pkgStationStep.AddIoWait(IO_Type.Pkg_Rotot_Forbidden_Check, IO_VALUE.HIGH);
        //            pkgStationStep.AddTimeWait(20000);

        //            IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);
        //            IOMove(IO_Type.Pkg_Line3_Forward, IO_VALUE.HIGH);
        //            IOMove(IO_Type.Pkg_Station_Stop_Down, IO_VALUE.HIGH, 3000);
        //            IOMove(IO_Type.Pkg_Stop2_Down, IO_VALUE.HIGH, 3000);
        //        }
        //    }else if (pkgStationStep.IsStep(PKG_STATION_STEP.TO_EMPTY_STATION))
        //    {
        //        if (pkgStationStep.IsFinished())
        //        {
        //            pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "放行完成";
        //            PkgShelfRFID = "";
        //            //IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
        //            //IOMove(IO_Type.Pkg_Line3_Forward, IO_VALUE.LOW);
        //            pkgStationStep.ToNextStep(PKG_STATION_STEP.NONE);

        //            agvA4Step.ToNextStep(AGV_LEAVE_A4_STEP.WAIT_TO_EXIT);
        //        }
        //    }

        //}

    }
}