From 119cc820d514baf03ef52e0bf0c0e4fb002332d1 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 5 Jun 2025 16:03:08 +0400 Subject: [PATCH] MTN6-235 --- .../STATION_EPC/OIP/SATION_EPC.tscn | 165 + .../STATION_EPC/OIP/station_epc.gd | 45 + .../PLC/AOIs/AOI_STATION_EPC_AOI.L5X | 225 ++ .../STATION_EPC/PLC/STATION_EPC.L5X | 3542 +++++++++++++++++ .../PLC/UDTs/STATION_EPC_DataTypes.L5X | 154 + 5 files changed, 4131 insertions(+) create mode 100644 PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn create mode 100644 PLC/Simulations/STATION_EPC/OIP/station_epc.gd create mode 100644 PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X create mode 100644 PLC/Simulations/STATION_EPC/PLC/UDTs/STATION_EPC_DataTypes.L5X diff --git a/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn b/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn new file mode 100644 index 0000000..b9d4d00 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/OIP/SATION_EPC.tscn @@ -0,0 +1,165 @@ +[gd_scene load_steps=15 format=3 uid="uid://bcby8jt3gsud8"] + +[ext_resource type="Script" uid="uid://dsxxycqvgg68a" 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"] +[ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="5_u7586"] +[ext_resource type="PackedScene" uid="uid://drle8i15nwr68" path="res://parts/StackLight.tscn" id="6_qc5a3"] +[ext_resource type="Script" uid="uid://bl7o7avq4pi78" path="res://src/StackLight/stack_light_data.gd" id="7_kdh4b"] +[ext_resource type="Script" uid="uid://buet0tp11gjdl" path="res://src/StackLight/stack_segment_data.gd" id="8_spet4"] +[ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="9_kdh4b"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_6pmrs"] +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 +script = ExtResource("7_kdh4b") +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 +script = ExtResource("7_kdh4b") +segment_datas = [SubResource("Resource_3ipjn")] + +[node name="Simulation" type="Node3D"] +script = ExtResource("1_qc5a3") + +[node name="Building" parent="." instance=ExtResource("1_v76qd")] + +[node name="BoxSpawner" parent="." instance=ExtResource("5_u7586")] +transform = Transform3D(1, 2.30012e-09, -9.31322e-10, -2.30012e-09, 1, 8.84756e-09, 9.31322e-10, -8.84756e-09, 1, -4.09642, 0.192588, -1.6166) +disable = true + +[node name="Despawner" parent="." instance=ExtResource("9_kdh4b")] +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) +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) +text = "UL1_3_EPC1" +toggle = true +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")] +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 +_data = SubResource("Resource_spet4") +"Light 1" = SubResource("Resource_kdh4b") +enable_comms = true +tag_groups = null +tag_name = "Beacon_OIP.0" + +[node name="UL1_3_EPC2" parent="." instance=ExtResource("4_ahe6k")] +transform = Transform3D(-1, 1.49675e-09, -8.74099e-08, 0, 0.999853, 0.0171208, 8.74228e-08, 0.0171208, -0.999853, -4.5, -0.18, -2.46) +text = "UL1_3_EPC2" +toggle = true +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")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -4.5, -0.7, -2.46) +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 +_data = SubResource("Resource_bghi8") +"Light 1" = SubResource("Resource_3ipjn") +enable_comms = true +tag_groups = null +tag_name = "Beacon_OIP2.0" + +[node name="MCM_START" parent="." instance=ExtResource("4_ahe6k")] +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" + +[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) +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")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, -0.18, -0.75) +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" diff --git a/PLC/Simulations/STATION_EPC/OIP/station_epc.gd b/PLC/Simulations/STATION_EPC/OIP/station_epc.gd new file mode 100644 index 0000000..680a975 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/OIP/station_epc.gd @@ -0,0 +1,45 @@ +@tool +extends Node +@onready var box_spawner: BoxSpawner = $BoxSpawner +@onready var ul1_3: BeltConveyorAssembly = $UL1_3 + +var tag_group = "TagGroup0" + +func _ready() -> void: + SimulationEvents.simulation_started.connect(_on_simulation_started) + +func _on_simulation_started() -> void: + # Register tags for EPC1 + OIPComms.register_tag(tag_group, "UL1_3_EPC1.CTRL.STS.Log.LEN", 1) + OIPComms.register_tag(tag_group, "UL1_3_EPC1.HMI.STATE", 1) + + # Register tags for EPC2 + OIPComms.register_tag(tag_group, "UL1_3_EPC2.CTRL.STS.Log.LEN", 1) + OIPComms.register_tag(tag_group, "UL1_3_EPC2.HMI.STATE", 1) + + # Register all 82 DATA tags for both EPCs + for i in range(82): + # EPC1 data tags + var data_tag_epc1 = "UL1_3_EPC1.CTRL.STS.Log.DATA[" + str(i) + "]" + OIPComms.register_tag(tag_group, data_tag_epc1, 1) + + # EPC2 data tags + var data_tag_epc2 = "UL1_3_EPC2.CTRL.STS.Log.DATA[" + str(i) + "]" + OIPComms.register_tag(tag_group, data_tag_epc2, 1) + +func _physics_process(delta: float) -> void: + if ul1_3.speed == 0: + box_spawner.disable = true + else: + box_spawner.disable = false + + # Monitor both EPCs + var epc1_state = OIPComms.read_int32(tag_group, "UL1_3_EPC1.HMI.STATE") + var epc2_state = OIPComms.read_int32(tag_group, "UL1_3_EPC2.HMI.STATE") + + # Monitor both EPCs - UNCOMMENT TO SEE + #print("EPC1 State: ", epc1_state) + #print("EPC1 Log String: ", Utils.read_string(tag_group, "UL1_3_EPC1.CTRL.STS.Log")) + # + #print("EPC2 State: ", epc2_state) + #print("EPC2 Log String: ", Utils.read_string(tag_group, "UL1_3_EPC2.CTRL.STS.Log")) 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 new file mode 100644 index 0000000..8ccb4ed --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/AOIs/AOI_STATION_EPC_AOI.L5X @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X b/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X new file mode 100644 index 0000000..d0a3904 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/STATION_EPC.L5X @@ -0,0 +1,3542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rockwell Automation/Allen-Bradley1756-EN2T4325481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rockwell Automation/Allen-BradleyPowerFlex 525-EENET3615.1.1.458200PF525_A115201<DataTypes><DataType Name="AB:PowerFlex525V_E_142E84CE:I:0" Class="IO"><Members><Member Name="pad" DataType="DINT" Hidden="1" /><Member Name="DriveStatus" DataType="INT" Radix="Binary" /><Member Name="Ready" DataType="BIT" BitNumber="0" Target="DriveStatus"></Member><Member Name="Active" DataType="BIT" BitNumber="1" Target="DriveStatus"></Member><Member Name="CommandDir" DataType="BIT" BitNumber="2" Target="DriveStatus"></Member><Member Name="ActualDir" DataType="BIT" BitNumber="3" Target="DriveStatus"></Member><Member Name="Accelerating" DataType="BIT" BitNumber="4" Target="DriveStatus"></Member><Member Name="Decelerating" DataType="BIT" BitNumber="5" Target="DriveStatus"></Member><Member Name="Faulted" DataType="BIT" BitNumber="7" Target="DriveStatus"></Member><Member Name="AtReference" DataType="BIT" BitNumber="8" Target="DriveStatus"></Member><Member Name="CommFreqCnt" DataType="BIT" BitNumber="9" Target="DriveStatus"></Member><Member Name="CommLogicCnt" DataType="BIT" BitNumber="10" Target="DriveStatus"></Member><Member Name="ParmsLocked" DataType="BIT" BitNumber="11" Target="DriveStatus"></Member><Member Name="DigIn1Active" DataType="BIT" BitNumber="12" Target="DriveStatus"></Member><Member Name="DigIn2Active" DataType="BIT" BitNumber="13" Target="DriveStatus"></Member><Member Name="DigIn3Active" DataType="BIT" BitNumber="14" Target="DriveStatus"></Member><Member Name="DigIn4Active" DataType="BIT" BitNumber="15" Target="DriveStatus"></Member><Member Name="OutputFreq" DataType="INT" Radix="Decimal" /><Member Name="Fault1Code" DataType="INT" Radix="Decimal" /><Member Name="DriveStatus_param" DataType="INT" Radix="Binary" /><Member Name="DriveStatus_param_Running" DataType="BIT" BitNumber="0" Target="DriveStatus_param"></Member><Member Name="DriveStatus_param_Forward" DataType="BIT" BitNumber="1" Target="DriveStatus_param"></Member><Member Name="DriveStatus_param_Accelerating" DataType="BIT" BitNumber="2" Target="DriveStatus_param"></Member><Member Name="DriveStatus_param_Decelerating" DataType="BIT" BitNumber="3" Target="DriveStatus_param"></Member><Member Name="DriveStatus_param_SafetyActive" DataType="BIT" BitNumber="4" Target="DriveStatus_param"></Member><Member Name="OutputCurrent" DataType="INT" Radix="Decimal" /><Member Name="OutputVoltage" DataType="INT" Radix="Decimal" /></Members></DataType></DataTypes> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/STATION_EPC/PLC/UDTs/STATION_EPC_DataTypes.L5X b/PLC/Simulations/STATION_EPC/PLC/UDTs/STATION_EPC_DataTypes.L5X new file mode 100644 index 0000000..47a87b1 --- /dev/null +++ b/PLC/Simulations/STATION_EPC/PLC/UDTs/STATION_EPC_DataTypes.L5X @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +