chenkui 1 месяц назад
Родитель
Сommit
2b8af86fbd

+ 116 - 0
CyberX8_RT/Config/Devices/FestoControllerCfg-Simulator.xml

@@ -1,5 +1,121 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FestoControllerConfig>
+	<FestoDeviceConfig Name="Festo1" IpAddress="127.0.0.1" Port="504" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1">
+		<DO Name="c_METAL1_CIRCULATION"  Address="40003" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO1"  Address="40003" Invert="false" Bit="1"/>
+		<DO Name="c_METAL2_CIRCULATION"  Address="40003" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO3"  Address="40003" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO4"  Address="40003" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO5"  Address="40003" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO6"  Address="40003" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO7"  Address="40003" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO8"  Address="40004" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO9"  Address="40004" Invert="false" Bit="1"/>
+		<DO Name="c_QDRD1_DI_FILL" Address="40004" Invert="false" Bit="2"/>
+		<DO Name="c_QDRD1_DUMP" Address="40004" Invert="false" Bit="3"/>
+		<DO Name="c_RESERVOIR1_DI_REPLEN" Address="40004" Invert="false" Bit="4"/>
+		<DO Name="c_QDRD2_DI_FILL" Address="40004" Invert="false" Bit="5"/>
+		<DO Name="c_QDRD2_DUMP" Address="40004" Invert="false" Bit="6"/>
+		<DO Name="c_RESERVOIR2_DI_REPLEN" Address="40004" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD3_DI_FILL" Address="40005" Invert="false" Bit="0"/>
+		<DO Name="c_QDRD3_DUMP" Address="40005" Invert="false" Bit="1"/>
+		<DO Name="c_RESERVOIR3_DI_REPLEN" Address="40005" Invert="false" Bit="2"/>
+		<DO Name="c_PH2_FLOW_VALVE" Address="40005" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO20" Address="40005" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO21" Address="40005" Invert="false" Bit="5"/>
+		<DO Name="c_FILTER_PURGE_ENABLE" Address="40005" Invert="false" Bit="6"/>
+		<DO Name="c_SAMPLE_STATION_ENABLE" Address="40005" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD1_WH_CLAMP" Address="40006" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO25" Address="40006" Invert="false" Bit="1"/>
+		<DO Name="c_METAL1_WH_CLAMP" Address="40006" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO27" Address="40006" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD2_WH_CLAMP" Address="40006" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO29" Address="40006" Invert="false" Bit="5"/>
+		<DO Name="c_METAL2_WH_CLAMP" Address="40006" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO31" Address="40006" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD3_WH_CLAMP" Address="40007" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO33" Address="40007" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO34" Address="40007" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO35" Address="40007" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO36" Address="40007" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO37" Address="40007" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO38" Address="40007" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO39" Address="40007" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO40" Address="40008" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO41" Address="40008" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO42" Address="40008" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO43" Address="40008" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD1_MDRAIN" Address="40008" Invert="false" Bit="4"/>
+		<DO Name="c_QDRD2_MDRAIN" Address="40008" Invert="false" Bit="5"/>
+		<DO Name="c_QDRD3_MDRAIN" Address="40008" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO47" Address="40008" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO48" Address="40009" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO49" Address="40009" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO50" Address="40009" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO51" Address="40009" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO52" Address="40009" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO53" Address="40009" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO54" Address="40009" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO55" Address="40009" Invert="false" Bit="7"/>
+	</FestoDeviceConfig>
+	<FestoDeviceConfig Name="Festo2" IpAddress="127.0.0.1" Port="503" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1">
+		<DO Name="c_QDRD4_DI_FILL"  Address="40003" Invert="false" Bit="0"/>
+		<DO Name="c_QDRD4_DUMP"  Address="40003" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO2"  Address="40003" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO3"  Address="40003" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO4"  Address="40003" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO5"  Address="40003" Invert="false" Bit="5"/>
+		<DO Name="c_RESERVOIR4_DI_REPLEN"  Address="40003" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO7"  Address="40003" Invert="false" Bit="7"/>
+		<DO Name="c_METAL3_CIRCULATION"  Address="40004" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO9"  Address="40004" Invert="false" Bit="1"/>
+		<DO Name="c_METAL4_CIRCULATION" Address="40004" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO11" Address="40004" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO12" Address="40004" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO13" Address="40004" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO14" Address="40004" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO15" Address="40004" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO16" Address="40005" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO17" Address="40005" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO18" Address="40005" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO19" Address="40005" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO20" Address="40005" Invert="false" Bit="4"/>
+		<DO Name="c_PREWET_DI_FILL" Address="40005" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO22" Address="40005" Invert="false" Bit="6"/>
+		<DO Name="c_DI_LOADER_ENABLE" Address="40005" Invert="false" Bit="7"/>
+		<DO Name="c_METAL3_WH_CLAMP" Address="40006" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO25" Address="40006" Invert="false" Bit="1"/>
+		<DO Name="c_METAL4_WH_CLAMP" Address="40006" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO27" Address="40006" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO28" Address="40006" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO29" Address="40006" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO30" Address="40006" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO31" Address="40006" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO32" Address="40007" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO33" Address="40007" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO34" Address="40007" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO35" Address="40007" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD4_WH_CLAMP" Address="40007" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO37" Address="40007" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO38" Address="40007" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO39" Address="40007" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO40" Address="40008" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO41" Address="40008" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO42" Address="40008" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO43" Address="40008" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD4_MDRAIN" Address="40008" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO45" Address="40008" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO46" Address="40008" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO47" Address="40008" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO48" Address="40009" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO49" Address="40009" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO50" Address="40009" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO51" Address="40009" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO52" Address="40009" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO53" Address="40009" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO54" Address="40009" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO55" Address="40009" Invert="false" Bit="7"/>
+	</FestoDeviceConfig>
 	<FestoDeviceConfig Name="Festo3" IpAddress="127.0.0.1" Port="502" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1">
 		<DO Name="c_TRANSPORT1_DROP_BLOCK_LOCK"  Address="40003" Invert="false" Bit="0"/>
 		<DO Name="Festo.DO1" Address="40003" Invert="false" Bit="1"/>

+ 116 - 0
CyberX8_RT/Config/Devices/FestoControllerCfg.xml

@@ -1,5 +1,121 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FestoControllerConfig>
+	<FestoDeviceConfig Name="Festo1" IpAddress="10.0.0.40" Port="502" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1"> 
+		<DO Name="c_METAL1_CIRCULATION"  Address="40003" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO1"  Address="40003" Invert="false" Bit="1"/>
+		<DO Name="c_METAL2_CIRCULATION"  Address="40003" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO3"  Address="40003" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO4"  Address="40003" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO5"  Address="40003" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO6"  Address="40003" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO7"  Address="40003" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO8"  Address="40004" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO9"  Address="40004" Invert="false" Bit="1"/>
+		<DO Name="c_QDRD1_DI_FILL" Address="40004" Invert="false" Bit="2"/>
+		<DO Name="c_QDRD1_DUMP" Address="40004" Invert="false" Bit="3"/>
+		<DO Name="c_RESERVOIR1_DI_REPLEN" Address="40004" Invert="false" Bit="4"/>
+		<DO Name="c_QDRD2_DI_FILL" Address="40004" Invert="false" Bit="5"/>
+		<DO Name="c_QDRD2_DUMP" Address="40004" Invert="false" Bit="6"/>
+		<DO Name="c_RESERVOIR2_DI_REPLEN" Address="40004" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD3_DI_FILL" Address="40005" Invert="false" Bit="0"/>
+		<DO Name="c_QDRD3_DUMP" Address="40005" Invert="false" Bit="1"/>
+		<DO Name="c_RESERVOIR3_DI_REPLEN" Address="40005" Invert="false" Bit="2"/>
+		<DO Name="c_PH2_FLOW_VALVE" Address="40005" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO20" Address="40005" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO21" Address="40005" Invert="false" Bit="5"/>
+		<DO Name="c_FILTER_PURGE_ENABLE" Address="40005" Invert="false" Bit="6"/>
+		<DO Name="c_SAMPLE_STATION_ENABLE" Address="40005" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD1_WH_CLAMP" Address="40006" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO25" Address="40006" Invert="false" Bit="1"/>
+		<DO Name="c_METAL1_WH_CLAMP" Address="40006" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO27" Address="40006" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD2_WH_CLAMP" Address="40006" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO29" Address="40006" Invert="false" Bit="5"/>
+		<DO Name="c_METAL2_WH_CLAMP" Address="40006" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO31" Address="40006" Invert="false" Bit="7"/>
+		<DO Name="c_QDRD3_WH_CLAMP" Address="40007" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO33" Address="40007" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO34" Address="40007" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO35" Address="40007" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO36" Address="40007" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO37" Address="40007" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO38" Address="40007" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO39" Address="40007" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO40" Address="40008" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO41" Address="40008" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO42" Address="40008" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO43" Address="40008" Invert="false" Bit="3"/>
+		<DO Name="c_QDRD1_MDRAIN" Address="40008" Invert="false" Bit="4"/>
+		<DO Name="c_QDRD2_MDRAIN" Address="40008" Invert="false" Bit="5"/>
+		<DO Name="c_QDRD3_MDRAIN" Address="40008" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO47" Address="40008" Invert="false" Bit="7"/>
+		<DO Name="Festo.DO48" Address="40009" Invert="false" Bit="0"/>
+		<DO Name="Festo.DO49" Address="40009" Invert="false" Bit="1"/>
+		<DO Name="Festo.DO50" Address="40009" Invert="false" Bit="2"/>
+		<DO Name="Festo.DO51" Address="40009" Invert="false" Bit="3"/>
+		<DO Name="Festo.DO52" Address="40009" Invert="false" Bit="4"/>
+		<DO Name="Festo.DO53" Address="40009" Invert="false" Bit="5"/>
+		<DO Name="Festo.DO54" Address="40009" Invert="false" Bit="6"/>
+		<DO Name="Festo.DO55" Address="40009" Invert="false" Bit="7"/>	
+  </FestoDeviceConfig>
+  <FestoDeviceConfig Name="Festo2" IpAddress="10.0.0.41" Port="502" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1"> 
+    <DO Name="c_QDRD4_DI_FILL"  Address="40003" Invert="false" Bit="0"/>
+	<DO Name="c_QDRD4_DUMP"  Address="40003" Invert="false" Bit="1"/>
+	<DO Name="Festo.DO2"  Address="40003" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO3"  Address="40003" Invert="false" Bit="3"/>
+	<DO Name="Festo.DO4"  Address="40003" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO5"  Address="40003" Invert="false" Bit="5"/>
+	<DO Name="c_RESERVOIR4_DI_REPLEN"  Address="40003" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO7"  Address="40003" Invert="false" Bit="7"/>
+	<DO Name="c_METAL3_CIRCULATION"  Address="40004" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO9"  Address="40004" Invert="false" Bit="1"/>
+	<DO Name="c_METAL4_CIRCULATION" Address="40004" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO11" Address="40004" Invert="false" Bit="3"/>
+	<DO Name="Festo.DO12" Address="40004" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO13" Address="40004" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO14" Address="40004" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO15" Address="40004" Invert="false" Bit="7"/>
+	<DO Name="Festo.DO16" Address="40005" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO17" Address="40005" Invert="false" Bit="1"/>
+	<DO Name="Festo.DO18" Address="40005" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO19" Address="40005" Invert="false" Bit="3"/>
+	<DO Name="Festo.DO20" Address="40005" Invert="false" Bit="4"/>
+	<DO Name="c_PREWET_DI_FILL" Address="40005" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO22" Address="40005" Invert="false" Bit="6"/>
+	<DO Name="c_DI_LOADER_ENABLE" Address="40005" Invert="false" Bit="7"/>
+	<DO Name="c_METAL3_WH_CLAMP" Address="40006" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO25" Address="40006" Invert="false" Bit="1"/>
+	<DO Name="c_METAL4_WH_CLAMP" Address="40006" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO27" Address="40006" Invert="false" Bit="3"/>
+	<DO Name="Festo.DO28" Address="40006" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO29" Address="40006" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO30" Address="40006" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO31" Address="40006" Invert="false" Bit="7"/>
+	<DO Name="Festo.DO32" Address="40007" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO33" Address="40007" Invert="false" Bit="1"/>
+	<DO Name="Festo.DO34" Address="40007" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO35" Address="40007" Invert="false" Bit="3"/>
+	<DO Name="c_QDRD4_WH_CLAMP" Address="40007" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO37" Address="40007" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO38" Address="40007" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO39" Address="40007" Invert="false" Bit="7"/>
+	<DO Name="Festo.DO40" Address="40008" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO41" Address="40008" Invert="false" Bit="1"/>
+	<DO Name="Festo.DO42" Address="40008" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO43" Address="40008" Invert="false" Bit="3"/>
+	<DO Name="c_QDRD4_MDRAIN" Address="40008" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO45" Address="40008" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO46" Address="40008" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO47" Address="40008" Invert="false" Bit="7"/>
+	<DO Name="Festo.DO48" Address="40009" Invert="false" Bit="0"/>
+	<DO Name="Festo.DO49" Address="40009" Invert="false" Bit="1"/>
+	<DO Name="Festo.DO50" Address="40009" Invert="false" Bit="2"/>
+	<DO Name="Festo.DO51" Address="40009" Invert="false" Bit="3"/>
+	<DO Name="Festo.DO52" Address="40009" Invert="false" Bit="4"/>
+	<DO Name="Festo.DO53" Address="40009" Invert="false" Bit="5"/>
+	<DO Name="Festo.DO54" Address="40009" Invert="false" Bit="6"/>
+	<DO Name="Festo.DO55" Address="40009" Invert="false" Bit="7"/>	
+  </FestoDeviceConfig>
 	<FestoDeviceConfig Name="Festo3" IpAddress="10.0.0.42" Port="502" SendTimeout="2000" RecvTimeout="2000" DIStartAddress="45395" Channel="1">
 		<DO Name="c_TRANSPORT1_DROP_BLOCK_LOCK"  Address="40003" Invert="false" Bit="0"/>
 		<DO Name="Festo.DO1" Address="40003" Invert="false" Bit="1"/>

+ 9 - 9
CyberX8_RT/Config/Devices/WagoControllerCfg-Simulator.xml

@@ -190,7 +190,7 @@
 				<DI Name="DI26"  Address="26" Invert="false"/>
 				<DI Name="DI27"  Address="27" Invert="false"/>
 				<DI Name="r_REAR_DOOR_INTLK"  Address="28" Invert="false"/>
-				<DI Name="r_SAMPLE_SYS_FLUID_NOT_PRESENT"  Address="29" Invert="false"/>
+				<DI Name="r_SAMPLE_SYS_FLUID_PRESENT"  Address="29" Invert="false"/>
 				<DI Name="DI28"  Address="30" Invert="false"/>
 				<DI Name="DI29"  Address="31" Invert="false"/>
 			</DIGroup>
@@ -220,13 +220,13 @@
 		<Dig_Out>
 			<DOGroup Name="23">
 				<DO Name="c_CDA_ENABLE"  Address="512" Invert="false"/>
-				<DO Name="c_DI_ENABLE"  Address="513" Invert="false"/>
+				<DO Name="c_DI_MAIN_ENABLE"  Address="513" Invert="false"/>
 				<DO Name="c_DI_FILL_ENABLE"  Address="514" Invert="false"/>
 				<DO Name="c_DI_REPLEN_ENABLE"  Address="515" Invert="false"/>
 				<DO Name="c_EXTERNAL_CDA_ENABLE"  Address="516" Invert="false"/>
 				<DO Name="c_HCW_ENABLE"  Address="517" Invert="false"/>
 				<DO Name="DO6"  Address="518" Invert="false"/>
-				<DO Name="c_N2_ENABLEc_QDRD1_LO_PRESSURE"  Address="519" Invert="false"/>
+				<DO Name="c_N2_ENABLE"  Address="519" Invert="false"/>
 				<DO Name="c_QDRD1_LO_PRESSURE"  Address="520" Invert="false"/>
 				<DO Name="c_QDRD2_LO_PRESSURE"  Address="521" Invert="false"/>
 				<DO Name="c_QDRD3_LO_PRESSURE"  Address="522" Invert="false"/>
@@ -290,7 +290,7 @@
 			</AIGroup>
 			<AIGroup Name="3">
 				<AI Name="AI8"  Address="8" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-				<AI Name="AI9"  Address="9" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="r_SYSTEM_EXHAUST"  Address="9" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="r_PREWET_FLOW"  Address="10" Scaling="0=3276.7,40=32767" DataType="short"/>
 				<AI Name="r_DI_WATER_PRESSURE"  Address="11" Scaling="0=3276.7,100=32767" DataType="short"/>
 			</AIGroup>
@@ -350,13 +350,13 @@
 			</AIGroup>
 			<AIGroup Name="13">
 				<AI Name="AI48"  Address="48" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-				<AI Name="r_N2_1_LOW_PRESSURE"  Address="49" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-				<AI Name="r_N2_1_PRESSURE"  Address="50" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-				<AI Name="r_N2_2_LOW_PRESSURE"  Address="51" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_1B_PRESSURE"  Address="49" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_1A_PRESSURE"  Address="50" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_2B_PRESSURE"  Address="51" Scaling="0=3276.7,145=16383.5" DataType="short"/>
 			</AIGroup>
 			<AIGroup Name="14">
-				<AI Name="r_N2_2_PRESSURE"  Address="52" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-				<AI Name="r_PROC_BALANCE_PRESSURE"  Address="53" Scaling="0=3276.7,14.5=16383.5" DataType="short"/>
+				<AI Name="r_N2_2A_PRESSURE"  Address="52" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_BLANKET_PRESSURE"  Address="53" Scaling="0=3276.7,14.5=16383.5" DataType="short"/>
 				<AI Name="r_SYSTEM_VACUUM"  Address="54" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI55"  Address="55" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>

+ 238 - 238
CyberX8_RT/Config/Devices/WagoControllerCfg.xml

@@ -156,242 +156,242 @@
 	<Ano_Out>
 	</Ano_Out>
 </WagoDeviceConfig>
-<WagoDeviceConfig Module="Wago2" IpAddress="10.0.0.10" Port="502" SendTimeout="2000" RecvTimeout="2000" Channel="1">
-	<Dig_In>
-		<DIGroup Name="20">
-			<DI Name="DI0"  Address="0" Invert="false"/>
-			<DI Name="DI1"  Address="1" Invert="false"/>
-			<DI Name="DI2"  Address="2" Invert="false"/>
-			<DI Name="DI3"  Address="3" Invert="false"/>
-			<DI Name="DI4"  Address="4" Invert="false"/>
-			<DI Name="DI5"  Address="5" Invert="false"/>
-			<DI Name="DI6"  Address="6" Invert="false"/>
-			<DI Name="DI7"  Address="7" Invert="false"/>
-			<DI Name="DI8"  Address="8" Invert="false"/>
-			<DI Name="DI9"  Address="9" Invert="false"/>
-			<DI Name="DI10"  Address="10" Invert="false"/>
-			<DI Name="DI11"  Address="11" Invert="false"/>
-			<DI Name="DI12"  Address="12" Invert="false"/>
-			<DI Name="DI13"  Address="13" Invert="false"/>
-			<DI Name="DI14"  Address="14" Invert="false"/>
-			<DI Name="DI15"  Address="15" Invert="false"/>
-		</DIGroup>
-		<DIGroup Name="21">
-			<DI Name="DI16"  Address="16" Invert="false"/>
-			<DI Name="DI17"  Address="17" Invert="false"/>
-			<DI Name="DI18"  Address="18" Invert="false"/>
-			<DI Name="DI19"  Address="19" Invert="false"/>
-			<DI Name="DI20"  Address="20" Invert="false"/>
-			<DI Name="DI21"  Address="21" Invert="false"/>
-			<DI Name="r_CONTAINMENT_FLUID"  Address="22" Invert="true"/>
-			<DI Name="r_DOOR_INLK_OK"  Address="23" Invert="false"/>
-			<DI Name="DI24"  Address="24" Invert="false"/>
-			<DI Name="DI25"  Address="25" Invert="false"/>
-			<DI Name="DI26"  Address="26" Invert="false"/>
-			<DI Name="DI27"  Address="27" Invert="false"/>
-			<DI Name="r_REAR_DOOR_INTLK"  Address="28" Invert="false"/>
-			<DI Name="r_SAMPLE_SYS_FLUID_NOT_PRESENT"  Address="29" Invert="false"/>
-			<DI Name="DI28"  Address="30" Invert="false"/>
-			<DI Name="DI29"  Address="31" Invert="false"/>
-		</DIGroup>
-		<DIGroup Name="22">
-			<DI Name="r_RES1_HI_LEVEL"  Address="32" Invert="false"/>
-			<DI Name="r_RES1_LOW_LEVEL"  Address="33" Invert="true"/>
-			<DI Name="r_RES2_HIGH_LEVEL"  Address="34" Invert="false"/>
-			<DI Name="r_RES2_LOW_LEVEL"  Address="35" Invert="true"/>
-			<DI Name="r_RES3_HIGH_LEVEL"  Address="36" Invert="false"/>
-			<DI Name="r_RES3_LOW_LEVEL"  Address="37" Invert="true"/>
-			<DI Name="r_RES4_HIGH_LEVEL"  Address="38" Invert="false"/>
-			<DI Name="r_RES4_LOW_LEVEL"  Address="39" Invert="true"/>
-			<DI Name="DI38"  Address="40" Invert="false"/>
-			<DI Name="DI39"  Address="41" Invert="false"/>
-			<DI Name="DI40"  Address="42" Invert="false"/>
-			<DI Name="DI41"  Address="43" Invert="false"/>
-			<DI Name="DI42"  Address="44" Invert="false"/>
-			<DI Name="DI43"  Address="45" Invert="false"/>
-			<DI Name="DI44"  Address="46" Invert="false"/>
-			<DI Name="DI45"  Address="47" Invert="false"/>
-		</DIGroup>
-		<DIGroup Name="30">
-			<DI Name="DI46"  Address="48" Invert="false"/>
-			<DI Name="DI47"  Address="49" Invert="false"/>
-		</DIGroup>
-	</Dig_In>
-	<Dig_Out>
-		<DOGroup Name="23">
-			<DO Name="c_CDA_ENABLE"  Address="512" Invert="false"/>
-			<DO Name="c_DI_ENABLE"  Address="513" Invert="false"/>
-			<DO Name="c_DI_FILL_ENABLE"  Address="514" Invert="false"/>
-			<DO Name="c_DI_REPLEN_ENABLE"  Address="515" Invert="false"/>
-			<DO Name="c_EXTERNAL_CDA_ENABLE"  Address="516" Invert="false"/>
-			<DO Name="c_HCW_ENABLE"  Address="517" Invert="false"/>
-			<DO Name="DO6"  Address="518" Invert="false"/>
-			<DO Name="c_N2_ENABLEc_QDRD1_LO_PRESSURE"  Address="519" Invert="false"/>
-			<DO Name="c_QDRD1_LO_PRESSURE"  Address="520" Invert="false"/>
-			<DO Name="c_QDRD2_LO_PRESSURE"  Address="521" Invert="false"/>
-			<DO Name="c_QDRD3_LO_PRESSURE"  Address="522" Invert="false"/>
-			<DO Name="c_QDRD4_LO_PRESSURE"  Address="523" Invert="false"/>
-			<DO Name="DO12"  Address="524" Invert="false"/>
-			<DO Name="DO13"  Address="525" Invert="false"/>
-			<DO Name="DO14"  Address="526" Invert="false"/>
-			<DO Name="DO15"  Address="527" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="24">
-			<DO Name="DO16"  Address="528" Invert="false"/>
-			<DO Name="DO17"  Address="529" Invert="false"/>
-			<DO Name="DO18"  Address="530" Invert="false"/>
-			<DO Name="DO19"  Address="531" Invert="false"/>
-			<DO Name="DO20"  Address="532" Invert="false"/>
-			<DO Name="DO21"  Address="533" Invert="false"/>
-			<DO Name="DO22"  Address="534" Invert="false"/>
-			<DO Name="DO23"  Address="535" Invert="false"/>
-			<DO Name="DO24"  Address="536" Invert="false"/>
-			<DO Name="DO25"  Address="537" Invert="false"/>
-			<DO Name="DO26"  Address="538" Invert="false"/>
-			<DO Name="DO27"  Address="539" Invert="false"/>
-			<DO Name="DO28"  Address="540" Invert="false"/>
-			<DO Name="DO29"  Address="541" Invert="false"/>
-			<DO Name="DO30"  Address="542" Invert="false"/>
-			<DO Name="DO31"  Address="543" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="25">
-			<DO Name="c_METAL1_PUMP_ON"  Address="544" Invert="false"/>
-			<DO Name="DO33"  Address="545" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="26">
-			<DO Name="c_METAL2_PUMP_ON"  Address="546" Invert="false"/>
-			<DO Name="c_HED1_POWER_ON"  Address="547" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="27">
-			<DO Name="c_HED2_POWER_ON"  Address="548" Invert="false"/>
-			<DO Name="DO37"  Address="549" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="28">
-			<DO Name="c_METAL3_PUMP_ON"  Address="550" Invert="false"/>
-			<DO Name="DO39"  Address="551" Invert="false"/>
-		</DOGroup>
-		<DOGroup Name="29">
-			<DO Name="c_RES3_POWER_ON"  Address="552" Invert="false"/>
-			<DO Name="DO41"  Address="553" Invert="false"/>
-		</DOGroup>
-	</Dig_Out>
-	<Ano_In>
-		<AIGroup Name="1">
-			<AI Name="r_pH2"  Address="0" Scaling="0=3276.7,14=32767" DataType="short"/>
-			<AI Name="AI1"  Address="1" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI2"  Address="2" Scaling="13=0,150=32767" DataType="short"/>
-			<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="2">
-			<AI Name="AI4"  Address="4" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI5"  Address="5" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="r_PREWET_DI_PRESS"  Address="6" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="AI7"  Address="7" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="3">
-			<AI Name="AI8"  Address="8" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI9"  Address="9" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="r_PREWET_FLOW"  Address="10" Scaling="0=3276.7,40=32767" DataType="short"/>
-			<AI Name="r_DI_WATER_PRESSURE"  Address="11" Scaling="0=3276.7,100=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="4">
-			<AI Name="r_PUMP1_FLOW"  Address="12" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="AI13"  Address="13" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="r_PUMP2_FLOW"  Address="14" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="AI15"  Address="15" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="5">
-			<AI Name="r_PUMP3_FLOW"  Address="16" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="AI17"  Address="17" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="r_PUMP4_FLOW"  Address="18" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-			<AI Name="AI19"  Address="19" Scaling="0=3276.7,40=16383.5" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="6">
-			<AI Name="AI20"  Address="20" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI21"  Address="21" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI22"  Address="22" Scaling="13=0,150=32767" DataType="short"/>
-			<AI Name="AI23"  Address="23" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="7">
-			<AI Name="AI24"  Address="24" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI25"  Address="25" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI26"  Address="26" Scaling="13=0,150=32767" DataType="short"/>
-			<AI Name="AI27"  Address="27" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="8">
-			<AI Name="r_QDRD1_WATER_LEVEL"  Address="28" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_QDRD2_WATER_LEVEL"  Address="29" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_QDRD3_WATER_LEVEL"  Address="30" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_QDRD4_WATER_LEVEL"  Address="31" Scaling="0=3276.7,100=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="9">
-			<AI Name="AI32"  Address="32" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI33"  Address="33" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI34"  Address="34" Scaling="13=0,150=32767" DataType="short"/>
-			<AI Name="AI35"  Address="35" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="10">
-			<AI Name="r_RES_LEVEL_1_raw"  Address="36" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_RES_LEVEL_2_raw"  Address="37" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_RES_LEVEL_3_raw"  Address="38" Scaling="0=3276.7,100=32767" DataType="short"/>
-			<AI Name="r_RES_LEVEL_4_raw"  Address="39" Scaling="0=3276.7,100=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="11">
-			<AI Name="AI40"  Address="40" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI41"  Address="41" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI42"  Address="42" Scaling="13=0,150=32767" DataType="short"/>
-			<AI Name="r_HCW_FLOW"  Address="43" Scaling="0=3276.7,40=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="12">
-			<AI Name="r_CDA_EXTERNAL_PRESSURE"  Address="44" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_CDA_HIGH_PRESSURE"  Address="45" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_CDA_LOW_PRESSURE"  Address="46" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="AI47"  Address="47" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="13">
-			<AI Name="AI48"  Address="48" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_N2_1_LOW_PRESSURE"  Address="49" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_N2_1_PRESSURE"  Address="50" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_N2_2_LOW_PRESSURE"  Address="51" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-		</AIGroup>
-		<AIGroup Name="14">
-			<AI Name="r_N2_2_PRESSURE"  Address="52" Scaling="0=3276.7,145=16383.5" DataType="short"/>
-			<AI Name="r_PROC_BALANCE_PRESSURE"  Address="53" Scaling="0=3276.7,14.5=16383.5" DataType="short"/>
-			<AI Name="r_SYSTEM_VACUUM"  Address="54" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
-			<AI Name="AI55"  Address="55" Scaling="13=0,150=32767" DataType="short"/>
-		</AIGroup>
-	</Ano_In>
-	<Ano_Out>
-		<AOGroup Name="15">
-			<AO Name="AO1"  Address="512" DataType="short"/>
-			<AO Name="AO2"  Address="513" DataType="short"/>
-			<AO Name="AO3"  Address="514" DataType="short"/>
-			<AO Name="AO4"  Address="515" DataType="short"/>
-		</AOGroup>
-		<AOGroup Name="16">
-			<AO Name="AO5"  Address="516" DataType="short"/>
-			<AO Name="AO6"  Address="517" DataType="short"/>
-			<AO Name="AO7"  Address="518" DataType="short"/>
-			<AO Name="AO8"  Address="519" DataType="short"/>
-		</AOGroup>
-		<AOGroup Name="17">
-			<AO Name="AO9"  Address="516" DataType="short"/>
-			<AO Name="AO10"  Address="517" DataType="short"/>
-			<AO Name="AO11"  Address="518" DataType="short"/>
-			<AO Name="AO8"  Address="519" DataType="short"/>
-		</AOGroup>
-		<AOGroup Name="18">
-			<AO Name="AO12"  Address="516" DataType="short"/>
-			<AO Name="AO13"  Address="517" DataType="short"/>
-			<AO Name="AO14"  Address="518" DataType="short"/>
-			<AO Name="AO15"  Address="519" DataType="short"/>
-		</AOGroup>
-		<AOGroup Name="19">
-			<AO Name="AO16"  Address="516" DataType="short"/>
-			<AO Name="AO17"  Address="517" DataType="short"/>
-			<AO Name="AO18"  Address="518" DataType="short"/>
-			<AO Name="AO19"  Address="519" DataType="short"/>
-		</AOGroup>
-	</Ano_Out>
-</WagoDeviceConfig>
+	<WagoDeviceConfig Module="Wago2" IpAddress="10.0.0.10" Port="502" SendTimeout="2000" RecvTimeout="2000" Channel="1">
+		<Dig_In>
+			<DIGroup Name="20">
+				<DI Name="DI0"  Address="0" Invert="false"/>
+				<DI Name="DI1"  Address="1" Invert="false"/>
+				<DI Name="DI2"  Address="2" Invert="false"/>
+				<DI Name="DI3"  Address="3" Invert="false"/>
+				<DI Name="DI4"  Address="4" Invert="false"/>
+				<DI Name="DI5"  Address="5" Invert="false"/>
+				<DI Name="DI6"  Address="6" Invert="false"/>
+				<DI Name="DI7"  Address="7" Invert="false"/>
+				<DI Name="DI8"  Address="8" Invert="false"/>
+				<DI Name="DI9"  Address="9" Invert="false"/>
+				<DI Name="DI10"  Address="10" Invert="false"/>
+				<DI Name="DI11"  Address="11" Invert="false"/>
+				<DI Name="DI12"  Address="12" Invert="false"/>
+				<DI Name="DI13"  Address="13" Invert="false"/>
+				<DI Name="DI14"  Address="14" Invert="false"/>
+				<DI Name="DI15"  Address="15" Invert="false"/>
+			</DIGroup>
+			<DIGroup Name="21">
+				<DI Name="DI16"  Address="16" Invert="false"/>
+				<DI Name="DI17"  Address="17" Invert="false"/>
+				<DI Name="DI18"  Address="18" Invert="false"/>
+				<DI Name="DI19"  Address="19" Invert="false"/>
+				<DI Name="DI20"  Address="20" Invert="false"/>
+				<DI Name="DI21"  Address="21" Invert="false"/>
+				<DI Name="r_CONTAINMENT_FLUID"  Address="22" Invert="true"/>
+				<DI Name="r_DOOR_INLK_OK"  Address="23" Invert="false"/>
+				<DI Name="DI24"  Address="24" Invert="false"/>
+				<DI Name="DI25"  Address="25" Invert="false"/>
+				<DI Name="DI26"  Address="26" Invert="false"/>
+				<DI Name="DI27"  Address="27" Invert="false"/>
+				<DI Name="r_REAR_DOOR_INTLK"  Address="28" Invert="false"/>
+				<DI Name="r_SAMPLE_SYS_FLUID_PRESENT"  Address="29" Invert="false"/>
+				<DI Name="DI28"  Address="30" Invert="false"/>
+				<DI Name="DI29"  Address="31" Invert="false"/>
+			</DIGroup>
+			<DIGroup Name="22">
+				<DI Name="r_RES1_HI_LEVEL"  Address="32" Invert="false"/>
+				<DI Name="r_RES1_LOW_LEVEL"  Address="33" Invert="true"/>
+				<DI Name="r_RES2_HIGH_LEVEL"  Address="34" Invert="false"/>
+				<DI Name="r_RES2_LOW_LEVEL"  Address="35" Invert="true"/>
+				<DI Name="r_RES3_HIGH_LEVEL"  Address="36" Invert="false"/>
+				<DI Name="r_RES3_LOW_LEVEL"  Address="37" Invert="true"/>
+				<DI Name="r_RES4_HIGH_LEVEL"  Address="38" Invert="false"/>
+				<DI Name="r_RES4_LOW_LEVEL"  Address="39" Invert="true"/>
+				<DI Name="DI38"  Address="40" Invert="false"/>
+				<DI Name="DI39"  Address="41" Invert="false"/>
+				<DI Name="DI40"  Address="42" Invert="false"/>
+				<DI Name="DI41"  Address="43" Invert="false"/>
+				<DI Name="DI42"  Address="44" Invert="false"/>
+				<DI Name="DI43"  Address="45" Invert="false"/>
+				<DI Name="DI44"  Address="46" Invert="false"/>
+				<DI Name="DI45"  Address="47" Invert="false"/>
+			</DIGroup>
+			<DIGroup Name="30">
+				<DI Name="DI46"  Address="48" Invert="false"/>
+				<DI Name="DI47"  Address="49" Invert="false"/>
+			</DIGroup>
+		</Dig_In>
+		<Dig_Out>
+			<DOGroup Name="23">
+				<DO Name="c_CDA_ENABLE"  Address="512" Invert="false"/>
+				<DO Name="c_DI_MAIN_ENABLE"  Address="513" Invert="false"/>
+				<DO Name="c_DI_FILL_ENABLE"  Address="514" Invert="false"/>
+				<DO Name="c_DI_REPLEN_ENABLE"  Address="515" Invert="false"/>
+				<DO Name="c_EXTERNAL_CDA_ENABLE"  Address="516" Invert="false"/>
+				<DO Name="c_HCW_ENABLE"  Address="517" Invert="false"/>
+				<DO Name="DO6"  Address="518" Invert="false"/>
+				<DO Name="c_N2_ENABLE"  Address="519" Invert="false"/>
+				<DO Name="c_QDRD1_LO_PRESSURE"  Address="520" Invert="false"/>
+				<DO Name="c_QDRD2_LO_PRESSURE"  Address="521" Invert="false"/>
+				<DO Name="c_QDRD3_LO_PRESSURE"  Address="522" Invert="false"/>
+				<DO Name="c_QDRD4_LO_PRESSURE"  Address="523" Invert="false"/>
+				<DO Name="DO12"  Address="524" Invert="false"/>
+				<DO Name="DO13"  Address="525" Invert="false"/>
+				<DO Name="DO14"  Address="526" Invert="false"/>
+				<DO Name="DO15"  Address="527" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="24">
+				<DO Name="DO16"  Address="528" Invert="false"/>
+				<DO Name="DO17"  Address="529" Invert="false"/>
+				<DO Name="DO18"  Address="530" Invert="false"/>
+				<DO Name="DO19"  Address="531" Invert="false"/>
+				<DO Name="DO20"  Address="532" Invert="false"/>
+				<DO Name="DO21"  Address="533" Invert="false"/>
+				<DO Name="DO22"  Address="534" Invert="false"/>
+				<DO Name="DO23"  Address="535" Invert="false"/>
+				<DO Name="DO24"  Address="536" Invert="false"/>
+				<DO Name="DO25"  Address="537" Invert="false"/>
+				<DO Name="DO26"  Address="538" Invert="false"/>
+				<DO Name="DO27"  Address="539" Invert="false"/>
+				<DO Name="DO28"  Address="540" Invert="false"/>
+				<DO Name="DO29"  Address="541" Invert="false"/>
+				<DO Name="DO30"  Address="542" Invert="false"/>
+				<DO Name="DO31"  Address="543" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="25">
+				<DO Name="c_METAL1_PUMP_ON"  Address="544" Invert="false"/>
+				<DO Name="DO33"  Address="545" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="26">
+				<DO Name="c_METAL2_PUMP_ON"  Address="546" Invert="false"/>
+				<DO Name="c_HED1_POWER_ON"  Address="547" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="27">
+				<DO Name="c_HED2_POWER_ON"  Address="548" Invert="false"/>
+				<DO Name="DO37"  Address="549" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="28">
+				<DO Name="c_METAL3_PUMP_ON"  Address="550" Invert="false"/>
+				<DO Name="DO39"  Address="551" Invert="false"/>
+			</DOGroup>
+			<DOGroup Name="29">
+				<DO Name="c_RES3_POWER_ON"  Address="552" Invert="false"/>
+				<DO Name="DO41"  Address="553" Invert="false"/>
+			</DOGroup>
+		</Dig_Out>
+		<Ano_In>
+			<AIGroup Name="1">
+				<AI Name="r_pH2"  Address="0" Scaling="0=3276.7,14=32767" DataType="short"/>
+				<AI Name="AI1"  Address="1" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI2"  Address="2" Scaling="13=0,150=32767" DataType="short"/>
+				<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="2">
+				<AI Name="AI4"  Address="4" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI5"  Address="5" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="r_PREWET_DI_PRESS"  Address="6" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="AI7"  Address="7" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="3">
+				<AI Name="AI8"  Address="8" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="r_SYSTEM_EXHAUST"  Address="9" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="r_PREWET_FLOW"  Address="10" Scaling="0=3276.7,40=32767" DataType="short"/>
+				<AI Name="r_DI_WATER_PRESSURE"  Address="11" Scaling="0=3276.7,100=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="4">
+				<AI Name="r_PUMP1_FLOW"  Address="12" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="AI13"  Address="13" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="r_PUMP2_FLOW"  Address="14" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="AI15"  Address="15" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="5">
+				<AI Name="r_PUMP3_FLOW"  Address="16" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="AI17"  Address="17" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="r_PUMP4_FLOW"  Address="18" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+				<AI Name="AI19"  Address="19" Scaling="0=3276.7,40=16383.5" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="6">
+				<AI Name="AI20"  Address="20" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI21"  Address="21" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI22"  Address="22" Scaling="13=0,150=32767" DataType="short"/>
+				<AI Name="AI23"  Address="23" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="7">
+				<AI Name="AI24"  Address="24" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI25"  Address="25" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI26"  Address="26" Scaling="13=0,150=32767" DataType="short"/>
+				<AI Name="AI27"  Address="27" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="8">
+				<AI Name="r_QDRD1_WATER_LEVEL"  Address="28" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_QDRD2_WATER_LEVEL"  Address="29" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_QDRD3_WATER_LEVEL"  Address="30" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_QDRD4_WATER_LEVEL"  Address="31" Scaling="0=3276.7,100=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="9">
+				<AI Name="AI32"  Address="32" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI33"  Address="33" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI34"  Address="34" Scaling="13=0,150=32767" DataType="short"/>
+				<AI Name="AI35"  Address="35" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="10">
+				<AI Name="r_RES_LEVEL_1_raw"  Address="36" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_RES_LEVEL_2_raw"  Address="37" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_RES_LEVEL_3_raw"  Address="38" Scaling="0=3276.7,100=32767" DataType="short"/>
+				<AI Name="r_RES_LEVEL_4_raw"  Address="39" Scaling="0=3276.7,100=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="11">
+				<AI Name="AI40"  Address="40" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI41"  Address="41" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI42"  Address="42" Scaling="13=0,150=32767" DataType="short"/>
+				<AI Name="r_HCW_FLOW"  Address="43" Scaling="0=3276.7,40=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="12">
+				<AI Name="r_CDA_EXTERNAL_PRESSURE"  Address="44" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_CDA_HIGH_PRESSURE"  Address="45" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_CDA_LOW_PRESSURE"  Address="46" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="AI47"  Address="47" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="13">
+				<AI Name="AI48"  Address="48" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_1B_PRESSURE"  Address="49" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_1A_PRESSURE"  Address="50" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_2B_PRESSURE"  Address="51" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+			</AIGroup>
+			<AIGroup Name="14">
+				<AI Name="r_N2_2A_PRESSURE"  Address="52" Scaling="0=3276.7,145=16383.5" DataType="short"/>
+				<AI Name="r_N2_BLANKET_PRESSURE"  Address="53" Scaling="0=3276.7,14.5=16383.5" DataType="short"/>
+				<AI Name="r_SYSTEM_VACUUM"  Address="54" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
+				<AI Name="AI55"  Address="55" Scaling="13=0,150=32767" DataType="short"/>
+			</AIGroup>
+		</Ano_In>
+		<Ano_Out>
+			<AOGroup Name="15">
+				<AO Name="AO1"  Address="512" DataType="short"/>
+				<AO Name="AO2"  Address="513" DataType="short"/>
+				<AO Name="AO3"  Address="514" DataType="short"/>
+				<AO Name="AO4"  Address="515" DataType="short"/>
+			</AOGroup>
+			<AOGroup Name="16">
+				<AO Name="AO5"  Address="516" DataType="short"/>
+				<AO Name="AO6"  Address="517" DataType="short"/>
+				<AO Name="AO7"  Address="518" DataType="short"/>
+				<AO Name="AO8"  Address="519" DataType="short"/>
+			</AOGroup>
+			<AOGroup Name="17">
+				<AO Name="AO9"  Address="516" DataType="short"/>
+				<AO Name="AO10"  Address="517" DataType="short"/>
+				<AO Name="AO11"  Address="518" DataType="short"/>
+				<AO Name="AO8"  Address="519" DataType="short"/>
+			</AOGroup>
+			<AOGroup Name="18">
+				<AO Name="AO12"  Address="516" DataType="short"/>
+				<AO Name="AO13"  Address="517" DataType="short"/>
+				<AO Name="AO14"  Address="518" DataType="short"/>
+				<AO Name="AO15"  Address="519" DataType="short"/>
+			</AOGroup>
+			<AOGroup Name="19">
+				<AO Name="AO16"  Address="516" DataType="short"/>
+				<AO Name="AO17"  Address="517" DataType="short"/>
+				<AO Name="AO18"  Address="518" DataType="short"/>
+				<AO Name="AO19"  Address="519" DataType="short"/>
+			</AOGroup>
+		</Ano_Out>
+	</WagoDeviceConfig>
 </WagoControllerConfig>

+ 10 - 19
CyberX8_RT/Modules/RouteManager.cs

@@ -708,16 +708,6 @@ namespace CyberX8_RT.Modules
                 }
             }
 
-            if (ModuleHelper.IsInstalled(ModuleName.PUF2))
-            {
-                PufVacuum pufVacuum = DEVICE.GetDevice<PufVacuum>($"{ModuleName.PUF2}.Vacuum");
-                if (!pufVacuum.IsChuckAReleased || !pufVacuum.ISChuckBReleased)
-                {
-                    LOG.WriteLog(eEvent.ERR_AXIS, ModuleName.PUF2.ToString(), "Vacuum is on");
-                    return false;
-                }
-            }
-
             if (ModuleHelper.IsInstalled(ModuleName.Loader1))
             {
                 LoaderSideDevice loaderSideADevice = DEVICE.GetDevice<LoaderSideDevice>($"{ModuleName.Loader1}.SideA");
@@ -752,13 +742,13 @@ namespace CyberX8_RT.Modules
         }
         private bool FsmStartHome(object[] objs)
         {
-            if(!CheckPreCondition())
+            if (!CheckPreCondition())
             {
                 return false;
             }
 
-            List<string> keys= _moduleEntitiesDic.Keys.ToList();
-            foreach(string item in keys)
+            List<string> keys = _moduleEntitiesDic.Keys.ToList();
+            foreach (string item in keys)
             {
                 if (!NeedSequenceHome(item))
                 {
@@ -791,6 +781,7 @@ namespace CyberX8_RT.Modules
                 item.Start();
             }
             _homeStopWatch.Restart();
+            _jobCycle.RemoveAllJob();
             return true;
         }
         /// <summary>
@@ -799,7 +790,7 @@ namespace CyberX8_RT.Modules
         /// <returns></returns>
         private bool NeedSequenceHome(string item)
         {
-            bool result = item == ModuleName.PUF1.ToString() || item == ModuleName.PUF2.ToString() || item == ModuleName.Loader1.ToString() ||
+            bool result = item == ModuleName.PUF1.ToString()  || item == ModuleName.Loader1.ToString() ||
                 item == ModuleName.Transporter2.ToString() || item == ModuleName.Transporter1.ToString();
             if (result)
             {
@@ -825,7 +816,7 @@ namespace CyberX8_RT.Modules
             {
                 return false;
             }
-            if(rstate==RState.Failed||rstate==RState.Timeout)
+            if (rstate == RState.Failed || rstate == RState.Timeout)
             {
                 PostMsg(MSG.ERROR);
                 return false;
@@ -836,14 +827,14 @@ namespace CyberX8_RT.Modules
             foreach (string item in keys)
             {
                 IModuleEntity ModuleEntity = _moduleEntitiesDic[item];
-                
-                if(ModuleEntity.IsError)
+
+                if (ModuleEntity.IsError && !NeedSequenceHome(item))
                 {
                     LOG.Write(eEvent.ERR_ROUTER, ModuleName.System, $"{ModuleEntity.Module} home error");
                     PostMsg(MSG.ERROR);
                     return true;
                 }
-                else if(ModuleEntity.IsIdle)
+                else if (ModuleEntity.IsIdle)
                 {
                     idleCount++;
                 }
@@ -851,7 +842,7 @@ namespace CyberX8_RT.Modules
             int homeCount = 0;
             foreach (ReservoirMetalHomeRoutine item in _reservoirMetalRoutines)
             {
-                RState ret= item.Monitor();
+                RState ret = item.Monitor();
                 if (ret != RState.Running)
                 {
                     homeCount++;