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=出库失败
    /// </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>
        ///11=出库失败
        /// </summary>
        OutStoreFaild = 11,
        /// <summary>
        /// 12=移栽出库移栽过程中(移栽完成后变成OnLine)
        /// </summary>
        OutMoveExecute = 12,
        /// <summary>
        /// 重置中(原点返回和重置都发此状态)
        /// </summary>
        ResetMove =13,       

        /// <summary>
        ///14= 回温移库中
        /// </summary>
        MovementExecute=14,
        /// <summary>
        ///15= 回温移库完成
        /// </summary>
        MovementEnd= 15,


        /// <summary>
        ///16= 搅拌执行中
        /// </summary>
        StirringExecute = 16,
        /// <summary>
        ///17= 搅拌完成
        /// </summary>
        StirringEnd = 17,
    }

    /// <summary>
    /// 料仓运动状态(当料仓状态=busy时,才会有此运动状态)
    /// </summary>
    public enum StoreMoveStep
    {
        /// <summary>
        /// 无操作,等待状态
        /// </summary>
        Wait = 0, 
        #region 料仓 重置 101开始 
        /// <summary>
        /// 复位:升降门关闭,关闭所有灯
        /// </summary>
        R01_DoorClose=101, 
        /// <summary>
        /// 复位:料斗旋转轴返回原点
        /// </summary>
        R02_MiddleHome ,
        /// <summary>
        ///  复位:旋转轴到待机点
        /// </summary>
        R03_MiddleToP1 ,
      
      
        #endregion


        #region 出库步骤 1001 开始
        /// <summary>
        ///出库:进出轴到P1,旋转轴停止匀速旋转
        /// </summary>
        SO_01_InoutToP1 = 1001,
        /// <summary>
        ///出库:旋转轴回原点
        /// </summary>
        SO_02_AxisHome ,

        /// <summary>
        ///  出库:   旋转轴至P2( 库位点),升降轴至P5(库位出库前点) ,旋转轴到P2
        /// </summary>
        SO_03_ToBag ,
        /// <summary>
        /// 出库:开冷藏门
        /// </summary>
        SO_04_OpenCold,
        /// <summary>
        ///  出库:进出轴 至P3(库位取放料点)
        /// </summary>
        SO_05_InoutToP3,

        /// <summary>
        ///出库: 夹爪夹紧
        /// </summary>
        SO_06_Clamping_Work,

        /// <summary>
        ///出库:升降轴到缓冲点P6
        /// </summary>
        SO_07_UpdownToP6 ,

        /// <summary>
        ///出库:进出轴返回P1
        /// </summary>
        SO_08_InoutToP1,

        /// <summary>
        /// 出库:关闭冷藏区门
        /// </summary>
        SO_09_CloseCold,

        /// <summary>
        /// 出库: 轴1旋转轴至P1,升降轴到P2进料口出料前点
        /// </summary>
        SO_10_ToDoorPosition ,

        /// <summary>
        /// 出库: 打开仓门,,旋转轴开始匀速运转,
        /// </summary>
        SO_11_OpenDoor,
        /// <summary>
        /// 出库:等待门口无料盘
        /// </summary>
        SO_12_WaitNoTray ,

        /// <summary>
        /// 出库:进出轴到P2
        ///  </summary>
        SO_13_InoutToP2,
        /// <summary>
        /// 出库:升降轴至P8( 进料口出料缓冲点 )
        /// </summary>
        SO_14_UpdownToP8,
        /// <summary>
        /// 出库:夹爪放松
        /// </summary>
        SO_15_Clamping_Relax,
        /// <summary>
        /// 出库:进出轴到P1
        /// </summary>
        SO_16_InoutToP1,

        /// <summary>
        /// 出库:关闭仓门
        /// </summary>
        SO_17_CloseDoor,
        /// <summary>
        ///出库: 等待拿走物品
        /// </summary>
        SO_18_WaitTake,

        #endregion

        #region 入库步骤 2001 开始
        /// <summary>
        /// 入库信号检测
        /// </summary>
        SI_01_TrayCheck = 2001,
        /// <summary>
        /// 入库:进出轴到P1,打开仓门
        /// </summary>
        SI_02_InOutToP1,
        /// <summary>
        /// 入库:夹爪放松
        /// </summary>
        SI_03_Clamping_Relax,
        /// <summary>
        /// 入库:所有轴先回到待机点,轴2、轴1 动作到P1,
        /// </summary>
        SI_04_AxisToP1 ,

        /// <summary>
        /// 入库: 进出轴至P2( 进料口取料点)
        /// </summary>
        SI_05_InoutToP2,


        /// <summary>
        /// 入库:夹爪夹紧
        /// </summary>
        SI_06_Clamping_Work,
        /// <summary>
        /// 入库: 升降轴至P7( 进料口取料缓冲点)
        /// </summary>
        SI_07_UpdownToP7,

        /// <summary>
        /// 入库:进出轴到P1,目标轴停止匀速运转
        /// </summary>
        SI_08_InOutToP1,

        /// <summary>
        /// 入库:移动到库位点,旋转轴 至P2( 库位点)升降轴至P3(库位入库前点),目标轴回原点
        /// </summary>
        SI_09_MoveToBag ,

        /// <summary>
        /// 入库:冷藏轴或回温轴到P2点
        /// </summary>
        SI_10_TargetAxisToP2,
        /// <summary>
        /// 入库:打开冷藏门
        /// </summary>
        SI_11_OpenColddoor,
        /// <summary>
        /// 入库:叉子进入库位中,进出轴至P3(库位取放料点)
        /// </summary>
        SI_12_InoutToP3 ,
        /// <summary>
        /// 入库:放下物品,升降轴至P4( 库位入料缓冲点) 
        /// </summary>
        SI_13_UpdownToP4 ,
        /// <summary>
        /// 入库:夹爪放松 
        /// </summary>
        SI_14_Clamping_Relax,
        /// <summary>
        /// 入库。。叉子从库位中返回,进出轴动作至P1
        /// </summary>
        SI_15_InOutToP1,

        /// <summary>
        /// 入库:关闭冷藏门
        /// </summary>
        SI_16_CloseColddoor,
        /// <summary>
        /// 入库:返回待机点,轴2/轴1动作至P1)开始
        /// </summary>
        SI_17_GoBack,

        #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,
    }
}