From 5c460b64cf212a1c3c7e4d5adccc052b4e5fe595 Mon Sep 17 00:00:00 2001 From: "gigi.mamaladze" Date: Tue, 3 Jun 2025 12:42:25 +0400 Subject: [PATCH] MTN6-250 --- {AOIs => PLC/AOIs}/AOI_DJ_PE_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_DPM_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_ENCODER_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_FLIP_FLOP_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_FPE_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_JPE_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_LPE_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_MCM_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_SIO_FIO_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_STATION_EPC_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_STATION_JR_PB_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_STATION_SS_PB_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_TIPPER_AOI.L5X | 0 {AOIs => PLC/AOIs}/AOI_VFD_AOI.L5X | 0 BaseProgram.L5X => PLC/BaseProgram.L5X | 0 {MCMs => PLC/MCMs}/MTN6_MCM01.L5X | 0 .../Simulations}/JPE/MainProgram_Program.L5X | 0 .../STATION_JR_PB/OIP/STATION_JR_PB.tscn | 26 +- .../STATION_JR_PB/OIP/station_jr_pb.gd | 36 + PLC/Simulations/STATION_JR_PB/OIP/utils.gd | 89 + .../PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X | 0 .../STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X | 0 .../STATION_JR_PB/PLC/STATION_JR_PB.L5X | 0 .../PLC/UDTs/STATION_JR_PB_DataTypes.L5X | 0 .../STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X | 0 PLC/Simulations/VFD/OIP/VFD_Simulation.tscn | 289 ++ PLC/Simulations/VFD/OIP/vfd.gd | 29 + .../VFD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X | 93 + PLC/Simulations/VFD/PLC/AOIs/AOI_MCM_AOI.L5X | 523 +++ .../VFD/PLC/AOIs/AOI_SIO_FIO_AOI.L5X | 171 + PLC/Simulations/VFD/PLC/AOIs/AOI_VFD_AOI.L5X | 961 ++++ .../VFD/PLC/UDTs/UDT_DPM_DataType.L5X | 29 + .../VFD/PLC/UDTs/UDT_MCM_DataType.L5X | 383 ++ .../VFD/PLC/UDTs/UDT_SIO_FIO_DataType.L5X | 75 + .../VFD/PLC/UDTs/UDT_VFD_DataType.L5X | 396 ++ PLC/Simulations/VFD/PLC/VFD.L5X | 3895 +++++++++++++++++ {UDTs => PLC/UDTs}/DJ_PE_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/DPM_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/ENCODER_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/FPE_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/JPE_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/MCM_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/SIO_FIO_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/STATION_EPC_DataTypes.L5X | 0 .../UDTs}/STATION_JR_PB_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/STATION_SS_DataTypes.L5X | 0 {UDTs => PLC/UDTs}/VFD_DataTypes.L5X | 0 .../PLC_SIMULATIONS_2025-05-26_1536.zip | Bin 8951 -> 0 bytes .../STATION_JR_PB/Ignition/Station_JR_PB.svg | 50 - Simulations/STATION_JR_PB/Ignition/tags.json | 85 - Simulations/STATION_JR_PB/Ignition/udts.json | 88 - .../STATION_JR_PB/OIP/station_jr_pb.gd | 36 - Simulations/STATION_JR_PB/OIP/utils.gd | 31 - 53 files changed, 6980 insertions(+), 305 deletions(-) rename {AOIs => PLC/AOIs}/AOI_DJ_PE_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_DPM_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_ENCODER_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_FLIP_FLOP_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_FPE_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_JPE_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_LPE_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_MCM_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_SIO_FIO_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_STATION_EPC_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_STATION_JR_PB_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_STATION_SS_PB_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_TIPPER_AOI.L5X (100%) rename {AOIs => PLC/AOIs}/AOI_VFD_AOI.L5X (100%) rename BaseProgram.L5X => PLC/BaseProgram.L5X (100%) rename {MCMs => PLC/MCMs}/MTN6_MCM01.L5X (100%) rename {Simulations => PLC/Simulations}/JPE/MainProgram_Program.L5X (100%) rename {Simulations => PLC/Simulations}/STATION_JR_PB/OIP/STATION_JR_PB.tscn (80%) create mode 100644 PLC/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd create mode 100644 PLC/Simulations/STATION_JR_PB/OIP/utils.gd rename {Simulations => PLC/Simulations}/STATION_JR_PB/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X (100%) rename {Simulations => PLC/Simulations}/STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X (100%) rename {Simulations => PLC/Simulations}/STATION_JR_PB/PLC/STATION_JR_PB.L5X (100%) rename {Simulations => PLC/Simulations}/STATION_JR_PB/PLC/UDTs/STATION_JR_PB_DataTypes.L5X (100%) rename {Simulations => PLC/Simulations}/STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X (100%) create mode 100644 PLC/Simulations/VFD/OIP/VFD_Simulation.tscn create mode 100644 PLC/Simulations/VFD/OIP/vfd.gd create mode 100644 PLC/Simulations/VFD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X create mode 100644 PLC/Simulations/VFD/PLC/AOIs/AOI_MCM_AOI.L5X create mode 100644 PLC/Simulations/VFD/PLC/AOIs/AOI_SIO_FIO_AOI.L5X create mode 100644 PLC/Simulations/VFD/PLC/AOIs/AOI_VFD_AOI.L5X create mode 100644 PLC/Simulations/VFD/PLC/UDTs/UDT_DPM_DataType.L5X create mode 100644 PLC/Simulations/VFD/PLC/UDTs/UDT_MCM_DataType.L5X create mode 100644 PLC/Simulations/VFD/PLC/UDTs/UDT_SIO_FIO_DataType.L5X create mode 100644 PLC/Simulations/VFD/PLC/UDTs/UDT_VFD_DataType.L5X create mode 100644 PLC/Simulations/VFD/PLC/VFD.L5X rename {UDTs => PLC/UDTs}/DJ_PE_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/DPM_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/ENCODER_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/FPE_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/JPE_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/MCM_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/SIO_FIO_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/STATION_EPC_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/STATION_JR_PB_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/STATION_SS_DataTypes.L5X (100%) rename {UDTs => PLC/UDTs}/VFD_DataTypes.L5X (100%) delete mode 100644 Simulations/STATION_JR_PB/Ignition/PLC_SIMULATIONS_2025-05-26_1536.zip delete mode 100644 Simulations/STATION_JR_PB/Ignition/Station_JR_PB.svg delete mode 100644 Simulations/STATION_JR_PB/Ignition/tags.json delete mode 100644 Simulations/STATION_JR_PB/Ignition/udts.json delete mode 100644 Simulations/STATION_JR_PB/OIP/station_jr_pb.gd delete mode 100644 Simulations/STATION_JR_PB/OIP/utils.gd diff --git a/AOIs/AOI_DJ_PE_AOI.L5X b/PLC/AOIs/AOI_DJ_PE_AOI.L5X similarity index 100% rename from AOIs/AOI_DJ_PE_AOI.L5X rename to PLC/AOIs/AOI_DJ_PE_AOI.L5X diff --git a/AOIs/AOI_DPM_AOI.L5X b/PLC/AOIs/AOI_DPM_AOI.L5X similarity index 100% rename from AOIs/AOI_DPM_AOI.L5X rename to PLC/AOIs/AOI_DPM_AOI.L5X diff --git a/AOIs/AOI_ENCODER_AOI.L5X b/PLC/AOIs/AOI_ENCODER_AOI.L5X similarity index 100% rename from AOIs/AOI_ENCODER_AOI.L5X rename to PLC/AOIs/AOI_ENCODER_AOI.L5X diff --git a/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X similarity index 100% rename from AOIs/AOI_FLIP_FLOP_AOI.L5X rename to PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X diff --git a/AOIs/AOI_FPE_AOI.L5X b/PLC/AOIs/AOI_FPE_AOI.L5X similarity index 100% rename from AOIs/AOI_FPE_AOI.L5X rename to PLC/AOIs/AOI_FPE_AOI.L5X diff --git a/AOIs/AOI_JPE_AOI.L5X b/PLC/AOIs/AOI_JPE_AOI.L5X similarity index 100% rename from AOIs/AOI_JPE_AOI.L5X rename to PLC/AOIs/AOI_JPE_AOI.L5X diff --git a/AOIs/AOI_LPE_AOI.L5X b/PLC/AOIs/AOI_LPE_AOI.L5X similarity index 100% rename from AOIs/AOI_LPE_AOI.L5X rename to PLC/AOIs/AOI_LPE_AOI.L5X diff --git a/AOIs/AOI_MCM_AOI.L5X b/PLC/AOIs/AOI_MCM_AOI.L5X similarity index 100% rename from AOIs/AOI_MCM_AOI.L5X rename to PLC/AOIs/AOI_MCM_AOI.L5X diff --git a/AOIs/AOI_SIO_FIO_AOI.L5X b/PLC/AOIs/AOI_SIO_FIO_AOI.L5X similarity index 100% rename from AOIs/AOI_SIO_FIO_AOI.L5X rename to PLC/AOIs/AOI_SIO_FIO_AOI.L5X diff --git a/AOIs/AOI_STATION_EPC_AOI.L5X b/PLC/AOIs/AOI_STATION_EPC_AOI.L5X similarity index 100% rename from AOIs/AOI_STATION_EPC_AOI.L5X rename to PLC/AOIs/AOI_STATION_EPC_AOI.L5X diff --git a/AOIs/AOI_STATION_JR_PB_AOI.L5X b/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X similarity index 100% rename from AOIs/AOI_STATION_JR_PB_AOI.L5X rename to PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X diff --git a/AOIs/AOI_STATION_SS_PB_AOI.L5X b/PLC/AOIs/AOI_STATION_SS_PB_AOI.L5X similarity index 100% rename from AOIs/AOI_STATION_SS_PB_AOI.L5X rename to PLC/AOIs/AOI_STATION_SS_PB_AOI.L5X diff --git a/AOIs/AOI_TIPPER_AOI.L5X b/PLC/AOIs/AOI_TIPPER_AOI.L5X similarity index 100% rename from AOIs/AOI_TIPPER_AOI.L5X rename to PLC/AOIs/AOI_TIPPER_AOI.L5X diff --git a/AOIs/AOI_VFD_AOI.L5X b/PLC/AOIs/AOI_VFD_AOI.L5X similarity index 100% rename from AOIs/AOI_VFD_AOI.L5X rename to PLC/AOIs/AOI_VFD_AOI.L5X diff --git a/BaseProgram.L5X b/PLC/BaseProgram.L5X similarity index 100% rename from BaseProgram.L5X rename to PLC/BaseProgram.L5X diff --git a/MCMs/MTN6_MCM01.L5X b/PLC/MCMs/MTN6_MCM01.L5X similarity index 100% rename from MCMs/MTN6_MCM01.L5X rename to PLC/MCMs/MTN6_MCM01.L5X diff --git a/Simulations/JPE/MainProgram_Program.L5X b/PLC/Simulations/JPE/MainProgram_Program.L5X similarity index 100% rename from Simulations/JPE/MainProgram_Program.L5X rename to PLC/Simulations/JPE/MainProgram_Program.L5X diff --git a/Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn b/PLC/Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn similarity index 80% rename from Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn rename to PLC/Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn index 63a5c01..bc1256f 100644 --- a/Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn +++ b/PLC/Simulations/STATION_JR_PB/OIP/STATION_JR_PB.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://bbt38yd6yc0sc"] +[gd_scene load_steps=9 format=3 uid="uid://bl8mqsc3hnaqk"] [ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_3b5ec"] [ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="2_rxahx"] @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="5_rcr4s"] [ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="8_kfv3x"] [ext_resource type="PackedScene" uid="uid://kdpe7o4ec1fa" path="res://parts/DiffuseSensor.tscn" id="9_bk1n2"] -[ext_resource type="Script" uid="uid://mk68t7o3rd8u" path="res://station_jr_pb.gd" id="10_ow4ia"] +[ext_resource type="Script" uid="uid://bdxuo6jshga88" path="res://station_jr_pb.gd" id="10_ow4ia"] [node name="Simulation" type="Node3D"] @@ -18,7 +18,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0166965, -0.308412, -1.613 local_floor_plane = Plane(0, 1, 0, -1.69159) speed = 0.0 enable_comms = true -speed_tag_name = "[PLC]UL1_3_OIP" +speed_tag_name = "UL1_3_OIP" running_tag_name = "" metadata/hijack_scale = true size = Vector3(14.7823, 0.5, 1.524) @@ -32,45 +32,41 @@ transform = Transform3D(1, 2.30012e-09, -9.31322e-10, -2.30012e-09, 1, 8.84756e- disable = true [node name="Despawner" parent="." instance=ExtResource("5_rcr4s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.60256, 0.176073, 0.00769222) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.60256, 0.420592, -1.45862) [node name="UL1_3_JR_PB1" parent="." instance=ExtResource("8_kfv3x")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.73416, -0.180284, -0.714896) text = "JR_PB1" -lamp = true enable_comms = true pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "[PLC]UL1_3_JR_PB1_OIP" +pushbutton_tag_name = "UL1_3_JR_PB1_OIP" lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "[PLC]UL1_3_JR_PB1_LT_OIP" +lamp_tag_name = "UL1_3_JR_PB1_LT_OIP" [node name="UL1_3_JR_PB2" parent="." instance=ExtResource("8_kfv3x")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.908714, -0.198275, -0.741422) text = "JR_PB2" -lamp = true enable_comms = true pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "[PLC]UL1_3_JR_PB2_OIP" +pushbutton_tag_name = "UL1_3_JR_PB2_OIP" lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "[PLC]UL1_3_JR_PB2_LT_OIP" +lamp_tag_name = "UL1_3_JR_PB2_LT_OIP" [node name="MCM_Start_PB" parent="." instance=ExtResource("8_kfv3x")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.31822, -0.180284, -0.714896) text = "MCM_START" toggle = true -pressed = true -lamp = true enable_comms = true pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "[PLC]UL1_3_VFD1.CTRL.STS.MCM_Started" +pushbutton_tag_name = "UL1_3_VFD1.CTRL.STS.MCM_Started" lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "[PLC]UL1_3_VFD1.CTRL.STS.MCM_Started" +lamp_tag_name = "UL1_3_VFD1.CTRL.STS.MCM_Started" [node name="UL1_3_JPE1" parent="." instance=ExtResource("9_bk1n2")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.87801, -0.080121, -2.97105) max_range = 1.684 enable_comms = true -tag_name = "[PLC]UL1_3_JPE1_OIP" +tag_name = "UL1_3_JPE1_OIP" [node name="station_jr_pb" type="Node" parent="."] script = ExtResource("10_ow4ia") diff --git a/PLC/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd b/PLC/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd new file mode 100644 index 0000000..924d4c6 --- /dev/null +++ b/PLC/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd @@ -0,0 +1,36 @@ +@tool +extends Node +@onready var box_spawner: BoxSpawner = $"../BoxSpawner" +@onready var ul_1_3: BeltConveyorAssembly = $"../UL1_3" + +var color_1 +var color_2 +var tag_group = "TagGroup0" +var display_color_1 +var display_color_2 + +func _on_simulation_started() -> void: + + OIPComms.register_tag(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log.LEN", 1) + OIPComms.register_tag(tag_group, "UL1_3_JR_PB1.HMI.STATE", 1) + + ## Register all 82 DATA tags + for i in range(82): + var data_tag = "UL1_3_JR_PB1.CTRL.STS.Log.DATA[" + str(i) + "]" + OIPComms.register_tag(tag_group, data_tag, 1) + pass +func _ready() -> void: + + SimulationEvents.simulation_started.connect(_on_simulation_started) + + + +func _physics_process(delta: float) -> void: + + box_spawner.disable = ul_1_3.speed == 0 + #print(OIPComms.read_int32(tag_group,"[PLC]UL1_3_JR_PB1.HMI.STATE")) + + + #print("Log String: ", Utils.read_string(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log")) + + diff --git a/PLC/Simulations/STATION_JR_PB/OIP/utils.gd b/PLC/Simulations/STATION_JR_PB/OIP/utils.gd new file mode 100644 index 0000000..411dc10 --- /dev/null +++ b/PLC/Simulations/STATION_JR_PB/OIP/utils.gd @@ -0,0 +1,89 @@ +@tool +extends Node +@onready var box_spawner: BoxSpawner = $"../BoxSpawner" +@onready var ul_1_3: BeltConveyorAssembly = $"../UL1_3" +@onready var hmi_start_pb: PushButton = $"../HMI_UL1_3_JR_PB1" +@onready var hmi_ul_1_3_jr_pb_2: PushButton = $"../HMI_UL1_3_JR_PB2" +var color_1 +var color_2 +var tag_group = "TagGroup0" +var hmi_start_color_1 = "UL1_3_JR_PB1.HMI.Start_Color" +var hmi_start_color_2 = "UL1_3_JR_PB2.HMI.Start_Color" +var display_color_1 +var display_color_2 + +func _ready() -> void: + SimulationEvents.simulation_started.connect(_on_simulation_started) + +func _on_simulation_started() -> void: + OIPComms.register_tag(tag_group,hmi_start_color_1,1) + OIPComms.register_tag(tag_group,hmi_start_color_2,1) + OIPComms.register_tag(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log.LEN", 1) + + # Register all 82 DATA tags + for i in range(82): + var data_tag = "UL1_3_JR_PB1.CTRL.STS.Log.DATA[" + str(i) + "]" + OIPComms.register_tag(tag_group, data_tag, 1) + +func read_string(tag_group_name: String, base_tag_name: String) -> String: + """Reads the log string from PLC DATA array""" + var result = "" + + # Construct the length and data tag names + var len_tag = base_tag_name + ".LEN" + var data_tag = base_tag_name + ".DATA" + + # Read the actual string length from PLC (if available) + var string_length = OIPComms.read_int32(tag_group_name, len_tag) + + # Limit to 82 max and ensure it's valid + if string_length <= 0 or string_length > 82: + string_length = 82 + + # Read each character + for i in range(string_length): + var data_tag_indexed = data_tag + "[" + str(i) + "]" + var char_value = OIPComms.read_int8(tag_group_name, data_tag_indexed) + + # Check for null terminator or invalid ASCII + + + # Convert SINT to ASCII character + if char_value > 0 and char_value < 128: # Valid ASCII range + result += char(char_value) + + return result + +func _physics_process(delta: float) -> void: + + #box_spawner.disable = ul_1_3.speed == 0 + color_1 = OIPComms.read_int32(tag_group,hmi_start_color_1) + color_2 = OIPComms.read_int32(tag_group,hmi_start_color_2) + + #print("Log String: ", read_string(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log")) + + match color_1: + 1: + display_color_1 = Color.CHOCOLATE + 2: + display_color_1 = Color.GRAY + 3: + display_color_1 = Color.GREEN + 4: + display_color_1 = Color.BLACK + _: + display_color_1 = Color.WHITE + match color_2: + 1: + display_color_2 = Color.CHOCOLATE + 2: + display_color_2 = Color.GRAY + 3: + display_color_2 = Color.GREEN + 4: + display_color_2 = Color.BLACK + _: + display_color_2 = Color.WHITE + hmi_start_pb.button_color = display_color_1 + hmi_ul_1_3_jr_pb_2.button_color = display_color_2 + diff --git a/Simulations/STATION_JR_PB/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X b/PLC/Simulations/STATION_JR_PB/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X similarity index 100% rename from Simulations/STATION_JR_PB/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X rename to PLC/Simulations/STATION_JR_PB/PLC/AOIs/AOI_STATION_JR_PB_AOI.L5X diff --git a/Simulations/STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X b/PLC/Simulations/STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X similarity index 100% rename from Simulations/STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X rename to PLC/Simulations/STATION_JR_PB/PLC/AOIs/AOI_VFD_AOI.L5X diff --git a/Simulations/STATION_JR_PB/PLC/STATION_JR_PB.L5X b/PLC/Simulations/STATION_JR_PB/PLC/STATION_JR_PB.L5X similarity index 100% rename from Simulations/STATION_JR_PB/PLC/STATION_JR_PB.L5X rename to PLC/Simulations/STATION_JR_PB/PLC/STATION_JR_PB.L5X diff --git a/Simulations/STATION_JR_PB/PLC/UDTs/STATION_JR_PB_DataTypes.L5X b/PLC/Simulations/STATION_JR_PB/PLC/UDTs/STATION_JR_PB_DataTypes.L5X similarity index 100% rename from Simulations/STATION_JR_PB/PLC/UDTs/STATION_JR_PB_DataTypes.L5X rename to PLC/Simulations/STATION_JR_PB/PLC/UDTs/STATION_JR_PB_DataTypes.L5X diff --git a/Simulations/STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X b/PLC/Simulations/STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X similarity index 100% rename from Simulations/STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X rename to PLC/Simulations/STATION_JR_PB/PLC/UDTs/VFD_DataTypes.L5X diff --git a/PLC/Simulations/VFD/OIP/VFD_Simulation.tscn b/PLC/Simulations/VFD/OIP/VFD_Simulation.tscn new file mode 100644 index 0000000..0005b70 --- /dev/null +++ b/PLC/Simulations/VFD/OIP/VFD_Simulation.tscn @@ -0,0 +1,289 @@ +[gd_scene load_steps=7 format=3 uid="uid://drxrdn6lwbjih"] + +[ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_adq3x"] +[ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="3_pvrhq"] +[ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="4_pvrhq"] +[ext_resource type="Script" uid="uid://dnosavfgou75i" path="res://vfd.gd" id="4_urew4"] +[ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="5_77ico"] +[ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="6_77ico"] + +[node name="Simulation" type="Node3D"] + +[node name="Building" parent="." instance=ExtResource("1_adq3x")] + +[node name="UL1_3" parent="." instance=ExtResource("3_pvrhq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.70007, -0.00844234, -0.454586) +local_floor_plane = Plane(0, 1, 0, -1.99156) +speed = 1.3716 +enable_comms = true +speed_tag_name = "UL1_3_OIP" +running_tag_name = "" +metadata/hijack_scale = true +size = Vector3(14.8874, 0.5, 1.524) +metadata/hijack_scale = true + +[node name="Node" type="Node" parent="." node_paths=PackedStringArray("UL1_3", "box_spawner")] +script = ExtResource("4_urew4") +UL1_3 = NodePath("../UL1_3") +box_spawner = NodePath("../BoxSpawner") + +[node name="BoxSpawner" parent="." instance=ExtResource("4_pvrhq")] +transform = Transform3D(0.908734, 2.0902e-09, -8.46324e-10, -2.0902e-09, 0.908734, 8.04008e-09, 8.46324e-10, -8.04008e-09, 0.908734, -10.3942, 0.504191, -0.458427) + +[node name="Despawner" parent="." instance=ExtResource("5_77ico")] +transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 3.18492, 0.5, -0.368497) + +[node name="Disconected" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.35205, 0.0894268, 0.468417) +text = "Disconected" +toggle = true +pressed = true +button_color = Color(0.260259, 0.3398, 0.386631, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "Disconnected_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="MCM_Start_Button" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9369, 0.0855748, 0.444525) +text = "MCM Start" +button_color = Color(0.0352941, 1, 0, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "MCM_Start_PushButton_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Jammed" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.0964, 0.107454, 0.443829) +text = "Jammed" +toggle = true +button_color = Color(0.989998, 0.947781, 0.949246, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_JAMMED_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Estop" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.75448, 0.0942386, 0.480748) +text = "Estop" +toggle = true +pressed = true +button_color = Color(0.972549, 0, 0, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "EStopped_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Encoder_Fault" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.67273, 0.108256, 0.443829) +text = "Encoder_Fault" +toggle = true +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_ENCODER_FAULT_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Full" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.25571, 0.108833, 0.443829) +text = "FULL" +toggle = true +button_color = Color(0, 0, 1, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_FULL_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Interlock" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9392, -0.308646, 0.440302) +text = "Interlock" +toggle = true +pressed = true +button_color = Color(0, 1, 0.25098, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_INTERLOCK_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="VFD_Fault_Reset" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.34432, -0.305163, 0.469469) +text = "VFD_Fault_Reset" +button_color = Color(0, 0.988235, 0, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "VFD_Fault_Reset_Button_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Safety_Torque" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.93611, 0.104388, 0.406756) +text = "Safety_Torque_Off" +toggle = true +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_SAFETY_TORQUE_OFF_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="VFD_Fault" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3405, 0.470611, 0.378262) +text = "VFD Fault" +toggle = true +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_VFD_FAULT_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Power_Saving" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.44535, 0.0722519, 0.397527) +text = "Power_Saving" +toggle = true +button_color = Color(0.87658, 0.000391592, 0.828084, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_POWER_SAVING_MODE_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="StopButton" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.09258, 0.0938599, 0.440219) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "Station_Stop_PB_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="StartButton" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.42198, 0.09431, 0.44369) +text = "START" +button_color = Color(0, 1, 0, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "Station_Start_PB_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Start_Stop_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.2373, 0.44058, 0.716726) +text = "Start/Stop +" +font_size = 20 + +[node name="VFD_Fault_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.32918, 0.758028, 0.627988) +text = "VFD Fualt +" +font_size = 20 + +[node name="Power_Saving_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.42426, 0.430885, 0.499979) +text = "Power +Saving +" +font_size = 20 + +[node name="Estop_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.77729, 0.422073, 0.521624) +text = "Estop" +font_size = 20 + +[node name="Disconect_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3465, 0.266181, 0.766382) +text = "Disconected" +font_size = 20 + +[node name="Safety_Torqe_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.90272, 0.480397, 0.60688) +text = "Safety +Torque +" +font_size = 20 + +[node name="VFD_Fault_Reset_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.34581, -0.59562, 0.751668) +text = "VFD Fault + Reset +" +font_size = 20 + +[node name="Jammed_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.13238, 0.456212, 0.829814) +text = "Jammed" +font_size = 20 + +[node name="Encoder_Fault_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.6845, 0.461905, 0.744063) +text = "Encoder + Fault" +font_size = 20 + +[node name="Full_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.25618, 0.411116, 0.655028) +text = "Full" +font_size = 20 + +[node name="MCM_Start_Button_Label" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.631, 0.111411, 0.64058) +text = "MCM Start Button" +font_size = 20 + +[node name="Interlock_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.3954, -0.266106, 0.682187) +text = "Interlock" +font_size = 20 + +[node name="Stop_Auto_Restart" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.37441, 0.083721, 0.44369) +text = "STOP Auto Restart" +toggle = true +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_STOP_AUTO_RESTART_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="Stop_Auto_Restart_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.40115, 0.57851, 0.656321) +text = "Stop +Auto +Restart" +font_size = 20 + +[node name="PushButton" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.90528, 0.0809799, 0.44369) +text = "Zero_Speed" +toggle = true +button_color = Color(0, 1, 0.815686, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_ZERO_SPEED" +lamp_tag_group_name = "TagGroup0" + +[node name="Zero_Speed_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.9252, 0.477404, 0.548596) +text = "Zero +Speed" +font_size = 20 + +[node name="Run_UP_Enabled" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9379, -0.724683, 0.441637) +text = "Run Up Enabled" +toggle = true +pressed = true +button_color = Color(0, 1, 0, 1) +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "TOGGLE_RUN_UP_ENABLED" +lamp_tag_group_name = "TagGroup0" + +[node name="Run_UP_Enabled_Button" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4135, -0.641298, 0.63195) +text = "Run Up +Enabled" +font_size = 20 + +[node name="MCM_Stop_Button" parent="." instance=ExtResource("6_77ico")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5194, 0.085152, 0.439353) +text = "MCM_Stop_Button" +enable_comms = true +pushbutton_tag_group_name = "TagGroup0" +pushbutton_tag_name = "MCM_Stop_PushButton_OIP" +lamp_tag_group_name = "TagGroup0" + +[node name="MCM_Stop_Button_Label" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.4351, 0.426929, 0.651285) +text = "MCM Stop Button" +font_size = 20 diff --git a/PLC/Simulations/VFD/OIP/vfd.gd b/PLC/Simulations/VFD/OIP/vfd.gd new file mode 100644 index 0000000..91c6532 --- /dev/null +++ b/PLC/Simulations/VFD/OIP/vfd.gd @@ -0,0 +1,29 @@ +@tool +extends Node + +var simulation_started +@export var UL1_3 : Node +@export var box_spawner: Node + + +func _enter_tree() -> void: + SimulationEvents.simulation_started.connect(_simulation_started) + SimulationEvents.simulation_ended.connect(_simulation_ended) + + +func _simulation_started(): + simulation_started = true + print("Started !") + + + +func _simulation_ended(): + simulation_started = false + print("Stopped !") + + +func _physics_process(delta: float) -> void: + if(!simulation_started): + return + + box_spawner.disable = UL1_3.speed == 0 diff --git a/PLC/Simulations/VFD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/VFD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X new file mode 100644 index 0000000..ab8402b --- /dev/null +++ b/PLC/Simulations/VFD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/AOIs/AOI_MCM_AOI.L5X b/PLC/Simulations/VFD/PLC/AOIs/AOI_MCM_AOI.L5X new file mode 100644 index 0000000..a8f0ad8 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/AOIs/AOI_MCM_AOI.L5X @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/AOIs/AOI_SIO_FIO_AOI.L5X b/PLC/Simulations/VFD/PLC/AOIs/AOI_SIO_FIO_AOI.L5X new file mode 100644 index 0000000..af942d5 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/AOIs/AOI_SIO_FIO_AOI.L5X @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/AOIs/AOI_VFD_AOI.L5X b/PLC/Simulations/VFD/PLC/AOIs/AOI_VFD_AOI.L5X new file mode 100644 index 0000000..39193fa --- /dev/null +++ b/PLC/Simulations/VFD/PLC/AOIs/AOI_VFD_AOI.L5X @@ -0,0 +1,961 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/UDTs/UDT_DPM_DataType.L5X b/PLC/Simulations/VFD/PLC/UDTs/UDT_DPM_DataType.L5X new file mode 100644 index 0000000..e7285b2 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/UDTs/UDT_DPM_DataType.L5X @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/UDTs/UDT_MCM_DataType.L5X b/PLC/Simulations/VFD/PLC/UDTs/UDT_MCM_DataType.L5X new file mode 100644 index 0000000..b010d45 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/UDTs/UDT_MCM_DataType.L5X @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/UDTs/UDT_SIO_FIO_DataType.L5X b/PLC/Simulations/VFD/PLC/UDTs/UDT_SIO_FIO_DataType.L5X new file mode 100644 index 0000000..be98a21 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/UDTs/UDT_SIO_FIO_DataType.L5X @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/UDTs/UDT_VFD_DataType.L5X b/PLC/Simulations/VFD/PLC/UDTs/UDT_VFD_DataType.L5X new file mode 100644 index 0000000..21d3e59 --- /dev/null +++ b/PLC/Simulations/VFD/PLC/UDTs/UDT_VFD_DataType.L5X @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/VFD/PLC/VFD.L5X b/PLC/Simulations/VFD/PLC/VFD.L5X new file mode 100644 index 0000000..130441e --- /dev/null +++ b/PLC/Simulations/VFD/PLC/VFD.L5X @@ -0,0 +1,3895 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +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/UDTs/DJ_PE_DataTypes.L5X b/PLC/UDTs/DJ_PE_DataTypes.L5X similarity index 100% rename from UDTs/DJ_PE_DataTypes.L5X rename to PLC/UDTs/DJ_PE_DataTypes.L5X diff --git a/UDTs/DPM_DataTypes.L5X b/PLC/UDTs/DPM_DataTypes.L5X similarity index 100% rename from UDTs/DPM_DataTypes.L5X rename to PLC/UDTs/DPM_DataTypes.L5X diff --git a/UDTs/ENCODER_DataTypes.L5X b/PLC/UDTs/ENCODER_DataTypes.L5X similarity index 100% rename from UDTs/ENCODER_DataTypes.L5X rename to PLC/UDTs/ENCODER_DataTypes.L5X diff --git a/UDTs/FPE_DataTypes.L5X b/PLC/UDTs/FPE_DataTypes.L5X similarity index 100% rename from UDTs/FPE_DataTypes.L5X rename to PLC/UDTs/FPE_DataTypes.L5X diff --git a/UDTs/JPE_DataTypes.L5X b/PLC/UDTs/JPE_DataTypes.L5X similarity index 100% rename from UDTs/JPE_DataTypes.L5X rename to PLC/UDTs/JPE_DataTypes.L5X diff --git a/UDTs/MCM_DataTypes.L5X b/PLC/UDTs/MCM_DataTypes.L5X similarity index 100% rename from UDTs/MCM_DataTypes.L5X rename to PLC/UDTs/MCM_DataTypes.L5X diff --git a/UDTs/SIO_FIO_DataTypes.L5X b/PLC/UDTs/SIO_FIO_DataTypes.L5X similarity index 100% rename from UDTs/SIO_FIO_DataTypes.L5X rename to PLC/UDTs/SIO_FIO_DataTypes.L5X diff --git a/UDTs/STATION_EPC_DataTypes.L5X b/PLC/UDTs/STATION_EPC_DataTypes.L5X similarity index 100% rename from UDTs/STATION_EPC_DataTypes.L5X rename to PLC/UDTs/STATION_EPC_DataTypes.L5X diff --git a/UDTs/STATION_JR_PB_DataTypes.L5X b/PLC/UDTs/STATION_JR_PB_DataTypes.L5X similarity index 100% rename from UDTs/STATION_JR_PB_DataTypes.L5X rename to PLC/UDTs/STATION_JR_PB_DataTypes.L5X diff --git a/UDTs/STATION_SS_DataTypes.L5X b/PLC/UDTs/STATION_SS_DataTypes.L5X similarity index 100% rename from UDTs/STATION_SS_DataTypes.L5X rename to PLC/UDTs/STATION_SS_DataTypes.L5X diff --git a/UDTs/VFD_DataTypes.L5X b/PLC/UDTs/VFD_DataTypes.L5X similarity index 100% rename from UDTs/VFD_DataTypes.L5X rename to PLC/UDTs/VFD_DataTypes.L5X diff --git a/Simulations/STATION_JR_PB/Ignition/PLC_SIMULATIONS_2025-05-26_1536.zip b/Simulations/STATION_JR_PB/Ignition/PLC_SIMULATIONS_2025-05-26_1536.zip deleted file mode 100644 index 36c2ab68217b3393d25db6de6175e02191abf67b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8951 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 diff --git a/Simulations/STATION_JR_PB/Ignition/Station_JR_PB.svg b/Simulations/STATION_JR_PB/Ignition/Station_JR_PB.svg deleted file mode 100644 index a1ceddf..0000000 --- a/Simulations/STATION_JR_PB/Ignition/Station_JR_PB.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - diff --git a/Simulations/STATION_JR_PB/Ignition/tags.json b/Simulations/STATION_JR_PB/Ignition/tags.json deleted file mode 100644 index 2b9f2d8..0000000 --- a/Simulations/STATION_JR_PB/Ignition/tags.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "tags": [ - { - "name": "UL1_3_JR_PB1", - "typeId": "JR_PB", - "tagType": "UdtInstance", - "tags": [ - { - "name": "HMI", - "tagType": "Folder", - "tags": [ - { - "name": "STATE", - "tagType": "AtomicTag" - }, - { - "name": "ALARMST", - "tagType": "AtomicTag" - }, - { - "name": "DISC", - "tagType": "AtomicTag" - } - ] - } - ] - }, - { - "name": "UL1_3_JR_PB2", - "typeId": "JR_PB", - "tagType": "UdtInstance", - "tags": [ - { - "name": "HMI", - "tagType": "Folder", - "tags": [ - { - "name": "STATE", - "tagType": "AtomicTag" - }, - { - "name": "DISC", - "tagType": "AtomicTag" - }, - { - "name": "ALARMST", - "tagType": "AtomicTag" - } - ] - } - ] - }, - { - "name": "UL1_3_VFD1", - "typeId": "Conveyor", - "tagType": "UdtInstance", - "tags": [ - { - "name": "HMI", - "tagType": "Folder", - "tags": [ - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]UL1_3_VFD1.HMI.{TagName}" - }, - "name": "STATE", - "tagType": "AtomicTag" - }, - { - "valueSource": "memory", - "value": 0, - "name": "ALARMST", - "tagType": "AtomicTag" - }, - { - "name": "DISC", - "tagType": "AtomicTag" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/Simulations/STATION_JR_PB/Ignition/udts.json b/Simulations/STATION_JR_PB/Ignition/udts.json deleted file mode 100644 index b7b1fd0..0000000 --- a/Simulations/STATION_JR_PB/Ignition/udts.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "tags": [ - { - "name": "Conveyor", - "tagType": "UdtType", - "tags": [ - { - "name": "HMI", - "tagType": "Folder", - "tags": [ - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "STATE", - "tagType": "AtomicTag", - "opcServer": "PLC" - }, - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "ALARMST", - "tagType": "AtomicTag", - "opcServer": "PLC" - }, - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "DISC", - "tagType": "AtomicTag", - "opcServer": "PLC" - } - ] - } - ] - }, - { - "name": "JR_PB", - "tagType": "UdtType", - "tags": [ - { - "name": "HMI", - "tagType": "Folder", - "tags": [ - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "DISC", - "tagType": "AtomicTag", - "opcServer": "PLC" - }, - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "ALARMST", - "tagType": "AtomicTag", - "opcServer": "PLC" - }, - { - "opcItemPath": { - "bindType": "parameter", - "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.{TagName}" - }, - "valueSource": "opc", - "name": "STATE", - "tagType": "AtomicTag", - "opcServer": "PLC" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd b/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd deleted file mode 100644 index a4c4552..0000000 --- a/Simulations/STATION_JR_PB/OIP/station_jr_pb.gd +++ /dev/null @@ -1,36 +0,0 @@ -@tool -extends Node -@onready var box_spawner: BoxSpawner = $"../BoxSpawner" -@onready var ul_1_3: BeltConveyorAssembly = $"../UL1_3" - -var color_1 -var color_2 -var tag_group = "TagGroup0" -var display_color_1 -var display_color_2 - -#func _on_simulation_started() -> void: -# - ##OIPComms.register_tag(tag_group, "[PLC]UL1_3_JR_PB1.CTRL.STS.Log.LEN", 1) - ##OIPComms.register_tag(tag_group, "[PLC]UL1_3_JR_PB1.HMI.STATE", 1) - ## - ### Register all 82 DATA tags - ##for i in range(82): - ##var data_tag = "[PLC]UL1_3_JR_PB1.CTRL.STS.Log.DATA[" + str(i) + "]" - ##OIPComms.register_tag(tag_group, data_tag, 1) - #pass -#func _ready() -> void: - # - #SimulationEvents.simulation_started.connect(_on_simulation_started) -# -# -# -#func _physics_process(delta: float) -> void: - # - #box_spawner.disable = ul_1_3.speed == 0 - ##print(OIPComms.read_int32(tag_group,"[PLC]UL1_3_JR_PB1.HMI.STATE")) -# -# - ##print("Log String: ", Utils.read_string(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log")) - - diff --git a/Simulations/STATION_JR_PB/OIP/utils.gd b/Simulations/STATION_JR_PB/OIP/utils.gd deleted file mode 100644 index 5d6e894..0000000 --- a/Simulations/STATION_JR_PB/OIP/utils.gd +++ /dev/null @@ -1,31 +0,0 @@ -class_name Utils -extends Node - -static func read_string(tag_group_name: String, base_tag_name: String) -> String: - """Reads the log string from PLC DATA array""" - var result = "" - - # Construct the length and data tag names - var len_tag = base_tag_name + ".LEN" - var data_tag = base_tag_name + ".DATA" - - # Read the actual string length from PLC (if available) - var string_length = OIPComms.read_int32(tag_group_name, len_tag) - - # Limit to 82 max and ensure it's valid - if string_length <= 0 or string_length > 82: - string_length = 82 - - # Read each character - for i in range(string_length): - var data_tag_indexed = data_tag + "[" + str(i) + "]" - var char_value = OIPComms.read_int8(tag_group_name, data_tag_indexed) - - # Check for null terminator or invalid ASCII - - - # Convert SINT to ASCII character - if char_value > 0 and char_value < 128: # Valid ASCII range - result += char(char_value) - - return result