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 36c2ab6..0000000 Binary files a/Simulations/STATION_JR_PB/Ignition/PLC_SIMULATIONS_2025-05-26_1536.zip and /dev/null differ 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