StoreStep.cs 9.3 KB
using log4net;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.IO.Ports;
using System.Linq;
using System.Text;
 
using System.Windows.Forms;

namespace OnlineStore.DeviceLibrary
{
    
    /// <summary>
    /// 等待启动/已经停止,初始化完成, 正常运行中,可以进行新的处理,忙碌,重置
    /// </summary>
    public enum StoreRunStatus
    {
        /// <summary>
        /// 等待启动/已经停止
        /// </summary>
        Wait = 0,
        ///// <summary>
        /////  初始化 ,原点返回状态中,只有流水线使用
        ///// </summary>
        HomeMoving = 1,

        /// <summary>
        /// 设备正在重置中,请稍后
        /// </summary>
        Reset = 2, 
        /// <summary>
        /// 正常运行中,可以进行新的处理
        /// </summary>
        Runing = 3,

        /// <summary>
        /// 正在忙碌中,请稍后
        /// </summary>
        Busy = 4,

    }
    /// <summary>
    ///1=设备联机(正常就绪)(出料后,BOX恢复原始状态)(出库后,移载装置恢复原始状态),
    ///2=急停,3=故障,4=警告,5=调试
    /// 6=出料执行中,7=入仓完成,8=入仓失败
    /// 9=出库执行,10=出仓完成,11=出库失败
    /// 12=重置中(原点返回和重置都发此状态)
    /// 13=库位盘点中
    /// </summary>
    public enum StoreStatus
    {
        /// <summary>
        /// 1=设备联机(正常就绪)(出料后,BOX恢复原始状态)(出库后,移载装置恢复原始状态),
        /// </summary>
        StoreOnline = 1,
        /// <summary>
        ///2=急停中
        /// </summary>
        SuddenStop = 2, 
        /// <summary>
        /// 3=故障中
        /// </summary>
        InTrouble = 3,
        /// <summary>
        /// 4=警告
        /// </summary>
        Warning = 4,
        /// <summary>
        /// 5=设备调试中 
        /// </summary>
        Debugging = 5, 
        ///// <summary>
        ///// 6=出料执行中 
        ///// </summary>
        //InStoreExecute = 6, 
        ///// <summary>
        ///// 7= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态) 
        ///// </summary>
        //InStoreEnd = 7, 
        ///// <summary>
        ///// 8=出料失败
        ///// </summary>
        //InStoreFaild = 8,
        /// <summary>
        /// 9=出库执行中",
        /// </summary>
        OutStoreExecute = 9,
        /// <summary>
        ///10= 出仓位完成( 料盘已经放到Box门口) 
        /// </summary>
        OutStoreBoxEnd = 10,
        ///// <summary>
        ///// 12=移栽出库移栽过程中(移栽完成后变成OnLine)
        ///// </summary>
        //OutMoveExecute = 12,
        ///// <summary>
        /////11=出库失败
        ///// </summary>
        //OutStoreFaild = 11,
        /// <summary>
        /// 重置中(原点返回和重置都发此状态)
        /// </summary>
        ResetMove =13,    
        /// <summary>
        /// 库位盘点中
        /// </summary>
        Check_PosMove,
    }

     
    public enum MoveStep
    { 
        Wait = 0,
        #region 复位
      

        /// <summary>
        /// 复位:链条停止,顶升下降
        /// </summary>
        R01_LineStop = 001,
        /// <summary>
        /// 复位:进出轴返回原点
        /// </summary>
        R02_InoutHome,

        /// <summary>
        /// 复位:进出轴到待机点P1
        /// </summary>
        R03_InOutToP1,
        /// <summary>
        ///  复位:升降轴,旋转轴,压紧轴原点返回
        /// </summary>
        R04_OtherAxisBack,
        /// <summary>
        /// 复位:旋转轴回好原点等待200
        /// </summary>
        R05_WaitTime,

        /// <summary>
        /// 复位:旋转轴返回P1
        /// </summary>
        R06_AxisToP1,

      
        /// <summary>
        /// 叉子走到P1
        /// </summary>
        R31_InOutToP1 = 31,
 
        /// <summary>
        /// 关闭门,旋转轴到P1,升降轴到P1
        /// </summary>
        R32_OtherAxisToP1 = 032,
        #endregion

         

        #region 出料 
        

        /// <summary>
        /// 出料:进出轴(叉子)先返回P1
        /// </summary>
        SO_11_InOutToP1 = 211,
        /// <summary>
        /// 出料:所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
        /// </summary>
        SO_12_AxisToP1,
        /// <summary>
        /// 出料:压紧物品 压紧轴到P3(压紧前点)
        /// </summary>
        SO_13_ComToP3,
        /// <summary>
        /// 出料:叉子进入出料口,进出轴到P2 
        /// </summary>
        SO_14_InoutToP2,
        /// <summary>
        /// 出料:把物品放入叉子上,升降轴到P2,压紧物品,压紧轴到P2(压紧点)
        /// </summary>
        SO_15_GetReel,

        /// <summary>
        /// 出料: 进出轴到P1( 待机点)
        /// </summary>
        SO_16_InoutBack,
        /// <summary>
        /// 出料:等待检测到料盘 
        /// </summary>
        SO_17_TrayCheck,
        /// <summary>
        /// 出料到料架:移动到库位点,旋转轴到P2( 库位点)升降轴到P3 
        /// </summary>
        SO_21_MoveToBag=221,

        /// <summary>
        /// 出料到料架:叉子进出料位中,进出轴到P3 
        /// </summary>
        SO_22_InoutToP3,
        /// <summary>
        /// 出料到料架:放下物品,升降轴到P4 ,压紧轴到P3( 压紧前点)
        /// </summary>
        SO_23_PutReel,
        /// <summary>
        /// 出料到料架:叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
        /// </summary>
        SO_24_InoutBack,
        /// <summary>
        /// 出料到料架:返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
        /// </summary>
        SO_25_GoBack,
        /// <summary>
        ///出料到料架:等待叉子无信号
        /// </summary>
        SO_26_WaitNoReel,


        /// <summary>
        /// NG料:移动到NG位,旋转轴到P3 升降轴到P5
        /// </summary>
        SO_31_MoveToNG = 231,

        /// <summary>
        /// </summary>
        /// NG料:进出轴到P4
        SO_32_InoutToP4,
        /// <summary>
        /// NG料: 升降轴到P6, 压紧轴到P3( 压紧前点)
        /// </summary>
        SO_33_PutReel,
        /// <summary>
        /// NG料:进出轴返回P1
        /// </summary>
        SO_34_InoutToP1,
        /// <summary>
        /// NG料:返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
        /// </summary>
        SO_35_GoBack,
        /// <summary>
        ///NG料:等待叉子无信号
        /// </summary>
        SO_36_WaitNoReel,



        #endregion

      

        #region 料仓校准位置
        /// <summary>
        /// 校准位置:进出轴回原点
        /// </summary>
        AP_01_InoutHome = 10001,
        /// <summary>
        /// 校准位置:升降轴回原点
        /// </summary>
        AP_02_UpdownHome,
        /// <summary>
        /// 位置校准:升降轴移动到开始位置
        /// </summary>
        AP_03_UpdownMove,
        /// <summary>
        /// 校准位置:旋转轴选择到对应位置
        /// </summary>
        AP_04_MiddleMove,
        /// <summary>
        /// 校准位置:进出轴到前进位置
        /// </summary>
        AP_05_InoutToP,
        /// <summary>
        /// 校准位置:升降轴开始匀速移动到目标位置
        /// </summary>
        AP_06_UpdownMove,
        /// <summary>
        /// 校准位置:保存当前列位置
        /// </summary>
        AP_07_SaveAndNext,
        #endregion


        #region 工位料架处理复位

        /// <summary>
        /// 工位复位:定位气缸下降
        /// </summary>
        SR_01_LocationDown = 20001,

       /// <summary>
       /// 工位复位:入口有料架,线体正转
       /// </summary>
        SR_02_LineRun,

        /// <summary>
        /// 工位复位:线体转到位时再转动2秒
        /// </summary>
        SR_03_LineRunWait,

        /// <summary>
        /// 工位复位:料架到位,定位气缸上升
        /// </summary>
        SR_04_LocationUp,

        /// <summary>
        /// 工位复位:料架准备完成
        /// </summary>
        SR_05_ShelfReady,
         

        #endregion

    }

    public enum StoreAlarmType
    {
        /// <summary>
        /// 没有报警
        /// </summary>
        None = 0,
        /// <summary>
        /// 轴报警
        /// </summary>
        AxisAlarm = 1, 
        /// <summary>
        /// 收到急停
        /// </summary>
        SuddenStop = 10,
        /// <summary>
        /// 没有气压信号
        /// </summary>
        NoAirCheck = 11,
        /// <summary>
        /// 轴运动错误,没有达到指定脉冲,但是io判断已停止运动
        /// </summary>
        AxisMoveError = 20,
        /// <summary>
        /// io信号超时未收到
        /// </summary>
        IoSingleTimeOut = 30,
        /// <summary>
        /// 电钢报警
        /// </summary>
        StellAlarm=50,
    }
}