From 37be908d50fffe95e48d78726e8a6a665fc75bfd Mon Sep 17 00:00:00 2001 From: "b.makharadze" <55makharadze@gmail.com> Date: Thu, 31 Jul 2025 11:33:58 +0400 Subject: [PATCH 1/2] Update main AOIs and UDTs --- PLC/AOIs/AOI_D2C_CHUTE_AOI.L5X | 57 +- PLC/AOIs/AOI_EXTENDO_AOI.L5X | 25 +- PLC/AOIs/AOI_FL_CHUTE_AOI.L5X | 129 ++- PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X | 2 +- PLC/Simulations/MCM/OIP/MCM.tscn | 175 ++++ .../PALLET_BUILD/OIP/Pallete Build.tscn | 799 +++++++++--------- PLC/Simulations/PALLET_BUILD/OIP/utils.gd | 14 +- .../PALLET_BUILD/PLC/AOIs/AOI_FIO_AOI.L5X | 75 -- .../PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X | 19 +- .../PLC/AOIs/AOI_IO_BLOCK_AOI.L5X | 355 ++++++++ .../PLC/AOIs/AOI_PB_CHUTE_AOI.L5X | 419 ++++++++- .../PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X | 186 +++- .../PALLET_BUILD/PLC/AOIs/OIP_Beacon_AOI.L5X | 125 ++- .../PALLET_BUILD/PLC/AOIs/OIP_Chute_AOI.L5X | 10 +- .../PALLET_BUILD/PLC/PalletBuild.L5X | 735 +++++++++++----- .../PLC/UDTs/IO_BLOCK_DataTypes.L5X | 367 ++++++++ .../PLC/UDTs/PB_CHUTE_DataType.L5X | 611 +++++++++++++- .../PLC/UDTs/STATION_JR_CHUTE_DataType.L5X | 295 ++++++- .../PLC/UDTs/UDT_FIO_DataType.L5X | 106 --- PLC/UDTs/D2C_CHUTE_DataTypes.L5X | 56 +- PLC/UDTs/Extendo_DataType.L5X | 22 +- PLC/UDTs/FL_CHUTE_DataType.L5X | 241 +++++- PLC/UDTs/STATION_JR_CHUTE_DataType.L5X | 64 +- 23 files changed, 3924 insertions(+), 963 deletions(-) create mode 100644 PLC/Simulations/MCM/OIP/MCM.tscn delete mode 100644 PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FIO_AOI.L5X create mode 100644 PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X create mode 100644 PLC/Simulations/PALLET_BUILD/PLC/UDTs/IO_BLOCK_DataTypes.L5X delete mode 100644 PLC/Simulations/PALLET_BUILD/PLC/UDTs/UDT_FIO_DataType.L5X diff --git a/PLC/AOIs/AOI_D2C_CHUTE_AOI.L5X b/PLC/AOIs/AOI_D2C_CHUTE_AOI.L5X index 285f052..09cae6e 100644 --- a/PLC/AOIs/AOI_D2C_CHUTE_AOI.L5X +++ b/PLC/AOIs/AOI_D2C_CHUTE_AOI.L5X @@ -1,6 +1,6 @@  - - + + @@ -563,6 +563,19 @@ + + @@ -570,8 +583,7 @@ - + @@ -671,8 +683,7 @@ - + @@ -1142,8 +1153,8 @@ Not Available at thsi time.]]> - + @@ -1638,11 +1649,11 @@ Not Available at thsi time.]]> - + - + @@ -1655,11 +1666,11 @@ Not Available at thsi time.]]> - + - + @@ -1802,7 +1813,7 @@ HMI.Alarms.No_Container – no container present - + @@ -1955,9 +1966,29 @@ HMI.Alarms.No_Container – no container present + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/AOIs/AOI_EXTENDO_AOI.L5X b/PLC/AOIs/AOI_EXTENDO_AOI.L5X index e859646..6705a05 100644 --- a/PLC/AOIs/AOI_EXTENDO_AOI.L5X +++ b/PLC/AOIs/AOI_EXTENDO_AOI.L5X @@ -1,6 +1,6 @@  - - + + @@ -423,6 +423,11 @@ - + @@ -445,8 +450,8 @@ - - + + @@ -1057,16 +1062,20 @@ HMI.Alarm.Extendo_Faulted – raised when Extendo Faulted is true. + + + + + + - - diff --git a/PLC/AOIs/AOI_FL_CHUTE_AOI.L5X b/PLC/AOIs/AOI_FL_CHUTE_AOI.L5X index 56d684f..5aed955 100644 --- a/PLC/AOIs/AOI_FL_CHUTE_AOI.L5X +++ b/PLC/AOIs/AOI_FL_CHUTE_AOI.L5X @@ -1,6 +1,109 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22,6 +125,9 @@ + + + @@ -30,6 +136,9 @@ + + + @@ -38,16 +147,25 @@ + + + + + + + + + @@ -58,6 +176,9 @@ + + + @@ -66,6 +187,9 @@ + + + @@ -77,6 +201,9 @@ + + + diff --git a/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X b/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X index a6d79f5..8ed87ce 100644 --- a/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X +++ b/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X @@ -1,5 +1,5 @@  - + diff --git a/PLC/Simulations/MCM/OIP/MCM.tscn b/PLC/Simulations/MCM/OIP/MCM.tscn new file mode 100644 index 0000000..d398b0a --- /dev/null +++ b/PLC/Simulations/MCM/OIP/MCM.tscn @@ -0,0 +1,175 @@ +[gd_scene load_steps=8 format=4 uid="uid://dpwat3a3pum87"] + +[ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_2vilj"] +[ext_resource type="PackedScene" uid="uid://dvjrx5crpqs5f" path="res://parts/SideGuard.tscn" id="3_3lj72"] +[ext_resource type="Shader" uid="uid://wtu5yyfpdcgl" path="res://assets/3DModels/Shaders/MetalShaderSideGuard.tres" id="4_02owk"] +[ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="5_02owk"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_02owk"] +render_priority = 0 +shader = ExtResource("4_02owk") +shader_parameter/Scale = 1.9343237 +shader_parameter/Metallic = 0.94 +shader_parameter/Roughness = 0.5 +shader_parameter/Specular = 0.5 + +[sub_resource type="ArrayMesh" id="ArrayMesh_gn6s2"] +_surfaces = [{ +"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), +"format": 34896613377, +"index_count": 204, +"index_data": PackedByteArray("AAACAAEAAAADAAIADQACAAwADQABAAIAAwAJAAoAAwAAAAkACAAKAAkACAALAAoACAAHAAsACAAGAAcADgAMAA8ADgANAAwABAAPAAUABAAOAA8ABAARABAABAAFABEAEgAUABUAEgATABQAHwAUABMAHwAeABQAFQAbABIAFQAcABsAGgAcAB0AGgAbABwAGgAZABgAGgAdABkAIAAeAB8AIAAhAB4AFgAhACAAFgAXACEAFgAjABcAFgAiACMAAQASAAAAAQATABIAAwAUAAIAAwAVABQAAgAeAAwAAgAUAB4ACgAVAAMACgAcABUAAAAbAAkAAAASABsACQAaAAgACQAbABoACwAcAAoACwAdABwABwAdAAsABwAZAB0ACAAYAAYACAAaABgADAAhAA8ADAAeACEADQATAAEADQAfABMADgAfAA0ADgAgAB8ADwAXAAUADwAhABcAEAAWAAQAEAAiABYABAAgAA4ABAAWACAABQAjABEABQAXACMABgAZAAcABgAYABkAEQAiABAAEQAjACIA"), +"name": "BeltTopDown", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 36, +"vertex_data": PackedByteArray("AADMEI2IAAAAAPkeREsAAP//+R5ESwAA///MEI2IAAAAAIX3ukoAAP//hfe6SgAAAAASAEDhAAD//xIAQOEAAAAAKxC/4QAAAADNEIvfAAD//80Qi98AAP//KxC/4QAA//+KVhxLAAAAAIpWHEsAAAAAHfTESgAA//8d9MRKAAAAAIX3AAAAAP//hfcAAAAAAABFGVuTAAAAAPoiZmkAAP//+iJmaQAA//9FGVuTAAAAAP//yGgAAP///v/IaAAAAAAAAGX/AAD//wAAZf8AAAAAlhP+/wAAAABGGT7sAAD//0YZPuwAAP//lhP//wAA//+MVkFpAAAAAIxWQWkAAAAAIfToaAAA//8g9OhoAAAAAP//AAAAAP///v8AAAAA") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_2u643"] +resource_name = "RCSideGuard_RCSideGuard" +_surfaces = [{ +"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), +"attribute_data": PackedByteArray("lm///5Zv//+Wb///lm///110//8AABfVAAAX1V10//8AAHopXXRhVAAAeilddGFUlm9hVJZvYVSWb2FUiFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//d2X//5t+//93Zf//m37//3dlYVSafmFUd2VhVJp+YVRMfGFUTHxhVOQUeinkFHop5BR6KeQUF9XkFBfV5BQX1bpUF9W6VBfVulQX1bpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KZZv//+Wb///lm///5Zv//9ddP//AAAX1QAAF9VddP//XXRhVAAAeikAAHopXXRhVJZvYVSWb2FUlm9hVJZvYVSIWRfViFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//THz//0x8//93Zf//m37//3dl//+bfv//mn5hVHdlYVSafmFUd2VhVEx8YVRMfGFUTHxhVEx8YVTkFHop5BR6KeQUeinkFBfV5BQX1eQUF9W6VBfVulQX1bpUF9W6VBfVulR6KbpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KQ=="), +"format": 34896613399, +"index_count": 204, +"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), +"material": SubResource("ShaderMaterial_02owk"), +"name": "BeltTopDown", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 124, +"vertex_data": PackedByteArray("AADMEI2IH88AAMwQjYgdwwAAzBCNiNjdAADMEI2I1t0AAPkeREu11gAA+R5ES+jfAAD5HkRLVPMAAPkeREtU8///+R5ES1Tz///5HkRLVPP///keREvo3///+R5ES7XW///MEI2I1t3//8wQjYgdw///zBCNiCHPAACF97pKqaUAAIX3ukqf6QAAhfe6SqDp//+F97pKn+n//4X3ukqg6f//hfe6Sqml//+F97pKqaUAABIAQOH/vwAAEgBA4VjAAAASAEDhv////xIAQOFYwP//EgBA4b////8SAEDh/78AACsQv+GqowAAKxC/4QP1AADNEIvf4rQAAM0Qi9/itAAAzRCL30DfAADNEIvfQN///80Qi99A3///zRCL30Df///NEIvf4rT//80Qi9/itP//KxC/4QP1//8rEL/hqqP//4pWHEv5////ilYcS/v///+KVhxL/78AAIpWHEv/vwAAilYcS/n/AACKVhxL+/8AAB30xEqiqgAAHfTESvH/AAAd9MRK8v///x30xErx////HfTESvL///8d9MRKoqoAAIX3AAD/vwAAhfcAAFTVAACF9wAA/////4X3AABU1f//hfcAAP////+F9wAA/78AAEUZW5Pk3AAARRlbk8ulAABFGVuT2d0AAEUZW5PBzQAA+iJmaZXQAAD6ImZpfrcAAPoiZmnzwQAA+iJmacPP///6ImZp88H///oiZmnwwf//+iJmaX63///6ImZpldD//0UZW5Pgwv//RRlbk8HN//9FGVuTzaX//0UZW5Pk3AAA///IaJ/pAAD//8ho5L8AAP//yGjrxQAA///IaALG///+/8hon+n///7/yGgBxv///v/IaOS////+/8hon+kAAAAAZf//vwAAAABl/1jAAAAAAGX//7///wAAZf9YwP//AABl//+///8AAGX//78AAJYT/v+B1AAAlhP+/z3AAACWE/7/d8EAAJYT/v+awQAARhk+7EHfAABGGT7sX6sAAEYZPuyqzAAARhk+7GjB//9GGT7sqcz//0YZPuxD3///Rhk+7F6r//9GGT7sQd///5YT//93wf//lhP//4LM//+WE///PcD//5YT//+B1P//jFZBaf+///+MVkFp/7///4xWQWn/vwAAjFZBaf+/AACMVkFp/78AAIxWQWn/vwAAIfToaP+/AAAh9Oho/78AACH06Gj/vwAAIfToaP+///8g9Oho/7///yD06Gj/v///IPToaP+///8g9Oho/78AAP//AAD/vwAA//8AAP//AAD//wAAVNX///7/AAD//////v8AAFTV///+/wAA/79YOle6EjUStalQqVCoUKhQMD4wvuBn4Od0RnRGdEZ0RnRGdEZ0RnRG4GceGDA+zkGoUKhQEjXsSlo6pEWx0Eyv/0r/Sv9K/0r/Sv9K/0r/SrHQslCx0LJQ/3///wAA/3/cv9y/AAD/f9y/3L//fwAAzq0v0qVFpUVoypa1aMqWtfNP80/yT/JP80/zT/JP8k9oymhKaMpoSqVFpUXOrc8tAkACQAFAAUD/fwAA/3///wJAAkABQAFA/3///wdAB0AGQAZAB0AHQAZABkD/fwAA/3///1RVVFX///9/VFVUVf///3//fwAAPZ/B4JROk86t3lcvKO3NKKHIXLcCMwGzO+wp7IDwdyuHz0YR1hPEEwIz/UyhyKJIltOAFNPKayWJTnUxPZ89H/9///+MJYulEx3eHA+6CB3+6f80JuPw4owlc1r/fwAA/3///wAA/3+LAHP/AAD/f4sAc///fwAAIcLdvVMzUrNQ03APwBGKEvJ/8v+XPZa9AMmBJPnSJw8o8h4pGOANMJg9Z0LyfwwAb+057t7x4ChTM6xMIcIhQvX/CQDx/w0A/38AAP9////1/wkA8f8NAPU/9L8JwPS/uP8bAB8ACwDz/9//4/9GAPU/CkAJwApA/3///////39U1aoq////f1TVqir/fwAA") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_gn6s2") + +[node name="Simulation" type="Node3D"] + +[node name="Building" parent="." instance=ExtResource("1_2vilj")] +metadata/edit_lock = true +metadata/edit_group = true + +[node name="SideGuard" parent="." instance=ExtResource("3_3lj72")] +transform = Transform3D(1.9343237, 0, 0, 0, 5.1363015, 0, 0, 0, 15.127822, -2.098621, -3.0168223, 22.859678) +mesh = SubResource("ArrayMesh_2u643") +length = 1.9343237 + +[node name="POWER_ON" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.9744997, -0.38508332, 6.6063375) +text = "POWER ON" +toggle = true +pressed = true +lamp = true +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "POWER_ON_PB" +lamp_tag_name = "POWER_ON_PB_LT" + +[node name="MOTOR_FAULT" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3379102, -0.38508332, 6.6063375) +text = "MOTOR FAULT" +button_color = Color(0.9666667, 1, 0, 1) +enable_comms = true +pushbutton_tag_name = "MOTOR_FAULT_RESET_PB" +lamp_tag_name = "MOTOR_FAULT_RESET_PB_LT" + +[node name="POWER_BRANCH_FAULT_RESET" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.7244716, -0.38508332, 6.6063375) +text = "POWER BRANCH FAULT RESET" +button_color = Color(0.96862745, 1, 0, 1) +enable_comms = true +pushbutton_tag_name = "POWER_BRANCH_FAULT_RESET_PB" +lamp_tag_name = "POWER_BRANCH_FAULT_RESET_PB_LT" + +[node name="LOW_AIR_PRESSURE" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1599557, -0.38508332, 6.6063375) +text = "LOW AIR PRESSURE" +button_color = Color(0, 0.049999706, 1, 1) +enable_comms = true +pushbutton_tag_name = "LOW_AIR_PRESSURE_RESET_PB" +lamp_tag_name = "LOW_AIR_PRESSURE_RESET_PB_LT" + +[node name="E-STOP_ACTUATED" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.9744997, -0.9958613, 6.6063375) +text = "E-STOP ACTUATED" +enable_comms = true +pushbutton_tag_name = "E_STOP_ACTUATED_PB" +lamp_tag_name = "E_STOP_ACTUATED_PB_LT" + +[node name="START" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3379102, -0.9958613, 6.6063375) +text = "START" +button_color = Color(5.7997554e-06, 0.68136346, 0.058624905, 1) +enable_comms = true +pushbutton_tag_name = "START_PB" +lamp_tag_name = "START_PB_LT" + +[node name="JAM_RESTART" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1599557, -0.9958613, 6.6063375) +text = "JAM RESTART" +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "JAM_RESTART_PB" +lamp_tag_name = "JAM_RESTART_PB_LT" + +[node name="EMERGENCY_STOP" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.9744997, -1.6067358, 6.6063375) +text = "EMERGENCY STOP" +toggle = true +normally_closed = true +enable_comms = true +pushbutton_tag_name = "EMERGENCY_STOP_PB" +lamp_tag_name = "EMERGENCY_STOP_PB_LT" + +[node name="STOP" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3379102, -1.6067358, 6.6063375) +normally_closed = true +enable_comms = true +pushbutton_tag_name = "STOP_PB" +lamp_tag_name = "STOP_PB_LT" + +[node name="BATTERY_FAULT" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -1.6423613, -0.67535853, 6.487621) +text = "BATTERY FAULT" +toggle = true +enable_comms = true +pushbutton_tag_name = "UPS_BATTERY_FAULT_PB" +lamp_tag_name = "UPS_BATTERY_FAULT_PB_LT" + +[node name="ON_BATTERY" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -2.1884327, -1.5352063, 6.487621) +text = "ON BATTERY" +toggle = true +enable_comms = true +pushbutton_tag_name = "ON_BATTERY_PB" +lamp_tag_name = "ON_BATTERY_PB_LT" + +[node name="UPS_BATTARY_LOW" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -2.4660864, -0.5395664, 6.487621) +text = "UPS BATTERY LOW" +toggle = true +enable_comms = true +pushbutton_tag_name = "UPS_BATTERY_LOW_PB" +lamp_tag_name = "UPS_BATTERY_LOW_PB_LT" + +[node name="NAT_SWITCH" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -3.0257194, -1.6492424, 6.487621) +text = "NAT SWITCH" +toggle = true +enable_comms = true +pushbutton_tag_name = "NAT_SWITCH_PB" +lamp_tag_name = "NAT_SWITCH_PB_LT" + +[node name="FIRE_INTERFACE" parent="." instance=ExtResource("5_02owk")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -1.2769504, -1.3426788, 6.487621) +text = "FIRE INTERFACE" +toggle = true +normally_closed = true +lamp = true +enable_comms = true +pushbutton_tag_name = "FIRE_INTERFACE_PB" +lamp_tag_name = "FIRE_INTERFACE_PB_LT" + +[node name="Node" type="Node" parent="."] diff --git a/PLC/Simulations/PALLET_BUILD/OIP/Pallete Build.tscn b/PLC/Simulations/PALLET_BUILD/OIP/Pallete Build.tscn index 7d6b709..2cf5478 100644 --- a/PLC/Simulations/PALLET_BUILD/OIP/Pallete Build.tscn +++ b/PLC/Simulations/PALLET_BUILD/OIP/Pallete Build.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=38 format=4 uid="uid://krjp22b25glj"] +[gd_scene load_steps=39 format=4 uid="uid://cbsl5m1yu403u"] [ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_fd576"] [ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="2_f1y6l"] @@ -11,15 +11,16 @@ [ext_resource type="PackedScene" uid="uid://drle8i15nwr68" path="res://parts/StackLight.tscn" id="8_n3xqu"] [ext_resource type="Script" uid="uid://bl7o7avq4pi78" path="res://src/StackLight/stack_light_data.gd" id="9_fnchy"] [ext_resource type="Script" uid="uid://buet0tp11gjdl" path="res://src/StackLight/stack_segment_data.gd" id="10_crqpc"] +[ext_resource type="PackedScene" uid="uid://bq16fe5njnr2i" path="res://parts/Box.tscn" id="11_4weqd"] [ext_resource type="PackedScene" uid="uid://brhwonoyljmqn" path="res://Chute.tscn" id="12_mueih"] -[ext_resource type="PackedScene" uid="uid://ccnjj66g0dynu" path="res://parts/Pallet.tscn" id="14_e5heu"] -[ext_resource type="Script" uid="uid://ci4xxmdlyaq0n" path="res://utils.gd" id="15_8uneb"] +[ext_resource type="PackedScene" uid="uid://ccnjj66g0dynu" path="res://parts/Pallet.tscn" id="13_4jac4"] +[ext_resource type="Script" uid="uid://vh0kulifw11d" path="res://utils.gd" id="15_ko2pj"] [ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="16_bfduw"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_8uneb"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bfduw"] render_priority = 0 shader = ExtResource("5_soj22") -shader_parameter/Scale = 1.34342 +shader_parameter/Scale = 1.3434165 shader_parameter/Metallic = 0.94 shader_parameter/Roughness = 0.5 shader_parameter/Specular = 0.5 @@ -38,7 +39,7 @@ _surfaces = [{ }] blend_shape_mode = 0 -[sub_resource type="ArrayMesh" id="ArrayMesh_ko2pj"] +[sub_resource type="ArrayMesh" id="ArrayMesh_soj22"] resource_name = "RCSideGuard_RCSideGuard" _surfaces = [{ "aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), @@ -46,7 +47,7 @@ _surfaces = [{ "format": 34896613399, "index_count": 204, "index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), -"material": SubResource("ShaderMaterial_8uneb"), +"material": SubResource("ShaderMaterial_bfduw"), "name": "BeltTopDown", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -56,49 +57,15 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_gn6s2") -[sub_resource type="Resource" id="Resource_d0je0"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = true -segment_color = Color(0, 1, 0, 0.5) - -[sub_resource type="Resource" id="Resource_3pf3c"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = false -segment_color = Color(0, 0.133333, 1, 1) - -[sub_resource type="Resource" id="Resource_861op"] -resource_local_to_scene = true -script = ExtResource("9_fnchy") -segment_datas = [SubResource("Resource_d0je0"), SubResource("Resource_3pf3c")] - -[sub_resource type="Resource" id="Resource_hpqs4"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = true -segment_color = Color(0, 1, 0, 0.5) - -[sub_resource type="Resource" id="Resource_766f7"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = false -segment_color = Color(0, 0.133333, 1, 1) - -[sub_resource type="Resource" id="Resource_50a4q"] -resource_local_to_scene = true -script = ExtResource("9_fnchy") -segment_datas = [SubResource("Resource_hpqs4"), SubResource("Resource_766f7")] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_jiaeu"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_64bia"] render_priority = 0 shader = ExtResource("5_soj22") -shader_parameter/Scale = 1.54232 +shader_parameter/Scale = 1.5694804 shader_parameter/Metallic = 0.94 shader_parameter/Roughness = 0.5 shader_parameter/Specular = 0.5 -[sub_resource type="ArrayMesh" id="ArrayMesh_v7mlo"] +[sub_resource type="ArrayMesh" id="ArrayMesh_078ij"] resource_name = "RCSideGuard_RCSideGuard" _surfaces = [{ "aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), @@ -106,7 +73,7 @@ _surfaces = [{ "format": 34896613399, "index_count": 204, "index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), -"material": SubResource("ShaderMaterial_jiaeu"), +"material": SubResource("ShaderMaterial_64bia"), "name": "BeltTopDown", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -116,462 +83,450 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_gn6s2") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_n3xqu"] +render_priority = 0 +shader = ExtResource("5_soj22") +shader_parameter/Scale = 1.542319 +shader_parameter/Metallic = 0.94 +shader_parameter/Roughness = 0.5 +shader_parameter/Specular = 0.5 + +[sub_resource type="ArrayMesh" id="ArrayMesh_fnchy"] +resource_name = "RCSideGuard_RCSideGuard" +_surfaces = [{ +"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), +"attribute_data": PackedByteArray("lm///5Zv//+Wb///lm///110//8AABfVAAAX1V10//8AAHopXXRhVAAAeilddGFUlm9hVJZvYVSWb2FUiFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//d2X//5t+//93Zf//m37//3dlYVSafmFUd2VhVJp+YVRMfGFUTHxhVOQUeinkFHop5BR6KeQUF9XkFBfV5BQX1bpUF9W6VBfVulQX1bpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KZZv//+Wb///lm///5Zv//9ddP//AAAX1QAAF9VddP//XXRhVAAAeikAAHopXXRhVJZvYVSWb2FUlm9hVJZvYVSIWRfViFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//THz//0x8//93Zf//m37//3dl//+bfv//mn5hVHdlYVSafmFUd2VhVEx8YVRMfGFUTHxhVEx8YVTkFHop5BR6KeQUeinkFBfV5BQX1eQUF9W6VBfVulQX1bpUF9W6VBfVulR6KbpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KQ=="), +"format": 34896613399, +"index_count": 204, +"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), +"material": SubResource("ShaderMaterial_n3xqu"), +"name": "BeltTopDown", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 124, +"vertex_data": PackedByteArray("AADMEI2IH88AAMwQjYgdwwAAzBCNiNjdAADMEI2I1t0AAPkeREu11gAA+R5ES+jfAAD5HkRLVPMAAPkeREtU8///+R5ES1Tz///5HkRLVPP///keREvo3///+R5ES7XW///MEI2I1t3//8wQjYgdw///zBCNiCHPAACF97pKqaUAAIX3ukqf6QAAhfe6SqDp//+F97pKn+n//4X3ukqg6f//hfe6Sqml//+F97pKqaUAABIAQOH/vwAAEgBA4VjAAAASAEDhv////xIAQOFYwP//EgBA4b////8SAEDh/78AACsQv+GqowAAKxC/4QP1AADNEIvf4rQAAM0Qi9/itAAAzRCL30DfAADNEIvfQN///80Qi99A3///zRCL30Df///NEIvf4rT//80Qi9/itP//KxC/4QP1//8rEL/hqqP//4pWHEv5////ilYcS/v///+KVhxL/78AAIpWHEv/vwAAilYcS/n/AACKVhxL+/8AAB30xEqiqgAAHfTESvH/AAAd9MRK8v///x30xErx////HfTESvL///8d9MRKoqoAAIX3AAD/vwAAhfcAAFTVAACF9wAA/////4X3AABU1f//hfcAAP////+F9wAA/78AAEUZW5Pk3AAARRlbk8ulAABFGVuT2d0AAEUZW5PBzQAA+iJmaZXQAAD6ImZpfrcAAPoiZmnzwQAA+iJmacPP///6ImZp88H///oiZmnwwf//+iJmaX63///6ImZpldD//0UZW5Pgwv//RRlbk8HN//9FGVuTzaX//0UZW5Pk3AAA///IaJ/pAAD//8ho5L8AAP//yGjrxQAA///IaALG///+/8hon+n///7/yGgBxv///v/IaOS////+/8hon+kAAAAAZf//vwAAAABl/1jAAAAAAGX//7///wAAZf9YwP//AABl//+///8AAGX//78AAJYT/v+B1AAAlhP+/z3AAACWE/7/d8EAAJYT/v+awQAARhk+7EHfAABGGT7sX6sAAEYZPuyqzAAARhk+7GjB//9GGT7sqcz//0YZPuxD3///Rhk+7F6r//9GGT7sQd///5YT//93wf//lhP//4LM//+WE///PcD//5YT//+B1P//jFZBaf+///+MVkFp/7///4xWQWn/vwAAjFZBaf+/AACMVkFp/78AAIxWQWn/vwAAIfToaP+/AAAh9Oho/78AACH06Gj/vwAAIfToaP+///8g9Oho/7///yD06Gj/v///IPToaP+///8g9Oho/78AAP//AAD/vwAA//8AAP//AAD//wAAVNX///7/AAD//////v8AAFTV///+/wAA/79YOle6EjUStalQqVCoUKhQMD4wvuBn4Od0RnRGdEZ0RnRGdEZ0RnRG4GceGDA+zkGoUKhQEjXsSlo6pEWx0Eyv/0r/Sv9K/0r/Sv9K/0r/SrHQslCx0LJQ/3///wAA/3/cv9y/AAD/f9y/3L//fwAAzq0v0qVFpUVoypa1aMqWtfNP80/yT/JP80/zT/JP8k9oymhKaMpoSqVFpUXOrc8tAkACQAFAAUD/fwAA/3///wJAAkABQAFA/3///wdAB0AGQAZAB0AHQAZABkD/fwAA/3///1RVVFX///9/VFVUVf///3//fwAAPZ/B4JROk86t3lcvKO3NKKHIXLcCMwGzO+wp7IDwdyuHz0YR1hPEEwIz/UyhyKJIltOAFNPKayWJTnUxPZ89H/9///+MJYulEx3eHA+6CB3+6f80JuPw4owlc1r/fwAA/3///wAA/3+LAHP/AAD/f4sAc///fwAAIcLdvVMzUrNQ03APwBGKEvJ/8v+XPZa9AMmBJPnSJw8o8h4pGOANMJg9Z0LyfwwAb+057t7x4ChTM6xMIcIhQvX/CQDx/w0A/38AAP9////1/wkA8f8NAPU/9L8JwPS/uP8bAB8ACwDz/9//4/9GAPU/CkAJwApA/3///////39U1aoq////f1TVqir/fwAA") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_gn6s2") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_crqpc"] +render_priority = 0 +shader = ExtResource("5_soj22") +shader_parameter/Scale = 1.5479324 +shader_parameter/Metallic = 0.94 +shader_parameter/Roughness = 0.5 +shader_parameter/Specular = 0.5 + +[sub_resource type="ArrayMesh" id="ArrayMesh_4weqd"] +resource_name = "RCSideGuard_RCSideGuard" +_surfaces = [{ +"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), +"attribute_data": PackedByteArray("lm///5Zv//+Wb///lm///110//8AABfVAAAX1V10//8AAHopXXRhVAAAeilddGFUlm9hVJZvYVSWb2FUiFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//d2X//5t+//93Zf//m37//3dlYVSafmFUd2VhVJp+YVRMfGFUTHxhVOQUeinkFHop5BR6KeQUF9XkFBfV5BQX1bpUF9W6VBfVulQX1bpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KZZv//+Wb///lm///5Zv//9ddP//AAAX1QAAF9VddP//XXRhVAAAeikAAHopXXRhVJZvYVSWb2FUlm9hVJZvYVSIWRfViFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//THz//0x8//93Zf//m37//3dl//+bfv//mn5hVHdlYVSafmFUd2VhVEx8YVRMfGFUTHxhVEx8YVTkFHop5BR6KeQUeinkFBfV5BQX1eQUF9W6VBfVulQX1bpUF9W6VBfVulR6KbpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KQ=="), +"format": 34896613399, +"index_count": 204, +"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), +"material": SubResource("ShaderMaterial_crqpc"), +"name": "BeltTopDown", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 124, +"vertex_data": PackedByteArray("AADMEI2IH88AAMwQjYgdwwAAzBCNiNjdAADMEI2I1t0AAPkeREu11gAA+R5ES+jfAAD5HkRLVPMAAPkeREtU8///+R5ES1Tz///5HkRLVPP///keREvo3///+R5ES7XW///MEI2I1t3//8wQjYgdw///zBCNiCHPAACF97pKqaUAAIX3ukqf6QAAhfe6SqDp//+F97pKn+n//4X3ukqg6f//hfe6Sqml//+F97pKqaUAABIAQOH/vwAAEgBA4VjAAAASAEDhv////xIAQOFYwP//EgBA4b////8SAEDh/78AACsQv+GqowAAKxC/4QP1AADNEIvf4rQAAM0Qi9/itAAAzRCL30DfAADNEIvfQN///80Qi99A3///zRCL30Df///NEIvf4rT//80Qi9/itP//KxC/4QP1//8rEL/hqqP//4pWHEv5////ilYcS/v///+KVhxL/78AAIpWHEv/vwAAilYcS/n/AACKVhxL+/8AAB30xEqiqgAAHfTESvH/AAAd9MRK8v///x30xErx////HfTESvL///8d9MRKoqoAAIX3AAD/vwAAhfcAAFTVAACF9wAA/////4X3AABU1f//hfcAAP////+F9wAA/78AAEUZW5Pk3AAARRlbk8ulAABFGVuT2d0AAEUZW5PBzQAA+iJmaZXQAAD6ImZpfrcAAPoiZmnzwQAA+iJmacPP///6ImZp88H///oiZmnwwf//+iJmaX63///6ImZpldD//0UZW5Pgwv//RRlbk8HN//9FGVuTzaX//0UZW5Pk3AAA///IaJ/pAAD//8ho5L8AAP//yGjrxQAA///IaALG///+/8hon+n///7/yGgBxv///v/IaOS////+/8hon+kAAAAAZf//vwAAAABl/1jAAAAAAGX//7///wAAZf9YwP//AABl//+///8AAGX//78AAJYT/v+B1AAAlhP+/z3AAACWE/7/d8EAAJYT/v+awQAARhk+7EHfAABGGT7sX6sAAEYZPuyqzAAARhk+7GjB//9GGT7sqcz//0YZPuxD3///Rhk+7F6r//9GGT7sQd///5YT//93wf//lhP//4LM//+WE///PcD//5YT//+B1P//jFZBaf+///+MVkFp/7///4xWQWn/vwAAjFZBaf+/AACMVkFp/78AAIxWQWn/vwAAIfToaP+/AAAh9Oho/78AACH06Gj/vwAAIfToaP+///8g9Oho/7///yD06Gj/v///IPToaP+///8g9Oho/78AAP//AAD/vwAA//8AAP//AAD//wAAVNX///7/AAD//////v8AAFTV///+/wAA/79YOle6EjUStalQqVCoUKhQMD4wvuBn4Od0RnRGdEZ0RnRGdEZ0RnRG4GceGDA+zkGoUKhQEjXsSlo6pEWx0Eyv/0r/Sv9K/0r/Sv9K/0r/SrHQslCx0LJQ/3///wAA/3/cv9y/AAD/f9y/3L//fwAAzq0v0qVFpUVoypa1aMqWtfNP80/yT/JP80/zT/JP8k9oymhKaMpoSqVFpUXOrc8tAkACQAFAAUD/fwAA/3///wJAAkABQAFA/3///wdAB0AGQAZAB0AHQAZABkD/fwAA/3///1RVVFX///9/VFVUVf///3//fwAAPZ/B4JROk86t3lcvKO3NKKHIXLcCMwGzO+wp7IDwdyuHz0YR1hPEEwIz/UyhyKJIltOAFNPKayWJTnUxPZ89H/9///+MJYulEx3eHA+6CB3+6f80JuPw4owlc1r/fwAA/3///wAA/3+LAHP/AAD/f4sAc///fwAAIcLdvVMzUrNQ03APwBGKEvJ/8v+XPZa9AMmBJPnSJw8o8h4pGOANMJg9Z0LyfwwAb+057t7x4ChTM6xMIcIhQvX/CQDx/w0A/38AAP9////1/wkA8f8NAPU/9L8JwPS/uP8bAB8ACwDz/9//4/9GAPU/CkAJwApA/3///////39U1aoq////f1TVqir/fwAA") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_gn6s2") + +[sub_resource type="Resource" id="Resource_ko2pj"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +active = true + +[sub_resource type="Resource" id="Resource_d0je0"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +segment_color = Color(0, 0.133333, 1, 1) + +[sub_resource type="Resource" id="Resource_3pf3c"] +resource_local_to_scene = true +script = ExtResource("9_fnchy") +segment_datas = [SubResource("Resource_ko2pj"), SubResource("Resource_d0je0")] + +[sub_resource type="Resource" id="Resource_861op"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +active = true + +[sub_resource type="Resource" id="Resource_hpqs4"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +segment_color = Color(0, 0.133333, 1, 1) + +[sub_resource type="Resource" id="Resource_766f7"] +resource_local_to_scene = true +script = ExtResource("9_fnchy") +segment_datas = [SubResource("Resource_861op"), SubResource("Resource_hpqs4")] + +[sub_resource type="Resource" id="Resource_50a4q"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +active = true + +[sub_resource type="Resource" id="Resource_jiaeu"] +resource_local_to_scene = true +script = ExtResource("10_crqpc") +segment_color = Color(0, 0.133333, 1, 1) + +[sub_resource type="Resource" id="Resource_v7mlo"] +resource_local_to_scene = true +script = ExtResource("9_fnchy") +segment_datas = [SubResource("Resource_50a4q"), SubResource("Resource_jiaeu")] + [sub_resource type="Resource" id="Resource_plrun"] resource_local_to_scene = true script = ExtResource("10_crqpc") active = true -segment_color = Color(0, 1, 0, 0.5) [sub_resource type="Resource" id="Resource_o2dim"] resource_local_to_scene = true script = ExtResource("10_crqpc") -active = false -segment_color = Color(0, 0.133333, 1, 1) +segment_color = Color(1, 0.7490196, 0, 1) [sub_resource type="Resource" id="Resource_mmluh"] resource_local_to_scene = true -script = ExtResource("9_fnchy") -segment_datas = [SubResource("Resource_plrun"), SubResource("Resource_o2dim")] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_8bbxb"] -render_priority = 0 -shader = ExtResource("5_soj22") -shader_parameter/Scale = 1.56948 -shader_parameter/Metallic = 0.94 -shader_parameter/Roughness = 0.5 -shader_parameter/Specular = 0.5 - -[sub_resource type="ArrayMesh" id="ArrayMesh_ae0th"] -resource_name = "RCSideGuard_RCSideGuard" -_surfaces = [{ -"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), -"attribute_data": PackedByteArray("lm///5Zv//+Wb///lm///110//8AABfVAAAX1V10//8AAHopXXRhVAAAeilddGFUlm9hVJZvYVSWb2FUiFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//d2X//5t+//93Zf//m37//3dlYVSafmFUd2VhVJp+YVRMfGFUTHxhVOQUeinkFHop5BR6KeQUF9XkFBfV5BQX1bpUF9W6VBfVulQX1bpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KZZv//+Wb///lm///5Zv//9ddP//AAAX1QAAF9VddP//XXRhVAAAeikAAHopXXRhVJZvYVSWb2FUlm9hVJZvYVSIWRfViFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//THz//0x8//93Zf//m37//3dl//+bfv//mn5hVHdlYVSafmFUd2VhVEx8YVRMfGFUTHxhVEx8YVTkFHop5BR6KeQUeinkFBfV5BQX1eQUF9W6VBfVulQX1bpUF9W6VBfVulR6KbpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KQ=="), -"format": 34896613399, -"index_count": 204, -"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), -"material": SubResource("ShaderMaterial_8bbxb"), -"name": "BeltTopDown", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 124, -"vertex_data": PackedByteArray("AADMEI2IH88AAMwQjYgdwwAAzBCNiNjdAADMEI2I1t0AAPkeREu11gAA+R5ES+jfAAD5HkRLVPMAAPkeREtU8///+R5ES1Tz///5HkRLVPP///keREvo3///+R5ES7XW///MEI2I1t3//8wQjYgdw///zBCNiCHPAACF97pKqaUAAIX3ukqf6QAAhfe6SqDp//+F97pKn+n//4X3ukqg6f//hfe6Sqml//+F97pKqaUAABIAQOH/vwAAEgBA4VjAAAASAEDhv////xIAQOFYwP//EgBA4b////8SAEDh/78AACsQv+GqowAAKxC/4QP1AADNEIvf4rQAAM0Qi9/itAAAzRCL30DfAADNEIvfQN///80Qi99A3///zRCL30Df///NEIvf4rT//80Qi9/itP//KxC/4QP1//8rEL/hqqP//4pWHEv5////ilYcS/v///+KVhxL/78AAIpWHEv/vwAAilYcS/n/AACKVhxL+/8AAB30xEqiqgAAHfTESvH/AAAd9MRK8v///x30xErx////HfTESvL///8d9MRKoqoAAIX3AAD/vwAAhfcAAFTVAACF9wAA/////4X3AABU1f//hfcAAP////+F9wAA/78AAEUZW5Pk3AAARRlbk8ulAABFGVuT2d0AAEUZW5PBzQAA+iJmaZXQAAD6ImZpfrcAAPoiZmnzwQAA+iJmacPP///6ImZp88H///oiZmnwwf//+iJmaX63///6ImZpldD//0UZW5Pgwv//RRlbk8HN//9FGVuTzaX//0UZW5Pk3AAA///IaJ/pAAD//8ho5L8AAP//yGjrxQAA///IaALG///+/8hon+n///7/yGgBxv///v/IaOS////+/8hon+kAAAAAZf//vwAAAABl/1jAAAAAAGX//7///wAAZf9YwP//AABl//+///8AAGX//78AAJYT/v+B1AAAlhP+/z3AAACWE/7/d8EAAJYT/v+awQAARhk+7EHfAABGGT7sX6sAAEYZPuyqzAAARhk+7GjB//9GGT7sqcz//0YZPuxD3///Rhk+7F6r//9GGT7sQd///5YT//93wf//lhP//4LM//+WE///PcD//5YT//+B1P//jFZBaf+///+MVkFp/7///4xWQWn/vwAAjFZBaf+/AACMVkFp/78AAIxWQWn/vwAAIfToaP+/AAAh9Oho/78AACH06Gj/vwAAIfToaP+///8g9Oho/7///yD06Gj/v///IPToaP+///8g9Oho/78AAP//AAD/vwAA//8AAP//AAD//wAAVNX///7/AAD//////v8AAFTV///+/wAA/79YOle6EjUStalQqVCoUKhQMD4wvuBn4Od0RnRGdEZ0RnRGdEZ0RnRG4GceGDA+zkGoUKhQEjXsSlo6pEWx0Eyv/0r/Sv9K/0r/Sv9K/0r/SrHQslCx0LJQ/3///wAA/3/cv9y/AAD/f9y/3L//fwAAzq0v0qVFpUVoypa1aMqWtfNP80/yT/JP80/zT/JP8k9oymhKaMpoSqVFpUXOrc8tAkACQAFAAUD/fwAA/3///wJAAkABQAFA/3///wdAB0AGQAZAB0AHQAZABkD/fwAA/3///1RVVFX///9/VFVUVf///3//fwAAPZ/B4JROk86t3lcvKO3NKKHIXLcCMwGzO+wp7IDwdyuHz0YR1hPEEwIz/UyhyKJIltOAFNPKayWJTnUxPZ89H/9///+MJYulEx3eHA+6CB3+6f80JuPw4owlc1r/fwAA/3///wAA/3+LAHP/AAD/f4sAc///fwAAIcLdvVMzUrNQ03APwBGKEvJ/8v+XPZa9AMmBJPnSJw8o8h4pGOANMJg9Z0LyfwwAb+057t7x4ChTM6xMIcIhQvX/CQDx/w0A/38AAP9////1/wkA8f8NAPU/9L8JwPS/uP8bAB8ACwDz/9//4/9GAPU/CkAJwApA/3///////39U1aoq////f1TVqir/fwAA") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_gn6s2") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_q1ea2"] -render_priority = 0 -shader = ExtResource("5_soj22") -shader_parameter/Scale = 1.54793 -shader_parameter/Metallic = 0.94 -shader_parameter/Roughness = 0.5 -shader_parameter/Specular = 0.5 - -[sub_resource type="ArrayMesh" id="ArrayMesh_ttbkw"] -resource_name = "RCSideGuard_RCSideGuard" -_surfaces = [{ -"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856), -"attribute_data": PackedByteArray("lm///5Zv//+Wb///lm///110//8AABfVAAAX1V10//8AAHopXXRhVAAAeilddGFUlm9hVJZvYVSWb2FUiFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//d2X//5t+//93Zf//m37//3dlYVSafmFUd2VhVJp+YVRMfGFUTHxhVOQUeinkFHop5BR6KeQUF9XkFBfV5BQX1bpUF9W6VBfVulQX1bpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KZZv//+Wb///lm///5Zv//9ddP//AAAX1QAAF9VddP//XXRhVAAAeikAAHopXXRhVJZvYVSWb2FUlm9hVJZvYVSIWRfViFkX1YhZF9WIWRfViFl6KYhZeimIWXopiFl6KV10//9ddP//XXT//110YVRddGFUXXRhVEx8//9MfP//THz//0x8//93Zf//m37//3dl//+bfv//mn5hVHdlYVSafmFUd2VhVEx8YVRMfGFUTHxhVEx8YVTkFHop5BR6KeQUeinkFBfV5BQX1eQUF9W6VBfVulQX1bpUF9W6VBfVulR6KbpUeim6VHopulR6KXdlF9V3ZRfVd2UX1Xdleil3ZXopd2V6KQ=="), -"format": 34896613399, -"index_count": 204, -"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"), -"material": SubResource("ShaderMaterial_q1ea2"), -"name": "BeltTopDown", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 124, -"vertex_data": PackedByteArray("AADMEI2IH88AAMwQjYgdwwAAzBCNiNjdAADMEI2I1t0AAPkeREu11gAA+R5ES+jfAAD5HkRLVPMAAPkeREtU8///+R5ES1Tz///5HkRLVPP///keREvo3///+R5ES7XW///MEI2I1t3//8wQjYgdw///zBCNiCHPAACF97pKqaUAAIX3ukqf6QAAhfe6SqDp//+F97pKn+n//4X3ukqg6f//hfe6Sqml//+F97pKqaUAABIAQOH/vwAAEgBA4VjAAAASAEDhv////xIAQOFYwP//EgBA4b////8SAEDh/78AACsQv+GqowAAKxC/4QP1AADNEIvf4rQAAM0Qi9/itAAAzRCL30DfAADNEIvfQN///80Qi99A3///zRCL30Df///NEIvf4rT//80Qi9/itP//KxC/4QP1//8rEL/hqqP//4pWHEv5////ilYcS/v///+KVhxL/78AAIpWHEv/vwAAilYcS/n/AACKVhxL+/8AAB30xEqiqgAAHfTESvH/AAAd9MRK8v///x30xErx////HfTESvL///8d9MRKoqoAAIX3AAD/vwAAhfcAAFTVAACF9wAA/////4X3AABU1f//hfcAAP////+F9wAA/78AAEUZW5Pk3AAARRlbk8ulAABFGVuT2d0AAEUZW5PBzQAA+iJmaZXQAAD6ImZpfrcAAPoiZmnzwQAA+iJmacPP///6ImZp88H///oiZmnwwf//+iJmaX63///6ImZpldD//0UZW5Pgwv//RRlbk8HN//9FGVuTzaX//0UZW5Pk3AAA///IaJ/pAAD//8ho5L8AAP//yGjrxQAA///IaALG///+/8hon+n///7/yGgBxv///v/IaOS////+/8hon+kAAAAAZf//vwAAAABl/1jAAAAAAGX//7///wAAZf9YwP//AABl//+///8AAGX//78AAJYT/v+B1AAAlhP+/z3AAACWE/7/d8EAAJYT/v+awQAARhk+7EHfAABGGT7sX6sAAEYZPuyqzAAARhk+7GjB//9GGT7sqcz//0YZPuxD3///Rhk+7F6r//9GGT7sQd///5YT//93wf//lhP//4LM//+WE///PcD//5YT//+B1P//jFZBaf+///+MVkFp/7///4xWQWn/vwAAjFZBaf+/AACMVkFp/78AAIxWQWn/vwAAIfToaP+/AAAh9Oho/78AACH06Gj/vwAAIfToaP+///8g9Oho/7///yD06Gj/v///IPToaP+///8g9Oho/78AAP//AAD/vwAA//8AAP//AAD//wAAVNX///7/AAD//////v8AAFTV///+/wAA/79YOle6EjUStalQqVCoUKhQMD4wvuBn4Od0RnRGdEZ0RnRGdEZ0RnRG4GceGDA+zkGoUKhQEjXsSlo6pEWx0Eyv/0r/Sv9K/0r/Sv9K/0r/SrHQslCx0LJQ/3///wAA/3/cv9y/AAD/f9y/3L//fwAAzq0v0qVFpUVoypa1aMqWtfNP80/yT/JP80/zT/JP8k9oymhKaMpoSqVFpUXOrc8tAkACQAFAAUD/fwAA/3///wJAAkABQAFA/3///wdAB0AGQAZAB0AHQAZABkD/fwAA/3///1RVVFX///9/VFVUVf///3//fwAAPZ/B4JROk86t3lcvKO3NKKHIXLcCMwGzO+wp7IDwdyuHz0YR1hPEEwIz/UyhyKJIltOAFNPKayWJTnUxPZ89H/9///+MJYulEx3eHA+6CB3+6f80JuPw4owlc1r/fwAA/3///wAA/3+LAHP/AAD/f4sAc///fwAAIcLdvVMzUrNQ03APwBGKEvJ/8v+XPZa9AMmBJPnSJw8o8h4pGOANMJg9Z0LyfwwAb+057t7x4ChTM6xMIcIhQvX/CQDx/w0A/38AAP9////1/wkA8f8NAPU/9L8JwPS/uP8bAB8ACwDz/9//4/9GAPU/CkAJwApA/3///////39U1aoq////f1TVqir/fwAA") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_gn6s2") - -[sub_resource type="Resource" id="Resource_v1tfo"] -resource_local_to_scene = true script = ExtResource("10_crqpc") -active = true -segment_color = Color(0, 1, 0, 0.5) +segment_color = Color(0, 0.13333334, 1, 1) -[sub_resource type="Resource" id="Resource_g10di"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = false -segment_color = Color(1, 0.74902, 0, 1) - -[sub_resource type="Resource" id="Resource_b64ki"] -resource_local_to_scene = true -script = ExtResource("10_crqpc") -active = false -segment_color = Color(0, 0.133333, 1, 1) - -[sub_resource type="Resource" id="Resource_to6mv"] +[sub_resource type="Resource" id="Resource_8bbxb"] resource_local_to_scene = true script = ExtResource("9_fnchy") -segment_datas = [SubResource("Resource_v1tfo"), SubResource("Resource_g10di"), SubResource("Resource_b64ki")] +segment_datas = [SubResource("Resource_plrun"), SubResource("Resource_o2dim"), SubResource("Resource_mmluh")] [node name="Simulation" type="Node3D"] [node name="Building" parent="." instance=ExtResource("1_fd576")] visible = false -[node name="Despawners" type="Node3D" parent="."] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, 19.4664, 0, 9.90873) - -[node name="Despawner" parent="Despawners" instance=ExtResource("8_e5heu")] -transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 14.5, -1, 11) - -[node name="Despawner2" parent="Despawners" instance=ExtResource("8_e5heu")] -transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 18.5, -1, 11) - -[node name="Despawner3" parent="Despawners" instance=ExtResource("8_e5heu")] -transform = Transform3D(2, 0, 1.86265e-09, 0, 1, 0, -1.86265e-09, 0, 2, 22.5, -1, 11) - -[node name="Despawner4" parent="Despawners" instance=ExtResource("8_e5heu")] -transform = Transform3D(2, 0, 1.86265e-09, 0, 1, 0, -1.86265e-09, 0, 2, 10.6653, -1.12419, 11.0033) - [node name="BoxSpawner" parent="." instance=ExtResource("2_f1y6l")] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, -2.89354, 4.61495, 18.537) +transform = Transform3D(1, 0, 0, 0, 1.0000004, 0, 0, 0, 1.0000004, -0.743482, 4.614952, -8.601484) disable = true random_size = true boxes_per_minute = 15 fixed_rate = false -[node name="BoxSpawner2" parent="." instance=ExtResource("2_f1y6l")] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, 0.836117, 4.63102, 18.5668) -disable = true -random_size = true -boxes_per_minute = 15 -fixed_rate = false +[node name="Despawner" parent="." instance=ExtResource("8_e5heu")] +transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 6.6378126, -1.2590013, 10.966392) -[node name="BoxSpawner3" parent="." instance=ExtResource("2_f1y6l")] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, 5.11357, 4.61495, 18.5678) -disable = true -random_size = true -boxes_per_minute = 15 -fixed_rate = false +[node name="Despawner2" parent="." instance=ExtResource("8_e5heu")] +transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 2.9103966, -1.2590013, 10.966392) -[node name="BoxSpawner4" parent="." instance=ExtResource("2_f1y6l")] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, 9.06092, 4.61495, 18.4801) -disable = true -random_size = true -boxes_per_minute = 15 -fixed_rate = false +[node name="Despawner3" parent="." instance=ExtResource("8_e5heu")] +transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, -0.7188313, -1.2590013, 11.045784) -[node name="Jam_Photoeye" parent="." instance=ExtResource("7_078ij")] -transform = Transform3D(0.00844746, 0, -0.999964, 0, 1, 0, 0.999964, 0, 0.00844746, 10.779, 4.07674, 15.2379) -max_range = 14.405 -normally_closed = true -enable_comms = true -tag_name = "OIP_Sorter_Jam_PE" +[node name="Despawner4" parent="." instance=ExtResource("8_e5heu")] +transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 10.776077, -1.2590013, 10.966392) -[node name="S011050_JR1" parent="." instance=ExtResource("6_64bia")] -transform = Transform3D(-0.999964, 0, -0.00844741, 0, 1, 0, 0.00844741, 0, -0.999964, 8.28204, -0.641323, 0.262067) -text = "JAM RESET" -button_color = Color(1, 1, 1, 1) -enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "OIP_JR_PB" -lamp_tag_group_name = "TagGroup0" -lamp_tag_name = "OIP_JR_PB_LT" - -[node name="Chute 1" type="Node3D" parent="."] -transform = Transform3D(-0.00837723, -0.00108638, 0.999964, -0.128605, 0.991696, 5.68023e-09, -0.99166, -0.1286, -0.00844736, -3.08273, -0.205808, 1.92446) - -[node name="RollerConveyorAssembly" parent="Chute 1" instance=ExtResource("3_e5heu")] -transform = Transform3D(1, -2.98023e-08, 0, 1.49012e-08, 1, 0, 1.86265e-09, 4.65661e-10, 1, 0, 0, 0) -local_floor_plane = Plane(-0.128605, 0.991696, 2.41191e-11, -1.79419) -speed = 1.0 +[node name="RollerConveyorAssembly2" parent="." instance=ExtResource("3_e5heu")] +transform = Transform3D(-4.369646e-08, -1.1427057e-09, -1, -0.12860492, 0.99169594, 4.4863624e-09, 0.99169594, 0.12860492, -4.3480554e-08, -0.6566975, -0.205808, 8.045767) +local_floor_plane = Plane(-0.12860492, 0.99169594, -8.481731e-24, -1.7941918) +speed = 0.0 +skew_angle = 0.0 enable_comms = true speed_tag_group_name = "TagGroup0" speed_tag_name = "OIP_Chute_1.Roller" running_tag_group_name = "TagGroup0" running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(3.30658, 0.24, 2.02945) -metadata/hijack_scale = true +metadata/_edit_group_ = null +size = Vector3(3.30658, 0.24, 2.0294514) -[node name="Node3D5" parent="Chute 1" instance=ExtResource("12_mueih")] -transform = Transform3D(-8.91305e-11, 7.22414e-05, 0.00570504, -2.50111e-12, 0.0019987, -0.000206205, -0.002, -5.22959e-12, -2.43745e-10, -1.53227, 1.4, -0.180642) -metadata/_edit_lock_ = true +[node name="SideGuard2" parent="." instance=ExtResource("4_bfduw")] +transform = Transform3D(-1.3434165, 0, 1.509958e-07, 0, 1, 0, -2.0285025e-07, 0, -1, -0.6671574, -1.000947, 8.595964) +mesh = SubResource("ArrayMesh_soj22") +length = 1.3434165 -[node name="BeltConveyorAssembly4" parent="Chute 1" instance=ExtResource("16_bfduw")] -transform = Transform3D(0.991696, -0.128605, 9.31323e-10, 0.128605, 0.991696, -4.42378e-09, 9.31323e-10, 4.7099e-09, 1, -15.8689, 2.35, 0.0654416) -local_floor_plane = Plane(2.77556e-17, 1, 6.44714e-16, -6.1655) -enable_comms = false -speed_tag_name = "" -running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(4.0872, 0.5, 2.59497) -metadata/hijack_scale = true - -[node name="SideGuard" parent="Chute 1" instance=ExtResource("4_bfduw")] -transform = Transform3D(-2.15687e-07, -0.128605, -0.991696, -2.45525e-08, 0.991696, -0.128605, 1.34342, -2.52326e-09, -1.61568e-07, 0.647881, -0.717782, 0.010459) -mesh = SubResource("ArrayMesh_ko2pj") -skeleton = NodePath("../..") -length = 1.34342 - -[node name="StackLight" parent="Chute 1" instance=ExtResource("8_n3xqu")] -transform = Transform3D(-1.3069e-07, -0.0578722, 2.97509, -3.42815e-09, 0.446263, 0.385815, -3, 2.01115e-09, -1.30045e-07, 1.52954, 0.413814, -1.15868) -light_value = 1 -segments = 2 -_data = SubResource("Resource_861op") -"Light 2" = SubResource("Resource_3pf3c") -"Light 1" = SubResource("Resource_d0je0") -enable_comms = true -tag_groups = null -tag_name = "OIP_Beacon_1" - -[node name="DiffuseSensor" parent="Chute 1" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -11.0691, 2.02839, -1.79609) -max_range = 2.869 -normally_closed = true -enable_comms = true -tag_name = "OIP_100_1" - -[node name="DiffuseSensor2" parent="Chute 1" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -5.58938, 0.947756, -1.64692) -max_range = 2.364 -normally_closed = true -enable_comms = true -tag_name = "OIP_50_1" - -[node name="PKGREL_PB1" parent="Chute 1" instance=ExtResource("6_64bia")] -transform = Transform3D(-4.93601e-08, -0.128605, 0.991696, -1.16415e-09, 0.991696, 0.128605, -1, 4.69246e-09, -4.09782e-08, 1.69696, -0.229037, 0.565654) +[node name="PushButton2" parent="." instance=ExtResource("6_64bia")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.120711, -0.65118074, 9.689701) text = "PKGREL" toggle = true button_color = Color(1, 1, 1, 1) enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "OIP_PKGREL_PB4" -lamp_tag_group_name = "TagGroup0" +pushbutton_tag_name = "OIP_PKGREL_PB1" -[node name="Pallet" parent="Chute 1" instance=ExtResource("14_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.13802, -1.98086, -0.820173) +[node name="DiffuseSensor" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 1.1393856, 3.22928, -2.67058) +max_range = 2.8690000000060536 +normally_closed = true +enable_comms = true +tag_name = "OIP_100_4" -[node name="Chute 2" type="Node3D" parent="."] -transform = Transform3D(-0.00837723, -0.00108638, 0.999964, -0.128605, 0.991696, 5.68023e-09, -0.99166, -0.1286, -0.00844736, 4.43615, -0.205808, 1.89108) +[node name="DiffuseSensor2" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.99022305, 1.4529045, 2.62469) +max_range = 2.364000000001397 +normally_closed = true +enable_comms = true +tag_name = "OIP_50_4" -[node name="RollerConveyorAssembly2" parent="Chute 2" instance=ExtResource("3_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, -8.88178e-16, 3.55271e-15, 4.44089e-16, 1, -0.0233045, -0.00302219, -3.52753) -local_floor_plane = Plane(-0.128605, 0.991696, -9.22954e-11, -1.79419) -speed = 1.0 +[node name="BoxSpawner2" parent="." instance=ExtResource("2_f1y6l")] +transform = Transform3D(1, 0, 0, 0, 1.0000004, 0, 0, 0, 1.0000004, 2.8443844, 4.631021, -8.600984) +disable = true +random_size = true +boxes_per_minute = 15 +fixed_rate = false + +[node name="RollerConveyorAssembly3" parent="." instance=ExtResource("3_e5heu")] +transform = Transform3D(-4.369646e-08, -1.1427057e-09, -1, -0.12860492, 0.99169594, 4.4863624e-09, 0.99169594, 0.12860492, -4.3480554e-08, 2.8708348, -0.205808, 8.022272) +local_floor_plane = Plane(-0.12860492, 0.99169594, -8.481731e-24, -1.7941921) +speed = 0.0 +skew_angle = 0.0 enable_comms = true speed_tag_group_name = "TagGroup0" speed_tag_name = "OIP_Chute_2.Roller" running_tag_group_name = "TagGroup0" running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(3.30658, 0.24, 2.02945) -metadata/hijack_scale = true +metadata/_edit_group_ = null +size = Vector3(3.30658, 0.24, 2.0294514) -[node name="Node3D2" parent="Chute 2" instance=ExtResource("12_mueih")] -transform = Transform3D(-8.91305e-11, 7.22414e-05, 0.00570504, -2.50111e-12, 0.0019987, -0.000206205, -0.002, -5.22959e-12, -2.43745e-10, -1.532, 1.4, -3.861) -metadata/_edit_lock_ = true +[node name="SideGuard4" parent="." instance=ExtResource("4_bfduw")] +transform = Transform3D(-1.5694804, 0, 1.509958e-07, 0, 1, 0, -2.3698496e-07, 0, -1, 2.8708348, -1.000947, 8.516572) +mesh = SubResource("ArrayMesh_078ij") +length = 1.5694804 -[node name="BeltConveyorAssembly3" parent="Chute 2" instance=ExtResource("16_bfduw")] -transform = Transform3D(0.993156, -0.116792, 1.234e-05, 0.116792, 0.993156, -9.97942e-05, -5.96046e-07, 0.000100553, 1, -15.87, 2.35, -3.596) -local_floor_plane = Plane(-0.0119027, 0.999929, -7.30571e-11, -6.16564) -enable_comms = false -speed_tag_name = "" -running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(4.0872, 0.5, 2.61494) -metadata/hijack_scale = true +[node name="BoxSpawner3" parent="." instance=ExtResource("2_f1y6l")] +transform = Transform3D(1, 0, 0, 0, 1.0000004, 0, 0, 0, 1.0000004, 6.8563466, 4.614952, -8.601484) +disable = true +random_size = true +boxes_per_minute = 15 +fixed_rate = false -[node name="StackLight2" parent="Chute 2" instance=ExtResource("8_n3xqu")] -transform = Transform3D(-1.3069e-07, -0.0578722, 2.97509, -3.42815e-09, 0.446263, 0.385815, -3, 2.01115e-09, -1.30045e-07, 1.45081, 0.403604, -4.60863) -light_value = 1 -segments = 2 -_data = SubResource("Resource_50a4q") -"Light 2" = SubResource("Resource_766f7") -"Light 1" = SubResource("Resource_hpqs4") -enable_comms = true -tag_groups = null -tag_name = "OIP_Beacon_2" - -[node name="DiffuseSensor3" parent="Chute 2" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -11.0691, 2.02839, -5.49756) -max_range = 2.869 -normally_closed = true -enable_comms = true -tag_name = "OIP_100_2" - -[node name="DiffuseSensor4" parent="Chute 2" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -5.58938, 0.947756, -5.2466) -max_range = 2.339 -normally_closed = true -enable_comms = true -tag_name = "OIP_50_2" - -[node name="PKGREL_PB2" parent="Chute 2" instance=ExtResource("6_64bia")] -transform = Transform3D(-4.65661e-08, -0.128605, 0.991696, -1.16415e-09, 0.991696, 0.128605, -1, 4.58942e-09, -4.28408e-08, 1.70876, -0.227507, -2.99631) -text = "PKGREL" -toggle = true -pressed = true -button_color = Color(1, 1, 1, 1) -enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "OIP_PKGREL_PB3" -lamp_tag_group_name = "TagGroup0" - -[node name="SideGuard3" parent="Chute 2" instance=ExtResource("4_bfduw")] -transform = Transform3D(-2.47622e-07, -0.128605, -0.991696, -2.81725e-08, 0.991696, -0.128605, 1.54232, -2.53314e-09, -1.61568e-07, 0.621573, -0.721194, -3.47059) -mesh = SubResource("ArrayMesh_v7mlo") -skeleton = NodePath("../..") -length = 1.54232 - -[node name="Pallet2" parent="Chute 2" instance=ExtResource("14_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.889831, -1.98086, -0.820173) - -[node name="Chute 3" type="Node3D" parent="."] -transform = Transform3D(-0.00837723, -0.00108638, 0.999964, -0.128605, 0.991696, 5.68023e-09, -0.99166, -0.1286, -0.00844736, 4.95897, -0.205808, 1.91068) - -[node name="RollerConveyorAssembly3" parent="Chute 3" instance=ExtResource("3_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, -8.88178e-16, 3.55271e-15, 4.44089e-16, 1, 0, 0, 0) -local_floor_plane = Plane(-0.128605, 0.991696, -9.22954e-11, -1.79419) -speed = 1.0 +[node name="RollerConveyorAssembly4" parent="." instance=ExtResource("3_e5heu")] +transform = Transform3D(-4.369646e-08, -1.1427057e-09, -1, -0.12860492, 0.99169594, 4.4863624e-09, 0.99169594, 0.12860492, -4.3480554e-08, 6.7836037, -0.205808, 8.022272) +local_floor_plane = Plane(-0.12860492, 0.99169594, -8.481731e-24, -1.7941921) +speed = 0.0 +skew_angle = 0.0 enable_comms = true speed_tag_group_name = "TagGroup0" speed_tag_name = "OIP_Chute_3.Roller" running_tag_group_name = "TagGroup0" running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(3.30658, 0.24, 2.02945) -metadata/hijack_scale = true +metadata/_edit_group_ = null +size = Vector3(3.30658, 0.24, 2.0294514) -[node name="Node3D3" parent="Chute 3" instance=ExtResource("12_mueih")] -transform = Transform3D(-8.91305e-11, 7.22414e-05, 0.00570504, -2.50111e-12, 0.0019987, -0.000206205, -0.002, -5.22959e-12, -2.43745e-10, -1.50897, 1.4, -0.36802) -metadata/_edit_lock_ = true +[node name="SideGuard6" parent="." instance=ExtResource("4_bfduw")] +transform = Transform3D(-1.542319, 0, 1.509958e-07, 0, 1, 0, -2.328837e-07, 0, -1, 6.7782784, -1.000947, 8.516572) +mesh = SubResource("ArrayMesh_fnchy") +length = 1.542319 -[node name="BeltConveyorAssembly2" parent="Chute 3" instance=ExtResource("16_bfduw")] -transform = Transform3D(0.991696, -0.128605, 9.31323e-10, 0.128605, 0.991696, -4.42378e-09, 9.31323e-10, 4.7099e-09, 1, -15.8456, 2.35, -0.0880289) -local_floor_plane = Plane(2.77556e-17, 1, 6.44714e-16, -6.1625) -enable_comms = false -speed_tag_name = "" -running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(4.0872, 0.5, 2.6746) -metadata/hijack_scale = true +[node name="BoxSpawner4" parent="." instance=ExtResource("2_f1y6l")] +transform = Transform3D(1, 0, 0, 0, 1.0000004, 0, 0, 0, 1.0000004, 10.477468, 4.614952, -8.483198) +disable = true +random_size = true +boxes_per_minute = 15 +fixed_rate = false -[node name="StackLight3" parent="Chute 3" instance=ExtResource("8_n3xqu")] -transform = Transform3D(-1.3069e-07, -0.0578722, 2.97509, -3.42815e-09, 0.446263, 0.385815, -3, 2.01115e-09, -1.30045e-07, 1.47412, 0.406626, -1.0661) -light_value = 1 -segments = 2 -_data = SubResource("Resource_mmluh") -"Light 2" = SubResource("Resource_o2dim") -"Light 1" = SubResource("Resource_plrun") -enable_comms = true -tag_groups = null -tag_name = "OIP_Beacon_3" +[node name="SideGuard7" parent="." instance=ExtResource("4_bfduw")] +transform = Transform3D(-1.5479324, 0, 1.509958e-07, 0, 1, 0, -2.337313e-07, 0, -1, 10.650267, -1.000947, 8.516572) +mesh = SubResource("ArrayMesh_4weqd") +length = 1.5479324 -[node name="DiffuseSensor5" parent="Chute 3" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -11.0458, 2.03141, -1.98889) -max_range = 2.869 -normally_closed = true -enable_comms = true -tag_name = "OIP_100_3" - -[node name="DiffuseSensor6" parent="Chute 3" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48088e-10, 0.128605, 0.991696, -4.47879e-09, 2.30809e-10, 4.48637e-09, 1, -5.56608, 0.950778, -1.80512) -max_range = 2.539 -normally_closed = true -enable_comms = true -tag_name = "OIP_50_3" - -[node name="PKGREL_PB3" parent="Chute 3" instance=ExtResource("6_64bia")] -transform = Transform3D(-4.65661e-08, -0.128605, 0.991696, -1.16415e-09, 0.991696, 0.128605, -1, 4.58942e-09, -4.28408e-08, 1.63537, -0.237025, 0.581827) -text = "PKGREL" -toggle = true -pressed = true -button_color = Color(1, 1, 1, 1) -enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "OIP_PKGREL_PB2" -lamp_tag_group_name = "TagGroup0" - -[node name="SideGuard2" parent="Chute 3" instance=ExtResource("4_bfduw")] -transform = Transform3D(-2.52017e-07, -0.128605, -0.991696, -2.84053e-08, 0.991696, -0.128605, 1.56948, -2.70232e-09, -1.61568e-07, 0.618776, -0.721557, 0.0719357) -mesh = SubResource("ArrayMesh_ae0th") -skeleton = NodePath("../..") -length = 1.56948 - -[node name="Pallet3" parent="Chute 3" instance=ExtResource("14_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.9548, -1.98086, -0.820173) - -[node name="Chute 4" type="Node3D" parent="."] -transform = Transform3D(-0.00837723, -0.00108638, 0.999964, -0.128605, 0.991696, 5.68055e-09, -0.99166, -0.1286, -0.00844736, 8.7487, -0.205808, 1.87659) - -[node name="RollerConveyorAssembly4" parent="Chute 4" instance=ExtResource("3_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 3.55271e-15, 4.44089e-16, 1, 0, 0, 0) -local_floor_plane = Plane(-0.128605, 0.991696, -9.26156e-11, -1.79419) -speed = 1.0 +[node name="RollerConveyorAssembly5" parent="." instance=ExtResource("3_e5heu")] +transform = Transform3D(-4.369646e-08, -1.1427069e-09, -1, -0.12860492, 0.99169594, 4.48638e-09, 0.99169594, 0.12860492, -4.34806e-08, 10.650267, -0.205808, 8.022272) +local_floor_plane = Plane(-0.12860492, 0.99169594, 4.4408916e-16, -1.7941921) +speed = 0.0 +skew_angle = 0.0 enable_comms = true speed_tag_group_name = "TagGroup0" speed_tag_name = "OIP_Chute_4.Roller" running_tag_group_name = "TagGroup0" running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(3.30658, 0.24, 2.02945) -metadata/hijack_scale = true +metadata/_edit_group_ = null +size = Vector3(3.30658, 0.24, 2.0294514) -[node name="Node3D4" parent="Chute 4" instance=ExtResource("12_mueih")] -transform = Transform3D(-8.91305e-11, 7.22414e-05, 0.00570504, -2.50111e-12, 0.0019987, -0.000206205, -0.002, -5.22959e-12, -2.43745e-10, -1.50897, 1.4, -0.1892) -metadata/_edit_lock_ = true +[node name="PushButton6" parent="." instance=ExtResource("6_64bia")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.454508, -0.6413231, 9.698225) +text = "JAM RESET" +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "OIP_JR_PB" +lamp_tag_name = "OIP_JR_PB_LT" -[node name="BeltConveyorAssembly" parent="Chute 4" instance=ExtResource("16_bfduw")] -transform = Transform3D(0.991696, -0.128605, 9.31323e-10, 0.128605, 0.991696, -4.42378e-09, 9.31323e-10, 4.7099e-09, 1, -15.8456, 2.35, 0.0852003) -local_floor_plane = Plane(2.94903e-17, 1, 6.21898e-16, -6.1625) -enable_comms = false -speed_tag_name = "" -running_tag_name = "" -metadata/hijack_scale = true -size = Vector3(4.0872, 0.5, 2.69541) -metadata/hijack_scale = true +[node name="StackLight" parent="." instance=ExtResource("8_n3xqu")] +transform = Transform3D(3, 0, 0, 0, 0.45, 0, 0, 0, 3, 0.50197726, 0.00786281, 9.615834) +light_value = 1 +segments = 2 +_data = SubResource("Resource_3pf3c") +"Light 2" = SubResource("Resource_d0je0") +"Light 1" = SubResource("Resource_ko2pj") +enable_comms = true +tag_groups = null +tag_name = "OIP_Beacon_1" -[node name="SideGuard4" parent="Chute 4" instance=ExtResource("4_bfduw")] -transform = Transform3D(-2.48521e-07, -0.128605, -0.991696, -2.82901e-08, 0.991696, -0.128605, 1.54793, -2.52329e-09, -1.61568e-07, 0.592455, -0.72497, 0) -mesh = SubResource("ArrayMesh_ttbkw") -skeleton = NodePath("../..") -length = 1.54793 +[node name="PushButton3" parent="." instance=ExtResource("6_64bia")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.456698, -0.65118074, 9.668287) +text = "PKGREL" +toggle = true +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "OIP_PKGREL_PB2" -[node name="StackLight4" parent="Chute 4" instance=ExtResource("8_n3xqu")] -transform = Transform3D(-1.3069e-07, -0.0578722, 2.97509, -3.42809e-09, 0.446263, 0.385815, -3, 2.01115e-09, -1.30045e-07, 1.47412, 0.406626, -1.0484) +[node name="DiffuseSensor3" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4.840864, 3.22928, -2.67058) +max_range = 2.8690000000060536 +normally_closed = true +enable_comms = true +tag_name = "OIP_100_3" + +[node name="DiffuseSensor4" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4.589905, 1.4529045, 2.62469) +max_range = 2.3390000000072177 +normally_closed = true +enable_comms = true +tag_name = "OIP_50_3" + +[node name="StackLight2" parent="." instance=ExtResource("8_n3xqu")] +transform = Transform3D(3, 0, 0, 0, 0.45, 0, 0, 0, 3, 3.9519317, 0.00786281, 9.536442) +light_value = 1 +segments = 2 +_data = SubResource("Resource_766f7") +"Light 2" = SubResource("Resource_hpqs4") +"Light 1" = SubResource("Resource_861op") +enable_comms = true +tag_groups = null +tag_name = "OIP_Beacon_2" + +[node name="PushButton4" parent="." instance=ExtResource("6_64bia")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.242034, -0.65118074, 9.657697) +text = "PKGREL" +toggle = true +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "OIP_PKGREL_PB3" + +[node name="DiffuseSensor5" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 8.772493, 3.22928, -2.67058) +max_range = 2.8690000000060536 +normally_closed = true +enable_comms = true +tag_name = "OIP_100_2" + +[node name="DiffuseSensor6" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 8.588723, 1.4529045, 2.62469) +max_range = 2.5390000000043074 +normally_closed = true +enable_comms = true +tag_name = "OIP_50_2" + +[node name="StackLight3" parent="." instance=ExtResource("8_n3xqu")] +transform = Transform3D(3, 0, 0, 0, 0.45, 0, 0, 0, 3, 7.849701, 0.00786281, 9.536442) +light_value = 1 +segments = 2 +_data = SubResource("Resource_v7mlo") +"Light 2" = SubResource("Resource_jiaeu") +"Light 1" = SubResource("Resource_50a4q") +enable_comms = true +tag_groups = null +tag_name = "OIP_Beacon_3" + +[node name="PushButton5" parent="." instance=ExtResource("6_64bia")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.143609, -0.65118074, 9.676184) +text = "PKGREL" +toggle = true +button_color = Color(1, 1, 1, 1) +enable_comms = true +pushbutton_tag_name = "OIP_PKGREL_PB4" + +[node name="DiffuseSensor7" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 12.403706, 3.22928, -2.67058) +max_range = 2.9140000000043074 +normally_closed = true +enable_comms = true +tag_name = "OIP_100_1" + +[node name="DiffuseSensor8" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 12.309415, 1.4529045, 2.62469) +max_range = 2.4490000000078 +normally_closed = true +enable_comms = true +tag_name = "OIP_50_1" + +[node name="StackLight4" parent="." instance=ExtResource("8_n3xqu")] +transform = Transform3D(3, 0, 0, 0, 0.45, 0, 0, 0, 3, 11.698708, 0.00786281, 9.536442) light_value = 1 segments = 3 -_data = SubResource("Resource_to6mv") -"Light 3" = SubResource("Resource_b64ki") -"Light 2" = SubResource("Resource_g10di") -"Light 1" = SubResource("Resource_v1tfo") +_data = SubResource("Resource_8bbxb") +"Light 3" = SubResource("Resource_mmluh") +"Light 2" = SubResource("Resource_o2dim") +"Light 1" = SubResource("Resource_plrun") enable_comms = true tag_groups = null tag_name = "OIP_Beacon_4" -[node name="DiffuseSensor7" parent="Chute 4" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48091e-10, 0.128605, 0.991696, -4.47881e-09, 2.30809e-10, 4.48637e-09, 1, -11.0458, 2.03141, -1.7534) -max_range = 2.914 -normally_closed = true -enable_comms = true -tag_name = "OIP_100_4" +[node name="Box" parent="." instance=ExtResource("11_4weqd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -369.559, 1065.39, -388.304) -[node name="DiffuseSensor8" parent="Chute 4" instance=ExtResource("7_078ij")] -transform = Transform3D(0.991696, -0.128605, 3.48091e-10, 0.128605, 0.991696, -4.47881e-09, 2.30809e-10, 4.48637e-09, 1, -5.56608, 0.950778, -1.6591) -max_range = 2.449 -normally_closed = true -enable_comms = true -tag_name = "OIP_50_4" +[node name="Node3D2" parent="." instance=ExtResource("12_mueih")] +transform = Transform3D(0.002, 0, 0, 0, 0.0019728073, -0.00093818986, 0, 0.00032868359, 0.0056311535, 3.2044446, 1.3318447, 6.7000737) +metadata/_edit_lock_ = true -[node name="PKGREL_PB4" parent="Chute 4" instance=ExtResource("6_64bia")] -transform = Transform3D(-4.74975e-08, -0.128605, 0.991696, -1.16415e-09, 0.991696, 0.128605, -1, 4.62376e-09, -4.28408e-08, 1.66528, -0.233146, 0.673018) -text = "PKGREL" -toggle = true -pressed = true -button_color = Color(1, 1, 1, 1) -enable_comms = true -pushbutton_tag_group_name = "TagGroup0" -pushbutton_tag_name = "OIP_PKGREL_PB1" -lamp_tag_group_name = "TagGroup0" +[node name="Node3D5" parent="." instance=ExtResource("12_mueih")] +transform = Transform3D(0.002, 0, 0, 0, 0.0019728073, -0.00093818986, 0, 0.00032868359, 0.0056311535, -0.47605586, 1.3318447, 6.7000737) +metadata/_edit_lock_ = true -[node name="Pallet4" parent="Chute 4" instance=ExtResource("14_e5heu")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.68567, -1.98086, -0.820173) +[node name="Node3D3" parent="." instance=ExtResource("12_mueih")] +transform = Transform3D(0.002, 0, 0, 0, 0.0019728073, -0.00093818986, 0, 0.00032868359, 0.0056311535, 7.151624, 1.3318447, 6.7000737) +metadata/_edit_lock_ = true + +[node name="Node3D4" parent="." instance=ExtResource("12_mueih")] +transform = Transform3D(0.002, 0, 0, 0, 0.0019728073, -0.00093818986, 0, 0.00032868359, 0.0056311535, 10.839519, 1.3318447, 6.7000737) +metadata/_edit_lock_ = true + +[node name="Pallet" parent="." instance=ExtResource("13_4jac4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8984337, -1.9808581, 10.65868) + +[node name="Pallet2" parent="." instance=ExtResource("13_4jac4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8449712, -1.9808581, 10.579288) + +[node name="Pallet3" parent="." instance=ExtResource("13_4jac4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.745958, -1.9808581, 10.579288) + +[node name="Pallet4" parent="." instance=ExtResource("13_4jac4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.838962, -1.9808581, 10.579288) [node name="Utils" type="Node" parent="."] -script = ExtResource("15_8uneb") +script = ExtResource("15_ko2pj") + +[node name="DiffuseSensor9" parent="." instance=ExtResource("7_078ij")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.7511322, 3.900692, -5.340882) +max_range = 14.404999999998836 +normally_closed = true +enable_comms = true +tag_name = "OIP_Sorter_Jam_PE" + +[node name="BeltConveyorAssembly" parent="." instance=ExtResource("16_bfduw")] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 10.565143, 4.0789847, -7.400328) +local_floor_plane = Plane(0, 1, 0, -6.0789847) +enable_comms = false +speed_tag_name = "" +running_tag_name = "" +size = Vector3(4.0872, 0.5, 2.695411) + +[node name="BeltConveyorAssembly2" parent="." instance=ExtResource("16_bfduw")] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 6.871631, 4.0789847, -7.400328) +local_floor_plane = Plane(0, 1, 0, -6.0789847) +enable_comms = false +speed_tag_name = "" +running_tag_name = "" +size = Vector3(4.0872, 0.5, 2.6746023) + +[node name="BeltConveyorAssembly3" parent="." instance=ExtResource("16_bfduw")] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.9286826, 4.0789847, -7.400328) +local_floor_plane = Plane(0, 1, 0, -6.0789847) +enable_comms = false +speed_tag_name = "" +running_tag_name = "" +size = Vector3(4.0872, 0.5, 2.6149385) + +[node name="BeltConveyorAssembly4" parent="." instance=ExtResource("16_bfduw")] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -0.72213936, 4.0789847, -7.400328) +local_floor_plane = Plane(0, 1, 0, -6.0789847) +enable_comms = false +speed_tag_name = "" +running_tag_name = "" +size = Vector3(4.0872, 0.5, 2.5949652) diff --git a/PLC/Simulations/PALLET_BUILD/OIP/utils.gd b/PLC/Simulations/PALLET_BUILD/OIP/utils.gd index 58d581c..1cea82c 100644 --- a/PLC/Simulations/PALLET_BUILD/OIP/utils.gd +++ b/PLC/Simulations/PALLET_BUILD/OIP/utils.gd @@ -13,15 +13,15 @@ func _ready() -> void: func _on_simulation_started() -> void: - OIPComms.register_tag(tag_group, "S011050.CTRL.STS.Ready", 1) - OIPComms.register_tag(tag_group, "S011052.CTRL.STS.Ready", 1) - OIPComms.register_tag(tag_group, "S011054.CTRL.STS.Ready", 1) OIPComms.register_tag(tag_group, "S011056.CTRL.STS.Ready", 1) + OIPComms.register_tag(tag_group, "S011054.CTRL.STS.Ready", 1) + OIPComms.register_tag(tag_group, "S011052.CTRL.STS.Ready", 1) + OIPComms.register_tag(tag_group, "S011050.CTRL.STS.Ready", 1) func _physics_process(delta: float) -> void: - box_spawner.disable = bool(not OIPComms.read_bit(tag_group,"S011050.CTRL.STS.Ready")) - box_spawner_2.disable = bool(not OIPComms.read_bit(tag_group,"S011052.CTRL.STS.Ready")) - box_spawner_3.disable = bool(not OIPComms.read_bit(tag_group,"S011054.CTRL.STS.Ready")) - box_spawner_4.disable = bool(not OIPComms.read_bit(tag_group,"S011056.CTRL.STS.Ready")) + box_spawner.disable = bool(not OIPComms.read_bit(tag_group,"S011056.CTRL.STS.Ready")) + box_spawner_2.disable = bool(not OIPComms.read_bit(tag_group,"S011054.CTRL.STS.Ready")) + box_spawner_3.disable = bool(not OIPComms.read_bit(tag_group,"S011052.CTRL.STS.Ready")) + box_spawner_4.disable = bool(not OIPComms.read_bit(tag_group,"S011050.CTRL.STS.Ready")) diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FIO_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FIO_AOI.L5X deleted file mode 100644 index 123e937..0000000 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FIO_AOI.L5X +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X index ddb7640..f7a3eae 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X @@ -1,6 +1,8 @@  - + + + @@ -19,6 +21,9 @@ + + + @@ -27,11 +32,17 @@ + + + + + + @@ -39,6 +50,9 @@ + + + @@ -50,6 +64,9 @@ + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X new file mode 100644 index 0000000..c6f6203 --- /dev/null +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_IO_BLOCK_AOI.L5X @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If that exact line later appears in MCM.STS.Acknowledge_Log, IOBlock latches Acknowledge and clears the entry to keep the log concise. +The command MCM.STS.Unacknowledge_All_Logs resets the latch so the next fault generates a fresh message. + +Command bits +The routine receives Communication_Fault from its own interface monitor. +The routine receives Parent.STS.Communication_Faulted from the immediate upstream device. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either the local or parent link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 while links are healthy and 1 while any link is lost. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and Parent.STS.Communication_Faulted is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever IOBlock itself loses communication and the parent link is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_PB_CHUTE_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_PB_CHUTE_AOI.L5X index fbb2f2d..3d6d6c7 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_PB_CHUTE_AOI.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_PB_CHUTE_AOI.L5X @@ -1,8 +1,271 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18,11 +281,21 @@ - + + + + + + + + + + + @@ -31,30 +304,36 @@ + + + - + + + + - - - + + + - - - + + + @@ -63,6 +342,9 @@ + + + @@ -71,26 +353,41 @@ + + + + + + + + + + + + + + + @@ -98,6 +395,9 @@ + + + @@ -106,6 +406,9 @@ + + + @@ -120,6 +423,9 @@ + + + @@ -131,6 +437,9 @@ + + + @@ -145,6 +454,9 @@ + + + @@ -153,6 +465,9 @@ + + + @@ -162,6 +477,85 @@ + + + @@ -193,12 +587,12 @@ - + - + @@ -336,7 +730,6 @@ - diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X index 162c88b..deb4bbc 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/AOI_STATION_JR_CHUTE_AOI.L5X @@ -1,7 +1,170 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -21,6 +184,9 @@ + + + @@ -29,6 +195,9 @@ + + + @@ -37,6 +206,9 @@ + + + @@ -45,6 +217,9 @@ + + + @@ -53,6 +228,9 @@ + + + @@ -60,6 +238,9 @@ + + + @@ -74,6 +255,9 @@ + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Beacon_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Beacon_AOI.L5X index b992a0e..12a178f 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Beacon_AOI.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Beacon_AOI.L5X @@ -1,7 +1,109 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16,31 +118,49 @@ + + + + + + + + + + + + + + + + + + @@ -48,6 +168,9 @@ + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Chute_AOI.L5X b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Chute_AOI.L5X index 36c7670..0b57ea8 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Chute_AOI.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/AOIs/OIP_Chute_AOI.L5X @@ -1,6 +1,8 @@  - + + + @@ -16,11 +18,17 @@ + + + + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/PalletBuild.L5X b/PLC/Simulations/PALLET_BUILD/PLC/PalletBuild.L5X index 05bc58b..54402a1 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/PalletBuild.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/PalletBuild.L5X @@ -1,11 +1,21 @@  - - + + + + + + - - - - - + - @@ -73,6 +73,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - @@ -668,6 +654,85 @@ + + + @@ -699,12 +764,12 @@ - + - + @@ -1124,6 +1189,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If that exact line later appears in MCM.STS.Acknowledge_Log, IOBlock latches Acknowledge and clears the entry to keep the log concise. +The command MCM.STS.Unacknowledge_All_Logs resets the latch so the next fault generates a fresh message. + +Command bits +The routine receives Communication_Fault from its own interface monitor. +The routine receives Parent.STS.Communication_Faulted from the immediate upstream device. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either the local or parent link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 while links are healthy and 1 while any link is lost. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and Parent.STS.Communication_Faulted is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever IOBlock itself loses communication and the parent link is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1239,10 +1499,10 @@ - + - + @@ -1261,26 +1521,29 @@ - + - - - + + + - - + + @@ -1290,9 +1553,15 @@ + + + + + - - + + + @@ -1300,7 +1569,7 @@ - + @@ -1309,7 +1578,7 @@ - + @@ -1420,7 +1689,7 @@ - + @@ -1445,7 +1714,7 @@ - + @@ -1470,7 +1739,7 @@ - + @@ -1487,15 +1756,15 @@ - + - + - + @@ -1503,10 +1772,10 @@ - + - + @@ -1572,10 +1841,10 @@ - + - + @@ -1644,16 +1913,16 @@ - + - + - @@ -1661,6 +1930,7 @@ + @@ -1678,10 +1948,10 @@ - + - + @@ -1698,8 +1968,8 @@ - - + + @@ -1713,7 +1983,7 @@ - + @@ -1721,16 +1991,16 @@ - + - - + + - + @@ -1740,7 +2010,7 @@ - + @@ -1748,8 +2018,8 @@ - @@ -1757,6 +2027,7 @@ + @@ -1774,10 +2045,10 @@ - + - + @@ -1794,8 +2065,8 @@ - - + + @@ -1809,8 +2080,8 @@ - @@ -1818,6 +2089,7 @@ + @@ -1835,10 +2107,10 @@ - + - + @@ -1855,8 +2127,8 @@ - - + + @@ -1870,8 +2142,8 @@ - @@ -1879,6 +2151,7 @@ + @@ -1896,10 +2169,10 @@ - + - + @@ -1916,8 +2189,8 @@ - - + + @@ -1963,15 +2236,15 @@ - + - - + + - + @@ -2017,7 +2290,7 @@ - + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/IO_BLOCK_DataTypes.L5X b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/IO_BLOCK_DataTypes.L5X new file mode 100644 index 0000000..4b25939 --- /dev/null +++ b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/IO_BLOCK_DataTypes.L5X @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If that exact line later appears in MCM.STS.Acknowledge_Log, IOBlock latches Acknowledge and clears the entry to keep the log concise. +The command MCM.STS.Unacknowledge_All_Logs resets the latch so the next fault generates a fresh message. + +Command bits +The routine receives Communication_Fault from its own interface monitor. +The routine receives Parent.STS.Communication_Faulted from the immediate upstream device. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either the local or parent link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 while links are healthy and 1 while any link is lost. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and Parent.STS.Communication_Faulted is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever IOBlock itself loses communication and the parent link is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/PB_CHUTE_DataType.L5X b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/PB_CHUTE_DataType.L5X index 4ca1ae1..9897aee 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/PB_CHUTE_DataType.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/PB_CHUTE_DataType.L5X @@ -1,7 +1,47 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X index 08fc283..945118b 100644 --- a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X +++ b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X @@ -1,5 +1,5 @@  - + @@ -76,5 +76,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/UDT_FIO_DataType.L5X b/PLC/Simulations/PALLET_BUILD/PLC/UDTs/UDT_FIO_DataType.L5X deleted file mode 100644 index cc4a03e..0000000 --- a/PLC/Simulations/PALLET_BUILD/PLC/UDTs/UDT_FIO_DataType.L5X +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PLC/UDTs/D2C_CHUTE_DataTypes.L5X b/PLC/UDTs/D2C_CHUTE_DataTypes.L5X index af5bc06..e886d82 100644 --- a/PLC/UDTs/D2C_CHUTE_DataTypes.L5X +++ b/PLC/UDTs/D2C_CHUTE_DataTypes.L5X @@ -1,6 +1,6 @@  - - + + @@ -575,6 +575,19 @@ + + @@ -582,8 +595,7 @@ - + @@ -683,8 +695,7 @@ - + @@ -1154,8 +1165,7 @@ Not Available at thsi time.]]> - + @@ -1650,11 +1660,11 @@ Not Available at thsi time.]]> - + - + @@ -1667,11 +1677,11 @@ Not Available at thsi time.]]> - + - + @@ -1814,7 +1824,7 @@ HMI.Alarms.No_Container – no container present - + @@ -1967,9 +1977,29 @@ HMI.Alarms.No_Container – no container present + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/UDTs/Extendo_DataType.L5X b/PLC/UDTs/Extendo_DataType.L5X index c0c4fd3..3155747 100644 --- a/PLC/UDTs/Extendo_DataType.L5X +++ b/PLC/UDTs/Extendo_DataType.L5X @@ -1,6 +1,6 @@  - - + + @@ -435,6 +435,11 @@ - + @@ -457,8 +461,8 @@ - - + + @@ -1069,8 +1073,14 @@ HMI.Alarm.Extendo_Faulted – raised when Extendo Faulted is true. + + + + + + diff --git a/PLC/UDTs/FL_CHUTE_DataType.L5X b/PLC/UDTs/FL_CHUTE_DataType.L5X index dd7412e..a80d9e6 100644 --- a/PLC/UDTs/FL_CHUTE_DataType.L5X +++ b/PLC/UDTs/FL_CHUTE_DataType.L5X @@ -1,7 +1,47 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X b/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X index 6d89c4f..d246119 100644 --- a/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X +++ b/PLC/UDTs/STATION_JR_CHUTE_DataType.L5X @@ -1,6 +1,6 @@  - - + + @@ -77,8 +77,7 @@ - + @@ -178,8 +177,7 @@ - + @@ -277,60 +275,6 @@ - - - From b04cf3b4c1be06916bbb0f8e920d5d1664552e40 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <55makharadze@gmail.com> Date: Mon, 4 Aug 2025 12:44:02 +0400 Subject: [PATCH 2/2] FMH Extendo --- PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X | 467 +++ .../FMH EXTENDO/PLC/AOIs/AOI_DPM_AOI.L5X | 381 +++ .../PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X | 110 + .../PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X | 467 +++ .../FMH EXTENDO/PLC/AOIs/AOI_MCM_AOI.L5X | 1187 +++++++ .../FMH EXTENDO/PLC/FMH_EXTENDO.L5X | 2727 +++++++++++++++++ .../PLC/UDTs/FMH_EXTENDO_DataTypes.L5X | 478 +++ .../PLC/UDTs/IO_BLOCK_DataTypes.L5X | 392 +++ .../FMH EXTENDO/PLC/UDTs/MCM_DataTypes.L5X | 1198 ++++++++ PLC/UDTs/FMH_EXTENDO_DataTypes.L5X | 478 +++ 10 files changed, 7885 insertions(+) create mode 100644 PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_DPM_AOI.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_MCM_AOI.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/FMH_EXTENDO.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/UDTs/IO_BLOCK_DataTypes.L5X create mode 100644 PLC/Simulations/FMH EXTENDO/PLC/UDTs/MCM_DataTypes.L5X create mode 100644 PLC/UDTs/FMH_EXTENDO_DataTypes.L5X diff --git a/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X b/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X new file mode 100644 index 0000000..ebd7231 --- /dev/null +++ b/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_DPM_AOI.L5X b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_DPM_AOI.L5X new file mode 100644 index 0000000..a68bad3 --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_DPM_AOI.L5X @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X new file mode 100644 index 0000000..3a9f75d --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X new file mode 100644 index 0000000..c95e915 --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_FMH_EXTENDO_AOI.L5X @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_MCM_AOI.L5X b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_MCM_AOI.L5X new file mode 100644 index 0000000..1c23e27 --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/AOIs/AOI_MCM_AOI.L5X @@ -0,0 +1,1187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/FMH_EXTENDO.L5X b/PLC/Simulations/FMH EXTENDO/PLC/FMH_EXTENDO.L5X new file mode 100644 index 0000000..bd54283 --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/FMH_EXTENDO.L5X @@ -0,0 +1,2727 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X new file mode 100644 index 0000000..cdb4b75 --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/UDTs/IO_BLOCK_DataTypes.L5X b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/IO_BLOCK_DataTypes.L5X new file mode 100644 index 0000000..79281ce --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/IO_BLOCK_DataTypes.L5X @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity. +If the same line later appears in MCM.STS.Acknowledge_Log, the routine latches Acknowledge and clears the entry so the log stays current. + +The command bit MCM.STS.Unacknowledge_All_Logs resets the Acknowledge latch, guaranteeing that the next loss of communication will produce a fresh message. + +Command bits +The routine receives Communication_Fault from its own port monitor. +The routine receives EN4TR_Communication_Fault from the rack adapter. +The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch. + +Status bits +The routine sets Communication_Faulted when either link is down. +The routine sets CTRL.STS.Communication_Faulted with the same value. + +HMI bits +The HMI displays HMI.STATE as 0 for healthy and 1 for faulted. +The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and EN4TR_Communication_Fault is false. + +Alarm bits +The system raises HMI.Alarm.Communication_Faulted whenever the switch itself loses communication and the EN4TR adapter is still online. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/Simulations/FMH EXTENDO/PLC/UDTs/MCM_DataTypes.L5X b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/MCM_DataTypes.L5X new file mode 100644 index 0000000..98171cd --- /dev/null +++ b/PLC/Simulations/FMH EXTENDO/PLC/UDTs/MCM_DataTypes.L5X @@ -0,0 +1,1198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +” ) and pushes it into the MCM control log. The log word CTRL.CMD.Log carries the message, while CTRL.CMD.Log_Quantity increments the running count. The MCM mirrors both values to CTRL.STS.Log and CTRL.STS.Log_Quantity so the operator panel can display them. +At the same time, the MCM keeps an internal Acknowledge latch: each AOI pulses Un-acknowledge so that any new or persisting fault keeps resurfacing until the operator cycles through and acknowledges it. This ensures that fresh problems never scroll off the list unnoticed. + +The module asserts System_Started whenever a start command is present and all interlocks—Stop command, every E-Stop, and the fire relay—are healthy; both coils drop the instant any interlock fails. + +Indicator lamps behave as follows: +• Motor_Fault_Reset_PB_LT_O flashes while CTRL.CMD.VFD_Faulted is active and turns solid once the fault clears but Motor_Was_Faulted is still set. +• Jam_Restart_PB_LT_O is solid during a jam fault and flashes when an encoder fault is present. +• EStop_Actuated_LT_O flashes during a live remote E-Stop and stays solid until EStop_Was_Actuated is cleared. +• Low_Air_Pressure_Reset_PB_LT_O flashes for a live low-air fault and remains solid while Low_Air_Pressure_Fault_Was_Present is true. +• Power_Branch_Fault_Reset_PB_LT_O flashes during an active branch fault and remains solid while Power_Branch_Was_Faulted is set. + +Each push-button transmits a four-state value to the HMI: state 1 idle/dark, state 2 lit, state 3 pressed-lit, and state 4 pressed-dark. +Start_PB_LT_O lights whenever the system is running. + +HMI.STATE cascade – the lower move wins: +• System_Started true writes 9. +• System_Started false writes 0. +• Motor_Was_Faulted writes 1. +• Power_Branch_Was_Faulted writes 2. +• Low_Air_Pressure_Fault_Was_Present writes 3. +• Encoder_Fault writes 4. +• Jam_Fault writes 5. +• Communication_Faulted writes 6. +• EStop_Was_Actuated writes 7. +• EStopped_Locally writes 8 and has the highest priority. + +When HMI.Setup_Motor_Speeds is asserted, the module broadcasts the configured speed set-points to every drive in the system. + +A housekeeping section clears the command word each scan and unlatches all momentary HMI bits, making every press a clean one-shot. + +Command bits +The module receives CTRL.CMD.Log. +The module receives CTRL.CMD.Log_Quantity. +The module receives CTRL.CMD.Acknowledge_Log. +The module receives CTRL.CMD.Unacknowledge_All_Logs. +The module receives CTRL.CMD.VFD_Was_Faulted. +The module receives CTRL.CMD.Power_Branch_Was_Faulted. +The module receives CTRL.CMD.Low_Air_Pressure_Fault_Was_Present. +The module receives CTRL.CMD.Encoder_Fault. +The module receives CTRL.CMD.Jam_Fault. +The module receives CTRL.CMD.Communication_Faulted. +The module receives CTRL.CMD.EStop_Was_Actuated. +The module receives CTRL.CMD.VFD_Faulted. +The module receives CTRL.CMD.EStop_Actuated. +The module receives CTRL.CMD.Low_Air_Pressure_Fault. +The module receives CTRL.CMD.Power_Branch_Fault. + +Status bits +The module sets CTRL.STS.Log. +The module sets CTRL.STS.Log_Quantity. +The module sets CTRL.STS.Acknowledge_Log. +The module sets CTRL.STS.Unacknowledge_All_Logs. +The module sets CTRL.STS.Communication_Faulted. +The module sets CTRL.STS.System_Started. +The module sets CTRL.STS.System_Start_Requested. +The module sets CTRL.STS.Setup_Motor_Speeds. +The module sets CTRL.STS.VFD_Fault_Reset_Requested. +The module sets CTRL.STS.Power_Branch_Fault_Reset_Requested. +The module sets CTRL.STS.Low_Air_Pressure_Fault_Reset_Requested. +The module sets CTRL.STS.Jam_Reset_Requested. + +HMI bits +The HMI exchanges HMI.Start_PB. +The HMI exchanges HMI.Stop_PB. +The HMI exchanges HMI.Setup_Motor_Speeds. +The HMI exchanges HMI.Motor_Fault_Reset_PB. +The HMI exchanges HMI.Power_Branch_Fault_Reset_PB. +The HMI exchanges HMI.Low_Air_Pressure_Reset_PB. +The HMI exchanges HMI.Jam_Restart_PB. +The HMI displays HMI.STATE. +The HMI displays HMI.Start_PB_STATE. +The HMI displays HMI.Motor_Fault_Reset_PB_STATE. +The HMI displays HMI.Power_Branch_Fault_Reset_PB_STATE. +The HMI displays HMI.Low_Air_Pressure_Reset_PB_STATE. +The HMI displays HMI.Jam_Restart_PB_STATE. +The HMI displays HMI.EStop_Actuated_LT. +The HMI displays HMI.Local_Estop_LT. + +Alarm bits +The system raises HMI.Alarm.Start_PB_Pressed. +The system raises HMI.Alarm.Stop_PB_Pressed. +The system raises HMI.Alarm.Motor_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.Jam_Restart_PB_Pressed. +The system raises HMI.Alarm.Low_Air_Pressure_Reset_PB_Pressed. +The system raises HMI.Alarm.Power_Branch_Fault_Reset_PB_Pressed. +The system raises HMI.Alarm.UPS_Battery_Fault. +The system raises HMI.Alarm.On_UPS_Battery. +The system raises HMI.Alarm.UPS_Battery_Low. +The system raises HMI.Alarm.NAT_Switch_Fault. +The system raises HMI.Alarm.Fire_Relay_De_Energized. +The system raises HMI.Alarm.EStopped_Locally. +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X b/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X new file mode 100644 index 0000000..5634535 --- /dev/null +++ b/PLC/UDTs/FMH_EXTENDO_DataTypes.L5X @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +