Browse Source

add VPWMain/VPW1/VPW2 into Beckhoffcfg.xml;
twincate project add VPWMain/VPW1/VPW2;

chenkui 23 hours ago
parent
commit
32f216fca2

+ 58 - 273
PunkHPX8_RT/Config/Devices/Beckhoffcfg - plctask.xml

@@ -8,13 +8,63 @@
 
 		<!--////////////////////////////////////////////////// ALL INPUTS START //////////////////////////////////////////////////-->
 
-
+		<!--VPW Main Start-->
+		<Input Name="r_VPW_CHAMBER_CLOSED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_1" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_CHAMBER_OPENED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_LEAK_DETECT"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_VAC_PUMP_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_8" Scaling="758=0,0=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_BOOSTER_PUMP_STATUS"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_9" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_DIW_TOTAL_FLOW"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_DIW_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_4" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_DEGAS_PUMP_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_5" Scaling="758=0,100=32767" Type="Analog" DataType="int"/>
+		<!--VPW Main End-->
+
+		<!--VPW1 Start-->
+		<Input Name="r_VPW_DIW_CELL_1_FLOW"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_CELL_1_VAC_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_0_10V_EL3068_N105_1" Scaling="0=0,10=32767" Type="Analog" DataType="int"/>
+		<!--VPW1 End-->
+
+		<!--VPW2 Start-->
+		<Input Name="r_VPW_DIW_CELL_2_FLOW"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_CELL_2_VAC_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_0_10V_EL3068_N105_2" Scaling="0=0,10=32767" Type="Analog" DataType="int"/>
+		<!--VPW2 End-->
 		<!--////////////////////////////////////////////////// ALL INPUTS END //////////////////////////////////////////////////-->
 
 
 		<!--////////////////////////////////////////////////// ALL OUTPUTS BEGIN //////////////////////////////////////////////////-->
-
-
+		<!--VPW Main Start-->
+		<Output Name="c_VPW_CHAMBER_CLOSE" Address="MAIN.MOTION_DO_16CHANNEL_EL2809_N401_15" Type="Digital" Invert="true" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_POWER" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_5" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_DEGAS_PUMP_ENABLE" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_6" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_BOOSTER_PUMP_ENABLE" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_7" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_ENABLE" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_8" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_SPEED_ENABLE" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_9" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_SPEED" Address="MAIN.VPW_AO_8CHANNEL_0_10V_EL4008_N104_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_VPW_BOOSTER_PUMP_SPPED" Address="MAIN.VPW_AO_8CHANNEL_0_10V_EL4008_N104_5" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_VPW_DIW_EABLE" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<Output Name="c_VPW_DIW_PROCESS" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<Output Name="c_VPW_DIW_DEGAS" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<Output Name="c_VPW_DEGAS_ADJUST" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<Output Name="c_VPW_DEGAS_PURGE" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="2" DataType="byte"/>
+		<!--VPW Main End-->
+
+		<!--VPW1 Start-->
+		<Output Name="c_VPW_1_FLOW_DRIP" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="2" DataType="byte"/>
+		<Output Name="c_VPW_1_FLOW_SMALL" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="3" DataType="byte"/>
+		<Output Name="c_VPW_1_FLOW_LARGE" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="4" DataType="byte"/>
+		<Output Name="c_VPW_1_VACUUM_VALVE" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="3" DataType="byte"/>
+		<Output Name="c_VPW_1_VENT_VALVE" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="5" DataType="byte"/>
+		<Output Name="c_VPW_1_DIW_DRAIN" Address="MAIN.VPW_PNEU_SMC_EX260_V09_V12" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<!--VPW1 End-->
+
+		<!--VPW2 Start-->
+		<Output Name="c_VPW_2_FLOW_DRIP" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="5" DataType="byte"/>
+		<Output Name="c_VPW_2_FLOW_SMALL" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="6" DataType="byte"/>
+		<Output Name="c_VPW_2_FLOW_LARGE" Address="MAIN.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="7" DataType="byte"/>
+		<Output Name="c_VPW_2_VACUUM_VALVE" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="4" DataType="byte"/>
+		<Output Name="c_VPW_2_VENT_VALVE" Address="MAIN.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="6" DataType="byte"/>
+		<Output Name="c_VPW_2_DIW_DRAIN" Address="MAIN.VPW_PNEU_SMC_EX260_V09_V12" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<!--VPW2 End-->
 		<!--////////////////////////////////////////////////// ALL OUTPUTS END //////////////////////////////////////////////////-->
 
 		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
@@ -22,7 +72,7 @@
 
 		<!--////////////////////////////////////////////////// ALL COUNTERS END //////////////////////////////////////////////////-->
 
-		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
+		<!--////////////////////////////////////////////////// ALL AXIS BEGIN //////////////////////////////////////////////////-->
 
 		<Axis Name="VPW1.Rotation" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
 			<Input Address="MAIN.VPW1RotationStatusWord" Type="StatusWord" DataType="uint"/>
@@ -31,7 +81,7 @@
 			<Input Address="MAIN.VPW1RotationPositionError" Type="PositionError" DataType="dint"/>
 			<Input Address="MAIN.VPW1RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
 			<Input Address="MAIN.VPW1RotationActualTorque" Type="ActualTorque" DataType="int"/>
-			<!-- Input Address="Task 2.Outputs.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<!-- 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"/>
@@ -54,7 +104,7 @@
 			<Output Address="MAIN.VPW1RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
 			<Output Address="MAIN.VPW1RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
 			<Output Address="MAIN.VPW1RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<!-- Output Address="Task 2.Outputs.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" 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"/>
@@ -104,7 +154,7 @@
 			<Input Address="MAIN.VPW2RotationPositionError" Type="PositionError" DataType="dint"/>
 			<Input Address="MAIN.VPW2RotationActualVelocity" Type="ActualVelocity" DataType="dint"/>
 			<Input Address="MAIN.VPW2RotationActualTorque" Type="ActualTorque" DataType="int"/>
-			<!-- Input Address="Task 2.Outputs.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" DataType="dint"/ -->
+			<!-- 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"/>
@@ -127,7 +177,7 @@
 			<Output Address="MAIN.VPW2RotationProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
 			<Output Address="MAIN.VPW2RotationProfileAccel" Type="ProfileAccel" DataType="dint"/>
 			<Output Address="MAIN.VPW2RotationProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<!-- Output Address="Task 2.Outputs.Loader1Rotation_DigitalOutputs" Type="DigitalOutputs" 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"/>
@@ -170,270 +220,5 @@
 			<FeedforwardAcceleration>0</FeedforwardAcceleration>
 			<OffOnError>0</OffOnError>
 		</Axis>
-		<!-- SRD AXES BEGIN -->
-		<!-- Maxon EPOS2 -->
-		<!-- position is in counts, speed is in rpm:  counts/sec * 60 sec/min / (512 * 4 counts/rev) = 0.0293 rev/min (rpm) -->
-		<Axis Name="SRD1.Arm" MotorType="Maxon" SpeedConversion="0.0293" COEAddress="192.168.0.14.5.1" COEPort="4097" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD1_ARM_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ARM_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x60C5:00" Type="AccelerationLimit" DataType="udint"/>
-			<Input Address="0x2082:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x1001:00" Type="ErrorRegister" DataType="usint"/>
-			<Input Address="0x1003:00" Type="ErrorHistoryCount" DataType="usint"/>
-			<Input Address="0x1003:01" Type="ErrorHistory1" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="0x6081:00" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="0x6083:00" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="0x6084:00" Type="ProfileDecel" 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="0x6410:02" Type="PeakCurrentLimit" DataType="uint"/>
-			<Output Address="0x6410:01" Type="ContinuousCurrentLimit" DataType="uint"/>
-			<!--MiscConfig may be used someday if want to reverse direction of motion/-->
-			<!--Output Address="0x2008:00" Type="MiscConfig" DataType="uint"/-->
-			<!-- 2184.533333 counts/degree -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Negative to Home Switch -->
-			<!--HomingMethod>21</HomingMethod-->
-			<!-- Positive to Home Switch -->
-			<HomingMethod>23</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>200</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>50</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>5000</HomingAccelDecel>
-			<HomingTimeOut>25000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>200</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>-10000000</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>10000000</ForwardSoftwareLimit>
-			<Speed>1000</Speed>
-			<Acceleration>5000</Acceleration>
-			<Deceleration>5000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Copley XE2 2-Axis -->
-		<Axis Name="SRD1.Rotation" MotorType="Copley" COEAddress="192.168.0.14.4.1" COEPort="1057" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ManufStatus" Type="ManufStatus" DataType="udint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ProfileStatus" Type="ProfileStatus" DataType="int"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ModeOfOperationDisplay" Type="ModeOfOperation" DataType="sint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualFollowingError" Type="PositionError" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualVelocity" Type="ActualVelocity" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualTorque" Type="ActualTorque" DataType="int"/>
-			<Input Address="0x2253:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<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="0x2353:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x2110:00" Type="PeakCurrentLimit" DataType="int"/>
-			<Input Address="0x2111:00" Type="ContinuousCurrentLimit" DataType="int"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x2103:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x6067:00" Type="PositionWindow" DataType="udint"/>
-			<Input Address="0x2120:00" Type="FollowingErrorWindow" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<Output Address="0x2253:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<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"/>
-			<!-- 58.822222 counts/deg -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Positive to Index -->
-			<HomingMethod>35</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>2500</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>2500</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>420000</HomingAccelDecel>
-			<HomingTimeOut>15000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>2000</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
-			<Speed>529400</Speed>
-			<Acceleration>84000</Acceleration>
-			<Deceleration>84000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Maxon EPOS2 -->
-		<!-- position is in counts, speed is in rpm:  counts/sec * 60 sec/min / (512 * 4 counts/rev) = 0.0293 rev/min (rpm) -->
-		<Axis Name="SRD2.Arm" MotorType="Maxon" SpeedConversion="0.0293" COEAddress="192.168.0.14.5.1" COEPort="4098" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD2_ARM_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ARM_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x60C5:00" Type="AccelerationLimit" DataType="udint"/>
-			<Input Address="0x2082:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x1001:00" Type="ErrorRegister" DataType="usint"/>
-			<Input Address="0x1003:00" Type="ErrorHistoryCount" DataType="usint"/>
-			<Input Address="0x1003:01" Type="ErrorHistory1" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="0x6081:00" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="0x6083:00" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="0x6084:00" Type="ProfileDecel" 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="0x6410:02" Type="PeakCurrentLimit" DataType="uint"/>
-			<Output Address="0x6410:01" Type="ContinuousCurrentLimit" DataType="uint"/>
-			<!--MiscConfig may be used someday if want to reverse direction of motion/-->
-			<!--Output Address="0x2008:00" Type="MiscConfig" DataType="uint"/-->
-			<!-- 2184.533333 counts/degree -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Negative to Home Switch -->
-			<!--HomingMethod>21</HomingMethod-->
-			<!-- Positive to Home Switch -->
-			<HomingMethod>23</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>200</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>50</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>5000</HomingAccelDecel>
-			<HomingTimeOut>25000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>200</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>-10000000</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>10000000</ForwardSoftwareLimit>
-			<Speed>1000</Speed>
-			<Acceleration>5000</Acceleration>
-			<Deceleration>5000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Copley XE2 2-Axis -->
-		<Axis Name="SRD2.Rotation" MotorType="Copley" COEAddress="192.168.0.14.4.1" COEPort="1057" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ManufStatus" Type="ManufStatus" DataType="udint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ProfileStatus" Type="ProfileStatus" DataType="int"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualFollowingError" Type="PositionError" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualVelocity" Type="ActualVelocity" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualTorque" Type="ActualTorque" DataType="int"/>
-			<Input Address="0x2A53:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<Input Address="0x687D:01" Type="SoftwareLimitMinus" DataType="dint"/>
-			<Input Address="0x687D:02" Type="SoftwareLimitPlus" DataType="dint"/>
-			<Input Address="0x6898:00" Type="HomingMethod" DataType="byte"/>
-			<Input Address="0x687C:00" Type="HomeOffset" DataType="dint"/>
-			<Input Address="0x6899:01" Type="HomingVelocity" DataType="dint"/>
-			<Input Address="0x6899:02" Type="HomingVelocitySlow" DataType="dint"/>
-			<Input Address="0x689A:00" Type="HomingAccel" DataType="dint"/>
-			<Input Address="0x2B53:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x2910:00" Type="PeakCurrentLimit" DataType="int"/>
-			<Input Address="0x2911:00" Type="ContinuousCurrentLimit" DataType="int"/>
-			<Input Address="0x6885:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x2903:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x6867:00" Type="PositionWindow" DataType="udint"/>
-			<Input Address="0x2920:00" Type="FollowingErrorWindow" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<Output Address="0x2A53:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<Output Address="0x687D:01" Type="SoftwareLimitMinus" DataType="dint"/>
-			<Output Address="0x687D:02" Type="SoftwareLimitPlus" DataType="dint"/>
-			<Output Address="0x6898:00" Type="HomingMethod" DataType="byte"/>
-			<Output Address="0x687C:00" Type="HomeOffset" DataType="dint"/>
-			<Output Address="0x6899:01" Type="HomingVelocity" DataType="dint"/>
-			<Output Address="0x6899:02" Type="HomingVelocitySlow" DataType="dint"/>
-			<Output Address="0x689A:00" Type="HomingAccel" DataType="dint"/>
-			<!-- 58.822222 counts/deg -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Positive to Index -->
-			<HomingMethod>35</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>2500</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>2500</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>420000</HomingAccelDecel>
-			<HomingTimeOut>15000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>2000</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
-			<Speed>529400</Speed>
-			<Acceleration>84000</Acceleration>
-			<Deceleration>84000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- SRD AXES END -->
 	</Controller>
 </BeckhoffCfg>

+ 53 - 267
PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

@@ -8,14 +8,63 @@
 
 		<!--////////////////////////////////////////////////// ALL INPUTS START //////////////////////////////////////////////////-->
 
-		<!-- Task 2.Inputs IO INPUTS END -->
+		<!--VPW Main Start-->
+		<Input Name="r_VPW_CHAMBER_CLOSED"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_1" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_CHAMBER_OPENED"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_LEAK_DETECT"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_VAC_PUMP_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_8" Scaling="758=0,0=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_BOOSTER_PUMP_STATUS"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_9" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_DIW_TOTAL_FLOW"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_DIW_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_4" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_DEGAS_PUMP_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_5" Scaling="758=0,100=32767" Type="Analog" DataType="int"/>
+		<!--VPW Main End-->
+		
+		<!--VPW1 Start-->
+		<Input Name="r_VPW_DIW_CELL_1_FLOW"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_CELL_1_VAC_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_0_10V_EL3068_N105_1" Scaling="0=0,10=32767" Type="Analog" DataType="int"/>
+		<!--VPW1 End-->
 
+		<!--VPW2 Start-->
+		<Input Name="r_VPW_DIW_CELL_2_FLOW"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3" Scaling="0=0,8=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_VPW_CELL_2_VAC_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_0_10V_EL3068_N105_2" Scaling="0=0,10=32767" Type="Analog" DataType="int"/>
+		<!--VPW2 End-->
 		<!--////////////////////////////////////////////////// ALL INPUTS END //////////////////////////////////////////////////-->
 
 
 		<!--////////////////////////////////////////////////// ALL OUTPUTS BEGIN //////////////////////////////////////////////////-->
+		<!--VPW Main Start-->
+		<Output Name="c_VPW_CHAMBER_CLOSE" Address="Task 2.Outputs.MOTION_DO_16CHANNEL_EL2809_N401_15" Type="Digital" Invert="true" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_POWER" Address="Task 2.Outputs.VPW_DO_16CHANNEL_EL2809_101_5" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_DEGAS_PUMP_ENABLE" Address="Task 2.Outputs.VPW_DO_16CHANNEL_EL2809_101_6" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_BOOSTER_PUMP_ENABLE" Address="Task 2.Outputs.VPW_DO_16CHANNEL_EL2809_101_7" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_ENABLE" Address="Task 2.Outputs.VPW_DO_16CHANNEL_EL2809_101_8" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_SPEED_ENABLE" Address="Task 2.Outputs.VPW_DO_16CHANNEL_EL2809_101_9" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_VPW_VACUUM_PUMP_SPEED" Address="Task 2.Outputs.VPW_AO_8CHANNEL_0_10V_EL4008_N104_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_VPW_BOOSTER_PUMP_SPPED" Address="Task 2.Outputs.VPW_AO_8CHANNEL_0_10V_EL4008_N104_5" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_VPW_DIW_EABLE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<Output Name="c_VPW_DIW_PROCESS" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<Output Name="c_VPW_DIW_DEGAS" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<Output Name="c_VPW_DEGAS_ADJUST" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<Output Name="c_VPW_DEGAS_PURGE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="2" DataType="byte"/>
+		<!--VPW Main End-->
 		
+		<!--VPW1 Start-->
+		<Output Name="c_VPW_1_FLOW_DRIP" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="2" DataType="byte"/>
+		<Output Name="c_VPW_1_FLOW_SMALL" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="3" DataType="byte"/>
+		<Output Name="c_VPW_1_FLOW_LARGE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="4" DataType="byte"/>
+		<Output Name="c_VPW_1_VACUUM_VALVE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="3" DataType="byte"/>
+		<Output Name="c_VPW_1_VENT_VALVE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="5" DataType="byte"/>
+		<Output Name="c_VPW_1_DIW_DRAIN" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V09_V12" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<!--VPW1 End-->
 		
+		<!--VPW2 Start-->
+		<Output Name="c_VPW_2_FLOW_DRIP" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="5" DataType="byte"/>
+		<Output Name="c_VPW_2_FLOW_SMALL" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="6" DataType="byte"/>
+		<Output Name="c_VPW_2_FLOW_LARGE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="7" DataType="byte"/>
+		<Output Name="c_VPW_2_VACUUM_VALVE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="4" DataType="byte"/>
+		<Output Name="c_VPW_2_VENT_VALVE" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V05_V08" Type="Digital" BitOperated="true" Bit="6" DataType="byte"/>
+		<Output Name="c_VPW_2_DIW_DRAIN" Address="Task 2.Outputs.VPW_PNEU_SMC_EX260_V09_V12" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<!--VPW2 End-->
 		<!--////////////////////////////////////////////////// ALL OUTPUTS END //////////////////////////////////////////////////-->
 
 		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
@@ -23,7 +72,7 @@
 		
 		<!--////////////////////////////////////////////////// ALL COUNTERS END //////////////////////////////////////////////////-->
 
-		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->		
+		<!--////////////////////////////////////////////////// ALL AXIS BEGIN //////////////////////////////////////////////////-->		
 		
 		<Axis Name="VPW1.Rotation" MotorType="Yaskawa" COEAddress="192.168.0.14.4.1" COEPort="1016" DebugLogging="false">
 			<Input Address="Task 2.Inputs.r_Loader1Rotation_StatusWord" Type="StatusWord" DataType="uint"/>
@@ -171,270 +220,7 @@
 			<FeedforwardAcceleration>0</FeedforwardAcceleration>
 			<OffOnError>0</OffOnError>
 		</Axis>
-		<!-- SRD AXES BEGIN -->
-		<!-- Maxon EPOS2 -->
-		<!-- position is in counts, speed is in rpm:  counts/sec * 60 sec/min / (512 * 4 counts/rev) = 0.0293 rev/min (rpm) -->
-		<Axis Name="SRD1.Arm" MotorType="Maxon" SpeedConversion="0.0293" COEAddress="192.168.0.14.5.1" COEPort="4097" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD1_ARM_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ARM_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x60C5:00" Type="AccelerationLimit" DataType="udint"/>
-			<Input Address="0x2082:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x1001:00" Type="ErrorRegister" DataType="usint"/>
-			<Input Address="0x1003:00" Type="ErrorHistoryCount" DataType="usint"/>
-			<Input Address="0x1003:01" Type="ErrorHistory1" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ARM_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="0x6081:00" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="0x6083:00" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="0x6084:00" Type="ProfileDecel" 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="0x6410:02" Type="PeakCurrentLimit" DataType="uint"/>
-			<Output Address="0x6410:01" Type="ContinuousCurrentLimit" DataType="uint"/>
-			<!--MiscConfig may be used someday if want to reverse direction of motion/-->
-			<!--Output Address="0x2008:00" Type="MiscConfig" DataType="uint"/-->
-			<!-- 2184.533333 counts/degree -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Negative to Home Switch -->
-			<!--HomingMethod>21</HomingMethod-->
-			<!-- Positive to Home Switch -->
-			<HomingMethod>23</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>200</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>50</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>5000</HomingAccelDecel>
-			<HomingTimeOut>25000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>200</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>-10000000</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>10000000</ForwardSoftwareLimit>
-			<Speed>1000</Speed>
-			<Acceleration>5000</Acceleration>
-			<Deceleration>5000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Copley XE2 2-Axis -->
-		<Axis Name="SRD1.Rotation" MotorType="Copley" COEAddress="192.168.0.14.4.1" COEPort="1057" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ManufStatus" Type="ManufStatus" DataType="udint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ProfileStatus" Type="ProfileStatus" DataType="int"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ModeOfOperationDisplay" Type="ModeOfOperation" DataType="sint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualFollowingError" Type="PositionError" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualVelocity" Type="ActualVelocity" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD1_ROTATION_ActualTorque" Type="ActualTorque" DataType="int"/>
-			<Input Address="0x2253:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<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="0x2353:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x2110:00" Type="PeakCurrentLimit" DataType="int"/>
-			<Input Address="0x2111:00" Type="ContinuousCurrentLimit" DataType="int"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x2103:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x6067:00" Type="PositionWindow" DataType="udint"/>
-			<Input Address="0x2120:00" Type="FollowingErrorWindow" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD1_ROTATION_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<Output Address="0x2253:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<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"/>
-			<!-- 58.822222 counts/deg -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Positive to Index -->
-			<HomingMethod>35</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>2500</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>2500</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>420000</HomingAccelDecel>
-			<HomingTimeOut>15000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>2000</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
-			<Speed>529400</Speed>
-			<Acceleration>84000</Acceleration>
-			<Deceleration>84000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Maxon EPOS2 -->
-		<!-- position is in counts, speed is in rpm:  counts/sec * 60 sec/min / (512 * 4 counts/rev) = 0.0293 rev/min (rpm) -->
-		<Axis Name="SRD2.Arm" MotorType="Maxon" SpeedConversion="0.0293" COEAddress="192.168.0.14.5.1" COEPort="4098" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD2_ARM_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ARM_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="0x6085:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x607F:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x60C5:00" Type="AccelerationLimit" DataType="udint"/>
-			<Input Address="0x2082:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x1001:00" Type="ErrorRegister" DataType="usint"/>
-			<Input Address="0x1003:00" Type="ErrorHistoryCount" DataType="usint"/>
-			<Input Address="0x1003:01" Type="ErrorHistory1" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ARM_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="0x6081:00" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="0x6083:00" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="0x6084:00" Type="ProfileDecel" 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="0x6410:02" Type="PeakCurrentLimit" DataType="uint"/>
-			<Output Address="0x6410:01" Type="ContinuousCurrentLimit" DataType="uint"/>
-			<!--MiscConfig may be used someday if want to reverse direction of motion/-->
-			<!--Output Address="0x2008:00" Type="MiscConfig" DataType="uint"/-->
-			<!-- 2184.533333 counts/degree -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Negative to Home Switch -->
-			<!--HomingMethod>21</HomingMethod-->
-			<!-- Positive to Home Switch -->
-			<HomingMethod>23</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>200</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>50</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>5000</HomingAccelDecel>
-			<HomingTimeOut>25000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>200</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>-10000000</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>10000000</ForwardSoftwareLimit>
-			<Speed>1000</Speed>
-			<Acceleration>5000</Acceleration>
-			<Deceleration>5000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- Copley XE2 2-Axis -->
-		<Axis Name="SRD2.Rotation" MotorType="Copley" COEAddress="192.168.0.14.4.1" COEPort="1057" DebugLogging="false">
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_StatusWord" Type="StatusWord" DataType="uint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ManufStatus" Type="ManufStatus" DataType="udint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ProfileStatus" Type="ProfileStatus" DataType="int"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualMotorPosition" Type="MotorPosition" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualFollowingError" Type="PositionError" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualVelocity" Type="ActualVelocity" DataType="dint"/>
-			<Input Address="Task 2.Inputs.r_SRD2_ROTATION_ActualTorque" Type="ActualTorque" DataType="int"/>
-			<Input Address="0x2A53:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<Input Address="0x687D:01" Type="SoftwareLimitMinus" DataType="dint"/>
-			<Input Address="0x687D:02" Type="SoftwareLimitPlus" DataType="dint"/>
-			<Input Address="0x6898:00" Type="HomingMethod" DataType="byte"/>
-			<Input Address="0x687C:00" Type="HomeOffset" DataType="dint"/>
-			<Input Address="0x6899:01" Type="HomingVelocity" DataType="dint"/>
-			<Input Address="0x6899:02" Type="HomingVelocitySlow" DataType="dint"/>
-			<Input Address="0x689A:00" Type="HomingAccel" DataType="dint"/>
-			<Input Address="0x2B53:00" Type="HomeAdjustment" DataType="dint"/>
-			<Input Address="0x2910:00" Type="PeakCurrentLimit" DataType="int"/>
-			<Input Address="0x2911:00" Type="ContinuousCurrentLimit" DataType="int"/>
-			<Input Address="0x6885:00" Type="EStopDecel" DataType="udint"/>
-			<Input Address="0x2903:00" Type="VelocityLimit" DataType="udint"/>
-			<Input Address="0x6867:00" Type="PositionWindow" DataType="udint"/>
-			<Input Address="0x2920:00" Type="FollowingErrorWindow" DataType="udint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ControlWord" Type="ControlWord" DataType="uint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ModeOfOperation" Type="ModeOfOperation" DataType="byte"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_TargetPosition" Type="TargetPosition" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileVelocity" Type="ProfileVelocity" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileAccel" Type="ProfileAccel" DataType="dint"/>
-			<Output Address="Task 2.Outputs.c_SRD2_ROTATION_ProfileDecel" Type="ProfileDecel" DataType="dint"/>
-			<Output Address="0x2A53:00" Type="SoftwareLimitDecel" DataType="udint"/>
-			<Output Address="0x687D:01" Type="SoftwareLimitMinus" DataType="dint"/>
-			<Output Address="0x687D:02" Type="SoftwareLimitPlus" DataType="dint"/>
-			<Output Address="0x6898:00" Type="HomingMethod" DataType="byte"/>
-			<Output Address="0x687C:00" Type="HomeOffset" DataType="dint"/>
-			<Output Address="0x6899:01" Type="HomingVelocity" DataType="dint"/>
-			<Output Address="0x6899:02" Type="HomingVelocitySlow" DataType="dint"/>
-			<Output Address="0x689A:00" Type="HomingAccel" DataType="dint"/>
-			<!-- 58.822222 counts/deg -->
-			<MotorType>Servo</MotorType>
-			<MotorDriveDirection>-1</MotorDriveDirection>
-			<!-- +1 = Forward and -1 = Backward-->
-			<EncoderFeedbackDirectionMValue>0</EncoderFeedbackDirectionMValue>
-			<EncoderFeedbackDirectionNValue>0</EncoderFeedbackDirectionNValue>
-			<ReverseLimitSwitchPolarity>1</ReverseLimitSwitchPolarity>
-			<ForwardLimitSwitchPolarity>1</ForwardLimitSwitchPolarity>
-			<HomeSwitchPolarity>-1</HomeSwitchPolarity>
-			<!-- Positive to Index -->
-			<HomingMethod>35</HomingMethod>
-			<HomingOffset>0</HomingOffset>
-			<HomingSpeedHomeSwitch>2500</HomingSpeedHomeSwitch>
-			<HomingSpeedEncoderIndex>2500</HomingSpeedEncoderIndex>
-			<HomingAccelDecel>420000</HomingAccelDecel>
-			<HomingTimeOut>15000</HomingTimeOut>
-			<ProportionalGain>0</ProportionalGain>
-			<IntegralGain>0</IntegralGain>
-			<DerivativeGain>0</DerivativeGain>
-			<IntegralLimit>0</IntegralLimit>
-			<ErrorLimit>2000</ErrorLimit>
-			<VoltageOffset>0</VoltageOffset>
-			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
-			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
-			<Speed>529400</Speed>
-			<Acceleration>84000</Acceleration>
-			<Deceleration>84000</Deceleration>
-			<FeedforwardVelocity>0</FeedforwardVelocity>
-			<FeedforwardAcceleration>0</FeedforwardAcceleration>
-			<OffOnError>1</OffOnError>
-		</Axis>
-		<!-- SRD AXES END -->
+
+		<!--////////////////////////////////////////////////// ALL AXIS END //////////////////////////////////////////////////-->
 	</Controller>
 </BeckhoffCfg>

+ 1 - 1
PunkHPX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -148,7 +148,7 @@
 		<IO Name="VpwMain.LeakDetected" IOName="r_VPW_LEAK_DETECT"/>
 		<IO Name="VpwMain.VacuumPumpPressure" IOName="r_VPW_VAC_PUMP_PRESSURE"/>
 		<IO Name="VpwMain.VacuumPumpPower" IOName="c_VPW_VACUUM_PUMP_POWER"/>
-		<IO Name="VpwMain.VacuumPumpEnable" IOName="c_VPW_DEGAS_PUMP_ENABLE"/>
+		<IO Name="VpwMain.VacuumPumpEnable" IOName="c_VPW_VACUUM_PUMP_ENABLE"/>
 		<IO Name="VpwMain.VacuumPumpSpeedEnable" IOName="c_VPW_VACUUM_PUMP_SPEED_ENABLE"/>
 		<IO Name="VpwMain.VacuumPumpSpeed" IOName="c_VPW_VACUUM_PUMP_SPEED"/>
 		<IO Name="VpwMain.BoosterPumpSpeed" IOName="c_VPW_BOOSTER_PUMP_SPPED"/>

+ 1 - 1
PunkHPX8_RT/Devices/VpwCell/VpwCellDevice.cs

@@ -38,7 +38,7 @@ namespace PunkHPX8_RT.Devices.VpwCell
         /// <summary>
         /// 数据
         /// </summary>
-        private VpwCellCommonData _commonData;
+        private VpwCellCommonData _commonData=new VpwCellCommonData();
         #endregion
 
         #region 属性

+ 1 - 1
PunkHPX8_Twincate/PunkHPX8.project.~u

@@ -1,4 +1,4 @@
 JET-CK
 DESKTOP-JCT1016
 4172
-638864316090600913
+638864364942150304

+ 52 - 0
PunkHPX8_Twincate/PunkHPX8/PlcTest/POUs/MAIN.TcPOU

@@ -56,6 +56,58 @@ VAR
 	VPW2RotationProfileDecel AT%Q* :UDINT;	
 	//VPW2 Rotation motor step
 	VPW2RotationMotorStep :DINT;
+	
+	
+	//r_VPW_CHAMBER_CLOSED
+	VPW_DI_16CHANNEL_EL1819_N100_1 AT%I* :BOOL;
+	//r_VPW_CHAMBER_OPENED
+	VPW_DI_16CHANNEL_EL1819_N100_2 AT%I* :BOOL;
+	//r_VPW_LEAK_DETECT
+	VPW_DI_16CHANNEL_EL1819_N100_3 AT%I* :BOOL;
+	//r_VPW_VAC_PUMP_PRESSURE
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_8 AT%I* :DINT;
+	//r_VPW_BOOSTER_PUMP_STATUS
+	VPW_DI_16CHANNEL_EL1819_N100_9 AT%I* :BOOL;
+	//r_VPW_DIW_TOTAL_FLOW
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1 AT%I* :DINT;
+	//r_VPW_DIW_PRESSURE
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_4 AT%I* :DINT;
+	//r_VPW_DEGAS_PUMP_PRESSURE
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_5 AT%I* :DINT;
+	//c_VPW_CHAMBER_CLOSE
+	MOTION_DO_16CHANNEL_EL2809_N401_15 AT%Q* :BOOL;
+	//c_VPW_VACUUM_PUMP_POWER
+	VPW_DO_16CHANNEL_EL2809_101_5 AT%Q* :BOOL;
+	//c_VPW_DEGAS_PUMP_ENABLE
+	VPW_DO_16CHANNEL_EL2809_101_6 AT%Q* :BOOL;
+	//c_VPW_BOOSTER_PUMP_ENABLE
+	VPW_DO_16CHANNEL_EL2809_101_7 AT%Q* :BOOL;
+	//c_VPW_VACUUM_PUMP_ENABLE
+	VPW_DO_16CHANNEL_EL2809_101_8 AT%Q* :BOOL;
+	//c_VPW_VACUUM_PUMP_SPEED_ENABLE
+	VPW_DO_16CHANNEL_EL2809_101_9 AT%Q* :BOOL;
+	//c_VPW_VACUUM_PUMP_SPEED
+	VPW_AO_8CHANNEL_0_10V_EL4008_N104_1 AT%Q* :DINT;
+	//c_VPW_BOOSTER_PUMP_SPPED
+	VPW_AO_8CHANNEL_0_10V_EL4008_N104_5 AT%Q* :DINT;
+	//c_VPW_DIW_EABLE c_VPW_DIW_PROCESS c_VPW_1_FLOW_DRIP c_VPW_1_FLOW_SMALL c_VPW_1_FLOW_LARGE c_VPW_2_FLOW_DRIP c_VPW_2_FLOW_SMALL c_VPW_2_FLOW_LARGE
+	VPW_PNEU_SMC_EX260_V01_V04 AT%Q* :BYTE;
+	//c_VPW_DIW_DEGAS c_VPW_DEGAS_ADJUST c_VPW_DEGAS_PURGE c_VPW_1_VACUUM_VALVE c_VPW_1_VENT_VALVE c_VPW_2_VACUUM_VALVE c_VPW_2_VENT_VALVE
+	VPW_PNEU_SMC_EX260_V05_V08 AT%Q* :BYTE;
+	//c_VPW_1_DIW_DRAIN c_VPW_2_DIW_DRAIN
+	VPW_PNEU_SMC_EX260_V09_V12 AT%Q* :BYTE;
+	
+	//r_VPW_DIW_CELL_1_FLOW 
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2 AT%I* :DINT;
+	//r_VPW_CELL_1_VAC_PRESSURE
+	VPW_AI_8CHANNEL_0_10V_EL3068_N105_1 AT%I* :DINT;
+	
+	//r_VPW_DIW_CELL_2_FLOW 
+	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3 AT%I* :DINT;
+	//r_VPW_CELL_2_VAC_PRESSURE
+	VPW_AI_8CHANNEL_0_10V_EL3068_N105_2 AT%I* :DINT;
+	
+	
 END_VAR
 ]]></Declaration>
     <Implementation>

File diff suppressed because it is too large
+ 1 - 1
PunkHPX8_Twincate/PunkHPX8/PlcTest/PlcTest.tmc


BIN
PunkHPX8_Twincate/PunkHPX8/PlcTest/_CompileInfo/BAD3E06D-DC38-6EE0-7012-66D019F9AA06.compileinfo


+ 133 - 6
PunkHPX8_Twincate/PunkHPX8/PunkHPX8.tsproj

@@ -60,11 +60,23 @@
 				<Task Id="3" Priority="20" CycleTime="100000" AmsPort="350" AdtTasks="true">
 					<Name>PlcTask</Name>
 				</Task>
+				<Task Id="4" Priority="1" CycleTime="100000" AmsPort="301">
+					<Name>Task 2</Name>
+					<Vars VarGrpType="1" InsertType="1">
+						<Name>Inputs</Name>
+					</Vars>
+					<Vars VarGrpType="2" InsertType="1">
+						<Name>Outputs</Name>
+					</Vars>
+					<Image Id="3" AddrType="1" ImageType="1">
+						<Name>Image</Name>
+					</Image>
+				</Task>
 			</Tasks>
 		</System>
 		<Plc>
 			<Project GUID="{0963B2F1-D4B3-4E8F-8F3D-B9BFEA087552}" Name="PlcTest" PrjFilePath="PlcTest\PlcTest.plcproj" TmcFilePath="PlcTest\PlcTest.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" SymbolicMapping="true">
-				<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcPath="PlcTest\PlcTest.tmc" TmcHash="{A3433B02-491E-FDEA-F86C-C0C78520951F}">
+				<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcPath="PlcTest\PlcTest.tmc" TmcHash="{6F6F0822-B0EB-92A5-1B47-FC8B9D4CBC93}">
 					<Name>PlcTest Instance</Name>
 					<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
 					<Vars VarGrpType="1">
@@ -90,6 +102,11 @@
 							<Type>UDINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW_DI_16CHANNEL_EL1819_N100_1</Name>
+							<Comment><![CDATA[r_VPW_CHAMBER_CLOSED]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationDigitalInputs</Name>
 							<Comment><![CDATA[VPW1 Rotation digital inputs]]></Comment>
 							<Type>UDINT</Type>
@@ -110,6 +127,61 @@
 							<Type>DINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW_DI_16CHANNEL_EL1819_N100_2</Name>
+							<Comment><![CDATA[r_VPW_CHAMBER_OPENED]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DI_16CHANNEL_EL1819_N100_3</Name>
+							<Comment><![CDATA[r_VPW_LEAK_DETECT]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DI_16CHANNEL_EL1819_N100_9</Name>
+							<Comment><![CDATA[r_VPW_BOOSTER_PUMP_STATUS]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_8</Name>
+							<Comment><![CDATA[r_VPW_VAC_PUMP_PRESSURE]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1</Name>
+							<Comment><![CDATA[r_VPW_DIW_TOTAL_FLOW]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_4</Name>
+							<Comment><![CDATA[r_VPW_DIW_PRESSURE]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_5</Name>
+							<Comment><![CDATA[r_VPW_DEGAS_PUMP_PRESSURE]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2</Name>
+							<Comment><![CDATA[r_VPW_DIW_CELL_1_FLOW ]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_0_10V_EL3068_N105_1</Name>
+							<Comment><![CDATA[r_VPW_CELL_1_VAC_PRESSURE]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3</Name>
+							<Comment><![CDATA[r_VPW_DIW_CELL_2_FLOW ]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AI_8CHANNEL_0_10V_EL3068_N105_2</Name>
+							<Comment><![CDATA[r_VPW_CELL_2_VAC_PRESSURE]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationPositionError</Name>
 							<Comment><![CDATA[VPW1 Rotation position error]]></Comment>
 							<Type>UDINT</Type>
@@ -133,11 +205,6 @@
 					<Vars VarGrpType="2" AreaNo="1">
 						<Name>PlcTask Outputs</Name>
 						<Var>
-							<Name>MAIN.VPW1RotationControlWord</Name>
-							<Comment><![CDATA[VPW1 Rotation control word]]></Comment>
-							<Type>UINT</Type>
-						</Var>
-						<Var>
 							<Name>MAIN.VPW2RotationControlWord</Name>
 							<Comment><![CDATA[VPW2 Rotation control word]]></Comment>
 							<Type>UINT</Type>
@@ -163,6 +230,11 @@
 							<Type>SINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW1RotationControlWord</Name>
+							<Comment><![CDATA[VPW1 Rotation control word]]></Comment>
+							<Type>UINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW2RotationTargetPosition</Name>
 							<Comment><![CDATA[VPW2 Rotation target position]]></Comment>
 							<Type>DINT</Type>
@@ -183,6 +255,61 @@
 							<Type>UDINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.MOTION_DO_16CHANNEL_EL2809_N401_15</Name>
+							<Comment><![CDATA[c_VPW_CHAMBER_CLOSE]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DO_16CHANNEL_EL2809_101_5</Name>
+							<Comment><![CDATA[c_VPW_VACUUM_PUMP_POWER]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DO_16CHANNEL_EL2809_101_6</Name>
+							<Comment><![CDATA[c_VPW_DEGAS_PUMP_ENABLE]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DO_16CHANNEL_EL2809_101_7</Name>
+							<Comment><![CDATA[c_VPW_BOOSTER_PUMP_ENABLE]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DO_16CHANNEL_EL2809_101_8</Name>
+							<Comment><![CDATA[c_VPW_VACUUM_PUMP_ENABLE]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_DO_16CHANNEL_EL2809_101_9</Name>
+							<Comment><![CDATA[c_VPW_VACUUM_PUMP_SPEED_ENABLE]]></Comment>
+							<Type>BOOL</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_PNEU_SMC_EX260_V01_V04</Name>
+							<Comment><![CDATA[c_VPW_DIW_EABLE c_VPW_DIW_PROCESS c_VPW_1_FLOW_DRIP c_VPW_1_FLOW_SMALL c_VPW_1_FLOW_LARGE c_VPW_2_FLOW_DRIP c_VPW_2_FLOW_SMALL c_VPW_2_FLOW_LARGE]]></Comment>
+							<Type>BYTE</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_PNEU_SMC_EX260_V05_V08</Name>
+							<Comment><![CDATA[c_VPW_DIW_DEGAS c_VPW_DEGAS_ADJUST c_VPW_DEGAS_PURGE c_VPW_1_VACUUM_VALVE c_VPW_1_VENT_VALVE c_VPW_2_VACUUM_VALVE c_VPW_2_VENT_VALVE]]></Comment>
+							<Type>BYTE</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_PNEU_SMC_EX260_V09_V12</Name>
+							<Comment><![CDATA[c_VPW_1_DIW_DRAIN c_VPW_2_DIW_DRAIN]]></Comment>
+							<Type>BYTE</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AO_8CHANNEL_0_10V_EL4008_N104_1</Name>
+							<Comment><![CDATA[c_VPW_VACUUM_PUMP_SPEED]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW_AO_8CHANNEL_0_10V_EL4008_N104_5</Name>
+							<Comment><![CDATA[c_VPW_BOOSTER_PUMP_SPPED]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationProfileAccel</Name>
 							<Comment><![CDATA[VPW1 Rotation profile acceleration]]></Comment>
 							<Type>UDINT</Type>

+ 73 - 1
PunkHPX8_Twincate/PunkHPX8/PunkHPX8.tsproj.bak

@@ -60,11 +60,23 @@
 				<Task Id="3" Priority="20" CycleTime="100000" AmsPort="350" AdtTasks="true">
 					<Name>PlcTask</Name>
 				</Task>
+				<Task Id="4" Priority="1" CycleTime="100000" AmsPort="301">
+					<Name>Task 2</Name>
+					<Vars VarGrpType="1" InsertType="1">
+						<Name>Inputs</Name>
+					</Vars>
+					<Vars VarGrpType="2" InsertType="1">
+						<Name>Outputs</Name>
+					</Vars>
+					<Image Id="3" AddrType="1" ImageType="1">
+						<Name>Image</Name>
+					</Image>
+				</Task>
 			</Tasks>
 		</System>
 		<Plc>
 			<Project GUID="{0963B2F1-D4B3-4E8F-8F3D-B9BFEA087552}" Name="PlcTest" PrjFilePath="PlcTest\PlcTest.plcproj" TmcFilePath="PlcTest\PlcTest.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" SymbolicMapping="true">
-				<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcPath="PlcTest\PlcTest.tmc" TmcHash="{0C526829-26A0-B473-61BF-94C29D2AD155}">
+				<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcPath="PlcTest\PlcTest.tmc" TmcHash="{A3433B02-491E-FDEA-F86C-C0C78520951F}">
 					<Name>PlcTest Instance</Name>
 					<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
 					<Vars VarGrpType="1">
@@ -75,11 +87,41 @@
 							<Type>UINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW2RotationStatusWord</Name>
+							<Comment><![CDATA[VPW2 Rotation Status word]]></Comment>
+							<Type>UINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationDigitalInputs</Name>
+							<Comment><![CDATA[VPW2 Rotation digital inputs]]></Comment>
+							<Type>UDINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationPositionError</Name>
+							<Comment><![CDATA[VPW2 Rotation position error]]></Comment>
+							<Type>UDINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationDigitalInputs</Name>
 							<Comment><![CDATA[VPW1 Rotation digital inputs]]></Comment>
 							<Type>UDINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW2RotationActualVelocity</Name>
+							<Comment><![CDATA[VPW2 Rotation actual velocity]]></Comment>
+							<Type>UDINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationActualTorque</Name>
+							<Comment><![CDATA[VPW2 Rotation actual torque]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationMotorPosition</Name>
+							<Comment><![CDATA[VPW2 Rotation motor position]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationPositionError</Name>
 							<Comment><![CDATA[VPW1 Rotation position error]]></Comment>
 							<Type>UDINT</Type>
@@ -108,6 +150,11 @@
 							<Type>UINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW2RotationControlWord</Name>
+							<Comment><![CDATA[VPW2 Rotation control word]]></Comment>
+							<Type>UINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationModeOfOperation</Name>
 							<Comment><![CDATA[VPW1 Rotation mode of operation]]></Comment>
 							<Type>SINT</Type>
@@ -123,6 +170,31 @@
 							<Type>DINT</Type>
 						</Var>
 						<Var>
+							<Name>MAIN.VPW2RotationModeOfOperation</Name>
+							<Comment><![CDATA[VPW2 Rotation mode of operation]]></Comment>
+							<Type>SINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationTargetPosition</Name>
+							<Comment><![CDATA[VPW2 Rotation target position]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationProfileVelocity</Name>
+							<Comment><![CDATA[VPW2 Rotation profile volecity]]></Comment>
+							<Type>DINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationProfileAccel</Name>
+							<Comment><![CDATA[VPW2 Rotation profile acceleration]]></Comment>
+							<Type>UDINT</Type>
+						</Var>
+						<Var>
+							<Name>MAIN.VPW2RotationProfileDecel</Name>
+							<Comment><![CDATA[VPW2 Rotation profile deceleration]]></Comment>
+							<Type>UDINT</Type>
+						</Var>
+						<Var>
 							<Name>MAIN.VPW1RotationProfileAccel</Name>
 							<Comment><![CDATA[VPW1 Rotation profile acceleration]]></Comment>
 							<Type>UDINT</Type>

BIN
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip


File diff suppressed because it is too large
+ 30 - 6
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/CurrentConfig.xml


BIN
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/CurrentConfig/PlcTest.tpzip


BIN
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/Plc/Port_851.app


+ 1 - 1
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid

@@ -1 +1 @@
-˜*£�—Ôò!“*‡Ýa÷§²
+O
sì°=x’Åפò

BIN
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc


BIN
PunkHPX8_Twincate/PunkHPX8/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip