using System.ComponentModel; using System.Reflection; namespace WIDESEAWCS_QuartzJob.StackerCrane.Enum { public enum StackerFault { [Description("载货台货物超宽")] DB107_26_0, [Description("载货台货物超长")] DB107_26_1, [Description("载货台货物超高")] DB107_26_2, [Description("载货台货物检测传感器异常")] DB107_26_3, [Description("货叉编码器值错误")] DB107_26_4, [Description("货叉动作超时")] DB107_26_5, [Description("货叉编码器值与中位信号不一致")] DB107_26_6, [Description("无效的任务类型")] DB107_26_7, [Description("无效的作业地址")] DB107_27_0, [Description("重入库")] DB107_27_1, [Description("空出库")] DB107_27_2, [Description("货物高度与货位不匹配")] DB107_27_3, [Description("取货通道堵塞")] DB107_27_4, [Description("放货通道堵塞")] DB107_27_5, [Description("放货完成后载货台仍然有货")] DB107_27_6, [Description("任务未完成超时报警")] DB107_27_7, [Description("就地柜急停触发")] DB107_28_0, [Description("机载柜急停触发")] DB107_28_1, [Description("远程急停触发")] DB107_28_2, [Description("安全门被打开")] DB107_28_3, [Description("安全继电器断开")] DB107_28_4, [Description("松绳检测")] DB107_28_5, [Description("超速保护")] DB107_28_6, [Description("行走变频器故障")] DB107_28_7, [Description("升降变频器故障")] DB107_29_0, [Description("货叉1变频器故障")] DB107_29_1, [Description("货叉2变频器故障")] DB107_29_2, [Description("升降行走定位超时")] DB107_29_3, [Description("货叉1编码器值与中位信号不一致")] DB107_29_4, [Description("货叉2编码器值与中位信号不一致")] DB107_29_5, [Description("行走激光值错误")] DB107_29_6, [Description("升降激光值错误")] DB107_29_7, [Description("前进极限行程")] DB107_30_0, [Description("后退极限行程")] DB107_30_1, [Description("上升极限行程")] DB107_30_2, [Description("下降极限行程")] DB107_30_3, [Description("货叉1左极限行程")] DB107_30_4, [Description("货叉1右极限行程")] DB107_30_5, [Description("货叉2左极限行程")] DB107_30_6, [Description("货叉2右极限行程")] DB107_30_7, [Description("前进激光极限保护")] DB107_31_0, [Description("后退激光极限保护")] DB107_31_1, [Description("上升激光极限保护")] DB107_31_2, [Description("下降激光极限保护")] DB107_31_3, [Description("货叉1左软极限")] DB107_31_4, [Description("货叉1右软极限")] DB107_31_5, [Description("货叉2左软极限")] DB107_31_6, [Description("货叉2右软极限")] DB107_31_7, [Description("与地面站网络断开")] DB107_32_0, [Description("与输送线网络断开")] DB107_32_1, [Description("与WCS网络断开")] DB107_32_2, [Description("无效命令:堆垛机有货")] DB107_32_3, [Description("无效命令:堆垛机无货")] DB107_32_4, [Description("消防误报")] DB107_32_5, [Description("前进雷达报警")] DB107_32_6, [Description("后退雷达报警")] DB107_32_7, [Description("左防火门超时")] DB107_33_0, [Description("右防火门超时")] DB107_33_1, [Description("替罪羊检测报警")] DB107_33_2, [Description("近叉运行异常")] DB107_33_3, [Description("远叉运行异常")] DB107_33_4, [Description("水平运行异常")] DB107_33_5, [Description("升降运行异常")] DB107_33_6, [Description("预留13")] DB107_33_7, [Description("升降刹车异常")] DB107_34_0, [Description("行走刹车异常")] DB107_34_1, [Description("近叉刹车异常")] DB107_34_2, [Description("远叉刹车异常")] DB107_34_3, [Description("左侧过载")] DB107_34_4, [Description("右侧过载")] DB107_34_5, [Description("预留")] DB107_34_6, [Description("预留_1")] DB107_34_7, [Description("预留_2")] DB107_35_0, [Description("预留_3")] DB107_35_1, [Description("预留_4")] DB107_35_2, [Description("预留_5")] DB107_35_3, [Description("预留_6")] DB107_35_4, [Description("预留_7")] DB107_35_5, [Description("预留_8")] DB107_35_6, [Description("预留13")] DB107_35_7 } public static class StackerFaultExtensions { public static string GetDesc(this StackerFault fault) { var field = fault.GetType().GetField(fault.ToString()); var attr = field.GetCustomAttribute(); return attr?.Description ?? fault.ToString(); } public static string ToPlcAddress(this StackerFault fault) { return fault.ToString().Replace("_", "."); } } }