diff --git a/PLC/Simulations/APF/OIP/APF_Simulation.tscn b/PLC/Simulations/APF/OIP/APF_Simulation.tscn
new file mode 100644
index 0000000..c4e4ba8
--- /dev/null
+++ b/PLC/Simulations/APF/OIP/APF_Simulation.tscn
@@ -0,0 +1,277 @@
+[gd_scene load_steps=7 format=3 uid="uid://cq1fmnclqo0ud"]
+
+[ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_gqsni"]
+[ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="2_lfim2"]
+[ext_resource type="Script" uid="uid://c3kn5pjvo10bq" path="res://apf.gd" id="3_f50vn"]
+[ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="4_qrepp"]
+[ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="5_tcev8"]
+[ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="6_e747n"]
+
+[node name="Simulation" type="Node3D"]
+
+[node name="Building" parent="." instance=ExtResource("1_gqsni")]
+
+[node name="FL1038_2" parent="." instance=ExtResource("2_lfim2")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.70003, 0.000999277, -0.454722)
+local_floor_plane = Plane(0, 1, 0, -2.001)
+speed = 0.0
+enable_comms = true
+speed_tag_name = "FL1038_2_OIP"
+running_tag_name = ""
+metadata/hijack_scale = true
+size = Vector3(14.8874, 0.5, 1.524)
+metadata/hijack_scale = true
+
+[node name="Node" type="Node" parent="." node_paths=PackedStringArray("FL1038_2", "box_spawner")]
+script = ExtResource("3_f50vn")
+FL1038_2 = NodePath("../FL1038_2")
+box_spawner = NodePath("../BoxSpawner")
+
+[node name="BoxSpawner" parent="." instance=ExtResource("4_qrepp")]
+transform = Transform3D(0.908734, 2.0902e-09, -8.46324e-10, -2.0902e-09, 0.908734, 8.04008e-09, 8.46324e-10, -8.04008e-09, 0.908734, -7.86232, 0.504191, -0.458427)
+disable = true
+
+[node name="Despawner" parent="." instance=ExtResource("5_tcev8")]
+transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, 3.18745, 0.5, -0.3678)
+
+[node name="Disconected" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.35205, 0.0894268, 0.468417)
+text = "Disconected"
+toggle = true
+pressed = true
+button_color = Color(0.260259, 0.3398, 0.386631, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "Disconnected_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="MCM_Start_Button" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9369, 0.0855748, 0.444525)
+text = "MCM Start"
+button_color = Color(0.0352941, 1, 0, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "MCM_Start_PushButton_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Jammed" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.0964, 0.107454, 0.443829)
+text = "Jammed"
+toggle = true
+button_color = Color(0.989998, 0.947781, 0.949246, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_JAMMED_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Estop" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.75448, 0.0942386, 0.480748)
+text = "Estop"
+toggle = true
+pressed = true
+button_color = Color(0.972549, 0, 0, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "EStopped_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Encoder_Fault" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.67273, 0.108256, 0.443829)
+text = "Encoder_Fault"
+toggle = true
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_ENCODER_FAULT_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Full" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.25571, 0.108833, 0.443829)
+text = "FULL"
+toggle = true
+button_color = Color(0, 0, 1, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_FULL_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Interlock" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9392, -0.308646, 0.440302)
+text = "Interlock"
+toggle = true
+pressed = true
+button_color = Color(0, 1, 0.25098, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_INTERLOCK_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="VFD_Fault_Reset" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.34432, -0.305163, 0.469469)
+text = "VFD_Fault_Reset"
+button_color = Color(0, 0.988235, 0, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "VFD_Fault_Reset_Button_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="VFD_Fault" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3405, 0.470611, 0.483969)
+text = "VFD Fault"
+toggle = true
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_VFD_FAULT_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Power_Saving" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.44535, 0.0722519, 0.397527)
+text = "Power_Saving"
+toggle = true
+button_color = Color(0.87658, 0.000391592, 0.828084, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_POWER_SAVING_MODE_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="StopButton" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.09258, 0.0938599, 0.434032)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "Station_Stop_PB_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="StartButton" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.42198, 0.09431, 0.44369)
+text = "START"
+button_color = Color(0, 1, 0, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "Station_Start_PB_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Start_Stop_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.2373, 0.44058, 0.716726)
+text = "Start/Stop
+"
+font_size = 20
+
+[node name="VFD_Fault_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.32918, 0.758028, 0.627988)
+text = "VFD Fualt
+"
+font_size = 20
+
+[node name="Power_Saving_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.42426, 0.430885, 0.499979)
+text = "Power
+Saving
+"
+font_size = 20
+
+[node name="Estop_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.77729, 0.422073, 0.521624)
+text = "Estop"
+font_size = 20
+
+[node name="Disconect_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3465, 0.266181, 0.766382)
+text = "Disconected"
+font_size = 20
+
+[node name="VFD_Fault_Reset_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.34581, -0.59562, 0.751668)
+text = "VFD Fault
+ Reset
+"
+font_size = 20
+
+[node name="Jammed_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.13238, 0.456212, 0.829814)
+text = "Jammed"
+font_size = 20
+
+[node name="Encoder_Fault_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.6845, 0.461905, 0.744063)
+text = "Encoder
+ Fault"
+font_size = 20
+
+[node name="Full_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.25618, 0.411116, 0.655028)
+text = "Full"
+font_size = 20
+
+[node name="MCM_Start_Button_Label" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.631, 0.111411, 0.64058)
+text = "MCM Start Button"
+font_size = 20
+
+[node name="Interlock_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.3954, -0.266106, 0.682187)
+text = "Interlock"
+font_size = 20
+
+[node name="Stop_Auto_Restart" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.37441, 0.083721, 0.44369)
+text = "STOP Auto Restart"
+toggle = true
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_STOP_AUTO_RESTART_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Stop_Auto_Restart_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.40115, 0.57851, 0.656321)
+text = "Stop
+Auto
+Restart"
+font_size = 20
+
+[node name="PushButton" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.90528, 0.0809799, 0.423148)
+text = "Zero_Speed"
+toggle = true
+button_color = Color(0, 1, 0.815686, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_ZERO_SPEED"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Zero_Speed_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.9252, 0.477404, 0.548596)
+text = "Zero
+Speed"
+font_size = 20
+
+[node name="Run_UP_Enabled" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9379, -0.724683, 0.441637)
+text = "Run Up Enabled"
+toggle = true
+pressed = true
+button_color = Color(0, 1, 0, 1)
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "TOGGLE_RUN_UP_ENABLED"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="Run_UP_Enabled_Button" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4135, -0.641298, 0.63195)
+text = "Run Up
+Enabled"
+font_size = 20
+
+[node name="MCM_Stop_Button" parent="." instance=ExtResource("6_e747n")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5194, 0.085152, 0.431983)
+text = "MCM_Stop_Button"
+enable_comms = true
+pushbutton_tag_group_name = "TagGroup0"
+pushbutton_tag_name = "MCM_Stop_PushButton_OIP"
+lamp_tag_group_name = "TagGroup0"
+
+[node name="MCM_Stop_Button_Label" type="Label3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.4351, 0.426929, 0.651285)
+text = "MCM Stop Button"
+font_size = 20
+
+[node name="Despawner2" parent="." instance=ExtResource("5_tcev8")]
+transform = Transform3D(2, 0, 0, 0, 1, 0, 0, 0, 2, -12.0592, 0.5, -0.368497)
diff --git a/PLC/Simulations/APF/OIP/apf.gd b/PLC/Simulations/APF/OIP/apf.gd
new file mode 100644
index 0000000..8930df4
--- /dev/null
+++ b/PLC/Simulations/APF/OIP/apf.gd
@@ -0,0 +1,30 @@
+@tool
+extends Node
+
+var simulation_started
+@export var FL1038_2 : Node
+@export var box_spawner: Node
+
+
+func _enter_tree() -> void:
+ SimulationEvents.simulation_started.connect(_simulation_started)
+ SimulationEvents.simulation_ended.connect(_simulation_ended)
+
+
+func _simulation_started():
+ simulation_started = true
+ print("Started !")
+
+
+
+func _simulation_ended():
+ simulation_started = false
+ print("Stopped !")
+
+
+func _physics_process(delta: float) -> void:
+ if(!simulation_started):
+ return
+
+ print(FL1038_2.speed)
+ box_spawner.disable = FL1038_2.speed == 0
diff --git a/PLC/Simulations/APF/PLC/AOIs/AOI_APF_AOI.L5X b/PLC/Simulations/APF/PLC/AOIs/AOI_APF_AOI.L5X
new file mode 100644
index 0000000..e353b95
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/AOIs/AOI_APF_AOI.L5X
@@ -0,0 +1,970 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X b/PLC/Simulations/APF/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X
new file mode 100644
index 0000000..9bb00a6
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/AOIs/AOI_FLIP_FLOP_AOI.L5X
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/AOIs/AOI_MCM_AOI.L5X b/PLC/Simulations/APF/PLC/AOIs/AOI_MCM_AOI.L5X
new file mode 100644
index 0000000..b1107ad
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/AOIs/AOI_MCM_AOI.L5X
@@ -0,0 +1,523 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/AOIs/AOI_SIO_FIO_AOI.L5X b/PLC/Simulations/APF/PLC/AOIs/AOI_SIO_FIO_AOI.L5X
new file mode 100644
index 0000000..1f63ae8
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/AOIs/AOI_SIO_FIO_AOI.L5X
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/APF.L5X b/PLC/Simulations/APF/PLC/APF.L5X
new file mode 100644
index 0000000..9887e32
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/APF.L5X
@@ -0,0 +1,3787 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VFD (PowerFLex)
+1 -> APF (ArmourFlex)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Rockwell Automation/Allen-Bradley1756-EN2T4325481
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Rockwell Automation/Allen-BradleyArmor PowerFlex 35x-6Dx-xxx1104b41b83-cb94-4d6a-ac54-ce5748e2714bAB:35_APF_Drive:I:1<DataType Name="AB:35_APF_Drive:I:1" Class="IO"><Members><Member Name="FaultMember" DataType="DINT" Hidden="True" /><Member Name="RunMode" DataType="BIT" BitNumber="0" Target="FaultMember" /><Member Name="ConnectionFaulted" DataType="BIT" BitNumber="1" Target="FaultMember" /><Member Name="DriveStatus" DataType="DINT" Radix="Binary" /><Member Name="Ready" DataType="BIT" BitNumber="0" Target="DriveStatus" /><Member Name="Running" DataType="BIT" BitNumber="1" Target="DriveStatus" /><Member Name="CommandedDirection" DataType="BIT" BitNumber="2" Target="DriveStatus" /><Member Name="ActualDirection" DataType="BIT" BitNumber="3" Target="DriveStatus" /><Member Name="Accelerating" DataType="BIT" BitNumber="4" Target="DriveStatus" /><Member Name="Decelerating" DataType="BIT" BitNumber="5" Target="DriveStatus" /><Member Name="AtReferenceSpeed" DataType="BIT" BitNumber="6" Target="DriveStatus" /><Member Name="Fault" DataType="BIT" BitNumber="7" Target="DriveStatus" /><Member Name="SafetyIn0Monitor" DataType="BIT" BitNumber="8" Target="DriveStatus" /><Member Name="SafetyIn1Monitor" DataType="BIT" BitNumber="9" Target="DriveStatus" /><Member Name="SafetyIn2Monitor" DataType="BIT" BitNumber="10" Target="DriveStatus" /><Member Name="SafetyIn3Monitor" DataType="BIT" BitNumber="11" Target="DriveStatus" /><Member Name="SafetyOutMonitor" DataType="BIT" BitNumber="12" Target="DriveStatus" /><Member Name="SafeTorqueEnabled" DataType="BIT" BitNumber="14" Target="DriveStatus" /><Member Name="SafetyFault" DataType="BIT" BitNumber="15" Target="DriveStatus" /><Member Name="In_0" DataType="BIT" BitNumber="16" Target="DriveStatus" /><Member Name="In_1" DataType="BIT" BitNumber="17" Target="DriveStatus" /><Member Name="In_2" DataType="BIT" BitNumber="18" Target="DriveStatus" /><Member Name="In_3" DataType="BIT" BitNumber="19" Target="DriveStatus" /><Member Name="IO_0" DataType="BIT" BitNumber="20" Target="DriveStatus" /><Member Name="IO_1" DataType="BIT" BitNumber="21" Target="DriveStatus" /><Member Name="KeypadButtonF0" DataType="BIT" BitNumber="24" Target="DriveStatus" /><Member Name="KeypadButtonF1" DataType="BIT" BitNumber="25" Target="DriveStatus" /><Member Name="KeypadButtonF2" DataType="BIT" BitNumber="26" Target="DriveStatus" /><Member Name="KeypadHandMode" DataType="BIT" BitNumber="27" Target="DriveStatus" /><Member Name="ThreePhaseACPowerPresent" DataType="BIT" BitNumber="28" Target="DriveStatus" /><Member Name="DisconnectClosed" DataType="BIT" BitNumber="29" Target="DriveStatus" /><Member Name="EMBrakeReleased" DataType="BIT" BitNumber="30" Target="DriveStatus" /><Member Name="Alarm" DataType="BIT" BitNumber="31" Target="DriveStatus" /><Member Name="OutputFrequency" DataType="REAL" Radix="Float" /><Member Name="OutputVoltage" DataType="REAL" Radix="Float" /><Member Name="OutputCurrent" DataType="REAL" Radix="Float" /><Member Name="OutputPower" DataType="REAL" Radix="Float" /><Member Name="DCBusVoltage" DataType="REAL" Radix="Float" /><Member Name="DriveHeatsinkTemperature" DataType="REAL" Radix="Float" /><Member Name="EncoderCounts" DataType="DINT" Radix="Decimal" /><Member Name="MotorOverloadLevel" DataType="REAL" Radix="Float" /><Member Name="TripFaultCode" DataType="DINT" Radix="Decimal" /><Member Name="Position" DataType="DINT" Radix="Decimal" Hidden="True" /><Member Name="Velocity" DataType="REAL" Radix="Float" /><Member Name="Pad0" DataType="DINT" Radix="Binary" Hidden="True" /><Member Name="Pad1" DataType="DINT" Radix="Binary" Hidden="True" /><Member Name="Pad2" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="Pad3" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="Pad4" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="DLXDigitalOut" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="DLXAnalogOut0" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogOut1" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogOut2" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogOut3" DataType="REAL" Radix="Float" Hidden="True" /></Members></DataType>AB:35_APF_Drive:O:1<DataType Name="AB:35_APF_Drive:O:1" Class="IO"><Members><Member Name="LogicCommand" DataType="DINT" Radix="Binary" /><Member Name="Stop" DataType="BIT" BitNumber="0" Target="LogicCommand" /><Member Name="Start" DataType="BIT" BitNumber="1" Target="LogicCommand" /><Member Name="Run" DataType="BIT" BitNumber="2" Target="LogicCommand" /><Member Name="Jog" DataType="BIT" BitNumber="3" Target="LogicCommand" /><Member Name="DirectionCmd_0" DataType="BIT" BitNumber="4" Target="LogicCommand" /><Member Name="DirectionCmd_1" DataType="BIT" BitNumber="5" Target="LogicCommand" /><Member Name="ClearFault" DataType="BIT" BitNumber="7" Target="LogicCommand" /><Member Name="AccelRefSelect_0" DataType="BIT" BitNumber="8" Target="LogicCommand" /><Member Name="AccelRefSelect_1" DataType="BIT" BitNumber="9" Target="LogicCommand" /><Member Name="AccelRefSelect_2" DataType="BIT" BitNumber="10" Target="LogicCommand" /><Member Name="VelocityRefSelect_0" DataType="BIT" BitNumber="13" Target="LogicCommand" /><Member Name="VelocityRefSelect_1" DataType="BIT" BitNumber="14" Target="LogicCommand" /><Member Name="VelocityRefSelect_2" DataType="BIT" BitNumber="15" Target="LogicCommand" /><Member Name="IO_0" DataType="BIT" BitNumber="20" Target="LogicCommand" /><Member Name="IO_1" DataType="BIT" BitNumber="21" Target="LogicCommand" /><Member Name="EMBrakeAutoManCtrl" DataType="BIT" BitNumber="30" Target="LogicCommand" /><Member Name="EMBrakeRelease" DataType="BIT" BitNumber="31" Target="LogicCommand" /><Member Name="CommandedVelocity" DataType="REAL" Radix="Float" /><Member Name="Pad0" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="Pad1" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="Pad2" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="DLXDigitalIn" DataType="SINT" Radix="Binary" Hidden="True" /><Member Name="DLXAnalogIn0" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogIn1" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogIn2" DataType="REAL" Radix="Float" Hidden="True" /><Member Name="DLXAnalogIn3" DataType="REAL" Radix="Float" Hidden="True" /></Members></DataType>1101
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/UDTs/UDT_APF_DataTypes.L5X b/PLC/Simulations/APF/PLC/UDTs/UDT_APF_DataTypes.L5X
new file mode 100644
index 0000000..62b3c19
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/UDTs/UDT_APF_DataTypes.L5X
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VFD (PowerFLex)
+1 -> APF (ArmourFlex)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/UDTs/UDT_DPM_DataTypes.L5X b/PLC/Simulations/APF/PLC/UDTs/UDT_DPM_DataTypes.L5X
new file mode 100644
index 0000000..ed622e4
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/UDTs/UDT_DPM_DataTypes.L5X
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/UDTs/UDT_MCM_DataTypes.L5X b/PLC/Simulations/APF/PLC/UDTs/UDT_MCM_DataTypes.L5X
new file mode 100644
index 0000000..ec3cc70
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/UDTs/UDT_MCM_DataTypes.L5X
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/Simulations/APF/PLC/UDTs/UDT_SIO_FIO_DataTypes.L5X b/PLC/Simulations/APF/PLC/UDTs/UDT_SIO_FIO_DataTypes.L5X
new file mode 100644
index 0000000..d002c45
--- /dev/null
+++ b/PLC/Simulations/APF/PLC/UDTs/UDT_SIO_FIO_DataTypes.L5X
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+