Browse Source

update safetyData

chenkui 2 days ago
parent
commit
4de27837d1

+ 0 - 3
Framework/Common/CommonData/Vpw/VpwMainCommonData.cs

@@ -15,8 +15,6 @@ namespace MECF.Framework.Common.CommonData.Vpw
         
         public bool ChamberClose { get { return _chamberClose; } set { _chamberClose = value;InvokePropertyChanged(nameof(ChamberClose)); } }
 
-        public bool LeakDetected { get { return _leakDetected; } set { _leakDetected = value; InvokePropertyChanged(nameof(LeakDetected)); } }
-
         public double VacuumPumpPressure { get { return _vacuumPumpPressure; } set { _vacuumPumpPressure = value; InvokePropertyChanged(nameof(VacuumPumpPressure)); } }
       
         public bool VacuumPumpPower { get { return _vaccumPumpPower; } set { _vaccumPumpPower = value;InvokePropertyChanged(nameof(VacuumPumpPower)); } }
@@ -89,7 +87,6 @@ namespace MECF.Framework.Common.CommonData.Vpw
         private bool _chamberClosed;
         private bool _chamberOpened;
         private bool _chamberClose;
-        private bool _leakDetected;
         private double _vacuumPumpPressure;
         private bool _vaccumPumpPower;
         private bool _vacuumPumpEnable;

+ 80 - 0
Framework/Common/Device/Safety/SafetyData.cs

@@ -222,6 +222,45 @@ namespace MECF.Framework.Common.Device.Safety
         private bool _haltButtonRight;
         #endregion
 
+        #region Leak Detected
+        private bool _platingCell12LeakDetected;
+        private bool _platingCell34LeakDetected;
+        private bool _vacuumPrewetLeakDetected;
+        private bool _sampleStation1LeakDetected;
+        private bool _sampleStation2LeakDetected;
+        private bool _frameContainmentLeakDetected;
+        #endregion
+
+        #region EDM
+        private bool _reservoir12CAPumpEdm;
+        private bool _reservoir34CAPumpEdm;
+        private bool _resDegas1PumpEdm;
+        private bool _resDegas2PumpEdm;
+        private bool _vpwVacuumPumpEdm;
+        private bool _vpwBoosterPumpEdm;
+        private bool _extFluidEnableEdm;
+        #endregion
+
+        #region Level High
+        private bool _reservoir1CALevelHigh;
+        private bool _reservoir2CALevelHigh;
+        private bool _reservoir3CALevelHigh;
+        private bool _reservoir4CALevelHigh;
+        #endregion
+
+        #region Axis STO
+        private bool _vpwCell1RotationStoEdm;
+        private bool _vpwCell2RotationStoEdm;
+        private bool _platingCell1RotationStoEdm;
+        private bool _platingCell2RotationStoEdm;
+        private bool _platingCell3RotationStoEdm;
+        private bool _platingCell4RotationStoEdm;
+        private bool _platingCell12VerticalStoEdm;
+        private bool _platingCell34VerticalStoEdm;
+        private bool _srd1RotationStoEdm;
+        private bool _srd2RotationStoEdm;
+        #endregion
+
         #endregion
 
         #region 属性
@@ -393,6 +432,47 @@ namespace MECF.Framework.Common.Device.Safety
         public bool HaltButtonRight { get { return _haltButtonRight; } set { _haltButtonRight = value;InvokePropertyChanged(nameof(HaltButtonRight)); } }
         #endregion
 
+        #region Leak Detected
+        public bool PlatingCell12LeakDetected { get { return _platingCell12LeakDetected; } set { _platingCell12LeakDetected = value;InvokePropertyChanged(nameof(PlatingCell12LeakDetected)); } }
+        public bool PlatingCell34LeakDetected { get { return _platingCell34LeakDetected; } set { _platingCell34LeakDetected = value;InvokePropertyChanged(nameof(PlatingCell34LeakDetected)); } }
+        public bool VacuumPrewetLeakDetected { get { return _vacuumPrewetLeakDetected;} set { _vacuumPrewetLeakDetected = value;InvokePropertyChanged(nameof(VacuumPrewetLeakDetected)); } }
+
+        public bool SampleStation1LeakDetected { get { return _sampleStation1LeakDetected;} set { _sampleStation1LeakDetected = value;InvokePropertyChanged(nameof(SampleStation1LeakDetected)); } }
+
+        public bool SampleStation2LeakDetected { get { return _sampleStation2LeakDetected; } set { _sampleStation2LeakDetected = value; InvokePropertyChanged(nameof(SampleStation2LeakDetected)); } }
+
+        public bool FrameContainmentLeakDetected { get { return _frameContainmentLeakDetected; } set { _frameContainmentLeakDetected = value;InvokePropertyChanged(nameof(FrameContainmentLeakDetected)); } }
+        #endregion
+
+        #region EDM
+        public bool Reservoir12CAPumpEdm { get { return _reservoir12CAPumpEdm; } set { _reservoir12CAPumpEdm = value;InvokePropertyChanged(nameof(Reservoir12CAPumpEdm)); } }
+        public bool Reservoir34CAPumpEdm { get { return _reservoir34CAPumpEdm; } set { _reservoir34CAPumpEdm = value;InvokePropertyChanged(nameof(Reservoir34CAPumpEdm)); } }
+        public bool ResDegas1PumpEdm { get { return _resDegas1PumpEdm; } set { _resDegas1PumpEdm = value;InvokePropertyChanged(nameof(ResDegas1PumpEdm)); } }
+        public bool ResDegas2PumpEdm { get { return _resDegas2PumpEdm; } set { _resDegas2PumpEdm = value;InvokePropertyChanged(nameof(ResDegas2PumpEdm)); } }
+        public bool VpwVacuumPumpEdm { get { return _vpwVacuumPumpEdm; } set { _vpwVacuumPumpEdm = value;InvokePropertyChanged(nameof(VpwVacuumPumpEdm)); } }
+        public bool VpwBoosterPumpEdm { get { return _vpwBoosterPumpEdm; } set { _vpwBoosterPumpEdm = value;InvokePropertyChanged(nameof(VpwBoosterPumpEdm)); } }
+        public bool ExtFluidEnableEdm { get { return _extFluidEnableEdm; } set { _extFluidEnableEdm = value;InvokePropertyChanged(nameof(ExtFluidEnableEdm)); } }
+        #endregion
+
+        #region Level High
+        public bool Reservoir1CALevelHigh { get { return _reservoir1CALevelHigh; } set { _reservoir1CALevelHigh = value; InvokePropertyChanged(nameof(Reservoir1CALevelHigh)); } }
+        public bool Reservoir2CALevelHigh { get { return _reservoir2CALevelHigh; } set { _reservoir2CALevelHigh = value; InvokePropertyChanged(nameof(Reservoir2CALevelHigh)); } }
+        public bool Reservoir3CALevelHigh { get { return _reservoir3CALevelHigh; } set { _reservoir3CALevelHigh = value; InvokePropertyChanged(nameof(Reservoir3CALevelHigh)); } }
+        public bool Reservoir4CALevelHigh { get { return _reservoir4CALevelHigh; } set { _reservoir4CALevelHigh = value; InvokePropertyChanged(nameof(Reservoir4CALevelHigh)); } }
+        #endregion
+
+        #region Axis STO
+        public bool VpwCell1RotationStoEdm { get { return _vpwCell1RotationStoEdm; } set { _vpwCell1RotationStoEdm = value;InvokePropertyChanged(nameof(VpwCell1RotationStoEdm)); } }
+        public bool VpwCell2RotationStoEdm { get { return _vpwCell2RotationStoEdm; } set { _vpwCell2RotationStoEdm = value;InvokePropertyChanged(nameof(VpwCell2RotationStoEdm)); } }
+        public bool PlatingCell1RotationStoEdm { get { return _platingCell1RotationStoEdm; } set { _platingCell1RotationStoEdm = value;InvokePropertyChanged(nameof(PlatingCell1RotationStoEdm)); } }
+        public bool PlatingCell2RotationStoEdm { get { return _platingCell2RotationStoEdm; } set { _platingCell2RotationStoEdm = value; InvokePropertyChanged(nameof(PlatingCell2RotationStoEdm)); } }
+        public bool PlatingCell3RotationStoEdm { get { return _platingCell3RotationStoEdm; } set { _platingCell3RotationStoEdm = value; InvokePropertyChanged(nameof(PlatingCell3RotationStoEdm)); } }
+        public bool PlatingCell4RotationStoEdm { get { return _platingCell1RotationStoEdm; } set { _platingCell4RotationStoEdm = value; InvokePropertyChanged(nameof(PlatingCell4RotationStoEdm)); } }
+        private bool PlatingCell12VerticalStoEdm { get { return _platingCell12VerticalStoEdm; } set { _platingCell12VerticalStoEdm = value;InvokePropertyChanged(nameof(PlatingCell12VerticalStoEdm)); } }
+        private bool PlatingCell34VerticalStoEdm { get { return _platingCell34VerticalStoEdm; } set { _platingCell34VerticalStoEdm = value; InvokePropertyChanged(nameof(PlatingCell34VerticalStoEdm)); } }
+        private bool Srd1RotationStoEdm { get { return _srd1RotationStoEdm; } set { _srd1RotationStoEdm = value;InvokePropertyChanged(nameof(Srd1RotationStoEdm)); } }
+        private bool Srd2RotationStoEdm { get { return _srd2RotationStoEdm; } set { _srd2RotationStoEdm = value;InvokePropertyChanged(nameof(Srd2RotationStoEdm)); } }
+        #endregion
 
         #endregion
     }

+ 23 - 24
PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

@@ -49,34 +49,33 @@
 		<Input Name="r_Halt_Button_Left" Address="Task 2.Inputs.Safety_SDI_CHANNEL_EL1904_NS103_1" Invert="true" Type="Digital" DataType="bool"/>
 		<Input Name="r_Halt_Button_Right" Address="Task 2.Inputs.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="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"/>
+		<Input Name="r_SAMPLE_SYS_1_FLUID_PRESENT" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SAMPLE_SYS_2_FLUID_PRESENT" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_Present" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_11" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_100MM" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_12" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_A_200MM" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_13" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_Present" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_14" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_100MM" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_15" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Cassette_B_200MM" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_16" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_pH3" Address="Task 2.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.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.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N007_8" Scaling="-750=3276.7, 750=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_BLANKET_PRESSURE" Address="Task 2.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_1" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
+		<Input Name="r_N2_OVERFLOW_PRESSURE" Address="Task 2.Inputs.Facility_AI_8CHANNEL_0_10V_EL3068_N008_2" Scaling="-14.5=3276.7, 14.5=16383.5" Type="Analog" DataType="int"/>
 		<!-- facility inputs end -->
 
 		<!--VPW Main Start-->

+ 29 - 3
PunkHPX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -165,7 +165,6 @@
 		<IO Name="VPWMain1.ChamberClosed" IOName="r_VPW_CHAMBER_CLOSED"/>
 		<IO Name="VPWMain1.ChamberOpened" IOName="r_VPW_CHAMBER_OPENED"/>
 		<IO Name="VPWMain1.ChamberClose" IOName="c_VPW_CHAMBER_CLOSE"/>
-		<IO Name="VPWMain1.LeakDetected" IOName="r_VPW_LEAK_DETECT"/>
 		<IO Name="VPWMain1.VacuumPumpPressure" IOName="r_VPW_VAC_PUMP_PRESSURE"/>
 		<IO Name="VPWMain1.VacuumPumpPower" IOName="c_VPW_VACUUM_PUMP_POWER"/>
 		<IO Name="VPWMain1.VacuumPumpEnable" IOName="c_VPW_VACUUM_PUMP_ENABLE"/>
@@ -259,7 +258,34 @@
 		<IO Name="Safety.ReqAlignerDoorLock" IOName="c_Safety_ReqAlignerDoorsLock"/>	
 		<IO Name="Safety.ReqCassetteDoorsLock" IOName="c_Safety_ReqCassetteDoorsLock"/>	
 		<IO Name="Safety.ReqCell12DoorsLock" IOName="c_Safety_ReqCell1_2DoorsLock"/>	
-		<IO Name="Safety.ReqCell34DoorsLock" IOName="c_Safety_ReqCell3_4DoorsLock"/>	
-		
+		<IO Name="Safety.ReqCell34DoorsLock" IOName="c_Safety_ReqCell3_4DoorsLock"/>
+
+		<IO Name="Safety.PlatingCell12LeakDetected" IOName="r_PlatingCell1_2_Leak_Detected"/>
+		<IO Name="Safety.PlatingCell34LeakDetected" IOName="r_PlatingCell3_4_Leak_Detected"/>
+		<IO Name="Safety.VacuumPrewetLeakDetected" IOName="r_VPW_LEAK_DETECT"/>
+		<IO Name="Safety.SampleStation1LeakDetected" IOName="r_SAMPLE_SYS1_FLUID_PRESENT"/>
+		<IO Name="Safety.SampleStation2LeakDetected" IOName="r_SAMPLE_SYS2_FLUID_PRESENT"/>
+		<IO Name="Safety.FrameContainmentLeakDetected" IOName="r_CONTAINMENT_FLUID"/>
+		<IO Name="Safety.Reservoir12CAPumpEdm" IOName="r_RES1_2_Pump_EDM"/>
+		<IO Name="Safety.Reservoir34CAPumpEdm" IOName="r_RES3_4_Pump_EDM"/>
+		<IO Name="Safety.ResDegas1PumpEdm" IOName="r_Degas1_Pump_EDM"/>
+		<IO Name="Safety.ResDegas2PumpEdm" IOName="r_Degas2_Pump_EDM"/>
+		<IO Name="Safety.VpwVacuumPumpEdm" IOName="r_Vacuum_Pump_STO_EDM"/>
+		<IO Name="Safety.VpwBoosterPumpEdm" IOName="r_Booster_Pump_STO_EDM"/>
+		<IO Name="Safety.ExtFluidEnableEdm" IOName="r_External_Fluid_EDM"/>
+		<IO Name="Safety.Reservoir1CALevelHigh" IOName="r_RES1_High_High"/>
+		<IO Name="Safety.Reservoir2CALevelHigh" IOName="r_RES2_High_High"/>
+		<IO Name="Safety.Reservoir3CALevelHigh" IOName="r_RES3_High_High"/>
+		<IO Name="Safety.Reservoir4CALevelHigh" IOName="r_RES4_High_High"/>
+		<IO Name="Safety.VpwCell1RotationStoEdm" IOName="r_VPW_LEAK_DETECT"/>
+		<IO Name="Safety.VpwCell2RotationStoEdm" IOName="r_VPW_LEAK_DETECT"/>
+		<IO Name="Safety.PlatingCell1RotationStoEdm" IOName="r_PlatingCell1_2_Left_STO_EDM"/>
+		<IO Name="Safety.PlatingCell2RotationStoEdm" IOName="r_PlatingCell1_2_Right_STO_EDM"/>
+		<IO Name="Safety.PlatingCell3RotationStoEdm" IOName="r_PlatingCell3_4_Left_STO_EDM"/>
+		<IO Name="Safety.PlatingCell4RotationStoEdm" IOName="r_PlatingCell3_4_Right_STO_EDM"/>
+		<IO Name="Safety.PlatingCell12VerticalStoEdm" IOName="r_PlatingCell1_2_Vertical_STO_EDM"/>
+		<IO Name="Safety.PlatingCell34VerticalStoEdm" IOName="r_PlatingCell3_4_Vertical_STO_EDM"/>
+		<IO Name="Safety.Srd1RotationStoEdm" IOName="r_VPW_LEAK_DETECT"/>
+		<IO Name="Safety.Srd2RotationStoEdm" IOName="r_VPW_LEAK_DETECT"/>
 	</Module>
 </BeckhoffModuleIOCfg>