From 23a9a356b432ddab00a7ce183e4b93278d039024 Mon Sep 17 00:00:00 2001 From: beka makharadze Date: Wed, 16 Jul 2025 11:34:21 +0400 Subject: [PATCH] MTN6-56 --- .../STATION_EPC/OIP/SATION_EPC.tscn | 43 +- .../PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X | 110 + .../STATION_EPC/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X | 355 ++ .../STATION_EPC/PLC/AOIs/AOI_MCM_AOI.L5X | 1187 +++++++ .../PLC/AOIs/AOI_STATION_EPC_AOI.L5X | 436 ++- .../STATION_EPC/PLC/AOIs/AOI_VFD_AOI.L5X | 1468 +++++++++ .../STATION_EPC/PLC/STATION_EPC.L5X | 2848 ++++++++++------- .../PLC/UDTs/STATION_EPC_DataType.L5X | 122 - .../PLC/UDTs/STATION_EPC_DataTypes.L5X | 524 ++- .../PLC/UDTs/UDT_IO_BLOCK_DataType.L5X | 91 + .../STATION_EPC/PLC/UDTs/UDT_MCM_DataType.L5X | 1198 +++++++ .../STATION_EPC/PLC/UDTs/UDT_VFD_DataType.L5X | 1478 +++++++++ 12 files changed, 8460 insertions(+), 1400 deletions(-) create mode 100644 PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_MCM_AOI.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_VFD_AOI.L5X delete mode 100644 PLC/Simulations/STATION_EPC/PLC/UDTs/STATION_EPC_DataType.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_IO_BLOCK_DataType.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_MCM_DataType.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_VFD_DataType.L5X diff --git a/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn b/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn index b9d4d00..b065e68 100644 --- a/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn +++ b/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=15 format=3 uid="uid://bcby8jt3gsud8"] +[gd_scene load_steps=15 format=3 uid="uid://cprxsbwebcd5v"] -[ext_resource type="Script" uid="uid://dsxxycqvgg68a" path="res://station_epc.gd" id="1_qc5a3"] +[ext_resource type="Script" uid="uid://b28c5btqltji5" path="res://station_epc.gd" id="1_qc5a3"] [ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_v76qd"] [ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="3_u7586"] [ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="4_ahe6k"] @@ -16,8 +16,6 @@ friction = 0.5 [sub_resource type="Resource" id="Resource_kdh4b"] resource_local_to_scene = true script = ExtResource("8_spet4") -active = true -segment_color = Color(0, 1, 0, 0.5) [sub_resource type="Resource" id="Resource_spet4"] resource_local_to_scene = true @@ -27,8 +25,6 @@ segment_datas = [SubResource("Resource_kdh4b")] [sub_resource type="Resource" id="Resource_3ipjn"] resource_local_to_scene = true script = ExtResource("8_spet4") -active = true -segment_color = Color(0, 1, 0, 0.5) [sub_resource type="Resource" id="Resource_bghi8"] resource_local_to_scene = true @@ -49,15 +45,13 @@ transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 4.05126, -1.42588, -1.63314) [node name="UL1_3" parent="." instance=ExtResource("3_u7586")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.819656, -0.308412, -1.61317) -local_floor_plane = Plane(0, 1, 0, -1.69159) +local_floor_plane = Plane(0, 1, 0, -1.691588) speed = 0.0 belt_physics_material = SubResource("PhysicsMaterial_6pmrs") enable_comms = true speed_tag_name = "UL1_3_OIP" running_tag_name = "" -metadata/hijack_scale = true size = Vector3(8, 0.5, 1.524) -metadata/hijack_scale = true [node name="UL1_3_EPC1" parent="." instance=ExtResource("4_ahe6k")] transform = Transform3D(1, 0, 0, 0, 0.999853, 0.0171208, 0, -0.0171208, 0.999853, -4.5, -0.18, -0.75) @@ -67,9 +61,7 @@ pressed = true lamp = true button_color = Color(0.886275, 0.537255, 0, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" pushbutton_tag_name = "Estop_OIP" -lamp_tag_group_name = "TagGroup0" lamp_tag_name = "Estop_OIP" [node name="UL1_3_EPC1_STATION" parent="." instance=ExtResource("4_ahe6k")] @@ -77,17 +69,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, -0.7, -0.75) text = "STATION EPC1" toggle = true pressed = true -lamp = true button_color = Color(0.886275, 0.533333, 0, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" pushbutton_tag_name = "UL1_3_EPC1.CTRL.STS.EStop_Was_Actuated" -lamp_tag_group_name = "TagGroup0" lamp_tag_name = "UL1_3_EPC1.CTRL.STS.EStop_Was_Actuated" [node name="UL1_3_EPC1_BEACON" parent="." instance=ExtResource("6_qc5a3")] -transform = Transform3D(3.03596, -0.00241847, 0, 0.0540532, 0.135836, 0, 0, 0, 3.03644, -4.5, 0.0338165, -0.637099) -light_value = 1 +transform = Transform3D(3.03596, -0.0024184675, 0, 0.0540532, 0.135836, 0, 0, 0, 3.036441, -4.5, 0.0338165, -0.637099) _data = SubResource("Resource_spet4") "Light 1" = SubResource("Resource_kdh4b") enable_comms = true @@ -102,9 +90,7 @@ pressed = true lamp = true button_color = Color(0.886275, 0.537255, 0, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" pushbutton_tag_name = "Estop_OIP2" -lamp_tag_group_name = "TagGroup0" lamp_tag_name = "Estop_OIP2" [node name="UL1_3_EPC2_STATION" parent="." instance=ExtResource("4_ahe6k")] @@ -112,17 +98,13 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -4.5, text = "STATION EPC2" toggle = true pressed = true -lamp = true button_color = Color(0.886275, 0.533333, 0, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" pushbutton_tag_name = "UL1_3_EPC2.CTRL.STS.EStop_Was_Actuated" -lamp_tag_group_name = "TagGroup0" lamp_tag_name = "UL1_3_EPC2.CTRL.STS.EStop_Was_Actuated" [node name="UL1_3_EPC2_BEACON" parent="." instance=ExtResource("6_qc5a3")] -transform = Transform3D(3.03596, -0.00241847, 0, 0.0540532, 0.135836, 0, 0, 0, 3.03644, -4.5, 0.0338165, -2.5929) -light_value = 1 +transform = Transform3D(3.03596, -0.0024184675, 0, 0.0540532, 0.135836, 0, 0, 0, 3.036441, -4.5, 0.0338165, -2.5929) _data = SubResource("Resource_bghi8") "Light 1" = SubResource("Resource_3ipjn") enable_comms = true @@ -134,13 +116,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, -0.18, -0.75) text = "MCM START" toggle = true pressed = true -lamp = true button_color = Color(0.359592, 0.479432, 1, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "MCM.STS.Start_PB" -lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "MCM.STS.Start_PB" +pushbutton_tag_name = "MCM.STS.System_started" +lamp_tag_name = "MCM.STS.System_started" [node name="START_CONVEYOR" parent="." instance=ExtResource("4_ahe6k")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, -0.18, -0.75) @@ -148,9 +127,7 @@ text = "START CONVEYOR" toggle = true button_color = Color(0.407843, 1, 0.164706, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" pushbutton_tag_name = "Start_Conveyor_OIP" -lamp_tag_group_name = "TagGroup0" lamp_tag_name = "Start_Conveyor_OIP" [node name="COMMUNIACTION" parent="." instance=ExtResource("4_ahe6k")] @@ -159,7 +136,5 @@ text = "COMMUNIACTION OFF" toggle = true button_color = Color(0.886275, 0.533333, 0, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "UL1_3_SIO1.CTRL.STS.Communication_Fault" -lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "UL1_3_SIO1.CTRL.STS.Communication_Fault" +pushbutton_tag_name = "SIO.STS.Communication_Faulted" +lamp_tag_name = "SIO.STS.Communication_Faulted" diff --git a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X new file mode 100644 index 0000000..e88dbe6 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X new file mode 100644 index 0000000..67b606d --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If that exact line later appears in MCM.STS.Acknowledge_Log, IOBlock latches Acknowledge and clears the entry to keep the log concise. +The command MCM.STS.Unacknowledge_All_Logs resets the latch so the next fault generates a fresh message. + +Command bits +The routine receives Communication_Fault from its own interface monitor. +The routine receives Parent.STS.Communication_Faulted from the immediate upstream device. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either the local or parent link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 while links are healthy and 1 while any link is lost. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and Parent.STS.Communication_Faulted is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever IOBlock itself loses communication and the parent link is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_MCM_AOI.L5X b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_MCM_AOI.L5X new file mode 100644 index 0000000..2056384 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_MCM_AOI.L5X @@ -0,0 +1,1187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) 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. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X index 8ccb4ed..4b95dd9 100644 --- a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X @@ -1,9 +1,352 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14,11 +357,14 @@ - - + + + + + @@ -27,11 +373,14 @@ + + + - + @@ -39,6 +388,9 @@ + + + @@ -47,6 +399,9 @@ + + + @@ -55,6 +410,9 @@ + + + @@ -69,6 +427,9 @@ + + + @@ -77,6 +438,9 @@ + + + @@ -85,6 +449,9 @@ + + + @@ -93,6 +460,9 @@ + + + @@ -101,11 +471,25 @@ + + + + + + + + + + + - + + + + @@ -116,35 +500,30 @@ - + - + - + - + - - - - - - + @@ -153,7 +532,7 @@ - + @@ -162,7 +541,7 @@ - + @@ -171,7 +550,7 @@ - + @@ -180,19 +559,14 @@ + + + + + - - - - - - - - - - - + @@ -216,7 +590,7 @@ - + diff --git a/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_VFD_AOI.L5X b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_VFD_AOI.L5X new file mode 100644 index 0000000..5a7aa55 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_VFD_AOI.L5X @@ -0,0 +1,1468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X b/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X index fd542b0..6788cf7 100644 --- a/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X +++ b/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X @@ -1,21 +1,85 @@  - - + + - + + + + + + - + - + + + + @@ -87,21 +147,53 @@ - + - + + + + + - + - @@ -122,254 +214,46 @@ - - - - - - - - - - @@ -432,6 +316,11 @@ + @@ -459,58 +348,28 @@ - - + - - - - @@ -150,5 +256,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_IO_BLOCK_DataType.L5X b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_IO_BLOCK_DataType.L5X new file mode 100644 index 0000000..4c3727f --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_IO_BLOCK_DataType.L5X @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_MCM_DataType.L5X b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_MCM_DataType.L5X new file mode 100644 index 0000000..4a4ad21 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_MCM_DataType.L5X @@ -0,0 +1,1198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) 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. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_VFD_DataType.L5X b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_VFD_DataType.L5X new file mode 100644 index 0000000..3178b3d --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/UDTs/UDT_VFD_DataType.L5X @@ -0,0 +1,1478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +