using System; using System.ComponentModel; using WCS.Entity.Protocol.Protocol.SRM; namespace WCS.Entity.Protocol.SRM { /// /// 堆垛机DB521 /// /// 状态 /// 运行模式 /// 运行状态 /// 运行速度 /// 深度 /// 任务类型 public interface SRM521 : IProtocol { #region 一工位 /// /// 任务 ID /// int TaskID_1 { get; set; } /// /// 任务起始行 /// short RowPos1_1 { get; set; } /// /// 任务行走起始列 /// short TravelPos1_1 { get; set; } /// /// 任务提升起始层 /// short LiftPos1_1 { get; set; } /// /// 任务起始伸叉深度 /// SRMForkPos ForkStartPos1_1 { get; set; } /// /// 任务目标行 /// short RowPos2_1 { get; set; } /// /// 任务行走目标列 /// short TravelPos2_1 { get; set; } /// /// 任务提升目标层 /// short LiftPos2_1 { get; set; } /// /// 任务目标伸叉深度 /// SRMForkPos ForkDestPos2_1 { get; set; } /// /// 完成任务ID /// int TaskFinishiID_1 { get; set; } /// /// 货叉模式 /// SRMAutoStatus AutoStatus_1 { get; set; } /// /// 货叉运行状态 /// SRMForkRunStatus RunStatus_1 { get; set; } /// /// 当前行 /// short Srm_Row_1 { get; set; } /// /// 当前列 /// short Srm_Column_1 { get; set; } /// /// 当前层 /// short Srm_Layer_1 { get; set; } /// /// 行走当前位置 MM /// [IgnoreChanging] int TravelPos_1 { get; set; } /// /// 提升当前位置 MM /// [IgnoreChanging] int LiftPos_1 { get; set; } /// /// 货叉当前位置 MM 往左为负值,往右为正 /// [IgnoreChanging] int ForkPos_1 { get; set; } /// /// 备用 /// [IgnoreChanging] float RES_1_1 { get; set; } /// /// 货物类型 /// short Goodstype_1 { get; set; } /// /// 运行时间(Real)(单位:小时,带小数) /// [IgnoreChanging] float Runtime_1 { get; set; } /// /// 备用 /// int RES_1_2 { get; set; } /// /// 备用 /// short RES_1_3 { get; set; } /// /// 备用 /// short RES_1_5 { get; set; } /// /// 备用 /// short RES_1_6 { get; set; } /// /// 备用 /// short RES_1_7 { get; set; } /// /// 备用 /// short RES_1_8 { get; set; } /// /// 货叉状态 /// SRMForkStatus RES_1_9 { get; set; } #endregion 一工位 #region 二工位 /// /// 任务 ID /// int TaskID_2 { get; set; } /// /// 任务起始行 /// short RowPos1_2 { get; set; } /// /// 任务行走起始列 /// short TravelPos1_2 { get; set; } /// /// 任务提升起始层 /// short LiftPos1_2 { get; set; } /// /// 任务起始伸叉深度 /// SRMForkPos ForkStartPos1_2 { get; set; } /// /// 任务目标行 /// short RowPos2_2 { get; set; } /// /// 任务行走目标列 /// short TravelPos2_2 { get; set; } /// /// 任务提升目标层 /// short LiftPos2_2 { get; set; } /// /// 任务目标伸叉深度 /// SRMForkPos ForkDestPos2_2 { get; set; } /// /// 完成任务ID /// int TaskFinishiID_2 { get; set; } /// /// 货叉模式 /// SRMAutoStatus AutoStatus_2 { get; set; } /// /// 货叉运行状态 /// SRMForkRunStatus RunStatus_2 { get; set; } /// /// 当前行 /// short Srm_Row_2 { get; set; } /// /// 当前列 /// short Srm_Column_2 { get; set; } /// /// 当前层 /// short Srm_Layer_2 { get; set; } /// /// 行走当前位置 MM /// [IgnoreChanging] int TravelPos_2 { get; set; } /// /// 提升当前位置 MM /// [IgnoreChanging] int LiftPos_2 { get; set; } /// /// 货叉当前位置 MM 往左为负值,往右为正 /// [IgnoreChanging] int ForkPos_2 { get; set; } /// /// 备用 /// [IgnoreChanging] float RES_2_1 { get; set; } /// /// 货物类型 /// short Goodstype_2 { get; set; } /// /// 运行时间(Real)(单位:小时,带小数) /// [IgnoreChanging] float Runtime_2 { get; set; } /// /// 凭证号 /// int VoucherNo_2 { get; set; } /// /// 备用 /// int RES_2_2 { get; set; } /// /// 备用 /// short RES_2_3 { get; set; } /// /// 备用 /// short RES_2_4 { get; set; } /// /// 备用 /// short RES_2_5 { get; set; } /// /// 货叉状态 /// SRMForkStatus RES_2_6 { get; set; } #endregion 二工位 #region 公用 /// /// 堆垛机模式 /// SRMAutoStatus SRMStatus { get; set; } /// /// 堆垛机状态 /// SRMFRunStatus SrmRunStatus { get; set; } /// /// 堆垛机运行里程数(单位:千米) /// [IgnoreChanging] float TotalKM { get; set; } /// /// 运行时间(Real)(单位:小时,带小数) /// [IgnoreChanging] float Runtime { get; set; } /// /// 堆垛机是否异常 1:异常 0:正常 /// short Alarm { get; set; } /// /// 备用 /// int RES1 { get; set; } /// /// 备用 /// short RES2 { get; set; } /// /// 备用 /// short RES3 { get; set; } /// /// 备用 /// int RES4 { get; set; } /// /// 备用 /// short RES5 { get; set; } /// /// 备用 /// short RES6 { get; set; } #endregion 公用 } /// /// 货叉深度 /// public enum SRMForkPos : short { 中位 = 0, 深度1 = 1, 深度2 = 2 } /// /// 任务类型 /// public enum SRMTaskType : short { 完成任务 = 1, 删除任务 = 2, 移动任务 = 3, 取放货任务 = 4 } /// /// SRM状态 /// [Flags] public enum SRMStatus : ushort { RES_1_5 = 1 << 0, RES_1_6 = 1 << 1, RES_1_7 = 1 << 2, RES_1_8 = 1 << 3, RES_1_9 = 1 << 4, RES_1_10 = 1 << 5, RES_1_11 = 1 << 6, RES_1_12 = 1 << 7, RES_1_13 = 1 << 8, RES_1_14 = 1 << 9, RES_1_15 = 1 << 10, RES_1_16 = 1 << 11, RES_1_17 = 1 << 12, RES_1_18 = 1 << 13, RES_1_19 = 1 << 14, RES_1_20 = 1 << 15, } /// /// 速度模式 /// public enum SCSpeedMode : short { 正常 = 0, 低速 = 1 } /// /// 货叉运行状态 /// public enum SRMForkRunStatus : short { 空闲 = 1, 取货伸叉 = 2, 取货抬叉 = 3, 取货收叉 = 4, 放货伸叉 = 5, 取货降叉 = 6, 放货收叉 = 7, 维护 = 99 } /// /// 堆垛机运行状态 /// public enum SRMFRunStatus : short { /// /// /// 空闲 = 1, /// /// /// 取货行走 = 2, /// /// /// 取货伸叉 = 3, /// /// /// 取货抬叉 = 4, /// /// /// 取货收叉 = 5, /// /// /// 放货行走 = 6, /// /// /// 放货伸叉 = 7, /// /// /// 取货降叉 = 8, /// /// /// 放货收叉 = 9, /// /// /// 维护 = 99 } /// /// 运行模式 /// public enum SRMAutoStatus : short { 远程 = 1, 半自动 = 2, 手动 = 3, 维修 = 4 } /// /// 货叉状态 /// [Flags] public enum SRMForkStatus : ushort { /// /// 完成取货信号 /// Get_Finishi = 1 << 0, /// /// 完成放货信号 /// Put_Finishi = 1 << 1, /// /// 设备故障状态 /// Alarm = 1 << 2, /// /// 当前任务完成 /// Task_Finishi = 1 << 3, /// /// 设备上有货 /// Loaded = 1 << 4, /// /// 货叉在原位 /// Fork_Center = 1 << 5, /// /// 反馈WCS能否发任务 /// IssueTask = 1 << 6, RES_1_9 = 1 << 7, RES_1_10 = 1 << 8, RES_1_11 = 1 << 9, RES_1_12 = 1 << 10, RES_1_13 = 1 << 11, RES_1_14 = 1 << 12, RES_1_15 = 1 << 13, RES_1_16 = 1 << 14, RES_1_17 = 1 << 15, } /// /// 堆垛机报警 /// [Flags] public enum SCAlarm : ulong { 无 = 0, 主柜急停 = 1L << 0, 分柜急停 = 1L << 1, 取货点异常 = 1L << 2, 放货点有货 = 1L << 3, 货叉取货完成后无货 = 1L << 4, 货叉无任务有货异常 = 1L << 5, 货叉运行超时 = 1L << 6, 货叉左侧超行程 = 1L << 7, 货物左前坍塌 = 1L << 8, 货物右前坍塌 = 1L << 9, 前限位触发 = 1L << 10, 后限位触发 = 1L << 11, 上限位触发 = 1L << 12, 下限位触发 = 1L << 13, 超载限位触发 = 1L << 14, 松绳限位触发1 = 1L << 15, 行走运动超行程 = 1L << 16, 起升运动超行程 = 1L << 17, 行走变频器报警 = 1L << 18, 提升变频器报警 = 1L << 19, 货叉变频器报警 = 1L << 20, 提升超速报警 = 1L << 21, 风扇, 灯, 插座空开 = 1L << 22, 触摸屏, 光通讯, 激光测距空开 = 1L << 23, 行走马达保护器 = 1L << 24, 行走抱闸空开 = 1L << 25, 起升马达保护器 = 1L << 26, 起升抱闸空开 = 1L << 27, 货叉马达保护器 = 1L << 28, 货叉抱闸空开 = 1L << 29, 安全门打开 = 1L << 30, 安全继电器报警 = 1L << 31, 当前货位已禁用 = 1L << 32, 组态中断报警 = 1L << 33, 货物左前超出 = 1L << 34, 货物左后超出 = 1L << 35, 货物右前超出 = 1L << 36, 货物右后超出 = 1L << 37, 相序保护 = 1L << 38, 货物右超高1M5 = 1L << 39, 安全门1报警 = 1L << 40, 安全门2报警 = 1L << 41, 行走测距信号丢失报警 = 1L << 42, 提升测距信号丢失报警 = 1L << 43, 行走定位失败 = 1L << 44, 提升定位失败 = 1L << 45, 回中定位失败 = 1L << 46, //根据堆垛机通讯协议定义 下述报警暂时不存在 堆垛机巷道有人进入, 光通讯中断 = 1L << 47, 货叉位置错误 = 1L << 48, 货叉编码器报警 = 1L << 49, 货叉编码器报警中间位 = 1L << 50, 货叉中位光电异常 = 1L << 51, 载货台电源空开 = 1L << 52, 按钮, 安全回路空开 = 1L << 53, 货物左后坍塌 = 1L << 54, 货物右后坍塌 = 1L << 55, 登梯口急停 = 1L << 56, 货物左超高1M9 = 1L << 57, 货物右超高1M9 = 1L << 58, 松绳限位触发2 = 1L << 59, 货叉右侧超行程 = 1L << 60, 取放货托盘总数超限 = 1L << 61, 安全门急停 = 1L << 62, } }