Browse Source

add safety module all

chenzk 2 days ago
parent
commit
d8ddc42656

+ 5 - 5
Framework/Common/Device/Safety/SafetyData.cs

@@ -467,11 +467,11 @@ namespace MECF.Framework.Common.Device.Safety
         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)); } }
+        public bool PlatingCell4RotationStoEdm { get { return _platingCell4RotationStoEdm; } set { _platingCell4RotationStoEdm = value; InvokePropertyChanged(nameof(PlatingCell4RotationStoEdm)); } }
+        public bool PlatingCell12VerticalStoEdm { get { return _platingCell12VerticalStoEdm; } set { _platingCell12VerticalStoEdm = value;InvokePropertyChanged(nameof(PlatingCell12VerticalStoEdm)); } }
+        public bool PlatingCell34VerticalStoEdm { get { return _platingCell34VerticalStoEdm; } set { _platingCell34VerticalStoEdm = value; InvokePropertyChanged(nameof(PlatingCell34VerticalStoEdm)); } }
+        public bool Srd1RotationStoEdm { get { return _srd1RotationStoEdm; } set { _srd1RotationStoEdm = value;InvokePropertyChanged(nameof(Srd1RotationStoEdm)); } }
+        public bool Srd2RotationStoEdm { get { return _srd2RotationStoEdm; } set { _srd2RotationStoEdm = value;InvokePropertyChanged(nameof(Srd2RotationStoEdm)); } }
         #endregion
 
         #endregion

+ 31 - 55
PunkHPX8_MainPages/Views/SystemSafetyView.xaml

@@ -36,10 +36,10 @@
             <Grid.RowDefinitions>
                 <RowDefinition Height="200"></RowDefinition>
                 <RowDefinition Height="1"></RowDefinition>
-                <RowDefinition Height="450"></RowDefinition>
+                <RowDefinition Height="250"></RowDefinition>
                 <RowDefinition Height="150"></RowDefinition>
             </Grid.RowDefinitions>
-            <GroupBox Grid.Row="4" Grid.Column="0" Header="Controls" Height="100"  Margin="5,0,5,0">
+            <GroupBox Grid.Row="3" Grid.Column="0" Header="Controls" Height="100"  Margin="5,0,5,0">
                 <Grid>
                     <Grid.RowDefinitions>
                         <RowDefinition Height="40"></RowDefinition>
@@ -55,32 +55,8 @@
                     <Ellipse Grid.Row="1" Grid.Column="1" Margin="0,7,-15,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.HaltButtonRight,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
                 </Grid>
             </GroupBox>
-            <GroupBox Grid.Row="0" Grid.RowSpan="2" Header="Scheduler/Job Status" Height="190" VerticalAlignment="Top" Margin="5,0,5,0">
-                <Grid>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="40"></RowDefinition>
-                        <RowDefinition Height="40"></RowDefinition>
-                        <RowDefinition Height="40"></RowDefinition>
-                        <RowDefinition Height="40"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="150"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="Schedule Mode" VerticalAlignment="Center" FontWeight="Bold" Margin="25,0,0,0"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Processing State" VerticalAlignment="Center" FontWeight="Bold" Margin="25,0,0,0"/>
-                    <Border Grid.Row="1" Grid.Column="0"  Margin="5,5,5,5" Background="Black" Width="70" VerticalAlignment="Center" HorizontalAlignment="Right" >
-                        <TextBlock  Text="{Binding ElementName=self,Path=TotalFlow}" Foreground="Lime" FontSize="16" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left"/>
-                    </Border>
-                    <Border Grid.Row="3" Grid.Column="0"  Margin="5,5,5,5" Background="Black" Width="70" VerticalAlignment="Center" HorizontalAlignment="Right" >
-                        <TextBlock  Text="{Binding ElementName=self,Path=TotalFlow}" Foreground="Lime" FontSize="16" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left"/>
-                    </Border>
-                    <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Pause" Width="75" Height="25" HorizontalAlignment="Center" Command="{Binding ResetCommand}" Margin="0,0,0,0"></Button>
-                    <Button Grid.Row="1" Grid.Column="3" Style="{StaticResource SysBtnStyle}"  Content="Resi,e" Width="75" Height="25" HorizontalAlignment="Center" Command="{Binding ResetCommand}" Margin="0,0,0,0"></Button>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="2" Grid.RowSpan="2" Header="Safety I/O" VerticalAlignment="Top" Margin="5,0,5,0">
+            
+            <GroupBox Grid.Row="0" Grid.RowSpan="3" Header="Safety I/O" VerticalAlignment="Top" Margin="5,0,5,0">
                 <Grid>
                     <Grid.RowDefinitions>
                         <RowDefinition Height="1"></RowDefinition>
@@ -389,12 +365,12 @@
                         <Label Grid.Row="3" Grid.Column="0" Content="Sammple #1 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
                         <Label Grid.Row="4" Grid.Column="0" Content="Sammple #2 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
                         <Label Grid.Row="5" Grid.Column="0" Content="Frame Containment Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Ellipse Grid.Row="0" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsProcessTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="1" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsProcessTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="2" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="3" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsPufsMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="4" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsSRDsMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="5" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="0" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.PlatingCell12LeakDetected,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="1" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.PlatingCell34LeakDetected,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="2" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.VacuumPrewetLeakDetected,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="3" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.SampleStation1LeakDetected,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="4" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.SampleStation2LeakDetected,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="5" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding CommonSafetyData.FrameContainmentLeakDetected,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
                     </Grid>
                 </GroupBox>
 
@@ -427,13 +403,13 @@
                     <Label Grid.Row="4" Grid.Column="0" Content="VPW Vacuum Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
                     <Label Grid.Row="5" Grid.Column="0" Content="VPW Booster Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
                     <Label Grid.Row="6" Grid.Column="0" Content="EXT Fluid Enable" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1FlipOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="6" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2FlipOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="0" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir12CAPumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="1" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir34CAPumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="2" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ResDegas1PumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="3" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ResDegas2PumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="4" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwVacuumPumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="5" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwBoosterPumpEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="6" Grid.Column="1" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ExtFluidEnableEdm,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
              
                 </Grid>
             </GroupBox>
@@ -450,13 +426,13 @@
                         <RowDefinition Height="40"></RowDefinition>
                     </Grid.RowDefinitions>
                     <Label Grid.Row="0" Grid.Column="0" Content="Reservoir 1 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir1CALevelHigh,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
                     <Label Grid.Row="1" Grid.Column="0" Content="Reservoir 2 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSls,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir2CALevelHigh,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
                     <Label Grid.Row="2" Grid.Column="0" Content="Reservoir 3 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Ellipse Grid.Row="2" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir3CALevelHigh,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
                     <Label Grid.Row="3" Grid.Column="0" Content="Reservoir 4 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Ellipse Grid.Row="3" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Reservoir4CALevelHigh,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
                 </Grid>
             </GroupBox>
         </Grid>
@@ -505,25 +481,25 @@
                     <Label Grid.Row="11" Grid.Column="0" Content="SRD Cell 2 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
 
                     <Ellipse Grid.Row="2" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsVpw1RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="2" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwCell1RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="3" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsVpw2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdArmDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="3" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwCell2RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="4" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="4" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell1RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="5" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="5" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell2RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="6" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="6" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="6" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell3RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="7" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="7" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="7" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell4RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="8" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="8" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="8" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell12VerticalStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="9" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="9" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="9" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlatingCell34VerticalStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="10" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="10" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="10" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.Srd1RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="11" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="11" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="11" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.Srd2RotationStoEdm,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                 </Grid>
             </GroupBox>
         </Grid>

+ 30 - 3
PunkHPX8_RT/Config/Devices/Beckhoffcfg - plctask.xml

@@ -49,11 +49,39 @@
 		<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"/>
 		
+		<Input Name="r_VPW_LEAK_DETECT"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_2_Pump_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS401_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES3_4_Pump_EDM" Address="MAIN.RES3_4_SDI_4CHANNEL_EL1904_NS431_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Degas1_Pump_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS400_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Degas2_Pump_EDM" Address="MAIN.RES3_4_SDI_4CHANNEL_EL1904_NS430_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Vacuum_Pump_STO_EDM" Address="MAIN.VPW_SDI_4CHANNEL_EL1904_NS300_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Booster_Pump_STO_EDM" Address="MAIN.VPW_SDI_4CHANNEL_EL1904_NS300_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_External_Fluid_EDM" Address="MAIN.Facility_SDI_4CHANNEL_EL1904_NS200_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_High_High" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS400_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES2_High_High" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS400_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES3_High_High" Address="MAIN.RES3_4_SDI_4CHANNEL_EL1904_NS430_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES4_High_High" Address="MAIN.RES3_4_SDI_4CHANNEL_EL1904_NS430_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW1_Rotate_STO_EDM" Address="MAIN.VPW_SDI_4CHANNEL_EL1904_NS300_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW2_Rotate_STO_EDM" Address="MAIN.VPW_SDI_4CHANNEL_EL1904_NS300_4" Invert="false" Type="Digital" DataType="bool"/>
+		<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_CONTAINMENT_FLUID" Address="MAIN.Facility_DI_16CHANNEL_EL1819_N000_10" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Leak_Detected" Address="MAIN.RES1_2_DI_16CHANNEL_4_20MA_EL1819_N200_7" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Leak_Detected" Address="MAIN.RES3_4_DI_8CHANNEL_4_20MA_EL1008_N230_7" Invert="false" Type="Digital" DataType="bool"/>
+		
+		<Input Name="r_PlatingCell1_2_Left_STO_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS500_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Right_STO_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS500_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Left_STO_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS531_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Right_STO_EDM" Address="MAIN.RES3_4_SDI_4CHANNEL_EL1904_NS531_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Vertical_STO_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS500_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Vertical_STO_EDM" Address="MAIN.RES1_2_SDI_4CHANNEL_EL1904_NS531_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SRD1_ROTATE_STO_EDM" Address="MAIN.SRD1_SDI_4CHANNEL_EL1904_NS300_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SRD2_ROTATE_STO_EDM" Address="MAIN.SRD2_SDI_4CHANNEL_EL1904_NS300_4" Invert="false" 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"/>
@@ -82,7 +110,6 @@
 		<!--VPW Main Start-->
 		<Input Name="r_VPW_CHAMBER_CLOSED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_1" Invert="false" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_CHAMBER_OPENED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="false" Type="Digital" DataType="bool"/>
-		<Input Name="r_VPW_LEAK_DETECT"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="true" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_VAC_PUMP_PRESSURE"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_6" Scaling="758=0,0=32767" Type="Analog" DataType="int"/>
 		<Input Name="r_VPW_BOOSTER_PUMP_STATUS"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_9" Invert="true" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_DIW_TOTAL_FLOW"  Address="MAIN.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>

+ 30 - 3
PunkHPX8_RT/Config/Devices/Beckhoffcfg.xml

@@ -49,12 +49,40 @@
 		<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"/>
 		
+		<Input Name="r_VPW_LEAK_DETECT"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Leak_Detected" Address="Task 2.Inputs.RES1_2_DI_16CHANNEL_4_20MA_EL1819_N200_7" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Leak_Detected" Address="Task 2.Inputs.RES3_4_DI_8CHANNEL_4_20MA_EL1008_N230_7" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SAMPLE_SYS1_FLUID_PRESENT" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SAMPLE_SYS2_FLUID_PRESENT" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_CONTAINMENT_FLUID" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_10" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_2_Pump_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS401_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES3_4_Pump_EDM" Address="Task 2.Inputs.RES3_4_SDI_4CHANNEL_EL1904_NS431_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Degas1_Pump_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS400_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Degas2_Pump_EDM" Address="Task 2.Inputs.RES3_4_SDI_4CHANNEL_EL1904_NS430_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Vacuum_Pump_STO_EDM" Address="Task 2.Inputs.VPW_SDI_4CHANNEL_EL1904_NS300_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_Booster_Pump_STO_EDM" Address="Task 2.Inputs.VPW_SDI_4CHANNEL_EL1904_NS300_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_External_Fluid_EDM" Address="Task 2.Inputs.Facility_SDI_4CHANNEL_EL1904_NS200_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_High_High" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS400_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES2_High_High" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS400_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES3_High_High" Address="Task 2.Inputs.RES3_4_SDI_4CHANNEL_EL1904_NS430_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES4_High_High" Address="Task 2.Inputs.RES3_4_SDI_4CHANNEL_EL1904_NS430_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW1_Rotate_STO_EDM" Address="Task 2.Inputs.VPW_SDI_4CHANNEL_EL1904_NS300_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW2_Rotate_STO_EDM" Address="Task 2.Inputs.VPW_SDI_4CHANNEL_EL1904_NS300_4" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Left_STO_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS500_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Right_STO_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS500_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Left_STO_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS531_2" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Right_STO_EDM" Address="Task 2.Inputs.RES3_4_SDI_4CHANNEL_EL1904_NS531_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell1_2_Vertical_STO_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS500_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_PlatingCell3_4_Vertical_STO_EDM" Address="Task 2.Inputs.RES1_2_SDI_4CHANNEL_EL1904_NS531_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SRD1_ROTATE_STO_EDM" Address="Task 2.Inputs.SRD1_SDI_4CHANNEL_EL1904_NS300_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_SRD2_ROTATE_STO_EDM" Address="Task 2.Inputs.SRD2_SDI_4CHANNEL_EL1904_NS300_4" Invert="false" Type="Digital" DataType="bool"/>
 		<!-- Safety inputs end -->
 		
 		
 		<!-- facility inputs start -->
 		<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_CONTAINMENT_FLUID" Address="Task 2.Inputs.Facility_DI_16CHANNEL_EL1819_N000_10" 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"/>
@@ -79,9 +107,8 @@
 		<!-- 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"/>
-		<Input Name="r_VPW_CHAMBER_OPENED"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="true" Type="Digital" DataType="bool"/>
-		<Input Name="r_VPW_LEAK_DETECT"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_3" Invert="true" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_CHAMBER_CLOSED"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_VPW_CHAMBER_OPENED"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="false" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_VAC_PUMP_PRESSURE"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_6" Scaling="758=0,0=32767" Type="Analog" DataType="int"/>
 		<Input Name="r_VPW_BOOSTER_PUMP_STATUS"  Address="Task 2.Inputs.VPW_DI_16CHANNEL_EL1819_N100_9" Invert="true" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_DIW_TOTAL_FLOW"  Address="Task 2.Inputs.VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>

+ 13 - 15
PunkHPX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -52,13 +52,8 @@
 		<IO Name="Facilities.FFULoaderPressure" IOName="r_FFUPressureLoader"/>
 		<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.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"/>
@@ -183,6 +178,7 @@
 		<IO Name="VPWMain1.DegasPurge" IOName="c_VPW_DEGAS_PURGE"/>
 		<IO Name="VPWMain1.DegasPumpEnable" IOName="c_VPW_DEGAS_PUMP_ENABLE"/>
 		<IO Name="VPWMain1.DegasPumpPressure" IOName="r_VPW_DEGAS_PUMP_PRESSURE"/>
+
 	</Module>
 	<Module Name="VPW1">
 		<IO Name="VPW1.DiwFlow" IOName="r_VPW_DIW_CELL_1_FLOW"/>
@@ -260,12 +256,9 @@
 		<IO Name="Safety.ReqCell12DoorsLock" IOName="c_Safety_ReqCell1_2DoorsLock"/>	
 		<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"/>
@@ -277,15 +270,20 @@
 		<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.VpwCell1RotationStoEdm" IOName="r_VPW1_Rotate_STO_EDM"/>
+		<IO Name="Safety.VpwCell2RotationStoEdm" IOName="r_VPW2_Rotate_STO_EDM"/>
+		<IO Name="Safety.SampleStation1LeakDetected" IOName="r_SAMPLE_SYS_1_FLUID_PRESENT"/>
+		<IO Name="Safety.SampleStation2LeakDetected" IOName="r_SAMPLE_SYS_2_FLUID_PRESENT"/>
+		<IO Name="Safety.FrameContainmentLeakDetected" IOName="r_CONTAINMENT_FLUID"/>
+		<IO Name="Safety.PlatingCell12LeakDetected" IOName="r_PlatingCell1_2_Leak_Detected"/>
+		<IO Name="Safety.PlatingCell34LeakDetected" IOName="r_PlatingCell3_4_Leak_Detected"/>
 		<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"/>
+		<IO Name="Safety.Srd1RotationStoEdm" IOName="r_SRD1_ROTATE_STO_EDM"/>
+		<IO Name="Safety.Srd2RotationStoEdm" IOName="r_SRD2_ROTATE_STO_EDM"/>
 	</Module>
 </BeckhoffModuleIOCfg>

+ 67 - 0
PunkHPX8_RT/Devices/Safety/SafetyDevice.cs

@@ -238,6 +238,43 @@ namespace PunkHPX8_RT.Devices.Safety
         private const string HALT_BUTTON_RIGHT="HaltButtonRight";
         #endregion
 
+        #region Leak Detected
+        private const string PLATINGCELL12LEAKDETECTED = "PlatingCell12LeakDetected";
+        private const string PLATINGCELL34LEAKDETECTED = "PlatingCell34LeakDetected";
+        private const string VACUUMPREWETLEAKDETECTED = "VacuumPrewetLeakDetected";
+        private const string SAMPLESTATION1LEAKDETECTED= "SampleStation1LeakDetected";
+        private const string SAMPLESTATION2LEAKDETECTED = "SampleStation2LeakDetected";
+        private const string FRAMECONTAINMENTLEAKDETECTED = "FrameContainmentLeakDetected";
+        #endregion
+        #region EDM
+        private const string RESERVOIR12CAPUMPEDM = "Reservoir12CAPumpEdm";
+        private const string RESERVOIR34CAPUMPEDM = "Reservoir34CAPumpEdm";
+        private const string RESDEGAS1PUMPEDM = "ResDegas1PumpEdm";
+        private const string RESDEGAS2PUMPEDM = "ResDegas2PumpEdm";
+        private const string VPWVACUUMPUMPEDM = "VpwVacuumPumpEdm";
+        private const string VPWBOOSTERPUMPEDM = "VpwBoosterPumpEdm";
+        private const string EXTFLUDIENABLEEDM = "ExtFluidEnableEdm";
+        #endregion
+        #region Level High
+        private const string RESERVOIR1CALEVELHIGH = "Reservoir1CALevelHigh";
+        private const string RESERVOIR2CALEVELHIGH = "Reservoir2CALevelHigh";
+        private const string RESERVOIR3CALEVELHIGH = "Reservoir3CALevelHigh";
+        private const string RESERVOIR4CALEVELHIGH = "Reservoir4CALevelHigh";
+        #endregion
+
+        #region Axis STO
+        private const string VPWCELL1ROTATIONSTOEDM = "VpwCell1RotationStoEdm";
+        private const string VPWCELL2ROTATIONSTOEDM = "VpwCell2RotationStoEdm";
+        private const string PLATINGCELL1ROTATIONSTOEDM = "PlatingCell1RotationStoEdm";
+        private const string PLATINGCELL2ROTATIONSTOEDM = "PlatingCell2RotationStoEdm";
+        private const string PLATINGCELL3ROTATIONSTOEDM = "PlatingCell3RotationStoEdm";
+        private const string PLATINGCELL4ROTATIONSTOEDM = "PlatingCell4RotationStoEdm";
+        private const string PLATINGCELL12VERTICALSTOEDM = "PlatingCell12VerticalStoEdm";
+        private const string PLATINGCELL34VERTICALSTOEDM = "PlatingCell34VerticalStoEdm";
+        private const string SRD1ROTATIONSTOEDM = "Srd1RotationStoEdm";
+        private const string SRD2ROTATIONSTOEDM = "Srd2RotationStoEdm";
+        #endregion
+
         private const string SAFETY_DATA="SafetyData";
 
         #endregion
@@ -430,6 +467,36 @@ namespace PunkHPX8_RT.Devices.Safety
             BeckhoffIoSubscribeUpdateVariable( REQ_CELL3_4_DOORS_LOCK);
             BeckhoffIoSubscribeUpdateVariable(HALT_BUTTON_LEFT);
             BeckhoffIoSubscribeUpdateVariable(HALT_BUTTON_RIGHT);
+            
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL12LEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL34LEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(VACUUMPREWETLEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(SAMPLESTATION1LEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(SAMPLESTATION2LEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(FRAMECONTAINMENTLEAKDETECTED);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR12CAPUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR34CAPUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(RESDEGAS1PUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(RESDEGAS2PUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(VPWVACUUMPUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(VPWBOOSTERPUMPEDM);
+            BeckhoffIoSubscribeUpdateVariable(EXTFLUDIENABLEEDM);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR1CALEVELHIGH);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR2CALEVELHIGH);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR3CALEVELHIGH);
+            BeckhoffIoSubscribeUpdateVariable(RESERVOIR4CALEVELHIGH);
+            BeckhoffIoSubscribeUpdateVariable(VPWCELL1ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(VPWCELL2ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL1ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL2ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL3ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL4ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL12VERTICALSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(PLATINGCELL34VERTICALSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(SRD1ROTATIONSTOEDM);
+            BeckhoffIoSubscribeUpdateVariable(SRD2ROTATIONSTOEDM);
+
+
         }
         /// <summary>
         /// 订阅IO变量

+ 55 - 3
PunkHPX8_Twincate/PunkHPX8/PlcTest/POUs/MAIN.TcPOU

@@ -112,10 +112,63 @@ VAR
 	Safety_ReqCell3_4DoorsLock AT%Q* :BOOL;
 	
 	
+	//Reservoir12CAPumpEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS401_1 AT%I* :BOOL;
+	//Reservoir34CAPumpEdm
+	RES3_4_SDI_4CHANNEL_EL1904_NS431_1 AT%I* :BOOL;
+	//ResDegas1PumpEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS400_1 AT%I* :BOOL;
+	//ResDegas2PumpEdm
+	RES3_4_SDI_4CHANNEL_EL1904_NS430_1 AT%I* :BOOL;
+	//VpwVacuumPumpEdm and VpwBoosterPumpEdm
+	VPW_SDI_4CHANNEL_EL1904_NS300_2 AT%I* :BOOL;
+	//ExtFluidEnableEdm
+	Facility_SDI_4CHANNEL_EL1904_NS200_1 AT%I* :BOOL;
+	//Reservoir1CALevelHigh
+	RES1_2_SDI_4CHANNEL_EL1904_NS400_2 AT%I* :BOOL;
+	//Reservoir2CALevelHigh
+	RES1_2_SDI_4CHANNEL_EL1904_NS400_3 AT%I* :BOOL;
+	//Reservoir3CALevelHigh
+	RES3_4_SDI_4CHANNEL_EL1904_NS430_2 AT%I* :BOOL;
+	//Reservoir4CALevelHigh
+	RES3_4_SDI_4CHANNEL_EL1904_NS430_3 AT%I* :BOOL;
+	//VpwCell1RotationStoEdm
+	VPW_SDI_4CHANNEL_EL1904_NS300_1 AT%I* :BOOL;
+	//VpwCell2RotationStoEdm
+	VPW_SDI_4CHANNEL_EL1904_NS300_4 AT%I* :BOOL;
+	
+	//PlatingCell1RotationStoEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS500_2 AT%I* :BOOL;
+	//PlatingCell2RotationStoEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS500_3 AT%I* :BOOL;
+	//PlatingCell3RotationStoEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS531_2 AT%I* :BOOL;
+	//PlatingCell4RotationStoEdm
+	RES3_4_SDI_4CHANNEL_EL1904_NS531_1 AT%I* :BOOL;
+	//PlatingCell12VerticalStoEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS500_1 AT%I* :BOOL;
+	//PlatingCell34VerticalStoEdm
+	RES1_2_SDI_4CHANNEL_EL1904_NS531_1 AT%I* :BOOL;
+	//Srd1RotationStoEdm
+	SRD1_SDI_4CHANNEL_EL1904_NS300_1 AT%I* :BOOL;
+	//Srd2RotationStoEdm
+	SRD2_SDI_4CHANNEL_EL1904_NS300_4 AT%I* :BOOL;
+
 	//Sample1FluidDetect
 	Facility_DI_16CHANNEL_EL1819_N000_1 AT%I* :BOOL;
 	//Sample2FluidDetect
 	Facility_DI_16CHANNEL_EL1819_N000_2 AT%I* :BOOL;
+	//FrameContainmentLeakDetected
+	Facility_DI_16CHANNEL_EL1819_N000_10 AT%I* :BOOL;
+	//VacuumPrewetLeakDetected
+	VPW_DI_16CHANNEL_EL1819_N100_3 AT%I* :BOOL;
+	//PlatingCell12LeakDetected
+	RES1_2_DI_16CHANNEL_4_20MA_EL1819_N200_7 AT%I* :BOOL;
+	//PlatingCell34LeakDetected
+	RES3_4_DI_8CHANNEL_4_20MA_EL1008_N230_7 AT%I* :BOOL;
+	
+	
+	
 	//CassetteAPlaced
 	Facility_DI_16CHANNEL_EL1819_N000_11 AT%I* :BOOL;
 	//CassetteA100M
@@ -230,14 +283,13 @@ VAR
 	VPW2RotationProfileDecel AT%Q* :UDINT;	
 	//VPW2 Rotation motor step
 	VPW2RotationMotorStep :DINT;
-	
+    	
 	
 	//r_VPW_CHAMBER_CLOSED
 	VPW_DI_16CHANNEL_EL1819_N100_1 AT%I* :BOOL;
 	//r_VPW_CHAMBER_OPENED
 	VPW_DI_16CHANNEL_EL1819_N100_2 AT%I* :BOOL;
-	//r_VPW_LEAK_DETECT
-	VPW_DI_16CHANNEL_EL1819_N100_3 AT%I* :BOOL;
+
 	//r_VPW_VAC_PUMP_PRESSURE
 	VPW_AI_8CHANNEL_4_20mA_EL3058_N102_6 AT%I* :DINT;
 	//r_VPW_BOOSTER_PUMP_STATUS