Browse Source

add facility I/O releated

chenzk 4 days ago
parent
commit
df95347b40

+ 7 - 7
PunkHPX8_MainPages/ViewModels/SystemFacilitiesViewModel.cs

@@ -65,8 +65,8 @@ namespace PunkHPX8_MainPages.ViewModels
         private CommonLimitData _cda2Data = new CommonLimitData();
         private CommonLimitData _extendCdaData = new CommonLimitData();
         private CommonLimitData _systemVacuumData = new CommonLimitData();
-        private CommonLimitData _systemExhaustData1 = new CommonLimitData();
-        private CommonLimitData _systemExhaustData2 = new CommonLimitData();
+        private CommonLimitData _systemExhaust1Data = new CommonLimitData();
+        private CommonLimitData _systemExhaust2Data = new CommonLimitData();
         private CommonLimitData _diWaterPressureData = new CommonLimitData();
         private CommonLimitData _diWaterReturnFlowData = new CommonLimitData();
         private CommonLimitData _houseChilledWaterFlowData = new CommonLimitData();
@@ -129,9 +129,9 @@ namespace PunkHPX8_MainPages.ViewModels
 
         public CommonLimitData ExtendCdaData{ get { return _extendCdaData; } set { SetProperty(ref _extendCdaData, value); }}
 
-        public CommonLimitData SystemExhaustData1 { get { return _systemExhaustData1; } set { SetProperty(ref _systemExhaustData1, value); } }
+        public CommonLimitData SystemExhaust1Data { get { return _systemExhaust1Data; } set { SetProperty(ref _systemExhaust1Data, value); } }
         
-        public CommonLimitData SystemExhaustData2 { get { return _systemExhaustData2; } set { SetProperty(ref _systemExhaustData2, value); } }
+        public CommonLimitData SystemExhaust2Data { get { return _systemExhaust2Data; } set { SetProperty(ref _systemExhaust2Data, value); } }
 
         public CommonLimitData DiWaterPressureData { get { return _diWaterPressureData; } set { SetProperty(ref _diWaterPressureData, value); }}
         
@@ -303,9 +303,9 @@ namespace PunkHPX8_MainPages.ViewModels
                         HouseChilledWaterFlowData = facilitiesDatas[7];
                         ExtendCdaData = facilitiesDatas[8];
                         SystemVacuumData = facilitiesDatas[9];
-                        SystemExhaustData1 = facilitiesDatas[10];
-                        //SystemExhaustData2 = facilitiesDatas[11]; 修正facility device后修改
-                        //DiWaterReturnFlowData = facilitiesDatas[12];
+                        SystemExhaust1Data = facilitiesDatas[10];
+                        SystemExhaust2Data = facilitiesDatas[11]; 
+                        DiWaterReturnFlowData = facilitiesDatas[12];
                     }
                     NitrogenOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{N2_ENABLE}");
                     CdaOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{CDA_ENABLE}");

+ 50 - 4
PunkHPX8_RT/Config/Devices/Beckhoffcfg - plctask.xml

@@ -49,9 +49,34 @@
 		<Input Name="r_Halt_Button_Left" Address="MAIN.Safety_SDI_CHANNEL_EL1904_NS103_1" Invert="true" Type="Digital" DataType="bool"/>
 		<Input Name="r_Halt_Button_Right" Address="MAIN.Safety_SDI_CHANNEL_EL1904_NS103_2" Invert="true" Type="Digital" DataType="bool"/>
 		
-
 		<!-- Safety inputs end -->
+		
+		<!-- facility inputs start -->
+		<Input Name="r_SAMPLE_SYS_1_FLUID_PRESENT" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SAMPLE_SYS_2_FLUID_PRESENT" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_Present" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_11" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_100MM" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_12" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_200MM" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_13" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_Present" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_14" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_100MM" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_15" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_200MM" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_16" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_pH3" Address="MAIN.Facility_AI_8CHANNEL_4_20mA_EL3058_N005_1" Scaling="0=0, 40=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_HCW_FLOW" Address="MAIN.Facility_AI_8CHANNEL_4_20mA_EL3058_N005_5" Scaling="0=0, 40=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_EXHAUST_1" Address="MAIN.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_1" Scaling="0=0, 2=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_EXHAUST_2" Address="MAIN.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_2" Scaling="0=0, 2=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_DI_WATER_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_5" Scaling="0=0, 100=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_1B_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_1" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_1A_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_2" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_2B_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_3" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_2A_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_4" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_2_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_5" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_1_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_6" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_EXTERNAL_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_7" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_VACUUM" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N007_8" Scaling="-750=3276.7, 750=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_BLANKET_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N008_1" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_OVERFLOW_PRESSURE" Address="MAIN.Facility_AI_8CHANNEL_0_10V_EL3068_N008_2" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
 
+		<!-- facility inputs end -->
 
 
 		<!--VPW Main Start-->
@@ -80,6 +105,19 @@
 		<!--////////////////////////////////////////////////// ALL INPUTS END //////////////////////////////////////////////////-->
 
 
+		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
+		<Counter Name="r_DIREPLEN_FLOW" Address="MAIN.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Counter_value" DataType="udint" Mode="2" Period="2000" Scaling="0=0,1=22">
+			<Output Address="MAIN.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Set_counter" Type="Start" DataType="bool"/>
+			<Output Address="MAIN.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Inhibit_counter" Type="Stop" DataType="bool"/>
+			<Output Address="MAIN.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Set_counter_value" Type="Reset" DataType="udint"/>
+		</Counter>		
+
+		<!--////////////////////////////////////////////////// ALL COUNTERS END //////////////////////////////////////////////////-->
+
+
+
+
+
 		<!--////////////////////////////////////////////////// ALL OUTPUTS BEGIN //////////////////////////////////////////////////-->
 		
 		<!-- Safety outputs start -->
@@ -102,6 +140,17 @@
 
 		<!-- Safety outputs end -->
 		
+		
+		<!-- facility outputs start -->
+		<Output Name="c_N2_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_1" Type="Digital" DataType="bool"/> 
+		<Output Name="c_CDA_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_2" Type="Digital" DataType="bool"/>
+		<Output Name="c_EXTERNAL_CDA_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_3" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_MAIN_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_4" Type="Digital" DataType="bool"/>
+		<Output Name="c_HCW_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_5" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_REPLEN_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_6" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_FILL_ENABLE" Address="MAIN.Facility_DO_16CHANNEL_EL2809_N002_7" Type="Digital" DataType="bool"/>
+		<!-- facility outputs end -->
+		
 		<!--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"/>
@@ -137,10 +186,7 @@
 		<!--VPW2 End-->
 		<!--////////////////////////////////////////////////// ALL OUTPUTS END //////////////////////////////////////////////////-->
 
-		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
-
 
-		<!--////////////////////////////////////////////////// ALL COUNTERS END //////////////////////////////////////////////////-->
 
 		<!--////////////////////////////////////////////////// ALL AXIS BEGIN //////////////////////////////////////////////////-->
 

+ 48 - 0
PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

@@ -51,6 +51,33 @@
 		
 
 		<!-- Safety inputs end -->
+		
+		
+		<!-- facility inputs start -->
+		<Input Name="r_SAMPLE_SYS_1_FLUID_PRESENT" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SAMPLE_SYS_2_FLUID_PRESENT" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_Present" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_11" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_100MM" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_12" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_200MM" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_13" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_Present" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_14" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_100MM" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_15" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_200MM" Address="Task 2.Outputs.Facility_DI_16CHANNEL_EL1819_N000_16" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_pH3" Address="Task 2.Outputs.Facility_AI_8CHANNEL_4_20mA_EL3058_N005_1" Scaling="0=0, 40=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_HCW_FLOW" Address="Task 2.Outputs.Facility_AI_8CHANNEL_4_20mA_EL3058_N005_5" Scaling="0=0, 40=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_EXHAUST_1" Address="Task 2.Outputs.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_1" Scaling="0=0, 2=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_EXHAUST_2" Address="Task 2.Outputs.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_2" Scaling="0=0, 2=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_DI_WATER_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_4_20mA_EL3058_N006_5" Scaling="0=0, 100=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_1B_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_1" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_1A_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_2" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_2B_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_3" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_2A_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_4" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_2_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_5" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_1_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_6" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_CDA_EXTERNAL_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_7" Scaling="0=3276.7, 145=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_SYSTEM_VACUUM" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_8" Scaling="-750=3276.7, 750=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_BLANKET_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_1" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_OVERFLOW_PRESSURE" Address="Task 2.Outputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_2" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
+		<!-- facility 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"/>
@@ -75,6 +102,17 @@
 		<!--////////////////////////////////////////////////// ALL INPUTS END //////////////////////////////////////////////////-->
 
 
+		<!--////////////////////////////////////////////////// ALL COUNTERS BEGIN //////////////////////////////////////////////////-->
+		<Counter Name="r_DIREPLEN_FLOW" Address="Task 2.Outputs.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Counter_value" DataType="udint" Mode="2" Period="2000" Scaling="0=0,1=22">
+			<Output Address="Task 2.Outputs.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Set_counter" Type="Start" DataType="bool"/>
+			<Output Address="Task 2.Outputs.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Inhibit_counter" Type="Stop" DataType="bool"/>
+			<Output Address="Task 2.Outputs.Facility_COUNTER_2CHANNEL_EL1512_N009_1_Set_counter_value" Type="Reset" DataType="udint"/>
+		</Counter>		
+
+		<!--////////////////////////////////////////////////// ALL COUNTERS END //////////////////////////////////////////////////-->
+
+
+
 		<!--////////////////////////////////////////////////// ALL OUTPUTS BEGIN //////////////////////////////////////////////////-->
 		
 		<!-- Safety outputs start -->
@@ -97,6 +135,16 @@
 
 		<!-- Safety outputs end -->
 		
+		<!-- facility outputs start -->
+		<Output Name="c_N2_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_1" Type="Digital" DataType="bool"/> 
+		<Output Name="c_CDA_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_2" Type="Digital" DataType="bool"/>
+		<Output Name="c_EXTERNAL_CDA_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_3" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_Task 2.Outputs_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_4" Type="Digital" DataType="bool"/>
+		<Output Name="c_HCW_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_5" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_REPLEN_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_6" Type="Digital" DataType="bool"/>
+		<Output Name="c_DI_FILL_ENABLE" Address="Task 2.Outputs.Facility_DO_16CHANNEL_EL2809_N002_7" Type="Digital" DataType="bool"/>
+		<!-- facility outputs end -->
+		
 		
 		<!--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"/>

+ 40 - 20
PunkHPX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -38,27 +38,10 @@
 		<IO Name="LightTower.BlueLight" IOName="c_Pole_Blue"/>
 	</Module>	
 	<Module Name="Facilities">
-		<IO Name="Facilities.N2Enable" IOName="c_N2_ENABLE"/>
-		<IO Name="Facilities.CDAEnable" IOName="c_CDA_ENABLE"/>
-		<IO Name="Facilities.ExternalCDAEnable" IOName="c_EXTERNAL_CDA_ENABLE"/>
-		<IO Name="Facilities.DiWaterEnable" IOName="c_DI_MAIN_ENABLE"/>
-		<IO Name="Facilities.HouseChilledWaterEnable" IOName="c_HCW_ENABLE"/>
-		<IO Name="Facilities.DiReplenEnable" IOName="c_DI_REPLEN_ENABLE"/>
-		<IO Name="Facilities.DiFillEnable" IOName="c_DI_FILL_ENABLE"/>
-		<IO Name="Facilities.LoaderDiEnable" IOName="c_DI_LOADER_ENABLE"/>
+
 		<IO Name="Facilities.FilterPurgeEnable" IOName="c_FILTER_PURGE_ENABLE"/>
-		<IO Name="Facilities.Nitrogen1BPressure" IOName="r_N2_1B_PRESSURE"/>
-		<IO Name="Facilities.Nitrogen1APressure" IOName="r_N2_1A_PRESSURE"/>
-		<IO Name="Facilities.Nitrogen2BPressure" IOName="r_N2_2B_PRESSURE"/>
-		<IO Name="Facilities.Nitrogen2APressure" IOName="r_N2_2A_PRESSURE"/>
-		<IO Name="Facilities.CDA2Pressure" IOName="r_CDA_HIGH_PRESSURE"/>
-		<IO Name="Facilities.CDA1Pressure" IOName="r_CDA_LOW_PRESSURE"/>
-		<IO Name="Facilities.ExternalCDAPressure" IOName="r_CDA_EXTERNAL_PRESSURE"/>
-		<IO Name="Facilities.DiWaterPressure" IOName="r_DI_WATER_PRESSURE"/>
 		<IO Name="Facilities.HouseChilledWaterPressure" IOName="r_HCW_FLOW"/>
-		<IO Name="Facilities.ExhaustPressure" IOName="r_SYSTEM_EXHAUST"/>
-		<IO Name="Facilities.VacuumPressure" IOName="r_SYSTEM_VACUUM"/>
-		<IO Name="Facilities.N2BlanketPressure" IOName="r_N2_BLANKET_PRESSURE"/>
+	
 		<IO Name="Facilities.SampleEnable" IOName="c_SAMPLE_STATION_ENABLE"/>
 		<IO Name="Facilities.SampleFlow1Enable" IOName="c_SAMPLE_STATION_FLOW_1_ENABLE"/>
 		<IO Name="Facilities.SampleFlow2Enable" IOName="c_SAMPLE_STATION_FLOW_2_ENABLE"/>
@@ -70,7 +53,44 @@
 		<IO Name="Facilities.FFUProcessPressure" IOName="r_FFUPressureProcess"/>
 		<IO Name="Facilities.ArsFluidDetect" IOName="r_SLIPSTREAM_FLUID_PRESENT"/>
 		<IO Name="Facilities.ProcessFluidDetect" IOName="r_CONTAINMENT_FLUID"/>
-		<IO Name="Facilities.SampleFluidDetect" IOName="r_SAMPLE_SYS_FLUID_PRESENT"/>
+		
+		
+		
+		
+		<IO Name="Facilities.Sample1FluidDetect" IOName="r_SAMPLE_SYS_1_FLUID_PRESENT"/>
+		<IO Name="Facilities.Sample2FluidDetect" IOName="r_SAMPLE_SYS_2_FLUID_PRESENT"/>
+		<IO Name="Facilities.CassetteAPlaced" IOName="r_Cassette_A_Present"/>
+		<IO Name="Facilities.CassetteA100M" IOName="r_Cassette_A_100MM"/>
+		<IO Name="Facilities.CassetteA200M" IOName="r_Cassette_A_200MM"/>
+		<IO Name="Facilities.CassetteBPlaced" IOName="r_Cassette_B_Present"/>
+		<IO Name="Facilities.CassetteB100M" IOName="r_Cassette_B_100MM"/>
+		<IO Name="Facilities.CassetteB200M" IOName="r_Cassette_B_200MM"/>
+		<IO Name="Facilities.PH3" IOName="r_pH3"/>
+		<IO Name="Facilities.HouseChilledWaterFlow" IOName="r_HCW_FLOW"/>
+		<IO Name="Facilities.SystemExhaust1" IOName="r_SYSTEM_EXHAUST_1"/>
+		<IO Name="Facilities.SystemExhaust2" IOName="r_SYSTEM_EXHAUST_2"/>
+		<IO Name="Facilities.DiWaterPressure" IOName="r_DI_WATER_PRESSURE"/>
+		<IO Name="Facilities.Nitrogen1BPressure" IOName="r_N2_1B_PRESSURE"/>
+		<IO Name="Facilities.Nitrogen1APressure" IOName="r_N2_1A_PRESSURE"/>
+		<IO Name="Facilities.Nitrogen2BPressure" IOName="r_N2_2B_PRESSURE"/>
+		<IO Name="Facilities.Nitrogen2APressure" IOName="r_N2_2A_PRESSURE"/>
+		<IO Name="Facilities.CDA2Pressure" IOName="r_CDA_2_PRESSURE"/>
+		<IO Name="Facilities.CDA1Pressure" IOName="r_CDA_1_PRESSURE"/>
+		<IO Name="Facilities.ExternalCDAPressure" IOName="r_CDA_EXTERNAL_PRESSURE"/>
+		<IO Name="Facilities.VacuumPressure" IOName="r_SYSTEM_VACUUM"/>
+		<IO Name="Facilities.N2BlanketPressure" IOName="r_N2_BLANKET_PRESSURE"/>
+		<IO Name="Facilities.N2OverFlowPressure" IOName="r_N2_OVERFLOW_PRESSURE"/>
+		<IO Name="Facilities.DIReplenFlow" IOName="r_DIREPLEN_FLOW"/>
+
+		<IO Name="Facilities.N2Enable" IOName="c_N2_ENABLE"/>
+		<IO Name="Facilities.CDAEnable" IOName="c_CDA_ENABLE"/>
+		<IO Name="Facilities.ExternalCDAEnable" IOName="c_EXTERNAL_CDA_ENABLE"/>
+		<IO Name="Facilities.DiWaterEnable" IOName="c_DI_MAIN_ENABLE"/>
+		<IO Name="Facilities.HouseChilledWaterEnable" IOName="c_HCW_ENABLE"/>
+		<IO Name="Facilities.DiReplenEnable" IOName="c_DI_REPLEN_ENABLE"/>
+		<IO Name="Facilities.DiFillEnable" IOName="c_DI_FILL_ENABLE"/>
+		
+		
 	</Module>
 	<Module Name="SRD">
 		<IO Name="SRD.FluidContainment" IOName="r_SRD_FLUID_LEVEL"/> 

+ 16 - 8
PunkHPX8_RT/Devices/Facilities/SystemFacilities.cs

@@ -45,7 +45,9 @@ namespace PunkHPX8_RT.Devices.Facilities
         private const string CDA_EXTERNAL_PRESSURE_VALUE = "ExternalCDAPressure";
         private const string DI_WATER_PRESSURE_VALUE = "DiWaterPressure";
         private const string HOUSE_CHILLED_WATER_PRESSURE_VALUE = "HouseChilledWaterPressure";
-        private const string EXHAUST_PRESSURE_VALUE = "ExhaustPressure";
+        private const string EXHAUST1_PRESSURE_VALUE = "Exhaust1Pressure";
+        private const string EXHAUST2_PRESSURE_VALUE = "Exhaust2Pressure";
+        private const string DIW_RETRUN_FLOW_VALUE = "DiwReturnFlow";
         private const string VACUUM_PRESSURE_VALUE = "VacuumPressure";
         private const string SAMPLE_ENABLE = "SampleEnable";
         private const string SAMPLE_FLOW_1_ENABLE = "SampleFlow1Enable";
@@ -310,11 +312,11 @@ namespace PunkHPX8_RT.Devices.Facilities
             _facilitiesDataList.Add(InitialFacilitiesData(VACUUM_PRESSURE));
             _facilitiesDataDic[VACUUM_PRESSURE_VALUE] = _facilitiesDataList[9];
             _facilitiesDataList.Add(InitialFacilitiesData(EXHAUST_PRESSURE1));
-            _facilitiesDataDic[EXHAUST_PRESSURE_VALUE] = _facilitiesDataList[10];
+            _facilitiesDataDic[EXHAUST1_PRESSURE_VALUE] = _facilitiesDataList[10];
             _facilitiesDataList.Add(InitialFacilitiesData(EXHAUST_PRESSURE2));
-            _facilitiesDataDic[EXHAUST_PRESSURE_VALUE] = _facilitiesDataList[11];
+            _facilitiesDataDic[EXHAUST2_PRESSURE_VALUE] = _facilitiesDataList[11];
             _facilitiesDataList.Add(InitialFacilitiesData(DIW_RETRUN_FLOW));
-            _facilitiesDataDic[EXHAUST_PRESSURE_VALUE] = _facilitiesDataList[12];
+            _facilitiesDataDic[DIW_RETRUN_FLOW_VALUE] = _facilitiesDataList[12];
 
             DATA.Subscribe($"{Module}.{Name}.{FACILITIES_DATA}", () => _facilitiesDataList, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.{Name}.{N2_ENABLE}", () => _n2Enabled, SubscriptionAttribute.FLAG.IgnoreSaveDB);
@@ -349,7 +351,9 @@ namespace PunkHPX8_RT.Devices.Facilities
             DATA.Subscribe($"{Module}.{Name}.{HOUSE_CHILLED_WATER_PRESSURE_VALUE}", () => _facilitiesDataDic[HOUSE_CHILLED_WATER_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.{Name}.{CDA_EXTERNAL_PRESSURE_VALUE}", () => _facilitiesDataDic[CDA_EXTERNAL_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.{Name}.{VACUUM_PRESSURE_VALUE}", () => _facilitiesDataDic[VACUUM_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
-            DATA.Subscribe($"{Module}.{Name}.{EXHAUST_PRESSURE_VALUE}", () => _facilitiesDataDic[EXHAUST_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe($"{Module}.{Name}.{EXHAUST1_PRESSURE_VALUE}", () => _facilitiesDataDic[EXHAUST1_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe($"{Module}.{Name}.{EXHAUST2_PRESSURE_VALUE}", () => _facilitiesDataDic[EXHAUST2_PRESSURE_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe($"{Module}.{Name}.{DIW_RETRUN_FLOW_VALUE}", () => _facilitiesDataDic[DIW_RETRUN_FLOW_VALUE].Value, SubscriptionAttribute.FLAG.IgnoreSaveDB);
         }
         /// <summary>
         /// 初始化Facilities数据对象
@@ -388,7 +392,9 @@ namespace PunkHPX8_RT.Devices.Facilities
             BeckhoffIoSubscribeUpdateVariable(CDA_EXTERNAL_PRESSURE_VALUE);
             BeckhoffIoSubscribeUpdateVariable(DI_WATER_PRESSURE_VALUE);
             BeckhoffIoSubscribeUpdateVariable(HOUSE_CHILLED_WATER_PRESSURE_VALUE);
-            BeckhoffIoSubscribeUpdateVariable(EXHAUST_PRESSURE_VALUE);
+            BeckhoffIoSubscribeUpdateVariable(EXHAUST1_PRESSURE_VALUE);
+            BeckhoffIoSubscribeUpdateVariable(EXHAUST2_PRESSURE_VALUE);
+            BeckhoffIoSubscribeUpdateVariable(DIW_RETRUN_FLOW_VALUE);
             BeckhoffIoSubscribeUpdateVariable(VACUUM_PRESSURE_VALUE);
             BeckhoffIoSubscribeUpdateVariable(N2_BLANKET_PRESSURE_VALUE);
             BeckhoffIoSubscribeUpdateVariable(SAMPLE_ENABLE);
@@ -488,8 +494,10 @@ namespace PunkHPX8_RT.Devices.Facilities
                 case CDA_EXTERNAL_PRESSURE_VALUE:
                 case DI_WATER_PRESSURE_VALUE:
                 case HOUSE_CHILLED_WATER_PRESSURE_VALUE:
-                case EXHAUST_PRESSURE_VALUE:
+                case EXHAUST1_PRESSURE_VALUE:
+                case EXHAUST2_PRESSURE_VALUE:
                 case VACUUM_PRESSURE_VALUE:
+                case DIW_RETRUN_FLOW_VALUE:
                     _facilitiesDataDic[variable].Value = (double)value;
                     break;
                 case N2_BLANKET_PRESSURE_VALUE:
@@ -899,7 +907,7 @@ namespace PunkHPX8_RT.Devices.Facilities
         /// <returns></returns>
         public (bool result, string reason) CheckExhaustResult()
         {
-            return CheckPressureData(EXHAUST_PRESSURE_VALUE);
+            return CheckPressureData(EXHAUST1_PRESSURE_VALUE);
         }
         /// <summary>
         /// 检验Exhaust

+ 66 - 1
PunkHPX8_Twincate/PunkHPX8/PlcTest/POUs/MAIN.TcPOU

@@ -110,7 +110,72 @@ VAR
 	Safety_ReqCell1_2DoorsLock AT%Q* :BOOL;
 	//ReqCell34DoorsLock
 	Safety_ReqCell3_4DoorsLock AT%Q* :BOOL;
-
+	
+	
+	//Sample1FluidDetect
+	Facility_DI_16CHANNEL_EL1819_N000_1 AT%I* :BOOL;
+	//Sample2FluidDetect
+	Facility_DI_16CHANNEL_EL1819_N000_2 AT%I* :BOOL;
+	//CassetteAPlaced
+	Facility_DI_16CHANNEL_EL1819_N000_11 AT%I* :BOOL;
+	//CassetteA100M
+	Facility_DI_16CHANNEL_EL1819_N000_12 AT%I* :BOOL;
+	//CassetteA200M
+	Facility_DI_16CHANNEL_EL1819_N000_13 AT%I* :BOOL;
+	//CassetteBPlaced
+	Facility_DI_16CHANNEL_EL1819_N000_14 AT%I* :BOOL;
+	//CassetteB100M
+	Facility_DI_16CHANNEL_EL1819_N000_15 AT%I* :BOOL;
+	//CassetteB200M
+	Facility_DI_16CHANNEL_EL1819_N000_16 AT%I* :BOOL;
+	//PH3
+	Facility_AI_8CHANNEL_4_20mA_EL3058_N005_1 AT%I* :INT;
+	//HouseChilledWaterFlow
+	Facility_AI_8CHANNEL_4_20mA_EL3058_N005_5 AT%I* :INT;
+	//SystemExhaust1
+	Facility_AI_8CHANNEL_4_20mA_EL3058_N006_1 AT%I* :INT;
+	//SystemExhaust2
+	Facility_AI_8CHANNEL_4_20mA_EL3058_N006_2 AT%I* :INT;
+	//DiWaterPressure
+	Facility_AI_8CHANNEL_4_20mA_EL3058_N006_5 AT%I* :INT;
+	//Nitrogen1BPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_1 AT%I* :INT;
+	//Nitrogen1APressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_2 AT%I* :INT;
+	//Nitrogen2BPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_3 AT%I* :INT;
+	//Nitrogen2APressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_4 AT%I* :INT;
+	//CDA2Pressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_5 AT%I* :INT;
+	//CDA1Pressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_6 AT%I* :INT;
+	//ExternalCDAPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_7 AT%I* :INT;
+	//VacuumPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N007_8 AT%I* :INT;
+	//N2BlanketPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N008_1 AT%I* :INT;
+	//N2OverFlowPressure
+	Facility_AI_8CHANNEL_0_10V_EL3068_N008_2 AT%I* :INT;
+	//DIReplenFlow
+	Facility_COUNTER_2CHANNEL_EL1512_N009_1_Counter_value AT%I* :UDINT;
+	
+	
+	//N2Enable
+	Facility_DO_16CHANNEL_EL2809_N002_1 AT%Q* :BOOL;
+	//CDAEnable
+	Facility_DO_16CHANNEL_EL2809_N002_2 AT%Q* :BOOL;
+	//ExternalCDAEnable
+	Facility_DO_16CHANNEL_EL2809_N002_3 AT%Q* :BOOL;
+	//ExternalCDAEnable
+	Facility_DO_16CHANNEL_EL2809_N002_4 AT%Q* :BOOL;
+	//ExternalCDAEnable
+	Facility_DO_16CHANNEL_EL2809_N002_5 AT%Q* :BOOL;
+	//DiReplenEnable
+	Facility_DO_16CHANNEL_EL2809_N002_6 AT%Q* :BOOL;
+	//DiFillEnable
+	Facility_DO_16CHANNEL_EL2809_N002_7 AT%Q* :BOOL;
 
 	//VPW1 Rotation Status word
 	VPW1RotationStatusWord AT%I* :UINT;