From d9b16f06ff4db7a1e44fb4eb0a3cdeb311efd7c4 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <55makharadze@gmail.com> Date: Wed, 30 Jul 2025 18:20:00 +0400 Subject: [PATCH] Update Extendo --- .../Extendo/PLC/AOIs/AOI_APF_AOI.L5X | 1183 ++++++++-- .../Extendo/PLC/AOIs/AOI_DPM_AOI.L5X | 320 ++- .../Extendo/PLC/AOIs/AOI_EXTENDO_AOI.L5X | 397 ++-- .../Extendo/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X | 19 +- .../Extendo/PLC/AOIs/AOI_MCM_AOI.L5X | 669 +++++- PLC/Simulations/Extendo/PLC/Extendo.L5X | 1980 ++++++++++------- .../Extendo/PLC/UDTs/Caljan_DataTypes.L5X | 206 ++ .../Extendo/PLC/UDTs/UDT_APF_DataType.L5X | 1344 ++++++++++- .../Extendo/PLC/UDTs/UDT_DPM_DataType.L5X | 353 ++- .../Extendo/PLC/UDTs/UDT_Extendo_DataType.L5X | 311 ++- .../Extendo/PLC/UDTs/UDT_MCM_DataType.L5X | 1028 ++++++++- 11 files changed, 6351 insertions(+), 1459 deletions(-) create mode 100644 PLC/Simulations/Extendo/PLC/UDTs/Caljan_DataTypes.L5X diff --git a/PLC/Simulations/Extendo/PLC/AOIs/AOI_APF_AOI.L5X b/PLC/Simulations/Extendo/PLC/AOIs/AOI_APF_AOI.L5X index 985d57e..600f1d6 100644 --- a/PLC/Simulations/Extendo/PLC/AOIs/AOI_APF_AOI.L5X +++ b/PLC/Simulations/Extendo/PLC/AOIs/AOI_APF_AOI.L5X @@ -1,9 +1,487 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -19,45 +497,37 @@ - - + + - - - - - - - - - + - - - + + + - - - + + + - - - + + + @@ -66,6 +536,9 @@ + + + @@ -74,14 +547,17 @@ + + + - - - + + + @@ -90,30 +566,33 @@ + + + - - - + + + - - - + + + - - - + + + @@ -122,14 +601,17 @@ + + + - - - + + + @@ -138,14 +620,17 @@ + + + - - - + + + @@ -154,6 +639,9 @@ + + + @@ -162,30 +650,36 @@ + + + - - - + + + - - - + + + - + + + + @@ -194,6 +688,9 @@ + + + @@ -202,14 +699,17 @@ + + + - - - + + + @@ -218,6 +718,9 @@ + + + @@ -226,24 +729,41 @@ + + + - + + + + + + + + + + + + + + + @@ -254,18 +774,13 @@ - - - - - - - - + + + @@ -274,6 +789,9 @@ + + + @@ -282,6 +800,9 @@ + + + @@ -296,14 +817,17 @@ + + + - - - + + + @@ -315,58 +839,177 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + - + - + - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -381,6 +1024,9 @@ + + + @@ -389,6 +1035,9 @@ + + + @@ -397,6 +1046,9 @@ + + + @@ -405,22 +1057,31 @@ + + + - + - + + + + - + + + + @@ -429,97 +1090,117 @@ + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 0, and power-saving is not blocking. + +Maintenance mode – enabled by HMI.Maintenance.Maintenance_Mode. + +Separate start, stop, jog, direction, and speed buttons bypass Interlock after the same 5 s horn delay, provided that E-Stop, comms, and VFD-reset faults are clear. + +Jog – while in maintenance, the jog PB gives low-speed motion once the delay timer finishes. + +Power-saving – if the belt has run long enough to empty itself, a length-based timer expires; Power_Saving_Mode turns on and the drive stays idle until the operator issues a new start. + +Safety torque-off – loss of STO sets EStopped, mirrors it to CTRL.STS.EStopped, and records the event in the MCM. + +Drive outputs – when Run is true the AOI drops APF_O.Stop, energises APF_O.Start, and sets the forward or reverse bit from the maintenance direction flag. + +Logging – every new Disconnect, VFD trip, Comms loss, Jam, or Full condition pushes a line into MCM.CMD.Log and increments the quantity. The line is cleared automatically when MCM echoes it back through MCM.STS.Acknowledge_Log; a global un-acknowledge re-arms the entry. + +Command bits (received by the AOI) +The module receives CTRL.CMD.Log and Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log and Unacknowledge_All_Logs. +The module receives CTRL.CMD.Start and Stop_Require_Start. +The module receives CTRL.CMD.Stop_Auto_Restart. +The module receives CTRL.CMD.Speed_FPM. +The module receives CTRL.CMD.Interlock. +The module receives CTRL.CMD.Run_Up_Enabled. +The module receives CTRL.CMD.Power_Saving_Mode_ON. +The module receives CTRL.CMD.Jammed. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Full. +The module receives CTRL.CMD.VFD_Faulted and VFD_Was_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.Stopped_By_Stop_PB. + +The module receives MCM.STS.System_Started and System_Start_Requested. +The module receives MCM.STS.VFD_Fault_Reset_Requested. +The module receives MCM.STS.Setup_Motor_Speeds. +The module receives MCM.STS.Unacknowledge_All_Logs. + +The module receives HMI.Maintenance.Maintenance_Mode. +The module receives HMI.Maintenance.Start_PB_Pressed. +The module receives HMI.Maintenance.Stop_PB_Pressed. +The module receives HMI.Maintenance.Jog_PB_Pressed. +The module receives HMI.Maintenance.Direction_PB_Pressed. +The module receives HMI.Maintenance.Speed_FPM. +The module receives HMI.Cycle_Time_Factor and HMI.Speed_At_30rev. + +Status bits (set by the AOI) +The module sets CTRL.STS.Log and Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log and Unacknowledge_All_Logs. +The module sets CTRL.STS.MCM_Started. +The module sets CTRL.STS.Running. +The module sets CTRL.STS.Enabled. +The module sets CTRL.STS.Interlock. +The module sets CTRL.STS.In_Power_Saving_Mode. +The module sets CTRL.STS.Maintenance_Mode. +The module sets CTRL.STS.Encoder_Fault. +The module sets CTRL.STS.Jammed. +The module sets CTRL.STS.VFD_Faulted. +The module sets CTRL.STS.VFD_Fault_Reset_Required. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.EStopped. +The module sets CTRL.STS.Current_Speed. +The module sets CTRL.STS.Requested_Speed. + +HMI bits +The HMI exchanges HMI.Maintenance.Maintenance_Mode. +The HMI exchanges HMI.Maintenance.Start_PB_Pressed. +The HMI exchanges HMI.Maintenance.Stop_PB_Pressed. +The HMI exchanges HMI.Maintenance.Jog_PB_Pressed. +The HMI exchanges HMI.Maintenance.Direction_PB_Pressed. +The HMI exchanges HMI.Maintenance.Speed_FPM. +The HMI displays HMI.STATE (values 0, 1, 2, 3, 4, 5, 6, 61, 7, 8, 9, 13, 14, 131 as defined above). +The HMI displays HMI.FPM, HMI.Amperage, HMI.Voltage, and HMI.Velocity. +The HMI displays HMI.VFD_Type, HMI.Communication_Fault_Code, HMI.VFD_Fault_Code, and HMI.Last_VFD_Fault_Code. +The HMI displays HMI.Maintenance.Buttons_State and HMI.Maintenance.Direction. + +Alarm bits +HMI.Alarm.Disconnected is raised when Disconnected is true. +HMI.Alarm.Communication_Faulted is raised when Communication_Faulted is true. +HMI.Alarm.VFD_Fault is raised when VFD_Faulted is true. +HMI.Alarm.VFD_Reset_Required is raised when VFD_Fault_Reset_Required is true while VFD_Faulted is false. +HMI.Alarm.Jammed is raised when Jammed is true. +HMI.Alarm.Full is raised when Full is true. +HMI.Alarm.Maintenance_Mode is raised while Maintenance_Mode is active. +]]> + @@ -561,57 +1242,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -621,160 +1302,155 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + @@ -783,32 +1459,32 @@ - + - + - + + + + + + - + - - - - - - + @@ -817,128 +1493,143 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + @@ -947,9 +1638,9 @@ - - - + + + diff --git a/PLC/Simulations/Extendo/PLC/AOIs/AOI_DPM_AOI.L5X b/PLC/Simulations/Extendo/PLC/AOIs/AOI_DPM_AOI.L5X index bcfd145..6d8b501 100644 --- a/PLC/Simulations/Extendo/PLC/AOIs/AOI_DPM_AOI.L5X +++ b/PLC/Simulations/Extendo/PLC/AOIs/AOI_DPM_AOI.L5X @@ -1,9 +1,157 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -19,26 +167,39 @@ - - + + - - - - + + + + - + + + + + + + + + + + + + + + + - - - - - + + + @@ -50,6 +211,9 @@ + + + @@ -60,49 +224,21 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + @@ -111,81 +247,115 @@ + + + + + + + + + + + + - - - + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + - + - + - + - + - + - - - - - - - - - - - - - - - - + @@ -201,8 +371,8 @@ - - + + diff --git a/PLC/Simulations/Extendo/PLC/AOIs/AOI_EXTENDO_AOI.L5X b/PLC/Simulations/Extendo/PLC/AOIs/AOI_EXTENDO_AOI.L5X index 24734a6..7aafa8a 100644 --- a/PLC/Simulations/Extendo/PLC/AOIs/AOI_EXTENDO_AOI.L5X +++ b/PLC/Simulations/Extendo/PLC/AOIs/AOI_EXTENDO_AOI.L5X @@ -1,5 +1,5 @@  - + @@ -218,76 +218,6 @@ - - - - - - - - - - - - - - - - - - - @@ -323,6 +253,66 @@ + + + + + + + + + + + + + + + + + + + + @@ -380,6 +370,11 @@ @@ -427,6 +422,12 @@ + - @@ -452,7 +453,7 @@ - + @@ -480,9 +481,6 @@ - - - @@ -491,9 +489,6 @@ - - - @@ -513,9 +508,6 @@ - - - @@ -524,9 +516,6 @@ - - - @@ -535,9 +524,6 @@ - - - @@ -546,9 +532,14 @@ - - - + + + + + + + + @@ -617,9 +608,6 @@ - - - @@ -628,9 +616,6 @@ - - - @@ -639,9 +624,6 @@ - - - @@ -650,9 +632,6 @@ - - - @@ -661,9 +640,6 @@ - - - @@ -672,10 +648,6 @@ - - - @@ -741,11 +713,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -777,7 +889,7 @@ - + @@ -847,7 +959,7 @@ - + @@ -856,6 +968,16 @@ + + + + + + + + + + @@ -864,22 +986,17 @@ - + - + - - - - - - + - + - + - + - + - + - + @@ -923,36 +1040,50 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + @@ -960,7 +1091,7 @@ - + diff --git a/PLC/Simulations/Extendo/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/Extendo/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X index 01f1236..d274a80 100644 --- a/PLC/Simulations/Extendo/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X +++ b/PLC/Simulations/Extendo/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X @@ -1,6 +1,8 @@  - + + + @@ -19,6 +21,9 @@ + + + @@ -27,11 +32,17 @@ + + + + + + @@ -39,6 +50,9 @@ + + + @@ -50,6 +64,9 @@ + + + diff --git a/PLC/Simulations/Extendo/PLC/AOIs/AOI_MCM_AOI.L5X b/PLC/Simulations/Extendo/PLC/AOIs/AOI_MCM_AOI.L5X index 678bed6..2759422 100644 --- a/PLC/Simulations/Extendo/PLC/AOIs/AOI_MCM_AOI.L5X +++ b/PLC/Simulations/Extendo/PLC/AOIs/AOI_MCM_AOI.L5X @@ -1,9 +1,275 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25,6 +291,9 @@ + + + @@ -33,6 +302,9 @@ + + + @@ -41,6 +313,9 @@ + + + @@ -49,6 +324,9 @@ + + + @@ -57,6 +335,9 @@ + + + @@ -65,6 +346,9 @@ + + + @@ -73,6 +357,9 @@ + + + @@ -81,6 +368,9 @@ + + + @@ -89,6 +379,9 @@ + + + @@ -97,6 +390,9 @@ + + + @@ -105,6 +401,9 @@ + + + @@ -113,6 +412,9 @@ + + + @@ -121,6 +423,9 @@ + + + @@ -129,6 +434,9 @@ + + + @@ -137,6 +445,9 @@ + + + @@ -145,6 +456,9 @@ + + + @@ -153,6 +467,9 @@ + + + @@ -161,6 +478,9 @@ + + + @@ -169,76 +489,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -246,6 +611,9 @@ + + + @@ -257,6 +625,9 @@ + + + @@ -268,6 +639,9 @@ + + + @@ -279,6 +653,9 @@ + + + @@ -290,6 +667,9 @@ + + + @@ -305,6 +685,104 @@ + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + @@ -381,60 +859,65 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + + @@ -443,151 +926,233 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/Extendo/PLC/Extendo.L5X b/PLC/Simulations/Extendo/PLC/Extendo.L5X index c802089..502f23b 100644 --- a/PLC/Simulations/Extendo/PLC/Extendo.L5X +++ b/PLC/Simulations/Extendo/PLC/Extendo.L5X @@ -1,6 +1,6 @@  - - + @@ -204,46 +204,6 @@ - - - - - - - - - - - - @@ -2194,9 +2201,6 @@ Pressed]]> - - - @@ -2227,9 +2231,6 @@ Pressed]]> - - - @@ -2249,9 +2250,6 @@ Pressed]]> - - - @@ -2260,9 +2258,6 @@ Pressed]]> - - - @@ -2271,9 +2266,6 @@ Pressed]]> - - - @@ -2293,9 +2285,6 @@ Pressed]]> - - - @@ -2315,9 +2304,6 @@ Pressed]]> - - - @@ -2348,9 +2334,6 @@ Pressed]]> - - - @@ -2359,9 +2342,6 @@ Pressed]]> - - - @@ -2371,7 +2351,7 @@ Pressed]]> - + @@ -2403,9 +2383,6 @@ Pressed]]> - - - @@ -2437,7 +2414,7 @@ Pressed]]> - + @@ -2446,6 +2423,14 @@ Pressed]]> + + + + + + + + @@ -2465,17 +2450,6 @@ Pressed]]> - - - - - - - - - - - @@ -2527,9 +2501,6 @@ Pressed]]> - - - @@ -2544,9 +2515,6 @@ Pressed]]> - - - @@ -2554,6 +2522,77 @@ Pressed]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + - + - + - + - - - - - - - - - - - - - + + @@ -2610,6 +2646,39 @@ Pressed]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2671,15 +2740,15 @@ Pressed]]> - + - + - + - + @@ -2704,126 +2773,110 @@ Pressed]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 0, and power-saving is not blocking. + +Maintenance mode – enabled by HMI.Maintenance.Maintenance_Mode. + +Separate start, stop, jog, direction, and speed buttons bypass Interlock after the same 5 s horn delay, provided that E-Stop, comms, and VFD-reset faults are clear. + +Jog – while in maintenance, the jog PB gives low-speed motion once the delay timer finishes. + +Power-saving – if the belt has run long enough to empty itself, a length-based timer expires; Power_Saving_Mode turns on and the drive stays idle until the operator issues a new start. + +Safety torque-off – loss of STO sets EStopped, mirrors it to CTRL.STS.EStopped, and records the event in the MCM. + +Drive outputs – when Run is true the AOI drops APF_O.Stop, energises APF_O.Start, and sets the forward or reverse bit from the maintenance direction flag. + +Logging – every new Disconnect, VFD trip, Comms loss, Jam, or Full condition pushes a line into MCM.CMD.Log and increments the quantity. The line is cleared automatically when MCM echoes it back through MCM.STS.Acknowledge_Log; a global un-acknowledge re-arms the entry. + +Command bits (received by the AOI) +The module receives CTRL.CMD.Log and Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log and Unacknowledge_All_Logs. +The module receives CTRL.CMD.Start and Stop_Require_Start. +The module receives CTRL.CMD.Stop_Auto_Restart. +The module receives CTRL.CMD.Speed_FPM. +The module receives CTRL.CMD.Interlock. +The module receives CTRL.CMD.Run_Up_Enabled. +The module receives CTRL.CMD.Power_Saving_Mode_ON. +The module receives CTRL.CMD.Jammed. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Full. +The module receives CTRL.CMD.VFD_Faulted and VFD_Was_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.Stopped_By_Stop_PB. + +The module receives MCM.STS.System_Started and System_Start_Requested. +The module receives MCM.STS.VFD_Fault_Reset_Requested. +The module receives MCM.STS.Setup_Motor_Speeds. +The module receives MCM.STS.Unacknowledge_All_Logs. + +The module receives HMI.Maintenance.Maintenance_Mode. +The module receives HMI.Maintenance.Start_PB_Pressed. +The module receives HMI.Maintenance.Stop_PB_Pressed. +The module receives HMI.Maintenance.Jog_PB_Pressed. +The module receives HMI.Maintenance.Direction_PB_Pressed. +The module receives HMI.Maintenance.Speed_FPM. +The module receives HMI.Cycle_Time_Factor and HMI.Speed_At_30rev. + +Status bits (set by the AOI) +The module sets CTRL.STS.Log and Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log and Unacknowledge_All_Logs. +The module sets CTRL.STS.MCM_Started. +The module sets CTRL.STS.Running. +The module sets CTRL.STS.Enabled. +The module sets CTRL.STS.Interlock. +The module sets CTRL.STS.In_Power_Saving_Mode. +The module sets CTRL.STS.Maintenance_Mode. +The module sets CTRL.STS.Encoder_Fault. +The module sets CTRL.STS.Jammed. +The module sets CTRL.STS.VFD_Faulted. +The module sets CTRL.STS.VFD_Fault_Reset_Required. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.EStopped. +The module sets CTRL.STS.Current_Speed. +The module sets CTRL.STS.Requested_Speed. + +HMI bits +The HMI exchanges HMI.Maintenance.Maintenance_Mode. +The HMI exchanges HMI.Maintenance.Start_PB_Pressed. +The HMI exchanges HMI.Maintenance.Stop_PB_Pressed. +The HMI exchanges HMI.Maintenance.Jog_PB_Pressed. +The HMI exchanges HMI.Maintenance.Direction_PB_Pressed. +The HMI exchanges HMI.Maintenance.Speed_FPM. +The HMI displays HMI.STATE (values 0, 1, 2, 3, 4, 5, 6, 61, 7, 8, 9, 13, 14, 131 as defined above). +The HMI displays HMI.FPM, HMI.Amperage, HMI.Voltage, and HMI.Velocity. +The HMI displays HMI.VFD_Type, HMI.Communication_Fault_Code, HMI.VFD_Fault_Code, and HMI.Last_VFD_Fault_Code. +The HMI displays HMI.Maintenance.Buttons_State and HMI.Maintenance.Direction. + +Alarm bits +HMI.Alarm.Disconnected is raised when Disconnected is true. +HMI.Alarm.Communication_Faulted is raised when Communication_Faulted is true. +HMI.Alarm.VFD_Fault is raised when VFD_Faulted is true. +HMI.Alarm.VFD_Reset_Required is raised when VFD_Fault_Reset_Required is true while VFD_Faulted is false. +HMI.Alarm.Jammed is raised when Jammed is true. +HMI.Alarm.Full is raised when Full is true. +HMI.Alarm.Maintenance_Mode is raised while Maintenance_Mode is active. +]]> + @@ -2865,57 +2918,57 @@ Pressed]]> - + - + - + - + - + - + - + - + - + - + - + @@ -2925,160 +2978,155 @@ Pressed]]> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + @@ -3087,32 +3135,32 @@ Pressed]]> - + - + - + + + + + + - + - - - - - - + @@ -3121,128 +3169,143 @@ Pressed]]> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + @@ -3251,7 +3314,7 @@ Pressed]]> - @@ -3267,10 +3330,18 @@ Pressed]]> - - + + - + + + + + + + + + @@ -3281,17 +3352,13 @@ Pressed]]> - + + + + + - - - - - - - - @@ -3320,41 +3387,6 @@ Pressed]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3366,21 +3398,7 @@ Pressed]]> - - - - - - - - - - - - - - @@ -3424,10 +3442,6 @@ Pressed]]> - - - @@ -3435,53 +3449,76 @@ Pressed]]> + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + - + - + - + - + - + - - - - - - - - - - - - - - - - + @@ -3497,7 +3534,7 @@ Pressed]]> - + @@ -3514,7 +3551,7 @@ Pressed]]> - + @@ -3542,9 +3579,6 @@ Pressed]]> - - - @@ -3553,9 +3587,6 @@ Pressed]]> - - - @@ -3575,9 +3606,6 @@ Pressed]]> - - - @@ -3586,9 +3614,6 @@ Pressed]]> - - - @@ -3597,9 +3622,6 @@ Pressed]]> - - - @@ -3608,9 +3630,14 @@ Pressed]]> - - - + + + + + + + + @@ -3679,9 +3706,6 @@ Pressed]]> - - - @@ -3690,9 +3714,6 @@ Pressed]]> - - - @@ -3701,9 +3722,6 @@ Pressed]]> - - - @@ -3712,9 +3730,6 @@ Pressed]]> - - - @@ -3723,9 +3738,6 @@ Pressed]]> - - - @@ -3734,10 +3746,6 @@ Pressed]]> - - - @@ -3803,11 +3811,151 @@ Pressed]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3839,7 +3987,7 @@ Pressed]]> - + @@ -3909,7 +4057,7 @@ Pressed]]> - + @@ -3918,6 +4066,16 @@ Pressed]]> + + + + + + + + + + @@ -3926,22 +4084,17 @@ Pressed]]> - + - + - - - - - - + - + - + - + - + - + - + @@ -3985,36 +4138,50 @@ Pressed]]> - + - + - + - + - + - + + + + + + + + + + + + + + + @@ -4119,7 +4286,7 @@ Pressed]]> - @@ -4535,6 +4702,104 @@ Pressed]]> + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + @@ -4611,60 +4876,65 @@ Pressed]]> - + - + - + - + - + - + - + - + - + - + - + + + + + + @@ -4673,151 +4943,233 @@ Pressed]]> - + - + - + - + - + - + - + - + - + - - - - - - - - - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4854,26 +5206,26 @@ Pressed]]> - + ]],[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00' + ],0]],[[0],0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00' + ],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00' + ]]]]]> + - - + + @@ -4881,7 +5233,7 @@ Pressed]]> - + @@ -4890,8 +5242,7 @@ Pressed]]> - - + @@ -4901,17 +5252,23 @@ Pressed]]> - - - + + + + - + + + + + + @@ -4924,23 +5281,21 @@ Pressed]]> - + - - - - - - - - - + - + @@ -4950,14 +5305,16 @@ Pressed]]> + - + - - + + + @@ -4965,9 +5322,8 @@ Pressed]]> - - + @@ -4976,32 +5332,47 @@ Pressed]]> + + + + + + + - + - + - + + + + + + + + + - + - + - + ],32,0]]]]]> @@ -5063,6 +5434,7 @@ Pressed]]> + @@ -5079,6 +5451,11 @@ Pressed]]> + + + + + @@ -5122,10 +5499,11 @@ Pressed]]> - + + @@ -5133,10 +5511,10 @@ Pressed]]> - + - + @@ -5235,7 +5613,7 @@ Pressed]]> - + @@ -5245,12 +5623,12 @@ Pressed]]> - + - + @@ -5259,7 +5637,7 @@ Pressed]]> - + diff --git a/PLC/Simulations/Extendo/PLC/UDTs/Caljan_DataTypes.L5X b/PLC/Simulations/Extendo/PLC/UDTs/Caljan_DataTypes.L5X new file mode 100644 index 0000000..c451c0a --- /dev/null +++ b/PLC/Simulations/Extendo/PLC/UDTs/Caljan_DataTypes.L5X @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/Extendo/PLC/UDTs/UDT_APF_DataType.L5X b/PLC/Simulations/Extendo/PLC/UDTs/UDT_APF_DataType.L5X index 6e9b6cd..3483cd1 100644 --- a/PLC/Simulations/Extendo/PLC/UDTs/UDT_APF_DataType.L5X +++ b/PLC/Simulations/Extendo/PLC/UDTs/UDT_APF_DataType.L5X @@ -1,11 +1,128 @@  - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/PLC/Simulations/Extendo/PLC/UDTs/UDT_DPM_DataType.L5X b/PLC/Simulations/Extendo/PLC/UDTs/UDT_DPM_DataType.L5X index 2468634..781945f 100644 --- a/PLC/Simulations/Extendo/PLC/UDTs/UDT_DPM_DataType.L5X +++ b/PLC/Simulations/Extendo/PLC/UDTs/UDT_DPM_DataType.L5X @@ -1,13 +1,75 @@  - + - + + + + + + + + + + + + + + + + + + + @@ -15,37 +77,27 @@ - - + + - + - - - - + + - + - - + - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/Extendo/PLC/UDTs/UDT_Extendo_DataType.L5X b/PLC/Simulations/Extendo/PLC/UDTs/UDT_Extendo_DataType.L5X index 29e482d..ee27c99 100644 --- a/PLC/Simulations/Extendo/PLC/UDTs/UDT_Extendo_DataType.L5X +++ b/PLC/Simulations/Extendo/PLC/UDTs/UDT_Extendo_DataType.L5X @@ -1,5 +1,5 @@  - + @@ -200,28 +200,18 @@ - + - - - - + + - + - - + - @@ -340,11 +335,6 @@ - @@ -392,6 +382,11 @@ + @@ -439,6 +434,12 @@ + - + @@ -463,7 +464,7 @@ - + @@ -491,9 +492,6 @@ - - - @@ -502,9 +500,6 @@ - - - @@ -524,9 +519,6 @@ - - - @@ -535,9 +527,6 @@ - - - @@ -546,9 +535,6 @@ - - - @@ -557,9 +543,14 @@ - - - + + + + + + + + @@ -628,9 +619,6 @@ - - - @@ -639,9 +627,6 @@ - - - @@ -650,9 +635,6 @@ - - - @@ -661,9 +643,6 @@ - - - @@ -672,9 +651,6 @@ - - - @@ -683,10 +659,6 @@ - - - @@ -752,11 +724,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -788,7 +900,7 @@ - + @@ -858,7 +970,7 @@ - + @@ -867,6 +979,16 @@ + + + + + + + + + + @@ -875,22 +997,17 @@ - + - + - - - - - - + - + - + - + - + - + - + @@ -934,36 +1051,50 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + @@ -971,7 +1102,7 @@ - + diff --git a/PLC/Simulations/Extendo/PLC/UDTs/UDT_MCM_DataType.L5X b/PLC/Simulations/Extendo/PLC/UDTs/UDT_MCM_DataType.L5X index f93220b..d7ec039 100644 --- a/PLC/Simulations/Extendo/PLC/UDTs/UDT_MCM_DataType.L5X +++ b/PLC/Simulations/Extendo/PLC/UDTs/UDT_MCM_DataType.L5X @@ -1,5 +1,5 @@  - + @@ -63,6 +63,7 @@ Faulted]]> @@ -132,6 +133,11 @@ Faulted]]> @@ -162,11 +168,1031 @@ Faulted]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +