Browse Source

add beckhoff

chenzk 4 days ago
parent
commit
4917ae0176
1 changed files with 611 additions and 7 deletions
  1. 611 7
      PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

+ 611 - 7
PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <BeckhoffCfg>
-	<Controller Name="MASTER" IPAddress="192.168.0.200.1.1" PortAddress="851">
+	<Controller Name="MASTER" IPAddress="169.254.180.196.1.1" PortAddress="301">
 
 		<!-- Need to have at least one input and one output before Axis stuff -->
 
@@ -99,8 +99,8 @@
 		<Input Name="r_SYSTEM_VACUUM" Address="Task 2.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_8" Scaling="-750=3276.7, 750=16383.5" Type="Analog" DataType="int"/>
 		<Input Name="r_N2_BLANKET_PRESSURE" Address="Task 2.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_1" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
 		<Input Name="r_N2_OVERFLOW_PRESSURE" Address="Task 2.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_2" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
-		<Input Name="r_CLAMSHELL_CYLINDER_PRESSURE" Address="Task 2.Inputs.PlatingCell1_2_AI_8CHANNEL_0_10V_EL3086_N402_3" Scaling="0=0, 100=32767" Type="Analog" DataType="udint"/>
-		<Input Name="r_TILT_CYLINDER_PRESSURE" Address="Task 2.Inputs.PlatingCell1_2_AI_8CHANNEL_0_10V_EL3086_N402_4" Scaling="0=0, 100=32767" Type="Analog" DataType="udint"/>
+		<Input Name="r_CLAMSHELL_CYLINDER_PRESSURE" Address="Task 2.Inputs.PlatingCell1_2_AI_8CHANNEL_0_10V_EL3068_N402_3" Scaling="0=0, 100=32767" Type="Analog" DataType="udint"/>
+		<Input Name="r_TILT_CYLINDER_PRESSURE" Address="Task 2.Inputs.PlatingCell1_2_AI_8CHANNEL_0_10V_EL3068_N402_4" Scaling="0=0, 100=32767" Type="Analog" DataType="udint"/>
 		<!-- facility inputs end -->
 		
 		
@@ -123,8 +123,8 @@
 		<Input Name="r_SRD1_200_FLIPPER2_OUT"  Address="Task 2.Inputs.SRD_DI_16CHANNEL_EL1819_N600_12" Invert="false" Type="Digital" DataType="bool"/>
 		<Input Name="r_SRD1_200_FLIPPER3_OUT"  Address="Task 2.Inputs.SRD_DI_16CHANNEL_EL1819_N600_13" Invert="false" Type="Digital" DataType="bool"/>
 
-		<Input Name="r_SRD1_CHUCK_VACUUM_anlg"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_10V_EL3058_605_1" Scaling="-0=3276.7,145=16383.5" Type="Analog" DataType="int"/>
-		<Input Name="r_SRD1_WATER_FLOW"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_20mA_EL3058_604_1" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SRD1_CHUCK_VACUUM_anlg"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_0_10V_EL3058_6N05_1" Scaling="-0=3276.7,145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_SRD1_WATER_FLOW"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_20mA_EL3058_N604_1" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
 		<!--SRD1 inputs End-->
 		
 		<!--SRD2 inputs Start-->
@@ -140,8 +140,8 @@
 		<Input Name="r_SRD2_200_FLIPPER2_OUT"  Address="Task 2.Inputs.SRD_DI_16CHANNEL_EL1819_N601_11" Invert="false" Type="Digital" DataType="bool"/>
 		<Input Name="r_SRD2_200_FLIPPER3_OUT"  Address="Task 2.Inputs.SRD_DI_16CHANNEL_EL1819_N601_12" Invert="false" Type="Digital" DataType="bool"/>
 
-		<Input Name="r_SRD2_CHUCK_VACUUM_anlg"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_10V_EL3058_605_2" Scaling="-0=3276.7,145=16383.5" Type="Analog" DataType="int"/>
-		<Input Name="r_SRD2_WATER_FLOW"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_20mA_EL3058_604_1" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SRD2_CHUCK_VACUUM_anlg"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_0_10V_EL3068_N605_2" Scaling="-0=3276.7,145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_SRD2_WATER_FLOW"  Address="Task 2.Inputs.SRD_AI_8CHANNEL_4_20mA_EL3058_N604_1" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
 		<!--SRD2 inputs End-->
 		
 		
@@ -593,7 +593,611 @@
 			<FeedforwardAcceleration>0</FeedforwardAcceleration>
 			<OffOnError>0</OffOnError>
 		</Axis>
+<Axis Name="SRD1.Rotation" MotorType="Kollmorgen" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.SRD1RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.SRD1RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.SRD1RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD1RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD1RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD1RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.SRD1RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.SRD1RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.SRD1RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD1RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD1RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD1RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
+			<Speed>360</Speed>
+			<Acceleration>1000</Acceleration>
+			<Deceleration>1000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
+		<Axis Name="SRD2.Rotation" MotorType="Kollmorgen" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.SRD2RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.vSRD2RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.SRD2RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD2RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD2RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.SRD2RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.SRD2RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.SRD2RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.SRD2RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD2RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD2RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.SRD2RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
+			<Speed>360</Speed>
+			<Acceleration>1000</Acceleration>
+			<Deceleration>1000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
+		<Axis Name="PlatingCell1_2.Vertical" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_StatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_DigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_FollowingErrorActualValue" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_VelocityActualValue" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_2Vertical_TorqueActualValue" Type="ActualTorque" DataType="short"/>
+			<Input Address="0x607d:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607d:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607c:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609a:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_ControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_TargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_2Vertical_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.LoaderTransporterHorizontal_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607d:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607d:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x607c:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609a:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+
+			<!-- Z axis: 47784 counts/mm -->
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<!-- HomingMethod 28 = Home Switch Negative Direction -->
+			<HomingMethod>28</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<!--HomingOffset>-662500</HomingOffset-->
+			<HomingOffset>-398200</HomingOffset>
+			<!-- HomingVelocity same as HomeSpeedHomeSwitch -->
+			<!-- HomingSpeedHomeSwitch 57 rev/min = 0.9 rev/sec = 1000000 counts/sec -->
+			<HomingSpeedHomeSwitch>1000000</HomingSpeedHomeSwitch>
+			<!--HomingSpeedHomeSwitch>100000</HomingSpeedHomeSwitch-->
+			<HomingSpeedEncoderIndex>100000</HomingSpeedEncoderIndex>
+			<!-- HomingAccelDecel 0.05 rev/min/min = 0.0009 rev/sec/sec = 1000 counts/sec/sec -->
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>120000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<!--ErrorLimit>0</ErrorLimit-->
+			<ErrorLimit>2000</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<ReverseSoftwareLimit>-1190000</ReverseSoftwareLimit>
+			<ForwardSoftwareLimit>28000000</ForwardSoftwareLimit>
+			<!-- Speed 1430 rev/min = 23 rev/sec = 25000000 counts/sec -->
+			<!--Speed>25000000</Speed-->
+			<Speed>18000000</Speed>
+			<!--Speed>12000000</Speed-->
+			<!-- Acceleration/Deceleration 0.78 rev/min/min = 0.01 rev/sec/sec = 13800 counts/sec/sec -->
+			<Acceleration>138000000</Acceleration>
+			<Deceleration>138000000</Deceleration>
+			<!--Acceleration>13800000</Acceleration>
+      <Deceleration>13800000</Deceleration-->
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+			<NegativeTorqueLimit>130</NegativeTorqueLimit>
+			<PositiveTorqueLimit>20</PositiveTorqueLimit>
+		</Axis>
+		<Axis Name="PlatingCell3_4.Vertical" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_StatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_DigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_FollowingErrorActualValue" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_VelocityActualValue" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_4Vertical_TorqueActualValue" Type="ActualTorque" DataType="short"/>
+			<Input Address="0x607d:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607d:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607c:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609a:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_ControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_TargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_4Vertical_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.LoaderTransporterHorizontal_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607d:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607d:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x607c:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609a:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+
+			<!-- Z axis: 47784 counts/mm -->
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<!-- HomingMethod 28 = Home Switch Negative Direction -->
+			<HomingMethod>28</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<!--HomingOffset>-662500</HomingOffset-->
+			<HomingOffset>-398200</HomingOffset>
+			<!-- HomingVelocity same as HomeSpeedHomeSwitch -->
+			<!-- HomingSpeedHomeSwitch 57 rev/min = 0.9 rev/sec = 1000000 counts/sec -->
+			<HomingSpeedHomeSwitch>1000000</HomingSpeedHomeSwitch>
+			<!--HomingSpeedHomeSwitch>100000</HomingSpeedHomeSwitch-->
+			<HomingSpeedEncoderIndex>100000</HomingSpeedEncoderIndex>
+			<!-- HomingAccelDecel 0.05 rev/min/min = 0.0009 rev/sec/sec = 1000 counts/sec/sec -->
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>120000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<!--ErrorLimit>0</ErrorLimit-->
+			<ErrorLimit>2000</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<ReverseSoftwareLimit>-1190000</ReverseSoftwareLimit>
+			<ForwardSoftwareLimit>28000000</ForwardSoftwareLimit>
+			<!-- Speed 1430 rev/min = 23 rev/sec = 25000000 counts/sec -->
+			<!--Speed>25000000</Speed-->
+			<Speed>18000000</Speed>
+			<!--Speed>12000000</Speed-->
+			<!-- Acceleration/Deceleration 0.78 rev/min/min = 0.01 rev/sec/sec = 13800 counts/sec/sec -->
+			<Acceleration>138000000</Acceleration>
+			<Deceleration>138000000</Deceleration>
+			<!--Acceleration>13800000</Acceleration>
+      <Deceleration>13800000</Deceleration-->
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+			<NegativeTorqueLimit>130</NegativeTorqueLimit>
+			<PositiveTorqueLimit>20</PositiveTorqueLimit>
+		</Axis>
+		<Axis Name="PlatingCell1.Rotation" MotorType="Kollmorgen" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell1_RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell1_RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
+			<Speed>360</Speed>
+			<Acceleration>1000</Acceleration>
+			<Deceleration>1000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
+		<Axis Name="PlatingCell2.Rotation" MotorType="Kollmorgen" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell2_RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell2_RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
+			<Speed>360</Speed>
+			<Acceleration>1000</Acceleration>
+			<Deceleration>1000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
+		<Axis Name="PlatingCell3.Rotation" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell3_RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
+
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell3_RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>-46180953</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>2706576</ForwardSoftwareLimit>
+			<Speed>15000000</Speed>
+			<Acceleration>10000000</Acceleration>
+			<Deceleration>10000000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
+		<Axis Name="PlatingCell4.Rotation" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationStatusWord" Type="StatusWord" DataType="uint"/>
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationDigitalInputs" Type="DigitalInputs" DataType="udint"/>
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationMotorPosition" Type="MotorPosition" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationPositionError" Type="PositionError" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
+			<Input Address="Task 2.Inputs.PlatingCell4_RotationActualTorque" Type="ActualTorque" DataType="int"/>
+			<!-- Input Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Input Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Input Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Input Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Input Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Input Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Input Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Input Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Input Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Input Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
+			<Input Address="0x2406:00" Type="EStopTorque" DataType="uint"/>
+			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
+			<Input Address="0x2522:00" Type="PositionWindow" DataType="udint"/>
+			<Input Address="0x2520:00" Type="FollowingErrorWindow" DataType="udint"/>
+			<Input Address="0x603F:00" Type="ErrorCode" DataType="uint"/>
 
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationControlWord" Type="ControlWord" DataType="uint"/>
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationTargetPosition" Type="TargetPosition" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
+			<Output Address="Task 2.Outputs.PlatingCell4_RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
+			<!-- Output Address="MAIN.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<Output Address="0x607D:01" Type="SoftwareLimitMinus" DataType="dint"/>
+			<Output Address="0x607D:02" Type="SoftwareLimitPlus" DataType="dint"/>
+			<Output Address="0x607C:00" Type="HomeOffset" DataType="dint"/>
+			<Output Address="0x6098:00" Type="HomingMethod" DataType="byte"/>
+			<Output Address="0x6099:01" Type="HomingVelocity" DataType="dint"/>
+			<Output Address="0x6099:02" Type="HomingVelocitySlow" DataType="dint"/>
+			<Output Address="0x609A:00" Type="HomingAccel" DataType="dint"/>
+			<Output Address="0x2403:00" Type="NegativeTorqueLimit" DataType="uint"/>
+			<Output Address="0x2402:00" Type="PositiveTorqueLimit" DataType="uint"/>
+			<MotorType>Servo</MotorType>
+			<MotorDriveDirection>0</MotorDriveDirection>
+			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
+			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
+			<ReverseLimitSwitchPolarity>0</ReverseLimitSwitchPolarity>
+			<ForwardLimitSwitchPolarity>0</ForwardLimitSwitchPolarity>
+			<HomeSwitchPolarity>0</HomeSwitchPolarity>
+			<HomingMethod>24</HomingMethod>
+			<HomeConfig>0</HomeConfig>
+			<HomingOffset>0</HomingOffset>
+			<HomingSpeedHomeSwitch>1500000</HomingSpeedHomeSwitch>
+			<HomingSpeedEncoderIndex>0</HomingSpeedEncoderIndex>
+			<HomingAccelDecel>10000000</HomingAccelDecel>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<ProportionalGain>0</ProportionalGain>
+			<IntegralGain>0</IntegralGain>
+			<DerivativeGain>0</DerivativeGain>
+			<IntegralLimit>0</IntegralLimit>
+			<ErrorLimit>6766</ErrorLimit>
+			<VoltageOffset>0</VoltageOffset>
+			<!-- -193 degrees * 169161 = -32648073 -->
+			<ReverseSoftwareLimit>-46180953</ReverseSoftwareLimit>
+			<!-- 13 degrees * 169161 = 2199093 -->
+			<ForwardSoftwareLimit>2706576</ForwardSoftwareLimit>
+			<Speed>15000000</Speed>
+			<Acceleration>10000000</Acceleration>
+			<Deceleration>10000000</Deceleration>
+			<Jerk>0</Jerk>
+			<FeedforwardVelocity>0</FeedforwardVelocity>
+			<FeedforwardAcceleration>0</FeedforwardAcceleration>
+			<OffOnError>0</OffOnError>
+		</Axis>
 		<!--////////////////////////////////////////////////// ALL AXIS END //////////////////////////////////////////////////-->
 	</Controller>
 </BeckhoffCfg>