MainMachine _BtnProcess.cs 6.0 KB
using CodeLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DeviceLibrary
{
    partial class MainMachine
    {
        bool BtnEnableCheck() {
            return MiddleMoveInfo.MoveStep != MoveStep.M20_ToNgBox
                && MiddleMoveInfo.MoveStep != MoveStep.M20_ToNgBox_72HRelease
                && RightMoveInfo.MoveStep != MoveStep.R20_reel_duplicate
                && MiddleMoveInfo.MoveStep != MoveStep.M07
                ;
        }
        void BtnProcess()
        {
            string isskiptest = ConfigHelper.Config.Get("Hardwareversion", "V2");
            string newagvdispose = ConfigHelper.Config.Get("HardwareversionofAGV", "V2");
            if (isskiptest == "V2")
            {
                //硬件v2版本,已经去除料车检测X11的io
                if ((RightMoveInfo.IsStep(MoveStep.Wait) || RightMoveInfo.IsStep(MoveStep.REND))
               && IOValue(IO_Type.Right_BTN).Equals(IO_VALUE.HIGH)
                        && BtnEnableCheck())
                {
                    //有料,出料,无料,进料
                    if (IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.HIGH))
                    {
                        RightMoveInfo.NewMove(MoveStep.R30_OutShelf);
                        LogUtil.info("BtnProcess:进料串感应到有料,进料口确认");
                    }
                    else
                    {
                        RightMoveInfo.NewMove(MoveStep.R40_InShelf);
                    }
                }

                if ((LeftMoveInfo.IsStep(MoveStep.Wait) || LeftMoveInfo.IsStep(MoveStep.LEND) || LeftMoveInfo.IsStep(MoveStep.L10_WaitReelPut))
                   && IOValue(IO_Type.Left_BTN).Equals(IO_VALUE.HIGH))
                {
                    if (IOValue(IO_Type.LeftEnd_Check).Equals(IO_VALUE.HIGH))
                    {
                        LeftMoveInfo.NewMove(MoveStep.L50_OutShelf);
                    }
                    else
                    {
                        LeftMoveInfo.NewMove(MoveStep.L60_InShelf);
                    }
                }
            }
            else if (newagvdispose == "V2")
            {
                if ((RightMoveInfo.IsStep(MoveStep.Wait) || RightMoveInfo.IsStep(MoveStep.REND))
              && IOValue(IO_Type.Right_BTN).Equals(IO_VALUE.HIGH)
              && IOValue(IO_Type.RightCar_Check).Equals(IO_VALUE.HIGH)
                        && BtnEnableCheck())
                {
                    //有料,出料,无料,进料
                    if (IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.HIGH))
                    {
                        RightMoveInfo.NewMove(MoveStep.R30_OutShelf);
                        LogUtil.info("BtnProcess:进料串感应到有料,进料口确认");
                    }
                    else
                    {
                        RightMoveInfo.NewMove(MoveStep.R40_InShelf);
                    }
                }

                if ((LeftMoveInfo.IsStep(MoveStep.Wait) || LeftMoveInfo.IsStep(MoveStep.LEND) || LeftMoveInfo.IsStep(MoveStep.L10_WaitReelPut))
                   && IOValue(IO_Type.Left_BTN).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.LeftCar_Check).Equals(IO_VALUE.HIGH))
                {
                    if (IOValue(IO_Type.LeftEnd_Check).Equals(IO_VALUE.HIGH))
                    {
                        LeftMoveInfo.NewMove(MoveStep.L50_OutShelf);
                    }
                    else
                    {
                        LeftMoveInfo.NewMove(MoveStep.L60_InShelf);
                    }
                }
            }
            else
            {
                //右侧按钮按下,有料,出料
                if (RightMoveInfo.IsStep(MoveStep.Wait)
                    && IOValue(IO_Type.Right_BTN).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.RightCar_Check).Equals(IO_VALUE.HIGH)
                        && BtnEnableCheck())
                {
                    RightMoveInfo.NewMove(MoveStep.R30_OutShelf);
                    LogUtil.info("BtnProcess:进料串感应到有料,进料口确认,检测到小车");
                }
                //右侧按钮按下,无料,阻挡下降
                else if (RightMoveInfo.IsStep(MoveStep.Wait)
                    && IOValue(IO_Type.Right_BTN).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.LOW)
                    && IOValue(IO_Type.RightStopUP).Equals(IO_VALUE.LOW))
                {
                    CylinderMove(null, IO_Type.RightStopUP, IO_Type.RightStopDown);
                }
                if (LeftMoveInfo.IsStep(MoveStep.Wait)
                    && IOValue(IO_Type.Left_BTN).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.LeftEnd_Check).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.LeftCar_Check).Equals(IO_VALUE.HIGH))
                {
                    LeftMoveInfo.NewMove(MoveStep.L50_OutShelf);
                }
                else if (LeftMoveInfo.IsStep(MoveStep.Wait)
                    && IOValue(IO_Type.Left_BTN).Equals(IO_VALUE.HIGH)
                    && IOValue(IO_Type.LeftEnd_Check).Equals(IO_VALUE.LOW)
                    && IOValue(IO_Type.LeftStopUP).Equals(IO_VALUE.LOW))
                {
                    CylinderMove(null, IO_Type.LeftStopUP, IO_Type.LeftStopDown);
                }
            }


            if (MiddleMoveInfo.MoveStep == MoveStep.M20_ToNgBox && IOValue(IO_Type.GratingSignal_Check).Equals(IO_VALUE.LOW))
            {
                if (IOValue(IO_Type.Right_BTN).Equals(IO_VALUE.HIGH))
                {
                    MiddleMoveInfo.NextMoveStep(MoveStep.M20_ToNgBox_72HRelease);
                    clampTool.Release();
                    MiddleMoveInfo.log("用户按下右侧reset,夹抓放松");
                }
            }
        }
    }
}