InputEquip_IOMove.cs 8.1 KB
using CodeLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    /// <summary>
    /// 入料机构IO操作
    /// </summary>
    partial class InputEquip
    {
        /// <summary>
        /// 周转箱A线体正转--往里
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxA_LineRun(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.HIGH));
            }
        }
        /// <summary>
        /// 周转箱A线体反转--往外
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxA_LineBackRun(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.HIGH));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.LOW));
            }
        }
        /// <summary>
        /// 周转箱A线体停止
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxA_LineStop(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.LOW);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineBackRun, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxA_LineRun, IO_VALUE.LOW));
            }
        }
        /// <summary>
        /// 周转箱B线体正转--往里
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxB_LineRun(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.HIGH));
            }
        }
        /// <summary>
        /// 周转箱B线体反转--往外
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxB_LineBackRun(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.HIGH));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.LOW));
            }
        }
        /// <summary>
        /// 周转箱A线体停止
        /// </summary>
        /// <param name="moveInfo"></param>
        public void BoxB_LineStop(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.LOW);
            IOMove(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.LOW);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineBackRun, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TurnoverBoxB_LineRun, IO_VALUE.LOW));
            }
        }
        public void OpenCameraLed(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.CameraLed, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.CameraLed, IO_VALUE.HIGH));
            }
        }
        public void CloseCameraLed(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.CameraLed, IO_VALUE.LOW);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.CameraLed, IO_VALUE.LOW));
            }
        }
        /// <summary>
        /// 标签气缸后退--贴近打印机,等待出标
        /// </summary>
        /// <param name="moveInfo"></param>
        public void Label_CylinderBack(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.Printer_CylinderFwd, IO_VALUE.LOW);
            IOMove(IO_Type.Printer_CylinderBack, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderFwd, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderBack, IO_VALUE.HIGH));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderFwdCheck, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderBackCheck, IO_VALUE.HIGH));
            }
        }
        /// <summary>
        /// 标签气缸前进--离开打印机
        /// </summary>
        /// <param name="moveInfo"></param>
        public void Label_CylinderFwd(DeviceMoveInfo moveInfo = null)
        {
            IOMove(IO_Type.Printer_CylinderBack, IO_VALUE.LOW);
            IOMove(IO_Type.Printer_CylinderFwd, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderBack, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderFwd, IO_VALUE.HIGH));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderBackCheck, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Printer_CylinderFwdCheck, IO_VALUE.HIGH));
            }
        }
        public void ClampWork(DeviceMoveInfo moveInfo, bool isCheck, params string[] codes)
        {
            if (Config.UseClampJaw.Equals(1))
            {
                ClampJaw.Push(moveInfo, isCheck, codes);
            }
            else
            {
                //吸盘工作
                ClampPush(moveInfo);
            }
        }

        public void ClampRelax(DeviceMoveInfo moveInfo, params string[] codes)
        {
            if (Config.UseClampJaw.Equals(1))
            {
                ClampJaw.Relax(moveInfo, codes);
            }
            else
            {
                //吸盘放松
                ClampRelax(moveInfo);
            }
        }
        /// <summary>
        /// 夹爪张开,夹住料盘
        /// </summary>
        /// <param name="moveInfo"></param>
        private void ClampPush(DeviceMoveInfo moveInfo = null)
        {
            IOManager.IOMove(IO_Type.Robot_ClampWork, IO_VALUE.HIGH);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Robot_ClampWork, IO_VALUE.HIGH));
                //moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Robot_PressureCheck, IO_VALUE.HIGH));
                moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
            }
        }
        /// <summary>
        /// 夹爪放松,释放料盘
        /// </summary>
        /// <param name="moveInfo"></param>
        private void ClampRelax(DeviceMoveInfo moveInfo = null)
        {
            IOManager.IOMove(IO_Type.Robot_ClampWork, IO_VALUE.LOW);
            if (moveInfo != null)
            {
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Robot_ClampWork, IO_VALUE.LOW));
                moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Robot_PressureCheck, IO_VALUE.LOW));
               // moveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
            }
        }
    }
}