using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexAttach.Devices { public static class DIN { public static void Init() { LoadIO(); } private static string _path = "DIN.cfg"; private static void LoadIO() { if (!File.Exists(_path)) { List list = new List(); var props = typeof(DIN).GetProperties(); foreach (var pi in props) { AddrInfo addrInfo = (AddrInfo)pi.GetValue(null); addrInfo.Name = pi.Name; addrInfo.Init(); list.Add($"{pi.Name}:0x{addrInfo.Addr:X}:{addrInfo.On}"); } File.WriteAllLines(_path, list.ToArray()); } else { var lines = File.ReadAllLines(_path); foreach (var line in lines) { var items = line.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray(); var name = items[0]; var addr = int.Parse(items[1].Substring(2), System.Globalization.NumberStyles.HexNumber); var on = int.Parse(items[2]); var off = (on + 1) & 1; var pi = typeof(DIN).GetProperty(name); if (pi != null) { var addrInfo = (AddrInfo)pi.GetValue(null); addrInfo.On = on; addrInfo.Off = off; addrInfo.Addr = addr; addrInfo.Name = name; addrInfo.Init(); //pi.SetValue(null, new AddrInfo(on, off) { Addr = addr, Name = name }); } } } } public static List GetAllInfo() { List info = new List(); var props = typeof(DIN).GetProperties(); foreach (var pi in props) { AddrInfo item = (AddrInfo)pi.GetValue(null); item.Name = pi.Name; info.Add(item); } return info; } #region ADDRESS public static AddrInfo EQP_MAIN_POWER_STATE { get; private set; } = new AddrInfo() { Addr = 0x0, AlarmCode = 1 }; public static AddrInfo EQP_MAIN_AIR_STATE { get; private set; } = new AddrInfo() { Addr = 0x1, AlarmCode = 2 }; public static AddrInfo EQP_MAIN_HEATER_MC_STATE { get; private set; } = new AddrInfo() { Addr = 0x2, AlarmCode = 3 }; public static AddrInfo EQP_MAIN_SERVO_MC_STATE { get; private set; } = new AddrInfo() { Addr = 0x3, AlarmCode = 4 }; public static AddrInfo EQP_COV_SERVO_MC_STATE { get; private set; } = new AddrInfo() { Addr = 0x4, AlarmCode = 5 }; public static AddrInfo X_SPARE_0005 { get; private set; } = new AddrInfo() { Addr = 0x5, AlarmCode = 6 }; public static AddrInfo EQP_FRONT_LEFT_EMO_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x6, AlarmCode = 7 }; public static AddrInfo EQP_FRONT_RIGHT_EMO_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x7, AlarmCode = 8 }; public static AddrInfo EQP_REAR_LEFT_EMO_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x100, AlarmCode = 9 }; public static AddrInfo EQP_REAR_RIGHT_EMO_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x101, AlarmCode = 10 }; public static AddrInfo EQP_SAFETY_PLC_MAIN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x102, AlarmCode = 11 }; public static AddrInfo EQP_SAFETY_PLC_CONVEYOR_ALARM { get; private set; } = new AddrInfo() { Addr = 0x103, AlarmCode = 12 }; public static AddrInfo EQP_SAFETY_PLC_SP_01 { get; private set; } = new AddrInfo() { Addr = 0x104, AlarmCode = 13 }; public static AddrInfo EQP_SAFETY_PLC_SP_02 { get; private set; } = new AddrInfo() { Addr = 0x105, AlarmCode = 14 }; public static AddrInfo EQP_FRONT_MAIN_SAFETY_KEY_AUTO { get; private set; } = new AddrInfo() { Addr = 0x106, AlarmCode = 15 }; public static AddrInfo EQP_FRONT_MAIN_SAFETY_KEY_MANUAL { get; private set; } = new AddrInfo() { Addr = 0x107, AlarmCode = 16 }; public static AddrInfo EQP_REAR_MAIN_SAFETY_KEY_AUTO { get; private set; } = new AddrInfo() { Addr = 0x200, AlarmCode = 17 }; public static AddrInfo EQP_REAR_MAIN_SAFETY_KEY_MANUAL { get; private set; } = new AddrInfo() { Addr = 0x201, AlarmCode = 18 }; public static AddrInfo EQP_FRONT_CONVEYOR_SAFETY_KEY_AUTO { get; private set; } = new AddrInfo() { Addr = 0x202, AlarmCode = 19 }; public static AddrInfo EQP_FRONT_CONVEYOR_SAFETY_KEY_MANUAL { get; private set; } = new AddrInfo() { Addr = 0x203, AlarmCode = 20 }; public static AddrInfo EQP_REAR_CONVEYOR_SAFETY_KEY_AUTO { get; private set; } = new AddrInfo() { Addr = 0x204, AlarmCode = 21 }; public static AddrInfo EQP_REAR_CONVEYOR_SAFETY_KEY_MANUAL { get; private set; } = new AddrInfo() { Addr = 0x205, AlarmCode = 22 }; public static AddrInfo EQP_FRONT_BUZZER_STOP_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x206, AlarmCode = 23 }; public static AddrInfo EQP_FRONT_START_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x207, AlarmCode = 24 }; public static AddrInfo EQP_FRONT_STOP_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x300, AlarmCode = 25 }; public static AddrInfo EQP_FRONT_RESET_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x301, AlarmCode = 26 }; public static AddrInfo EQP_REAR_START_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x302, AlarmCode = 27 }; public static AddrInfo EQP_REAR_STOP_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x303, AlarmCode = 28 }; public static AddrInfo EQP_REAR_RESET_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x304, AlarmCode = 29 }; public static AddrInfo EQP_MAGAZINE_MUTE_OFF_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x305, AlarmCode = 30 }; public static AddrInfo EQP_MAGAZINE_MUTE_ON_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x306, AlarmCode = 31 }; public static AddrInfo EQP_MAGAZINE_LIGHT_CURTAIN_SAFE_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x307, AlarmCode = 32 }; public static AddrInfo EQP_FRONT_DOOR_CLOSE_CHECK { get; private set; } = new AddrInfo() { Addr = 0x400, AlarmCode = 33 }; public static AddrInfo EQP_FRONT_DOOR_LOCK_CHECK { get; private set; } = new AddrInfo() { Addr = 0x401, AlarmCode = 34 }; public static AddrInfo EQP_REAR_MAIN_DOOR_CLOSE_CHECK { get; private set; } = new AddrInfo() { Addr = 0x402, AlarmCode = 35 }; public static AddrInfo EQP_REAR_MAIN_DOOR_LOCK_CHECK { get; private set; } = new AddrInfo() { Addr = 0x403, AlarmCode = 36 }; public static AddrInfo EQP_REAR_CONVEYOR_DOOR_CLOSE_CHECK { get; private set; } = new AddrInfo() { Addr = 0x404, AlarmCode = 37 }; public static AddrInfo EQP_REAR_CONVEYOR_DOOR_LOCK_CHECK { get; private set; } = new AddrInfo() { Addr = 0x405, AlarmCode = 38 }; public static AddrInfo EQP_MAGAZINE_LEFT_INPUT_COMPLETE_ON_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x406, AlarmCode = 39 }; public static AddrInfo EQP_MAGAZINE_RIGHT_INPUT_COMPLETE_ON_SWITCH { get; private set; } = new AddrInfo() { Addr = 0x407, AlarmCode = 40 }; //public static AddrInfo EQP_MAIN_PROCESS_AREA_INSPIRATION_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x500, AlarmCode = 41 }; //public static AddrInfo EQP_MAIN_PROCESS_AREA_EXHAUST_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x501, AlarmCode = 42 }; //public static AddrInfo EQP_MAIN_PROCESS_TEMPERATURE_ALARM { get; private set; } = new AddrInfo() { Addr = 0x502, AlarmCode = 43 }; public static AddrInfo WRAPPING_BASE_TRANFER_RIGHT_PICKER_GUIDE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x500, AlarmCode = 41 }; public static AddrInfo WRAPPING_BASE_TRANFER_RIGHT_PICKER_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x501, AlarmCode = 42 }; public static AddrInfo WRAPPING_BASE_TRANFER_LEFT_PICKER_GUIDE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x502, AlarmCode = 43 }; public static AddrInfo WRAPPING_BASE_TRANFER_LEFT_PICKER_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x503, AlarmCode = 44 }; public static AddrInfo EQP_MAIN_CONTROL_AREA_INSPIRATION_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x504, AlarmCode = 45 }; public static AddrInfo EQP_MAIN_CONTROL_AREA_EXHAUST_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x505, AlarmCode = 46 }; public static AddrInfo EQP_FRONT_CONTROL_AREA_INSPIRATION_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x506, AlarmCode = 47 }; public static AddrInfo EQP_FRONT_CONTROL_AREA_EXHAUST_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x507, AlarmCode = 48 }; public static AddrInfo EQP_REAR_CONTROL_AREA_INSPIRATION_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x600, AlarmCode = 49 }; public static AddrInfo EQP_REAR_CONTROL_AREA_EXHAUST_PAN_ALARM { get; private set; } = new AddrInfo() { Addr = 0x601, AlarmCode = 50 }; public static AddrInfo X_SPARE_0602 { get; private set; } = new AddrInfo() { Addr = 0x602, AlarmCode = 51 }; public static AddrInfo X_SPARE_0603 { get; private set; } = new AddrInfo() { Addr = 0x603, AlarmCode = 52 }; public static AddrInfo X_SPARE_0604 { get; private set; } = new AddrInfo() { Addr = 0x604, AlarmCode = 53 }; public static AddrInfo X_SPARE_0605 { get; private set; } = new AddrInfo() { Addr = 0x605, AlarmCode = 54 }; public static AddrInfo X_SPARE_0606 { get; private set; } = new AddrInfo() { Addr = 0x606, AlarmCode = 55 }; public static AddrInfo X_SPARE_0607 { get; private set; } = new AddrInfo() { Addr = 0x607, AlarmCode = 56 }; public static AddrInfo EQP_HEATER_01_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x700, AlarmCode = 57 }; public static AddrInfo EQP_HEATER_01_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x701, AlarmCode = 58 }; public static AddrInfo EQP_HEATER_01_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x702, AlarmCode = 59 }; //public static AddrInfo X_SPARE_0703 { get; private set; } = new AddrInfo() { Addr = 0x703, AlarmCode = 60 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_CLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x703, AlarmCode = 60 }; public static AddrInfo EQP_HEATER_02_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x704, AlarmCode = 61 }; public static AddrInfo EQP_HEATER_02_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x705, AlarmCode = 62 }; public static AddrInfo EQP_HEATER_02_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x706, AlarmCode = 63 }; //public static AddrInfo X_SPARE_0707 { get; private set; } = new AddrInfo() { Addr = 0x707, AlarmCode = 64 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UNCLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x707, AlarmCode = 64 }; public static AddrInfo EQP_HEATER_03_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x800, AlarmCode = 65 }; public static AddrInfo EQP_HEATER_03_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x801, AlarmCode = 66 }; public static AddrInfo EQP_HEATER_03_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x802, AlarmCode = 67 }; //public static AddrInfo X_SPARE_0803 { get; private set; } = new AddrInfo() { Addr = 0x803, AlarmCode = 68 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_PIN_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x803, AlarmCode = 68 }; public static AddrInfo EQP_HEATER_04_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x804, AlarmCode = 69 }; public static AddrInfo EQP_HEATER_04_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x805, AlarmCode = 70 }; public static AddrInfo EQP_HEATER_04_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x806, AlarmCode = 71 }; //public static AddrInfo X_SPARE_0807 { get; private set; } = new AddrInfo() { Addr = 0x807, AlarmCode = 72 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_PIN_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x807, AlarmCode = 72 }; public static AddrInfo EQP_HEATER_05_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x900, AlarmCode = 73 }; public static AddrInfo EQP_HEATER_05_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x901, AlarmCode = 74 }; public static AddrInfo EQP_HEATER_05_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x902, AlarmCode = 75 }; public static AddrInfo PBI_COMPLETE_ZONE_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x903, AlarmCode = 76 }; public static AddrInfo EQP_HEATER_06_CONTROL_ALARM { get; private set; } = new AddrInfo() { Addr = 0x904, AlarmCode = 77 }; public static AddrInfo EQP_HEATER_06_SSR_DISCONNECTION_ALARM { get; private set; } = new AddrInfo() { Addr = 0x905, AlarmCode = 78 }; public static AddrInfo EQP_HEATER_06_SSR_OVERLOAD_ALARM { get; private set; } = new AddrInfo() { Addr = 0x906, AlarmCode = 79 }; public static AddrInfo PBI_COMPLETE_ZONE_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x907, AlarmCode = 80 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_MACHINE_RUN { get; private set; } = new AddrInfo() { Addr = 0xA00, AlarmCode = 81 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_EMERGENCY { get; private set; } = new AddrInfo() { Addr = 0xA01, AlarmCode = 82 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_INTERLOCK { get; private set; } = new AddrInfo() { Addr = 0xA02, AlarmCode = 83 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_DOOR_CLOSE { get; private set; } = new AddrInfo() { Addr = 0xA03, AlarmCode = 84 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_ABLE { get; private set; } = new AddrInfo() { Addr = 0xA04, AlarmCode = 85 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_START { get; private set; } = new AddrInfo() { Addr = 0xA05, AlarmCode = 86 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_COMPLETE { get; private set; } = new AddrInfo() { Addr = 0xA06, AlarmCode = 87 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_SPARE { get; private set; } = new AddrInfo() { Addr = 0xA07, AlarmCode = 88 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_MACHINE_RUN { get; private set; } = new AddrInfo() { Addr = 0xB00, AlarmCode = 89 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_EMERGENCY { get; private set; } = new AddrInfo() { Addr = 0xB01, AlarmCode = 90 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_INTERLOCK { get; private set; } = new AddrInfo() { Addr = 0xB02, AlarmCode = 91 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_DOOR_CLOSE { get; private set; } = new AddrInfo() { Addr = 0xB03, AlarmCode = 92 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_ABLE { get; private set; } = new AddrInfo() { Addr = 0xB04, AlarmCode = 93 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_START { get; private set; } = new AddrInfo() { Addr = 0xB05, AlarmCode = 94 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_COMPLETE { get; private set; } = new AddrInfo() { Addr = 0xB06, AlarmCode = 95 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_SPARE { get; private set; } = new AddrInfo() { Addr = 0xB07, AlarmCode = 96 }; public static AddrInfo BASE_HND_PICKER_MAIN_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC00, AlarmCode = 97 }; public static AddrInfo BASE_HND_PICKER_SUB_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC01, AlarmCode = 98 }; public static AddrInfo FLEX_HND_PICKER_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC02, AlarmCode = 99 }; public static AddrInfo FLEX_SHUTTLE_STAGE_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC03, AlarmCode = 100 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC04, AlarmCode = 101 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_SUB_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC05, AlarmCode = 102 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_CLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC04, AlarmCode = 101 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UNCLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC05, AlarmCode = 102 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC06, AlarmCode = 103 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xC07, AlarmCode = 104 }; public static AddrInfo X_SPARE_0D00 { get; private set; } = new AddrInfo() { Addr = 0xD00, AlarmCode = 105 }; public static AddrInfo X_SPARE_0D01 { get; private set; } = new AddrInfo() { Addr = 0xD01, AlarmCode = 106 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_LEFT_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xD02, AlarmCode = 107 }; public static AddrInfo X_SPARE_0D03 { get; private set; } = new AddrInfo() { Addr = 0xD03, AlarmCode = 108 }; public static AddrInfo X_SPARE_0D04 { get; private set; } = new AddrInfo() { Addr = 0xD04, AlarmCode = 109 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_RIGHT_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xD05, AlarmCode = 110 }; public static AddrInfo FLEX_SHUTTLE_STAGE_FLEX_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xD06, AlarmCode = 111 }; // public static AddrInfo X_SPARE_0D07 { get; private set; } = new AddrInfo() { Addr = 0xD07, AlarmCode = 112 }; public static AddrInfo BASE_FRAME_BUFFER_SAHUTTLE_RIGHT_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xD07, AlarmCode = 112 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE00, AlarmCode = 113 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE01, AlarmCode = 114 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE02, AlarmCode = 115 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE03, AlarmCode = 116 }; public static AddrInfo X_SPARE_0E04 { get; private set; } = new AddrInfo() { Addr = 0xE04, AlarmCode = 117 }; public static AddrInfo X_SPARE_0E05 { get; private set; } = new AddrInfo() { Addr = 0xE05, AlarmCode = 118 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_INSPECTION_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE06, AlarmCode = 119 }; //public static AddrInfo X_SPARE_0E07 { get; private set; } = new AddrInfo() { Addr = 0xE07, AlarmCode = 120 }; public static AddrInfo BASE_FRAME_BUFFER_SAHUTTLE_LEFT_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xE07, AlarmCode = 120 }; //public static AddrInfo X_SPARE_0F00 { get; private set; } = new AddrInfo() { Addr = 0xF00, AlarmCode = 121 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_OVERLOAD_ON_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xF00, AlarmCode = 121 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_COMPLETE_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xF01, AlarmCode = 122 }; //public static AddrInfo X_SPARE_0F02 { get; private set; } = new AddrInfo() { Addr = 0xF02, AlarmCode = 123 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_OVERLOAD_ON_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xF02, AlarmCode = 123 }; public static AddrInfo X_ATTACH_VCM_TOOL_03_CYLINDER_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xF03, AlarmCode = 124 }; public static AddrInfo X_ATTACH_VCM_TOOL_03_CYLINDER_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0xF04, AlarmCode = 125 }; public static AddrInfo X_SPARE_0F05 { get; private set; } = new AddrInfo() { Addr = 0xF05, AlarmCode = 126 }; public static AddrInfo X_SPARE_0F06 { get; private set; } = new AddrInfo() { Addr = 0xF06, AlarmCode = 127 }; public static AddrInfo X_SPARE_0F07 { get; private set; } = new AddrInfo() { Addr = 0xF07, AlarmCode = 128 }; public static AddrInfo FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1000, AlarmCode = 129 }; public static AddrInfo FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1001, AlarmCode = 130 }; public static AddrInfo FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1002, AlarmCode = 131 }; public static AddrInfo FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1003, AlarmCode = 132 }; public static AddrInfo DISPENSER_UTILITY_MODULE_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1004, AlarmCode = 133 }; public static AddrInfo DISPENSER_UTILITY_MODULE_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1005, AlarmCode = 134 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_FORWARE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1006, AlarmCode = 135 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_BACKWARE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1007, AlarmCode = 136 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_01_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1100, AlarmCode = 137 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_01_BASE_LOCK_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1101, AlarmCode = 138 }; public static AddrInfo X_SPARE_1102 { get; private set; } = new AddrInfo() { Addr = 0x1102, AlarmCode = 139 }; public static AddrInfo X_SPARE_1103 { get; private set; } = new AddrInfo() { Addr = 0x1103, AlarmCode = 140 }; public static AddrInfo DISPENSER_NEEDLE_CLEANER_CYLINDER_OPEN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1104, AlarmCode = 141 }; public static AddrInfo DISPENSER_NEEDLE_CLEANER_CYLINDER_CLOSE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1105, AlarmCode = 142 }; public static AddrInfo DISPENSER_NEEDLE_LVDT_ON_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1106, AlarmCode = 143 }; //public static AddrInfo X_SPARE_1107 { get; private set; } = new AddrInfo() { Addr = 0x1107, AlarmCode = 144 }; public static AddrInfo WRAPPING_BASE_TRANS_GUIDE_BUFFER_ON_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1107, AlarmCode = 144 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_VACUUM_ON_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1200, AlarmCode = 145 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1201, AlarmCode = 146 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1202, AlarmCode = 147 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_OPEN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1203, AlarmCode = 148 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_CLOSE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1204, AlarmCode = 149 }; public static AddrInfo ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_OPEN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1205, AlarmCode = 150 }; public static AddrInfo ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_CLOSE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1206, AlarmCode = 151 }; public static AddrInfo ATTACH_BASE_CYLINDER_LOCK_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1207, AlarmCode = 152 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_CLOSE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1300, AlarmCode = 153 }; public static AddrInfo ATTACH_BASE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1301, AlarmCode = 154 }; public static AddrInfo ATTACH_BASE_GUIDE_PRESSURE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1302, AlarmCode = 155 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_OPEN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1303, AlarmCode = 156 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1304, AlarmCode = 157 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1305, AlarmCode = 158 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1306, AlarmCode = 159 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1307, AlarmCode = 160 }; public static AddrInfo ATTACH_VCM_TOOL_01_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1400, AlarmCode = 161 }; public static AddrInfo ATTACH_VCM_TOOL_01_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1401, AlarmCode = 162 }; public static AddrInfo ATTACH_VCM_TOOL_02_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1402, AlarmCode = 163 }; public static AddrInfo ATTACH_VCM_TOOL_02_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1403, AlarmCode = 164 }; public static AddrInfo ATTACH_VCM_TOOL_03_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1404, AlarmCode = 165 }; public static AddrInfo ATTACH_VCM_TOOL_03_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1405, AlarmCode = 166 }; public static AddrInfo ATTACH_VCM_TOOL_04_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1406, AlarmCode = 167 }; public static AddrInfo ATTACH_VCM_TOOL_04_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1407, AlarmCode = 168 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1500, AlarmCode = 169 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1501, AlarmCode = 170 }; public static AddrInfo ATTACH_VCM_TOOL_06_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1502, AlarmCode = 171 }; public static AddrInfo ATTACH_VCM_TOOL_06_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1503, AlarmCode = 172 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1504, AlarmCode = 173 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1505, AlarmCode = 174 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_RIGHT_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1506, AlarmCode = 175 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_RIGHT_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1507, AlarmCode = 176 }; public static AddrInfo MAGAZINE_WORK_POSITION_MOVING_CYLINDER_RIGHT_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1600, AlarmCode = 177 }; public static AddrInfo MAGAZINE_WORK_POSITION_MOVING_CYLINDER_LEFT_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1601, AlarmCode = 178 }; public static AddrInfo MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_LOCK_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1602, AlarmCode = 179 }; public static AddrInfo MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_UNLOCK_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1603, AlarmCode = 180 }; public static AddrInfo MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_LOCK_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1604, AlarmCode = 181 }; public static AddrInfo MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_UNLOCK_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1605, AlarmCode = 182 }; public static AddrInfo MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1606, AlarmCode = 183 }; public static AddrInfo MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1607, AlarmCode = 184 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1700, AlarmCode = 185 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1701, AlarmCode = 186 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1702, AlarmCode = 187 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1703, AlarmCode = 188 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_OPEN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1704, AlarmCode = 189 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_CLOSE_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1705, AlarmCode = 190 }; public static AddrInfo MAGAZINE_LEFT_SLIDE_DOOR_CLOSE_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1706, AlarmCode = 191 }; public static AddrInfo MAGAZINE_RIGHT_SLIDE_DOOR_CLOSE_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1707, AlarmCode = 192 }; public static AddrInfo MAGAZINE_LEFT_TILT_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1800, AlarmCode = 193 }; public static AddrInfo MAGAZINE_RIGHT_TILT_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1801, AlarmCode = 194 }; public static AddrInfo MAGAZINE_WORK_POSITION_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1802, AlarmCode = 195 }; public static AddrInfo MAGAZINE_LEFT_POSITION_SIDE_CARRIER_LOCKING_OPEN_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1803, AlarmCode = 196 }; public static AddrInfo MAGAZINE_RIGHT_POSITION_SIDE_CARRIER_LOCKING_OPEN_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1804, AlarmCode = 197 }; public static AddrInfo MAGAZINE_WORK_POSITION_CARRIER_ESCAPE_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1805, AlarmCode = 198 }; public static AddrInfo MAGAZINE_LEFT_EXIST_BOTTOM_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1806, AlarmCode = 199 }; public static AddrInfo MAGAZINE_RIGHT_EXIST_BOTTOM_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1807, AlarmCode = 200 }; public static AddrInfo FLEX_CARRIER_HND_CYLINDER_CLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1900, AlarmCode = 201 }; public static AddrInfo FLEX_CARRIER_HND_CYLINDER_UNCLAMP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1901, AlarmCode = 202 }; public static AddrInfo X_SPARE_1902 { get; private set; } = new AddrInfo() { Addr = 0x1902, AlarmCode = 203 }; public static AddrInfo FLEX_CARRIER_HND_CARRIER_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1903, AlarmCode = 204 }; public static AddrInfo FLEX_CARRIER_HND_SAFE_OVERLOAD_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1904, AlarmCode = 205 }; public static AddrInfo FLEX_CARRIER_HND_MAGAZINE_INSIDE_CARRIER_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1905, AlarmCode = 206 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_LEFT_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1906, AlarmCode = 207 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_LEFT_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1907, AlarmCode = 208 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_LEFT_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A00, AlarmCode = 209 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_LEFT_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A01, AlarmCode = 210 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A02, AlarmCode = 211 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A03, AlarmCode = 212 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A04, AlarmCode = 213 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_RIGHT_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A05, AlarmCode = 214 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_RIGHT_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1A06, AlarmCode = 215 }; public static AddrInfo X_SPARE_1A07 { get; private set; } = new AddrInfo() { Addr = 0x1A07, AlarmCode = 216 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B00, AlarmCode = 217 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B01, AlarmCode = 218 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B02, AlarmCode = 219 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B03, AlarmCode = 220 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B04, AlarmCode = 221 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B05, AlarmCode = 222 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B06, AlarmCode = 223 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1B07, AlarmCode = 224 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C00, AlarmCode = 225 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C01, AlarmCode = 226 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_FORWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C02, AlarmCode = 227 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_BACKWARD_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C03, AlarmCode = 228 }; public static AddrInfo CONVEYOR_UPPER_EQP_CARRIER_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C04, AlarmCode = 229 }; public static AddrInfo CONVEYOR_LOWER_EQP_CARRIER_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C05, AlarmCode = 230 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_SLOW_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C06, AlarmCode = 231 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_STOP_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1C07, AlarmCode = 232 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_UP_SAFE_INPUT_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D00, AlarmCode = 233 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_UP_SAFE_OUTPUT_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D01, AlarmCode = 234 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_UP_POSITION_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D02, AlarmCode = 235 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_SLOW_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D03, AlarmCode = 236 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_STOP_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D04, AlarmCode = 237 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_UP_SAFE_INPUT_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D05, AlarmCode = 238 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_UP_SAFE_OUTPUT_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D06, AlarmCode = 239 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_UP_POSITION_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1D07, AlarmCode = 240 }; public static AddrInfo CONVEYOR_PUSHER_UP_SAFE_CARRIER_EXIST_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1E00, AlarmCode = 241 }; public static AddrInfo CONVEYOR_BASE_CARRIER_WAIT_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1E01, AlarmCode = 242 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1E02, AlarmCode = 243 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_UP_SENSER { get; private set; } = new AddrInfo() { Addr = 0x1E03, AlarmCode = 244 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_BIG_DOWN_SENSER { get; private set; } = new AddrInfo() { Addr = 0x1E04, AlarmCode = 245 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_FORWARD_SENSER { get; private set; } = new AddrInfo() { Addr = 0x1E05, AlarmCode = 246 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_BACKWARD_SENSER { get; private set; } = new AddrInfo() { Addr = 0x1E06, AlarmCode = 247 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1E07, AlarmCode = 248 }; public static AddrInfo DISPENSER_X_MOTOR_TEMP_ALARM { get; private set; } = new AddrInfo() { Addr = 0x1F00, AlarmCode = 249 }; public static AddrInfo DISPENSER_Y_MOTOR_TEMP_ALARM { get; private set; } = new AddrInfo() { Addr = 0x1F01, AlarmCode = 250 }; public static AddrInfo DISPENSER_Z_MOTOR_TEMP_ALARM { get; private set; } = new AddrInfo() { Addr = 0x1F02, AlarmCode = 251 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_DOWN_SENSER { get; private set; } = new AddrInfo() { Addr = 0x1F03, AlarmCode = 252 }; public static AddrInfo DISPENSER_BASE_TRANS_Y_SAFE_POS_DETECTION_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1F04, AlarmCode = 253, On = 0, Off = 1 }; // 0 :Safe , 1 : Unsafe public static AddrInfo X_SPARE_1F05 { get; private set; } = new AddrInfo() { Addr = 0x1F05, AlarmCode = 254 }; public static AddrInfo FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_UP_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1F06, AlarmCode = 255 }; public static AddrInfo FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_DOWN_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1F07, AlarmCode = 256 }; #endregion } public class DOUT { public static void Init() { LoadIO(); } private static string _path = "DOUT.cfg"; static void LoadIO() { if (!File.Exists(_path)) { List list = new List(); var props = typeof(DOUT).GetProperties(); foreach (var pi in props) { AddrInfo item = (AddrInfo)pi.GetValue(null); item.Name = pi.Name; item.Init(); list.Add($"{pi.Name}:0x{item.Addr:X}:{item.On}"); } File.WriteAllLines(_path, list.ToArray()); } else { var lines = File.ReadAllLines(_path); foreach (var line in lines) { var items = line.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray(); var name = items[0]; var addr = int.Parse(items[1].Substring(2), System.Globalization.NumberStyles.HexNumber); var on = int.Parse(items[2]); var off = (on + 1) & 1; var pi = typeof(DOUT).GetProperty(name); if (pi != null) { var addrInfo = (AddrInfo)pi.GetValue(null); addrInfo.On = on; addrInfo.Off = off; addrInfo.Addr = addr; addrInfo.Name = name; addrInfo.Init(); //pi.SetValue(null, new AddrInfo(on, off) { Addr = addr, Name = name }); } } } } public static List GetAllInfo() { List info = new List(); var props = typeof(DOUT).GetProperties(); foreach (var pi in props) { AddrInfo item = (AddrInfo)pi.GetValue(null); item.Name = pi.Name; info.Add(item); } return info; } #region ADDRESS public static AddrInfo EQP_SIGNAL_TOWER_LAMP_RED { get; private set; } = new AddrInfo() { Addr = 0x0, AlarmCode = 501 }; public static AddrInfo EQP_SIGNAL_TOWER_LAMP_YELLOW { get; private set; } = new AddrInfo() { Addr = 0x1, AlarmCode = 502 }; public static AddrInfo EQP_SIGNAL_TOWER_LAMP_GREEN { get; private set; } = new AddrInfo() { Addr = 0x2, AlarmCode = 503 }; public static AddrInfo Y_SPARE_0003 { get; private set; } = new AddrInfo() { Addr = 0x3, AlarmCode = 504 }; public static AddrInfo EQP_SIGNAL_TOWER_BUZZER_00 { get; private set; } = new AddrInfo() { Addr = 0x4, AlarmCode = 505 }; public static AddrInfo EQP_SIGNAL_TOWER_BUZZER_01 { get; private set; } = new AddrInfo() { Addr = 0x5, AlarmCode = 506 }; public static AddrInfo EQP_SIGNAL_TOWER_BUZZER_02 { get; private set; } = new AddrInfo() { Addr = 0x6, AlarmCode = 507 }; public static AddrInfo EQP_SIGNAL_TOWER_BUZZER_03 { get; private set; } = new AddrInfo() { Addr = 0x7, AlarmCode = 508 }; public static AddrInfo EQP_START_SWITCH_LAMP_ON { get; private set; } = new AddrInfo() { Addr = 0x100, AlarmCode = 509 }; public static AddrInfo EQP_STOP_SWITCH_LAMP_ON { get; private set; } = new AddrInfo() { Addr = 0x101, AlarmCode = 510 }; public static AddrInfo EQP_RESET_SWITCH_LAMP_ON { get; private set; } = new AddrInfo() { Addr = 0x102, AlarmCode = 511 }; public static AddrInfo Y_SPARE_0103 { get; private set; } = new AddrInfo() { Addr = 0x103, AlarmCode = 512 }; public static AddrInfo EQP_FRONT_MAIN_SAFETY_KEY_LOCK { get; private set; } = new AddrInfo() { Addr = 0x104, AlarmCode = 513 }; public static AddrInfo EQP_REAR_MAIN_SAFETY_KEY_LOCK { get; private set; } = new AddrInfo() { Addr = 0x105, AlarmCode = 514 }; public static AddrInfo EQP_FRONT_CONVEYOR_SAFETY_KEY_LOCK { get; private set; } = new AddrInfo() { Addr = 0x106, AlarmCode = 515 }; public static AddrInfo EQP_REAR_CONVEYOR_SAFETY_KEY_LOCK { get; private set; } = new AddrInfo() { Addr = 0x107, AlarmCode = 516 }; //public static AddrInfo Y_SPARE_0200 { get; private set; } = new AddrInfo() { Addr = 0x200 , AlarmCode = 517 }; //public static AddrInfo Y_SPARE_0201 { get; private set; } = new AddrInfo() { Addr = 0x201 , AlarmCode = 518 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_CLAMP { get; private set; } = new AddrInfo() { Addr = 0x200, AlarmCode = 519 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UNCLAMP { get; private set; } = new AddrInfo() { Addr = 0x201, AlarmCode = 520 }; public static AddrInfo EQP_SAFE_PLC_DOOR_OPEN { get; private set; } = new AddrInfo() { Addr = 0x202, AlarmCode = 521 }; public static AddrInfo EQP_SAFE_PLC_MAGAZINE_MUTE_ON_1 { get; private set; } = new AddrInfo() { Addr = 0x203, AlarmCode = 522 }; public static AddrInfo EQP_SAFE_PLC_MAGAZINE_MUTE_ON_2 { get; private set; } = new AddrInfo() { Addr = 0x204, AlarmCode = 523 }; public static AddrInfo EQP_SAFE_PLC_SP_01 { get; private set; } = new AddrInfo() { Addr = 0x205, AlarmCode = 524 }; public static AddrInfo EQP_SAFE_PLC_SP_02 { get; private set; } = new AddrInfo() { Addr = 0x206, AlarmCode = 525 }; public static AddrInfo EQP_SAFE_PLC_SP_03 { get; private set; } = new AddrInfo() { Addr = 0x207, AlarmCode = 526 }; public static AddrInfo EQP_FRONT_DOOR_LOCK { get; private set; } = new AddrInfo() { Addr = 0x300, AlarmCode = 527 }; public static AddrInfo EQP_REAR_MAIN_DOOR_LOCK { get; private set; } = new AddrInfo() { Addr = 0x301, AlarmCode = 528 }; public static AddrInfo EQP_REAR_CONVEYOR_DOOR_LOCK { get; private set; } = new AddrInfo() { Addr = 0x302, AlarmCode = 529 }; public static AddrInfo Y_SPARE_0303 { get; private set; } = new AddrInfo() { Addr = 0x303, AlarmCode = 530 }; public static AddrInfo EQP_MAGAZINE_LEFT_INPUT_COMPLETE_SWITCH_LAMP_ON { get; private set; } = new AddrInfo() { Addr = 0x304, AlarmCode = 531 }; public static AddrInfo EQP_MAGAZINE_RIGHT_INPUT_COMPLETE_SWITCH_LAMP_ON { get; private set; } = new AddrInfo() { Addr = 0x305, AlarmCode = 532 }; //public static AddrInfo Y_SPARE_0306 { get; private set; } = new AddrInfo() { Addr = 0x306 , AlarmCode = 533 }; //public static AddrInfo Y_SPARE_0307 { get; private set; } = new AddrInfo() { Addr = 0x307 , AlarmCode = 534 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_CLAMP { get; private set; } = new AddrInfo() { Addr = 0x306, AlarmCode = 535 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UNCLAMP { get; private set; } = new AddrInfo() { Addr = 0x307, AlarmCode = 536 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_MACHINE_RUN { get; private set; } = new AddrInfo() { Addr = 0x400, AlarmCode = 537 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_EMERGENCY { get; private set; } = new AddrInfo() { Addr = 0x401, AlarmCode = 538 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_INTERLOCK { get; private set; } = new AddrInfo() { Addr = 0x402, AlarmCode = 539 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_DOOR_CLOSE { get; private set; } = new AddrInfo() { Addr = 0x403, AlarmCode = 540 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_ABLE { get; private set; } = new AddrInfo() { Addr = 0x404, AlarmCode = 541 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_START { get; private set; } = new AddrInfo() { Addr = 0x405, AlarmCode = 542 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_COMPLETE { get; private set; } = new AddrInfo() { Addr = 0x406, AlarmCode = 543 }; public static AddrInfo EQP_UPPER_EQUIPMENT_INTERFACE_SPARE { get; private set; } = new AddrInfo() { Addr = 0x407, AlarmCode = 544 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_MACHINE_RUN { get; private set; } = new AddrInfo() { Addr = 0x500, AlarmCode = 545 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_EMERGENCY { get; private set; } = new AddrInfo() { Addr = 0x501, AlarmCode = 546 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_INTERLOCK { get; private set; } = new AddrInfo() { Addr = 0x502, AlarmCode = 547 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_DOOR_CLOSE { get; private set; } = new AddrInfo() { Addr = 0x503, AlarmCode = 548 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_ABLE { get; private set; } = new AddrInfo() { Addr = 0x504, AlarmCode = 549 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_START { get; private set; } = new AddrInfo() { Addr = 0x505, AlarmCode = 550 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_COMPLETE { get; private set; } = new AddrInfo() { Addr = 0x506, AlarmCode = 551 }; public static AddrInfo EQP_LOWER_EQUIPMENT_INTERFACE_SPARE { get; private set; } = new AddrInfo() { Addr = 0x507, AlarmCode = 552 }; public static AddrInfo BASE_HND_PICKER_MAIN_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x600, AlarmCode = 553 }; public static AddrInfo BASE_HND_PICKER_MAIN_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x601, AlarmCode = 554 }; public static AddrInfo BASE_HND_PICKER_MAIN_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x602, AlarmCode = 555 }; public static AddrInfo BASE_HND_PICKER_SUB_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x603, AlarmCode = 556 }; public static AddrInfo BASE_HND_PICKER_SUB_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x604, AlarmCode = 557 }; public static AddrInfo BASE_HND_PICKER_SUB_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x605, AlarmCode = 558 }; public static AddrInfo Y_SPARE_0606 { get; private set; } = new AddrInfo() { Addr = 0x606, AlarmCode = 559 }; public static AddrInfo Y_SPARE_0607 { get; private set; } = new AddrInfo() { Addr = 0x607, AlarmCode = 560 }; public static AddrInfo FLEX_HND_PICKER_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x700, AlarmCode = 561 }; public static AddrInfo FLEX_HND_PICKER_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x701, AlarmCode = 562 }; public static AddrInfo FLEX_HND_PICKER_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x702, AlarmCode = 563 }; public static AddrInfo FLEX_SHUTTLE_STAGE_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x703, AlarmCode = 564 }; public static AddrInfo FLEX_SHUTTLE_STAGE_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x704, AlarmCode = 565 }; public static AddrInfo FLEX_SHUTTLE_STAGE_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x705, AlarmCode = 566 }; public static AddrInfo Y_SPARE_0706 { get; private set; } = new AddrInfo() { Addr = 0x706, AlarmCode = 567 }; public static AddrInfo Y_SPARE_0707 { get; private set; } = new AddrInfo() { Addr = 0x707, AlarmCode = 568 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x800 , AlarmCode = 569 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x801 , AlarmCode = 570 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x802 , AlarmCode = 571 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_SUB_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x803 , AlarmCode = 572 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x800, AlarmCode = 573 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x801, AlarmCode = 574 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_PIN_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x802, AlarmCode = 575 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_PIN_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x803, AlarmCode = 576 }; //public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_SUB_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x805 , AlarmCode = 577 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x806, AlarmCode = 578 }; public static AddrInfo WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x807, AlarmCode = 579 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_MAIN_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x900 , AlarmCode = 580 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_MAIN_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x901 , AlarmCode = 581 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_MAIN_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x902 , AlarmCode = 582 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_SUB_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x903 , AlarmCode = 583 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_SUB_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x904 , AlarmCode = 584 }; //public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_SUB_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x905 , AlarmCode = 585 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_RIGHT_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x900, AlarmCode = 586 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_RIGHT_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x901, AlarmCode = 587 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_RIGHT_VACUMM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x902, AlarmCode = 588 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_LEFT_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0x903, AlarmCode = 589 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_LEFT_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0x904, AlarmCode = 590 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_LEFT_VACUMM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0x905, AlarmCode = 591 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x906, AlarmCode = 592 }; public static AddrInfo WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x907, AlarmCode = 593 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_LEFT_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xA00, AlarmCode = 594 }; public static AddrInfo Y_SPARE_0A01 { get; private set; } = new AddrInfo() { Addr = 0xA01, AlarmCode = 595 }; public static AddrInfo BASE_FRAME_BUFFER_SHUTTLE_RIGHT_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xA02, AlarmCode = 596 }; public static AddrInfo Y_SPARE_0A03 { get; private set; } = new AddrInfo() { Addr = 0xA03, AlarmCode = 597 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xA04, AlarmCode = 598 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xA05, AlarmCode = 599 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0xA06, AlarmCode = 600 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0xA07, AlarmCode = 601 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0xB00, AlarmCode = 602 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0xB01, AlarmCode = 603 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0xB02, AlarmCode = 604 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0xB03, AlarmCode = 605 }; public static AddrInfo FLEX_BASE_FRAME_INSP_SHUTTLE_INSPECTION_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xB04, AlarmCode = 606 }; public static AddrInfo Y_ATTACH_VCM_TOOL_03_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0xB05, AlarmCode = 607 }; public static AddrInfo Y_ATTACH_VCM_TOOL_03_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0xB06, AlarmCode = 608 }; public static AddrInfo FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xB07, AlarmCode = 609 }; public static AddrInfo DISPENSER_FAD_EPOXY_P_SHOT { get; private set; } = new AddrInfo() { Addr = 0xC00, AlarmCode = 610 }; public static AddrInfo DISPENSER_FAD_EPOXY_B_SHOT { get; private set; } = new AddrInfo() { Addr = 0xC01, AlarmCode = 611 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_01_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xC02, AlarmCode = 612 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_02_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xC03, AlarmCode = 613 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_03_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xC04, AlarmCode = 614 }; public static AddrInfo DISPENSER_TURN_TABLE_SIDE_ROTATION_04_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xC05, AlarmCode = 615 }; public static AddrInfo Y_SPARE_0C06 { get; private set; } = new AddrInfo() { Addr = 0xC06, AlarmCode = 616 }; public static AddrInfo FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xC07, AlarmCode = 617 }; public static AddrInfo DISPENSER_NEEDLE_CLEANER_CYLINDER_OPEN { get; private set; } = new AddrInfo() { Addr = 0xD00, AlarmCode = 618 }; public static AddrInfo DISPENSER_NEEDLE_CLEANER_CYLINDER_CLOSE { get; private set; } = new AddrInfo() { Addr = 0xD01, AlarmCode = 619 }; public static AddrInfo DISPENSER_UTILITY_MODULE_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xD02, AlarmCode = 620 }; public static AddrInfo DISPENSER_UTILITY_MODULE_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xD03, AlarmCode = 621 }; public static AddrInfo Y_SPARE_1D04 { get; private set; } = new AddrInfo() { Addr = 0xD04, AlarmCode = 622 }; public static AddrInfo Y_SPARE_1D05 { get; private set; } = new AddrInfo() { Addr = 0xD05, AlarmCode = 623 }; public static AddrInfo ATTACH_PISMO_HAND_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0xD06, AlarmCode = 624 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_VACUUM_ON { get; private set; } = new AddrInfo() { Addr = 0xD07, AlarmCode = 625 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_BLOW_ON { get; private set; } = new AddrInfo() { Addr = 0xE00, AlarmCode = 626 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_VACUUM_BLOW_OFF { get; private set; } = new AddrInfo() { Addr = 0xE01, AlarmCode = 627 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xE02, AlarmCode = 628 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xE03, AlarmCode = 629 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_OPEN { get; private set; } = new AddrInfo() { Addr = 0xE04, AlarmCode = 630 }; public static AddrInfo ATTACH_COIL_ALIGNER_PICKER_CYLINDER_CLOSE { get; private set; } = new AddrInfo() { Addr = 0xE05, AlarmCode = 631 }; public static AddrInfo ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_OPEN { get; private set; } = new AddrInfo() { Addr = 0xE06, AlarmCode = 632 }; public static AddrInfo ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_CLOSE { get; private set; } = new AddrInfo() { Addr = 0xE07, AlarmCode = 633 }; public static AddrInfo ATTACH_BASE_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0xF00, AlarmCode = 634 }; public static AddrInfo ATTACH_BASE_CYLINDER_UNLOCK { get; private set; } = new AddrInfo() { Addr = 0xF01, AlarmCode = 635 }; public static AddrInfo ATTACH_VCM_TOOL_01_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xF02, AlarmCode = 636 }; public static AddrInfo ATTACH_VCM_TOOL_01_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xF03, AlarmCode = 637 }; public static AddrInfo ATTACH_VCM_TOOL_02_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xF04, AlarmCode = 638 }; public static AddrInfo ATTACH_VCM_TOOL_02_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xF05, AlarmCode = 639 }; public static AddrInfo ATTACH_VCM_TOOL_03_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0xF06, AlarmCode = 640 }; public static AddrInfo ATTACH_VCM_TOOL_03_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0xF07, AlarmCode = 641 }; public static AddrInfo ATTACH_VCM_TOOL_04_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1000, AlarmCode = 642 }; public static AddrInfo ATTACH_VCM_TOOL_04_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1001, AlarmCode = 643 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1002, AlarmCode = 644 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1003, AlarmCode = 645 }; public static AddrInfo ATTACH_VCM_TOOL_06_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1004, AlarmCode = 646 }; public static AddrInfo ATTACH_VCM_TOOL_06_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1005, AlarmCode = 647 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1006, AlarmCode = 648 }; public static AddrInfo ATTACH_VCM_TOOL_05_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1007, AlarmCode = 649 }; public static AddrInfo MAGAZINE_WORK_POSITION_MOVING_CYLINDER_LEFT { get; private set; } = new AddrInfo() { Addr = 0x1100, AlarmCode = 650 }; public static AddrInfo MAGAZINE_WORK_POSITION_MOVING_CYLINDER_RIGHT { get; private set; } = new AddrInfo() { Addr = 0x1101, AlarmCode = 651 }; public static AddrInfo MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0x1102, AlarmCode = 652 }; public static AddrInfo MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_UNLOCK { get; private set; } = new AddrInfo() { Addr = 0x1103, AlarmCode = 653 }; public static AddrInfo MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_LOCK { get; private set; } = new AddrInfo() { Addr = 0x1104, AlarmCode = 654 }; public static AddrInfo MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_UNLOCK { get; private set; } = new AddrInfo() { Addr = 0x1105, AlarmCode = 655 }; public static AddrInfo MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1106, AlarmCode = 656 }; public static AddrInfo MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1107, AlarmCode = 657 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1200, AlarmCode = 658 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1201, AlarmCode = 659 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1202, AlarmCode = 660 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1203, AlarmCode = 661 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_OPEN { get; private set; } = new AddrInfo() { Addr = 0x1204, AlarmCode = 662 }; public static AddrInfo MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_CLOSE { get; private set; } = new AddrInfo() { Addr = 0x1205, AlarmCode = 663 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_FORWARE { get; private set; } = new AddrInfo() { Addr = 0x1206, AlarmCode = 664 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_BACKWARE { get; private set; } = new AddrInfo() { Addr = 0x1207, AlarmCode = 665 }; public static AddrInfo FLEX_CARRIER_HND_CYLINDER_CLAMP { get; private set; } = new AddrInfo() { Addr = 0x1300, AlarmCode = 666 }; public static AddrInfo FLEX_CARRIER_HND_CYLINDER_UNCLAMP { get; private set; } = new AddrInfo() { Addr = 0x1301, AlarmCode = 667 }; public static AddrInfo Y_SPARE_1302 { get; private set; } = new AddrInfo() { Addr = 0x1302, AlarmCode = 668 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1303, AlarmCode = 669 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1304, AlarmCode = 670 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1305, AlarmCode = 671 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1306, AlarmCode = 672 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_EXIST_DETECTED_SENSOR { get; private set; } = new AddrInfo() { Addr = 0x1307, AlarmCode = 673 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1400, AlarmCode = 674 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1401, AlarmCode = 675 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1402, AlarmCode = 676 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1403, AlarmCode = 677 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1404, AlarmCode = 678 }; public static AddrInfo CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1405, AlarmCode = 679 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1406, AlarmCode = 680 }; public static AddrInfo CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1407, AlarmCode = 681 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1500, AlarmCode = 682 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1501, AlarmCode = 683 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1502, AlarmCode = 684 }; public static AddrInfo CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1503, AlarmCode = 685 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1504, AlarmCode = 686 }; public static AddrInfo FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1505, AlarmCode = 687 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1506, AlarmCode = 688 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1507, AlarmCode = 689 }; public static AddrInfo VISION_BASE_HND_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1600, AlarmCode = 690 }; public static AddrInfo VISION_BASE_WRAPPING_BASE_TRANS_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1601, AlarmCode = 691 }; public static AddrInfo VISION_FLEX_HND_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1602, AlarmCode = 692 }; public static AddrInfo VISION_DISPENSER_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1603, AlarmCode = 693 }; public static AddrInfo VISION_ATTACH_ALIGNER_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1604, AlarmCode = 694 }; public static AddrInfo VISION_EPOXY_INSPECTION_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1605, AlarmCode = 695 }; public static AddrInfo VISION_ATTACH_INSPECTION_HW_TRIGGER { get; private set; } = new AddrInfo() { Addr = 0x1606, AlarmCode = 696 }; public static AddrInfo Y_SPARE_1607 { get; private set; } = new AddrInfo() { Addr = 0x1607, AlarmCode = 697 }; public static AddrInfo Y_SPARE_1700 { get; private set; } = new AddrInfo() { Addr = 0x1700, AlarmCode = 698 }; public static AddrInfo HEATER_POWER_00 { get; private set; } = new AddrInfo() { Addr = 0x1701, AlarmCode = 699 }; public static AddrInfo HEATER_POWER_01 { get; private set; } = new AddrInfo() { Addr = 0x1702, AlarmCode = 700 }; public static AddrInfo HEATER_POWER_02 { get; private set; } = new AddrInfo() { Addr = 0x1703, AlarmCode = 701 }; public static AddrInfo HEATER_POWER_03 { get; private set; } = new AddrInfo() { Addr = 0x1704, AlarmCode = 702 }; public static AddrInfo HEATER_POWER_04 { get; private set; } = new AddrInfo() { Addr = 0x1705, AlarmCode = 703 }; public static AddrInfo HEATER_POWER_05 { get; private set; } = new AddrInfo() { Addr = 0x1706, AlarmCode = 704 }; public static AddrInfo PBI_COMPLETE_ZONE_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1707, AlarmCode = 705 }; public static AddrInfo DISPENSER_BASE_TRANS_AXIS_TT_AMP_RESET { get; private set; } = new AddrInfo() { Addr = 0x1800, AlarmCode = 706 }; public static AddrInfo FLEX_HND_AXIS_T_AMP_RESET { get; private set; } = new AddrInfo() { Addr = 0x1801, AlarmCode = 707 }; public static AddrInfo ATTACH_FLEX_GRIPPER_AXIS_T_AMP_RESET { get; private set; } = new AddrInfo() { Addr = 0x1802, AlarmCode = 708 }; public static AddrInfo ATTACH_BASE_GUIDE_AXIS_T_AMP_RESET { get; private set; } = new AddrInfo() { Addr = 0x1803, AlarmCode = 709 }; public static AddrInfo FLEX_TILT_SHUTTLE_AXIS_TT_AMP_RESET { get; private set; } = new AddrInfo() { Addr = 0x1804, AlarmCode = 710 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_CLOSE { get; private set; } = new AddrInfo() { Addr = 0x1805, AlarmCode = 711 }; public static AddrInfo ATTACH_SECOND_GRIPPER_CYLINDER_OPEN { get; private set; } = new AddrInfo() { Addr = 0x1806, AlarmCode = 712 }; public static AddrInfo PBI_COMPLETE_ZONE_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1807, AlarmCode = 713 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1900, AlarmCode = 714 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1901, AlarmCode = 715 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_FORWARD { get; private set; } = new AddrInfo() { Addr = 0x1902, AlarmCode = 716 }; public static AddrInfo DISPENSER_ELECTRONIC_SCALE_CYLINDER_BACKWARD { get; private set; } = new AddrInfo() { Addr = 0x1903, AlarmCode = 717 }; public static AddrInfo FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1904, AlarmCode = 718 }; public static AddrInfo FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1905, AlarmCode = 719 }; public static AddrInfo FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_UP { get; private set; } = new AddrInfo() { Addr = 0x1906, AlarmCode = 720 }; public static AddrInfo FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_DOWN { get; private set; } = new AddrInfo() { Addr = 0x1907, AlarmCode = 721 }; #endregion } public class IOPair { private static IOPair _instance = null; public static IOPair GetInstance() { if (_instance == null) { _instance = new IOPair(); } return _instance; } private readonly Dictionary> _dictIOPair = new Dictionary>() { // output addr, input addrList // Dispenser { DOUT.DISPENSER_NEEDLE_CLEANER_CYLINDER_OPEN.Addr, new List() { DIN.DISPENSER_NEEDLE_CLEANER_CYLINDER_OPEN_SENSOR.Addr } }, { DOUT.DISPENSER_NEEDLE_CLEANER_CYLINDER_CLOSE.Addr, new List() { DIN.DISPENSER_NEEDLE_CLEANER_CYLINDER_CLOSE_SENSOR.Addr } }, { DOUT.DISPENSER_UTILITY_MODULE_CYLINDER_UP.Addr, new List(){DIN.DISPENSER_UTILITY_MODULE_CYLINDER_UP_SENSOR.Addr} }, { DOUT.DISPENSER_UTILITY_MODULE_CYLINDER_DOWN.Addr, new List(){DIN.DISPENSER_UTILITY_MODULE_CYLINDER_DOWN_SENSOR.Addr} }, // Attach { DOUT.ATTACH_VCM_TOOL_01_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_01_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_02_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_02_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_03_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_03_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_04_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_04_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_05_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_05_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_06_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_VCM_TOOL_06_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_01_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_01_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_02_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_02_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_03_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_03_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_04_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_04_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_05_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_05_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_06_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_VCM_TOOL_06_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.Y_ATTACH_VCM_TOOL_03_CYLINDER_FORWARD.Addr, new List(){ DIN.X_ATTACH_VCM_TOOL_03_CYLINDER_FORWARD_SENSOR.Addr } }, { DOUT.Y_ATTACH_VCM_TOOL_03_CYLINDER_BACKWARD.Addr, new List(){ DIN.X_ATTACH_VCM_TOOL_03_CYLINDER_BACKWARD_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_05_CYLINDER_FORWARD.Addr, new List(){ DIN.ATTACH_VCM_TOOL_05_CYLINDER_FORWARD_SENSOR.Addr } }, { DOUT.ATTACH_VCM_TOOL_05_CYLINDER_BACKWARD.Addr, new List(){ DIN.ATTACH_VCM_TOOL_05_CYLINDER_BACKWARD_SENSOR.Addr } }, { DOUT.ATTACH_BASE_CYLINDER_LOCK.Addr, new List(){ DIN.ATTACH_BASE_CYLINDER_LOCK_SENSOR.Addr } }, { DOUT.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_OPEN.Addr, new List(){ DIN.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_OPEN_SENSOR.Addr } }, { DOUT.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_CLOSE.Addr, new List(){ DIN.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_CLOSE_SENSOR.Addr } }, { DOUT.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_COIL_ALIGNER_PICKER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_OPEN.Addr, new List(){ DIN.ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_OPEN_SENSOR.Addr } }, { DOUT.ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_CLOSE.Addr, new List(){ DIN.ATTACH_FLEX_ALIGN_GRIPPER_CYLINDER_CLOSE_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_OPEN.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_OPEN_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_CLOSE.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_CLOSE_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_UP.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_DOWN.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_FORWARE.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_FORWARE_SENSOR.Addr } }, { DOUT.ATTACH_SECOND_GRIPPER_CYLINDER_BACKWARE.Addr, new List(){ DIN.ATTACH_SECOND_GRIPPER_CYLINDER_BACKWARE_SENSOR.Addr } }, // Dispenser Base Transfer { DOUT.BASE_HND_PICKER_MAIN_VACUUM_ON.Addr, new List(){ DIN.BASE_HND_PICKER_MAIN_VACUUM_ON_SENSOR.Addr } }, { DOUT.BASE_HND_PICKER_SUB_VACUUM_ON.Addr, new List(){ DIN.BASE_HND_PICKER_SUB_VACUUM_ON_SENSOR.Addr } }, // Wrapping Base Transfer { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_DOWN.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_DOWN.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_CLAMP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_CLAMP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UNCLAMP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_UNCLAMP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_CLAMP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_CLAMP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UNCLAMP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_CYLINDER_UNCLAMP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_PIN_CYLINDER_DOWN.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_PIN_DOWN_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_PIN_CYLINDER_UP.Addr, new List(){ DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_CYLINDER_PIN_UP_SENSOR.Addr } }, //{ DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_VACUUM_ON.Addr, new List() { DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_MAIN_VACUUM_ON_SENSOR.Addr } }, //{ DOUT.WRAPPING_BASE_TRANS_LEFT_PICKER_SUB_VACUUM_ON.Addr, new List() { DIN.WRAPPING_BASE_TRANS_LEFT_PICKER_SUB_VACUUM_ON_SENSOR.Addr } }, //{ DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_MAIN_VACUUM_ON.Addr, new List() { DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_MAIN_VACUUM_ON_SENSOR.Addr } }, //{ DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_SUB_VACUUM_ON.Addr, new List() { DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_SUB_VACUUM_ON_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_CYLINDER_UP.Addr, new List() { DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_UP_SENSOR.Addr } }, { DOUT.WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_CYLINDER_DOWN.Addr, new List() { DIN.WRAPPING_BASE_TRANS_RIGHT_PICKER_PIN_DOWN_SENSOR.Addr } }, { DOUT.BASE_FRAME_BUFFER_SHUTTLE_RIGHT_VACUUM_ON.Addr, new List() { DIN.BASE_FRAME_BUFFER_SAHUTTLE_RIGHT_VACUUM_ON_SENSOR.Addr } }, { DOUT.BASE_FRAME_BUFFER_SHUTTLE_LEFT_VACUUM_ON.Addr, new List() { DIN.BASE_FRAME_BUFFER_SAHUTTLE_LEFT_VACUUM_ON_SENSOR.Addr } }, // Flex Transfer { DOUT.FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_UP.Addr, new List(){ DIN.FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_UP_SENSOR.Addr } }, { DOUT.FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_DOWN.Addr, new List(){ DIN.FLEX_TRANS_PRE_BENDING_FLEX_PUSH_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.FLEX_HND_PICKER_VACUUM_ON.Addr, new List(){ DIN.FLEX_HND_PICKER_VACUUM_ON_SENSOR.Addr } }, // Flex Tilt Shuttle { DOUT.FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_UP.Addr, new List(){ DIN.FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_UP_SENSOR.Addr } }, { DOUT.FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_DOWN.Addr, new List(){ DIN.FLEX_TILT_SHUTTLE_1ST_PRE_BENDING_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_UP.Addr, new List(){ DIN.FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_UP_SENSOR.Addr } }, { DOUT.FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_DOWN.Addr, new List(){ DIN.FLEX_TILT_SHUTTLE_2ST_PRE_BENDING_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.FLEX_SHUTTLE_STAGE_VACUUM_ON.Addr, new List() { DIN.FLEX_SHUTTLE_STAGE_VACUUM_ON_SENSOR.Addr } }, // Flex Base Frame Inspection Shuttle { DOUT.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_UP.Addr, new List(){ DIN.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_DOWN.Addr, new List(){ DIN.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_VACUUM_ON.Addr, new List(){ DIN.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_MAIN_VACUUM_ON_SENSOR.Addr } }, { DOUT.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_VACUUM_ON.Addr, new List(){ DIN.FLEX_BASE_FRAME_INSP_SHUTTLE_TURN_PICKER_SUB_VACUUM_ON_SENSOR.Addr } }, // Magazine Carrier { DOUT.FLEX_CARRIER_HND_CYLINDER_CLAMP.Addr, new List(){ DIN.FLEX_CARRIER_HND_CYLINDER_CLAMP_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_HND_CYLINDER_UNCLAMP.Addr, new List(){ DIN.FLEX_CARRIER_HND_CYLINDER_UNCLAMP_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_FORWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_LEFT_FORWARD_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_BACKWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_UPHOLD_CYLINDER_RIGHT_FORWARD_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_FORWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_LEFT_FORWARD_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_BACKWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_UPHOLD_CARRIER_ALIGNER_CYLINDER_RIGHT_FORWARD_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_FORWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_FORWARD_SENSOR.Addr } }, { DOUT.FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_BACKWARD.Addr, new List(){ DIN.FLEX_CARRIER_WORK_ZONE_RFID_CYLINDER_BACKWARD_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_MOVING_CYLINDER_LEFT.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_MOVING_CYLINDER_LEFT_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_MOVING_CYLINDER_RIGHT.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_MOVING_CYLINDER_RIGHT_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_UP.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_UP_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_DOWN.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_CLAMP_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_UP.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_UP_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_DOWN.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_FORWARD.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_FORWARD_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_BACKWARD.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_BACKWARD_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_OPEN.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_OPEN_SENSOR.Addr } }, { DOUT.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_CLOSE.Addr, new List(){ DIN.MAGAZINE_WORK_POSITION_SIDE_CARRIER_LOCKING_CYLINDER_TURN_CLOSE_SENSOR.Addr } }, { DOUT.MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_LOCK.Addr, new List(){ DIN.MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_LOCK_SENSOR.Addr } }, { DOUT.MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_UNLOCK.Addr, new List(){ DIN.MAGAZINE_LEFT_SLIDE_DOOR_CYLINDER_UNLOCK_SENSOR.Addr } }, { DOUT.MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_LOCK.Addr, new List(){ DIN.MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_LOCK_SENSOR.Addr } }, { DOUT.MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_UNLOCK.Addr, new List(){ DIN.MAGAZINE_RIGHT_SLIDE_DOOR_CYLINDER_UNLOCK_SENSOR.Addr } }, // Conveyor { DOUT.CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_UP.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_UP_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_DOWN.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_LEFT_POPUP_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_UP.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_DOWN.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_LEFT_STOPPER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_UP.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_UP_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_DOWN.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_RIGHT_POPUP_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_UP.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_DOWN.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_RIGHT_STOPPER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_UP.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_UP_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_DOWN.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_DOWN_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_FORWARD.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_FORWARD_SENSOR.Addr } }, { DOUT.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_BACKWARD.Addr, new List(){ DIN.CONVEYOR_BASE_CARRIER_SEND_OUT_PUSHER_CYLINDER_BACKWARD_SENSOR.Addr } }, { DOUT.ATTACH_COIL_ALIGNER_PICKER_VACUUM_ON.Addr, new List() { DIN.ATTACH_COIL_ALIGNER_PICKER_VACUUM_ON_SENSOR.Addr } }, // }; /// /// /// /// /// result is empty list if not found public List GetInAddr(int outAddr) { return _dictIOPair.ContainsKey(outAddr) ? _dictIOPair[outAddr] : new List(); } } }