DoubleLineBean_bufShelf.cs 15.2 KB
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    partial class DoubleLineBean
    {
        #region 缓存线运行

        private Stopwatch leftFullWatch = new Stopwatch();

        private Stopwatch leftNeedWatch = new Stopwatch();
        private Stopwatch leftWatch = new Stopwatch();
        private bool LeftProcess = false;
        private bool RightProcess = false;
        /// <summary>
        /// 检查工作位料架
        /// </summary>
        //private void WorkShelfCheck()
        //{

        //    if (IOValue(IO_Type.Left_Tranverse_Down_Sig1).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.Left_Tranverse_Down_Sig2).Equals(IO_VALUE.HIGH) &&
        //         IOValue(IO_Type.Left_Tranverse_BackRun).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Left_Tranverse_Run).Equals(IO_VALUE.LOW) &&
        //        (IOValue(IO_Type.LHigh_StopCheck1).Equals(IO_VALUE.LOW) || IOValue(IO_Type.LHigh_StopCheck2).Equals(IO_VALUE.LOW)) &&
        //        IOValue(IO_Type.Left_Tranverse_Shelf_Sig).Equals(IO_VALUE.HIGH) && LeftProcess.Equals(false)
        //        )
        //    {
        //        if (LineManager.checkWatch(leftWatch, 3000))
        //        {
        //            leftWatch.Stop();
        //            //左侧上层需要放个料架
        //            Task.Factory.StartNew(delegate
        //            {
        //                LeftProcess = true;
        //                LogUtil.info("左侧双层线_" + "左上放料架离开横移");
        //                IOMove(IO_Type.LHigh_LineRun, IO_VALUE.HIGH, 30000);
        //                IOMove(IO_Type.Left_Tranverse_StopDown, IO_VALUE.HIGH, 3000);
        //                if (WaitIo(IO_Type.LHigh_StopCheck1, IO_VALUE.HIGH, 30000, "左侧_上层放料架离开横移"))
        //                {
        //                    IOMove(IO_Type.LHigh_LineRun, IO_VALUE.LOW);
        //                }
        //                LeftProcess = false;
        //            });
        //        }
        //    }
        //    else
        //    {
        //        leftWatch.Stop();
        //    }
        //    //左侧工作位有料架
        //    if (IOValue(IO_Type.Left_Tranverse_Shelf_Sig).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.LHigh_StopCheck1).Equals(IO_VALUE.HIGH))
        //    {
        //        if (IOValue(IO_Type.Left_Buf_Full_Shelf_Sig).Equals(IO_VALUE.LOW))
        //        {
        //            if (MoveInfo.MoveType.Equals(LineMoveType.None) && LineManager.checkWatch(leftFullWatch, 3000, true))
        //            {
        //                LogUtil.info("左侧双层线_" + "上层有料架,且工作位满 开始料架转移处理");
        //                //开始料架转移处理
        //                MoveInfo.NewMove(LineMoveType.LTransWork2Buf, MoveStep.SW2B_L1_GetShelf);

        //            }
        //        }
        //        else
        //        {
        //            leftFullWatch.Stop();
        //        }
        //    }
        //    else
        //    {
        //        leftFullWatch.Stop();
        //    }

        //    //左侧缓存位有料架,工作位无料架
        //    if (IOValue(IO_Type.LHigh_StopCheck2).Equals(IO_VALUE.LOW))
        //    {
        //        if (IOValue(IO_Type.Left_Buf_Full_Shelf_Sig).Equals(IO_VALUE.HIGH))
        //        {
        //            if (MoveInfo.MoveType.Equals(LineMoveType.None) && LineManager.checkWatch(leftNeedWatch, 3000, true))
        //            {
        //                LogUtil.info("左侧双层线_" + "上层需要料架,且缓存右料架 开始料架转移处理");
        //                //开始料架转移处理
        //                MoveInfo.NewMove(LineMoveType.LTransBuf2Work, MoveStep.SB2W_L0_None);

        //            }
        //        }
        //        else
        //        {
        //            CheckAndMove(IO_Type.Left_Buf_Run, IO_VALUE.LOW);
        //            IOMove(IO_Type.Left_Buf_BackRun, IO_VALUE.HIGH, 10000);
        //            leftNeedWatch.Stop();
        //        }
        //    }
        //    else
        //    {
        //        leftNeedWatch.Stop();
        //    }


        //}

        //internal void LTransBuff2WorkProcess()
        //{
        //    if (MoveInfo.IsInWait)
        //    {
        //        CheckWait(MoveInfo);
        //    }
        //    if (MoveInfo.IsInWait)
        //    {
        //        return;
        //    }

        //    if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L0_None))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L1_GetShelf);
        //        IOMove(IO_Type.Left_Buf_Out_StopDown, IO_VALUE.HIGH, 2000);
        //        CheckAndMove(IO_Type.Left_Buf_Run, IO_VALUE.LOW);
        //        CheckAndMove(IO_Type.Left_Buf_BackRun, IO_VALUE.HIGH);
        //        CheckAndMove(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH);
        //        CheckAndMove(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Buf_Near_StopDown, IO_VALUE.HIGH, 2000);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Shelf_Sig, IO_VALUE.HIGH));
        //        LogUtil.info(Name + MoveInfo.SLog + "  :左侧缓存料架放到横移上");
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L1_GetShelf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L2_Tranverse_Up);
        //        CheckAndMove(IO_Type.Left_Tranverse_Down, IO_VALUE.LOW);
        //        CheckAndMove(IO_Type.Left_Buf_BackRun, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_Up, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up_Sig2, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Up_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Up_Sig2, IO_VALUE.HIGH));
        //        LogUtil.info(Name + MoveInfo.SLog + "  :左侧横移上升");
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L2_Tranverse_Up))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L3_Tranverse_Run);
        //        LogUtil.info(Name + MoveInfo.SLog + "  :左侧横移电机反传");
        //        CheckAndMove(IO_Type.Left_Tranverse_Run, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_BackRun, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_BackRun, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Run, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_InPosition_Sig, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L3_Tranverse_Run))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L4_Shelf_To_Buf);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架到达工作横移位置");
        //        IOMove(IO_Type.Left_Tranverse_BackRun, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW);
        //        CheckAndMove(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_BackRun, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down_Sig2, IO_VALUE.HIGH));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L4_Shelf_To_Buf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L5_Tranverse_Down);
        //        LogUtil.info(Name + MoveInfo.SLog + ":左侧横移下降");
        //        CheckAndMove(IO_Type.Left_Buf_Far_StopDown, IO_VALUE.LOW);
        //        IOMove(IO_Type.LHigh_LineRun, IO_VALUE.HIGH);
        //        IOMove(IO_Type.Left_Tranverse_StopDown, IO_VALUE.HIGH,2000);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_StopCheck1, IO_VALUE.HIGH));

        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L5_Tranverse_Down))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L6_Shelf_Leave_Buf);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架离开左侧工作位横移");
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SB2W_L6_Shelf_Leave_Buf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SB2W_L7_Tranverse_Finish);
        //        CheckAndMove(IO_Type.LHigh_LineRun, IO_VALUE.LOW);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架移到左侧工作位完成,停止链条");
        //        MoveInfo.EndMove();
        //    }
        //}
        /// <summary>
        /// 左侧工作位到缓存位
        /// </summary>
        //internal void LTransWork2BuffProcess()
        //{
        //    if (MoveInfo.IsInWait)
        //    {
        //        CheckWait(MoveInfo);
        //    }
        //    if (MoveInfo.IsInWait)
        //    {
        //        return;
        //    }

        //    if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L1_GetShelf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L2_Tranverse_Up);
        //        CheckAndMove(IO_Type.Left_Tranverse_Down, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_Up, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up_Sig2, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Up_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Up_Sig2, IO_VALUE.HIGH));
        //        LogUtil.info(Name + MoveInfo.SLog + "  :左侧横移上升");
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L2_Tranverse_Up))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L3_Tranverse_Run);
        //        LogUtil.info(Name + MoveInfo.SLog + "  :左侧横移电机正传");
        //        CheckAndMove(IO_Type.Left_Tranverse_BackRun, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_Run, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_BackRun, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Run, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_InPosition_Sig, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L3_Tranverse_Run))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L4_Shelf_To_Buf);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架到达缓存横移位置");
        //        IOMove(IO_Type.Left_Tranverse_Run, IO_VALUE.LOW);
        //        IOMove(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW);
        //        CheckAndMove(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Run, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Up, IO_VALUE.LOW));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Tranverse_Down, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Down_Sig1, IO_VALUE.HIGH));
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Tranverse_Down_Sig2, IO_VALUE.HIGH));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L4_Shelf_To_Buf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L5_Tranverse_Down);
        //        if (IOValue(IO_Type.Left_Buf_Full_Shelf_Sig).Equals(IO_VALUE.LOW))
        //        {
        //            LogUtil.info(Name + MoveInfo.SLog + ":左侧横移下降");
        //            CheckAndMove(IO_Type.Left_Buf_Far_StopDown, IO_VALUE.LOW);
        //            CheckAndMove(IO_Type.Left_Buf_BackRun, IO_VALUE.LOW);
        //            IOMove(IO_Type.Left_Buf_Run, IO_VALUE.HIGH);
        //            MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Left_Buf_Full_Shelf_Sig, IO_VALUE.HIGH));
        //        }
        //        else
        //        {
        //            LogUtil.error(Name + MoveInfo.SLog + "  :左侧缓存已满,无法将料架运离横移,结束处理 ");
        //            MoveInfo.EndMove();
        //        }
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L5_Tranverse_Down))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L6_Shelf_Leave_Buf);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架离开左侧缓存横移");
        //        IOMove(IO_Type.Left_Buf_Far_StopDown, IO_VALUE.HIGH, 5000);
        //        MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
        //    }
        //    else if (MoveInfo.MoveStep.Equals(MoveStep.SW2B_L6_Shelf_Leave_Buf))
        //    {
        //        MoveInfo.NextMoveStep(MoveStep.SW2B_L7_Tranverse_Finish);
        //        CheckAndMove(IO_Type.Left_Buf_BackRun, IO_VALUE.LOW);
        //        CheckAndMove(IO_Type.Left_Buf_Run, IO_VALUE.LOW);
        //        LogUtil.info(Name + MoveInfo.SLog + ":料架移到左侧缓存完成,停止链条");
        //        MoveInfo.EndMove();
        //    }
        //}

        #endregion

    }
}