using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; namespace WCS_Client.Frm { [Flags] public enum SrmFault1Enum : ushort { S100_主柜急停 = 1 << 0, S101_分柜急停 = 1 << 1, S102_取货点异常_双伸位 = 1 << 2, S103_放货点有货 = 1 << 3, S104_货叉取货完成后无货 = 1 << 4, S105_货叉无任务有货异常 = 1 << 5, S106_货叉运行超时 = 1 << 6, S107_货叉左侧超行程 = 1 << 7, S110_货物左前坍塌 = 1 << 8, S111_货物右前坍塌 = 1 << 9, S112_前限位触发 = 1 << 10, S113_后限位触发 = 1 << 11, S114_上限位触发 = 1 << 12, S115_下限位触发 = 1 << 13, S116_超载限位触发 = 1 << 14, S117_松绳限位触发1 = 1 << 15, } [Flags] public enum SrmFault2Enum : ushort { S120_行走运动超行程 = 1 << 0, S121_起升运动超行程 = 1 << 1, S122_行走变频器故障 = 1 << 2, S123_提升变频器故障 = 1 << 3, S124_货叉变频器故障 = 1 << 4, S125_提升超速故障 = 1 << 5, S126_风扇_灯_插座空开 = 1 << 6, S127_触摸屏_光通讯_激光测距空开 = 1 << 7, S130_行走马达保护器 = 1 << 8, S131_行走抱闸空开 = 1 << 9, S132_起升马达保护器 = 1 << 10, S133_起升抱闸空开 = 1 << 11, S134_货叉马达保护器 = 1 << 12, S135_货叉抱闸空开 = 1 << 13, S136_安全门打开 = 1 << 14, S137_安全继电器故障 = 1 << 15, } [Flags] public enum SrmFault3Enum : ushort { S140_当前货位已禁用 = 1 << 0, S141_组态中断报警 = 1 << 1, S142_货物左前超出 = 1 << 2, S143_货物左后超出 = 1 << 3, S144_货物右前超出 = 1 << 4, S145_货物右后超出 = 1 << 5, S146_货物左超高150CM = 1 << 6, S147_货物右超高150CM = 1 << 7, S150_安全门1故障 = 1 << 8, S151_安全门2故障 = 1 << 9, S152_行走测距信号丢失故障 = 1 << 10, S153_提升测距信号丢失故障 = 1 << 11, S154_行走定位失败 = 1 << 12, S155_提升定位失败 = 1 << 13, S156_回中定位失败 = 1 << 14, S157_堆垛机巷道有人进入或光通讯中断 = 1 << 15, } [Flags] public enum SrmFault4Enum : ushort { S160_货叉位置错误 = 1 << 0, S161_货叉编码器故障 = 1 << 1, S162_货叉编码器故障中间位 = 1 << 2, S163_货叉中位光电异常 = 1 << 3, S164_载货台电源空开 = 1 << 4, S165_按钮_安全回路空开 = 1 << 5, S166_货物左后坍塌 = 1 << 6, S167_货物右后坍塌 = 1 << 7, S170_登梯口急停 = 1 << 8, S171_货物左超高190CM = 1 << 9, S172_货物右超高190CM = 1 << 10, S173_松绳限位触发2 = 1 << 11, S174_货叉右侧超行程 = 1 << 12, S175_取放货托盘总数超出限制 = 1 << 13, S176_安全门急停 = 1 << 14, S177_备用 = 1 << 15, } public enum Auto_statusEnum { 未知=0, 远程 = 1, 半自动 = 2, 手动 = 3, 维修 = 4 } public enum Srm_StatusEnum { 未知 = 0, 空闲 = 1, 取货行走 = 2, 取货伸叉 = 3, 取货抬叉 = 4, 取货收叉 = 5, 放货行走 = 6, 放货伸叉 = 7, 放货降叉 = 8, 放货收叉 = 9, 维护 = 99 } public class SrmSignal : EquipmentSignal { #region variable #endregion; #region Properties #region #region DB520信号集合 /// /// 心跳 /// [Description("堆垛机心跳")] public ushort DB520_Handshake_from_wcs { get { return Query_ushort_DB_WCS_ReadWrite(0); } } /// /// 码垛起始终点货位原有数量 /// [Description("码垛起始终点货位原有数量")] public ushort DB520_Start_number { get { return Query_ushort_DB_WCS_ReadWrite(2); } } /// /// 码垛终点货位叉取数量 /// [Description("码垛终点货位叉取数量")] public ushort DB520_End_number { get { return Query_ushort_DB_WCS_ReadWrite(4); } } /// /// 货物类型 /// [Description("货物类型")] public ushort DB520_Goodtype { get { return Query_ushort_DB_WCS_ReadWrite(6); } } /// /// 速度模式(0.正常速度模式 1.低速模式) /// [Description("速度模式(0.正常速度模式 1.低速模式)")] public ushort DB520_Runmode { get { return Query_ushort_DB_WCS_ReadWrite(8); } } /// /// 任务起始行RowPos1 /// [Description("任务起始行")] public ushort DB520_FromRowPos { get { return Query_ushort_DB_WCS_ReadWrite(10); } } /// /// 任务行走起始列Travelpos1 /// [Description("任务行走起始列")] public ushort DB520_FromColumnPos { get { return Query_ushort_DB_WCS_ReadWrite(12); } } /// /// 任务提升起始层Liftpos1 /// [Description("任务提升起始层")] public ushort DB520_FromLayerPos { get { return Query_ushort_DB_WCS_ReadWrite(14); } } /// /// 任务起始深度(0:中位, 1:深度1, 2:深度2)(暂不使用,备用) /// [Description("任务起始深度(0:中位, 1:深度1, 2:深度2)")] public ushort DB520_Fork_start_pos1 { get { return Query_ushort_DB_WCS_ReadWrite(16); } } /// /// 任务目标行RowPos2 /// [Description("任务目标行")] public ushort DB520_ToRowPos { get { return Query_ushort_DB_WCS_ReadWrite(18); } } /// /// 任务行走目标列Travelpos2 /// [Description("任务行走目标列")] public ushort DB520_ToColumnPos { get { return Query_ushort_DB_WCS_ReadWrite(20); } } /// /// 任务提升目标层Liftpos2 /// [Description("任务提升目标层")] public ushort DB520_ToLayerPos { get { return Query_ushort_DB_WCS_ReadWrite(22); } } /// /// 任务目标深度(0:中位, 1:深度1, 2:深度2) /// [Description("任务目标深度(0:中位, 1:深度1, 2:深度2)")] public ushort DB520_Fork_dest_pos2 { get { return Query_ushort_DB_WCS_ReadWrite(24); } } /// /// 任务ID /// [Description("任务ID")] public uint DB520_TaskID { get { return Query_uint_DB_WCS_ReadWrite(26); } } /// /// 以上值写入后触发任务执行(1:执行, 0:默认),当任务执行完成后PLC将其置0 /// [Description("触发任务执行(1:执行, 0:默认),当任务执行完成后PLC将其置0")] public ushort DB520_Task_trigger { get { return Query_ushort_DB_WCS_ReadWrite(30); } } #endregion; #region DB521信号集合 [Description("堆垛机心跳")] public bool DB521_Handshake_to_wcs { get { return Query_bool_DB_WCS_Read(0, 0); } } /// ///完成取货信号 /// [Description("完成取货信号")] public bool DB521_Get_Finishi { get { return Query_bool_DB_WCS_Read(0, 1); } } /// /// 完成放货信号 /// [Description("完成放货信号")] public bool DB521_Put_Finishi { get { return Query_bool_DB_WCS_Read(0, 2); } } /// /// 设备故障状态 /// [Description("设备故障状态")] public bool SrmDB541_Alarm { get { return Query_bool_DB_WCS_Read(0, 3); } } /// /// 当前任务完成 /// [Description("当前任务完成")] public bool DB521_Task_Finishi { get { return Query_bool_DB_WCS_Read(0, 4); } } /// /// 设备上有货 /// [Description("设备上有货")] public bool DB521_Loaded { get { return Query_bool_DB_WCS_Read(0, 5); } } /// /// 货叉在原位 /// [Description("货叉在原位")] public bool DB521_Fork_Center { get { return Query_bool_DB_WCS_Read(0, 6); } } /// /// 1.远程 2.半自动 3.手动 4.维修 /// [Description("堆垛机模式(1.远程 2.半自动 3.手动 4.维修)")] public ushort DB521_Auto_status { get { return Query_ushort_DB_WCS_Read(2); } } public Auto_statusEnum DB521_Auto_statusCh { get { return (Auto_statusEnum)DB521_Auto_status; } } /// /// 设备状态 空闲 = 1,取货行走 = 2,取货伸叉 = 3,取货抬叉 = 4,取货收叉 = 5,放货行走 = 6,放货伸叉 = 7,放货降叉 = 8,放货收叉 = 9,维护 = 99 /// [Description("堆垛机状态(空闲 = 1,取货行走 = 2,取货伸叉 = 3,取货抬叉 = 4,取货收叉 = 5,放货行走 = 6,放货伸叉 = 7,放货降叉 = 8,放货收叉 = 9,维护 = 99)")] public ushort DB521_Srm_Status { get { return Query_ushort_DB_WCS_Read(4); } } public Srm_StatusEnum DB521_Srm_StatusCh { get { return (Srm_StatusEnum)Query_ushort_DB_WCS_Read(4); } } /// /// 任务起始行RowPos1 /// [Description("任务起始行")] public ushort DB521_FromRowPos { get { return Query_ushort_DB_WCS_Read(6); } } /// /// 任务行走起始列Travelpos1 /// [Description("任务行走起始列")] public ushort DB521_FromColumnPos { get { return Query_ushort_DB_WCS_Read(8); } } /// /// 任务提升起始层Liftpos1 /// [Description("任务提升起始层")] public ushort DB521_FromLayerPos { get { return Query_ushort_DB_WCS_Read(10); } } /// /// 任务起始深度(0:中位, 1:深度1, 2:深度2) /// [Description("任务起始深度(0:中位, 1:深度1, 2:深度2)")] public ushort DB521_Fork_start_pos1 { get { return Query_ushort_DB_WCS_Read(12); } } /// /// 任务目标行RowPos2 /// [Description("任务目标行")] public ushort DB521_ToRowPos { get { return Query_ushort_DB_WCS_Read(14); } } /// /// 任务行走目标列Travelpos2 /// [Description("任务行走目标列")] public ushort DB521_ToColumnPos { get { return Query_ushort_DB_WCS_Read(16); } } /// /// 任务提升目标层Liftpos2 /// [Description("任务提升目标层")] public ushort DB521_ToLayerPos { get { return Query_ushort_DB_WCS_Read(18); } } /// /// 任务目标深度(0:中位, 1:深度1, 2:深度2) /// [Description("任务目标深度(0:中位, 1:深度1, 2:深度2)")] public ushort DB521_Fork_dest_pos2s { get { return Query_ushort_DB_WCS_Read(20); } } /// /// 任务ID /// [Description("任务ID")] public uint DB521_TaskID { get { return Query_uint_DB_WCS_Read(22); } } /// /// 任务触发位 /// [Description("任务触发位")] public ushort DB521_Task_trigger { get { return Query_ushort_DB_WCS_Read(26); } } /// /// 当前行Srm_Row /// [Description("当前行")] public ushort DB521_CurRow { get { return Query_ushort_DB_WCS_Read(28); } } /// /// 当前列Srm_Column /// [Description("当前列")] public ushort DB521_CurColumn { get { return Query_ushort_DB_WCS_Read(30); } } /// /// 当前层Srm_Layer /// [Description("当前层")] public ushort DB521_CurLayer { get { return Query_ushort_DB_WCS_Read(32); } } /// /// 完成任务ID Taskfinishi_ID /// [Description("完成任务ID")] public uint DB521_Taskfinishi_ID { get { return Query_uint_DB_WCS_Read(34); } } /// /// 行走当前位置MM /// [Description("行走当前位置MM")] public int B521_TravelPos { get { return Query_int_DB_WCS_Read(38); } } /// /// 提升当前位置MM /// [Description("提升当前位置MM")] public uint DB521_LiftPos { get { return Query_uint_DB_WCS_Read(42); } } /// /// 货叉当前位置MM,往左为正值,往右为负值 /// [Description("货叉当前位置MM,往左为正值,往右为负值")] public int DB521_ForkPos { get { return Query_int_DB_WCS_Read(46); } } /// /// 码垛起始货位原有数量 /// [Description("码垛起始货位原有数量")] public ushort DB521_Start_number { get { return Query_ushort_DB_WCS_Read(50); } } /// /// 码垛终点货位叉取数量 /// [Description("码垛终点货位叉取数量")] public ushort DB521_End_number { get { return Query_ushort_DB_WCS_Read(52); } } /// /// 里程数(单位:千米) /// [Description("里程数(单位:千米)")] public float DB521_Total_KM { get { return Query_float_DB_WCS_Read(54); } } /// /// 货物类型 /// [Description("货物类型")] public ushort DB521_GoodType { get { return Query_ushort_DB_WCS_Read(58); } } /// /// 运行时间(Real)(单位:小时,带小数) /// [Description("运行时间(Real)(单位:小时,带小数)")] public float DB521_Runtime { get { //return Query_uint_DB_WCS_Read(60); return Query_float_DB_WCS_Read(60); } } #endregion; #region DB537 故障列表 [Description("故障信息")] public string SrmFault { get { StringBuilder sb = new StringBuilder(); if (SrmFault1 != 0) { sb.Append(SrmFault1.ToString()); } if (SrmFault2 != 0) { sb.Append(SrmFault2.ToString()); } if (SrmFault3 != 0) { sb.Append(SrmFault3.ToString()); } if (SrmFault4 != 0) { sb.Append(SrmFault4.ToString()); } return sb.ToString(); } } public SrmFault1Enum SrmFault1 { get { ushort num = Query_ushort_DB_Equ_Status(0); return (SrmFault1Enum)num; } } public SrmFault2Enum SrmFault2 { get { ushort num = Query_ushort_DB_Equ_Status(2); return (SrmFault2Enum)num; } } public SrmFault3Enum SrmFault3 { get { ushort num = Query_ushort_DB_Equ_Status(4); return (SrmFault3Enum)num; } } public SrmFault4Enum SrmFault4 { get { ushort num = Query_ushort_DB_Equ_Status(6); return (SrmFault4Enum)num; } } #endregion; #endregion; #region Constructor public SrmSignal(string plcname, List equDBInfoSet) : base(plcname, equDBInfoSet) { } #endregion; #region Method #endregion; } }