Browse Source

Venus SE UI &&Venus DE pump,purge,start turbo routine update

hecl 1 year ago
parent
commit
9de8ce9b11

+ 8 - 3
Venus/Venus_MainPages/ViewModels/OverVenusDEViewModel.cs

@@ -75,6 +75,7 @@ namespace Venus_MainPages.ViewModels
         private bool m_PVHe2ValveIsOpen;
         private bool m_PVHe3ValveIsOpen;
         private bool m_HeISOValveIsOpen;
+        private bool m_PurgeValveIsOpen;
 
 
         private bool m_TurboPumpPumpingValveIsOpen;
@@ -728,7 +729,11 @@ namespace Venus_MainPages.ViewModels
             get { return m_PV22ValveIsOpen; }
             set { SetProperty(ref m_PV22ValveIsOpen, value); }
         }
-
+        public bool PurgeValveIsOpen
+        {
+            get { return m_PurgeValveIsOpen; }
+            set { SetProperty(ref m_PurgeValveIsOpen, value); }
+        }
         public bool PV51ValveIsOpen{ get{return m_PV51ValveIsOpen;} set{SetProperty(ref m_PV51ValveIsOpen,value);}}
         public bool PV52ValveIsOpen{ get{return m_PV52ValveIsOpen;} set{SetProperty(ref m_PV52ValveIsOpen,value);}}
         public bool PV61ValveIsOpen{ get{return m_PV61ValveIsOpen;} set{SetProperty(ref m_PV61ValveIsOpen,value);}}
@@ -1774,7 +1779,7 @@ namespace Venus_MainPages.ViewModels
                 IsVAC = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsVAC");
 
                 ESCHVOutputVoltage = CommonFunction.GetValue<int>(RtDataValues, $"{ModuleName}.ESCHV.OutputVoltage");
-
+                PurgeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePurge.IsOpen");
 
                 MatchC1 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.Match}.C1");
                 MatchC2 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.Match}.C2");
@@ -1903,7 +1908,7 @@ namespace Venus_MainPages.ViewModels
             m_RtDataKeys.Add($"{ModuleName}.ValveGuage.IsOpen");
             m_RtDataKeys.Add($"{ModuleName}.ValvePVHe3.IsOpen");
             m_RtDataKeys.Add($"{ModuleName}.ValveHeISO.IsOpen");
-
+            m_RtDataKeys.Add($"{ModuleName}.ValvePurge.IsOpen");
 
             m_RtDataKeys.Add($"{ModuleName}.TurboPumpIsRunning");
             m_RtDataKeys.Add($"{ModuleName}.PumpIsRunning");

+ 7 - 10
Venus/Venus_MainPages/Views/OverVenusDEView.xaml

@@ -217,7 +217,6 @@
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter}">
                         <Binding Path="PVN22ValveIsOpen"/>
                         <Binding Path="N2ValveIsOpen"/>
-                        <Binding Path="GasFinalValveIsOpen"/>
                     </MultiBinding>
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
@@ -227,17 +226,15 @@
 
             <ctrls:FlowPipe x:Name="N2Pipe1"  Height="8"  Width="193" Canvas.Left="85"  Canvas.Top="120">
                 <ctrls:FlowPipe.IsFlowing>
-                    <MultiBinding Converter="{StaticResource toBoolMultiValueConverter3}">
-                        <Binding Path="PVN21ValveIsOpen"/>
+                    <MultiBinding Converter="{StaticResource toBoolMultiValueConverter}">
                         <Binding Path="PVN22ValveIsOpen"/>
                         <Binding Path="N2ValveIsOpen"/>
-                        <Binding Path="GasFinalValveIsOpen"/>
                     </MultiBinding>
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
 
             <TextBlock Canvas.Left="123" Canvas.Top="94"><Run Text="VN2"/><Run Language="zh-cn" Text="1"/></TextBlock>
-            <customControls:CommonValveControl Status="{Binding PVN22ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="112" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="PVN22" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
+            <customControls:CommonValveControl Status="{Binding PVN22ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="112" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="PVN21" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
 
 
 
@@ -261,7 +258,7 @@
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
                         <Binding Path="PV12ValveIsOpen"/>
-                        <Binding Path="PV22ValveIsOpen"/>
+                        <Binding Path="PV21ValveIsOpen"/>
                         <Binding Path="PV32ValveIsOpen"/>
                         <Binding Path="PV42ValveIsOpen"/>
                         <Binding Path="PV52ValveIsOpen"/>
@@ -858,7 +855,7 @@
 
             <TextBlock Text="VN22" Canvas.Left="200" Canvas.Top="136" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
-            <customControls:CommonValveControl Status="{Binding PVN21ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Left="243" Canvas.Top="132" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="PVN21" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <customControls:CommonValveControl Status="{Binding PVN21ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Left="243" Canvas.Top="132" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="PVN22" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
             <!--左侧管道标签-->
             <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC1SetPoint,Mode=TwoWay}" IsReadOnly="False"  Canvas.Top="137" Canvas.Left="275" LabelValue="MFC1" ToolTip="{Binding MFC1Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC1Data.Scale}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -1818,7 +1815,7 @@
         <userControls:FlowPipe  Height="8"  Width="538" Canvas.Left="562" Canvas.Top="120" HorizontalAlignment="Left" VerticalAlignment="Center">
             <userControls:FlowPipe.IsFlowing>
                 <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
-                    <Binding Path="GasFinalValveIsOpen"/>
+                    <Binding Path="PurgeValveIsOpen"/>
                     <Binding Path="N2ValveIsOpen"/>
                     <Binding Path="PV11ValveIsOpen"/>
                     <Binding Path="PV21ValveIsOpen"/>
@@ -1837,11 +1834,11 @@
             </userControls:FlowPipe.IsFlowing>
         </userControls:FlowPipe>
         <TextBlock Text="Purge value" Canvas.Left="900" Canvas.Top="90" FontSize="15" HorizontalAlignment="Center" VerticalAlignment="Center"/>
-        <customControls:CommonValveControl Status="{Binding GasFinalValveIsOpen, Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="922" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode, Converter={StaticResource BoolToBool}}" Tag="GasFinal" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+        <customControls:CommonValveControl Status="{Binding PurgeValveIsOpen, Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="922" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode, Converter={StaticResource BoolToBool}}" Tag="Purge" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
         <userControls:FlowPipe  Height="8"  Width="218" Canvas.Left="1112" Canvas.Top="132" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top">
             <userControls:FlowPipe.IsFlowing>
                 <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
-                    <Binding Path="GasFinalValveIsOpen"/>
+                    <Binding Path="PurgeValveIsOpen"/>
                     <Binding Path="N2ValveIsOpen"/>
                     <Binding Path="PV11ValveIsOpen"/>
                     <Binding Path="PV21ValveIsOpen"/>

+ 5 - 5
Venus/Venus_MainPages/Views/OverVenusSEView.xaml

@@ -544,7 +544,7 @@
             <ctrls:FlowPipe   Height="8"  Width="40" Canvas.Left="487"  Canvas.Top="672" RotateTransformValue="90" IsReverse="True" HorizontalAlignment="Center" VerticalAlignment="Top">
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
-                        <Binding Path="PVC2ValveIsOpen"/>
+                        <Binding Path="MainPurgeValveIsOpen"/>
                     </MultiBinding>
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
@@ -872,8 +872,8 @@
         <Canvas Canvas.Right="2050" Canvas.Top="70">
             <Ellipse Width="20" Height="20" Fill="{Binding PVHe1ValveIsOpen,Converter={StaticResource boolToColor}}"  Canvas.Left="926" Canvas.Top="687" Stroke="Silver" StrokeThickness="2"/>
             <Button Width="100" Content="He ON/OFF"  Style="{StaticResource SysBtnStyle}"  Command="{Binding HeCommand}"                Canvas.Left="951" Canvas.Top="689" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
-            <!--<RadioButton Canvas.Left="790" Canvas.Top="684" Content="Flow Mode" FontSize="15"     IsChecked="{Binding HeIsPressureMode,Converter={StaticResource BoolToBool},UpdateSourceTrigger=PropertyChanged}"/>
-            <RadioButton Canvas.Left="890" Canvas.Top="684" Content="Pressure Mode" FontSize="15" IsChecked="{Binding HeIsPressureMode,UpdateSourceTrigger=PropertyChanged}"/>-->
+            <RadioButton Canvas.Left="739" Canvas.Top="703" Content="Flow Mode" FontSize="15"     IsChecked="{Binding HeIsPressureMode,Converter={StaticResource BoolToBool},UpdateSourceTrigger=PropertyChanged}"/>
+            <RadioButton Canvas.Left="843" Canvas.Top="703" Content="Pressure Mode" FontSize="15" IsChecked="{Binding HeIsPressureMode,UpdateSourceTrigger=PropertyChanged}"/>
 
             <!--与chamber右上角连接的管道-->
             <ctrls:FlowPipe  Height="8"  Width="40" Canvas.Left="1262" Canvas.Top="275"  RotateTransformValue="90" />
@@ -1803,13 +1803,13 @@
                 </ctrls:FlowPipe>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="2" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
-                
+
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="14" Canvas.Left="42" Status="{Binding HeISOValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="HeISO" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
-                
+
             </Canvas>
 
         </Border>

+ 5 - 4
Venus/Venus_RT/Config/PM/VenusDE/VenusDEDeviceModel.xml

@@ -54,7 +54,8 @@
 		isDefaultOpen="false" diOpen="" doOpen="DO_PVC1" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePVC2" display="PVC2 Valve" schematicId="PVC2" unit="" isNc="true"
 				isDefaultOpen="false" diOpen="" doOpen="DO_PVC2" diCloseSensor="" diOpenSensor="" />
-
+    <IoValve id="ValvePurge" display="Purge valve" schematicId="PV2" unit="" isNc="true"
+				 isDefaultOpen="false" diOpen="" doOpen="DO_Purge_Valve" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValveN2" display="N2 valve" schematicId=""
 				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_N2_Valve" diCloseSensor="" diOpenSensor="" />
 
@@ -160,9 +161,9 @@
 		<IoMfc id="MfcN2" display="N2" schematicId="N2" unit="sccm"
 			aiFlow="" aoFlow="" diOffline="" aoRange=""
 			diPressureAlarm="DI_PN2_Pressure_Switch"/>
-		<!--<IoMfc id="MfcHe" display="He" schematicId="He" unit="sccm"
-			aiFlow="AI_He_Flow" aoFlow="AO_ESC_He_Pressure_Setpoint1" diOffline="" aoRange=""
-			diPressureAlarm="DI_ESC_He_Pressure_100t_Gauge_Alarm"/>-->
+		<IoMfc id="MfcHe" display="He" schematicId="He" unit="sccm"
+			aiFlow="AI_MFC_He1_Flow" aoFlow="AO_ESC_He_Pressure_Setpoint1" diOffline="" aoRange=""
+			diPressureAlarm=""/>
 	</IoMfcs>
 	<IoGasSticks assembly="Venus_RT" classType="Venus_RT.Devices.IoGasStick">
 		<IoGasStick id="GasStick1" display="" mfc ="MfcGas1" downvalve="ValveMfc1" />

+ 64 - 64
Venus/Venus_RT/Config/PM/VenusDE/VenusDEIoDefine.xml

@@ -140,7 +140,7 @@
     <DO_ITEM Index="19" Name="DO_PVHe1" Device="GPVHe1" Addr="w1.03" />
     <DO_ITEM Index="20" Name="DO_PVHe2" Device="GPVHe2" Addr="w1.04" />
     <DO_ITEM Index="21" Name="DO_Gas_Final_Valve" Device="PV1" Addr="w1.05" />
-    <DO_ITEM Index="22" Name="" />
+    <DO_ITEM Index="22" Name="DO_Purge_Valve" Device="PV2" Addr="w1.06" />
     <DO_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
     <DO_ITEM Index="24" Name="DO_PM_Slit_Door_Open" Device="PV4" Addr="w1.08"/>
     <DO_ITEM Index="25" Name="DO_PM_Slit_Door_Close" Device="PV4" Addr="w1.09"/>
@@ -232,47 +232,47 @@
     <DO_ITEM Index="111" Name="" />
   </Dig_Out>
   <Ana_Out>
-    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" Device="" Addr="d1000" Note="MFC" />
-    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" Device="" Addr="d1002" Note="MFC" />
-    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" Device="" Addr="d1004" Note="MFC" />
-    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" Device="" Addr="d1006" Note="MFC" />
-    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" Device="" Addr="d1008" Note="MFC" />
-    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" Device="" Addr="d1010" Note="MFC" />
-    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" Device="" Addr="d1012" Note="MFC" />
-    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" Device="" Addr="d1014" Note="MFC" />
+    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" BufferOffset="0" Device="" Addr="d1000" Note="MFC" />
+    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" BufferOffset="2" Device="" Addr="d1002" Note="MFC" />
+    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" BufferOffset="4" Device="" Addr="d1004" Note="MFC" />
+    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" BufferOffset="6" Device="" Addr="d1006" Note="MFC" />
+    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" BufferOffset="8" Device="" Addr="d1008" Note="MFC" />
+    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" BufferOffset="10" Device="" Addr="d1010" Note="MFC" />
+    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" BufferOffset="12" Device="" Addr="d1012" Note="MFC" />
+    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" BufferOffset="14" Device="" Addr="d1014" Note="MFC" />
     <AO_ITEM Index="8"  Name=""  />
     <AO_ITEM Index="9"  Name=""/>
-    <AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" Device="" Addr="d1020" Note="阀门加热设定温度" />
-    <AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" Device="" Addr="d1022" Note="Temp Limit" />
-    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" Device="" Addr="d1024" Note="前级管道设定温度" />
-    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" Device="" Addr="d1026" Note="Temp Limit" />
+    <AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" BufferOffset="20"  Device="" Addr="d1020" Note="阀门加热设定温度" />
+    <AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" BufferOffset="22" Device="" Addr="d1022" Note="Temp Limit" />
+    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" BufferOffset="24"  Device="" Addr="d1024" Note="前级管道设定温度" />
+    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" BufferOffset="26" Device="" Addr="d1026" Note="Temp Limit" />
     <AO_ITEM Index="14" Name="" />
     <AO_ITEM Index="15" Name="" />
-    <AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
-    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="16" Name="AO_Heartbeat" BufferOffset="32"  Device="" Addr="d1032" Note="PC to PLC" />
+    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" BufferOffset="34"  Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
     <AO_ITEM Index="18" Name=""/>
     <AO_ITEM Index="19" Name="" />
-    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" BufferOffset="40"  Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
     <AO_ITEM Index="21" Name="" />
     <AO_ITEM Index="22" Name="" />
     <AO_ITEM Index="23" Name="" />
     <AO_ITEM Index="24" Name="" />
-    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
-    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
-    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" Device="" Addr="d1054" Note="MFC" />
-    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" BufferOffset="50"  Device="" Addr="d1050" Note="MFC" />
+    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" BufferOffset="52" Device="" Addr="d1052" Note="MFC" />
+    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" BufferOffset="54" Device="" Addr="d1054" Note="MFC" />
+    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" BufferOffset="56" Device="" Addr="d1056" Note="MFC" />
     <AO_ITEM Index="29" Name="" />
     <AO_ITEM Index="30" Name="" />
     <AO_ITEM Index="31" Name="" />
     <AO_ITEM Index="32" Name="" />
     <AO_ITEM Index="33" Name="" />
     <AO_ITEM Index="34" Name="" />
-    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" Device="" Addr="d1070" Note="MFC"/>
-    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" Device="" Addr="d1072" Note="MFC" />
-    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" Device="" Addr="d1074" Note="MFC" />
+    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" BufferOffset="70" Device="" Addr="d1070" Note="MFC"/>
+    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" BufferOffset="72" Device="" Addr="d1072" Note="MFC" />
+    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" BufferOffset="74" Device="" Addr="d1074" Note="MFC" />
     <AO_ITEM Index="38" Name="" />
     <AO_ITEM Index="39" Name="" />
-    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" Device="" Addr="d1080" Note="MFC"/>
+    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" BufferOffset="80" Device="" Addr="d1080" Note="MFC"/>
     <AO_ITEM Index="41" Name="" />
     <AO_ITEM Index="42" Name="" />
     <AO_ITEM Index="43" Name="" />
@@ -284,55 +284,55 @@
     <AO_ITEM Index="49" Name="" />
   </Ana_Out>
   <Ana_In>
-    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" Device="" Addr="d2000" Note="float" />
-    <AI_ITEM Index="1"  Name="AI_Process_Pressure_1t" Device="" Addr="d2002" />
-    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
+    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" BufferOffset="0" Device="" Addr="d2000" Note="float" />
+    <AI_ITEM Index="1"  Name="AI_Process_Pressure_1t" BufferOffset="2" Device="" Addr="d2002" />
+    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" BufferOffset="4" Device="" Addr="d2004" Note="float" />
     <AI_ITEM Index="3"  Name="" />
-    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
-    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
-    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
-    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
-    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
-    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
-    <AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
-    <AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
-    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" Device="" Addr="d2024" Note="float" />
+    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" BufferOffset="8" Device="" Addr="d2008" Note="float" />
+    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" BufferOffset="10" Device="" Addr="d2010" Note="float" />
+    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" BufferOffset="12" Device="" Addr="d2012" Note="float" />
+    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" BufferOffset="14" Device="" Addr="d2014" Note="float" />
+    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" BufferOffset="16" Device="" Addr="d2016" Note="float" />
+    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" BufferOffset="18" Device="" Addr="d2018" Note="float" />
+    <AI_ITEM Index="10" Name="AI_MFC7_Flow" BufferOffset="20" Device="" Addr="d2020" Note="float" />
+    <AI_ITEM Index="11" Name="AI_MFC8_Flow" BufferOffset="22" Device="" Addr="d2022" Note="float" />
+    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" BufferOffset="24" Device="" Addr="d2024" Note="float" />
     <AI_ITEM Index="13" />
-    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
+    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" BufferOffset="28"  Device="" Addr="d2028" Note="float" />
     <AI_ITEM Index="15" Name="" />
-    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
-    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
-    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" Device="" Addr="d2036" Note="float" />
-    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" Device="" Addr="d2038" Note="float" />
-    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
-    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
-    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
-    <AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
-    <AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
-    <AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
-    <AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
-    <AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
-    <AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" BufferOffset="32" Device="" Addr="d2032" Note="float" />
+    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" BufferOffset="34" Device="" Addr="d2034" Note="float" />
+    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" BufferOffset="36" Device="" Addr="d2036" Note="float" />
+    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" BufferOffset="38" Device="" Addr="d2038" Note="float" />
+    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" BufferOffset="40" Device="" Addr="d2040" Note="float" />
+    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" BufferOffset="42" Device="" Addr="d2042" Note="float" />
+    <AI_ITEM Index="22" Name="AI_Heartbeat_FB"  BufferOffset="44" Device="" Addr="d2044" Note="float" />
+    <AI_ITEM Index="23" Name="AI_Second" BufferOffset="46" Device="" Addr="d2046" Note="float" />
+    <AI_ITEM Index="24" Name="AI_Minute" BufferOffset="48" Device="" Addr="d2048" Note="float" />
+    <AI_ITEM Index="25" Name="AI_Time" BufferOffset="50" Device="" Addr="d2050" Note="float" />
+    <AI_ITEM Index="26" Name="AI_Day" BufferOffset="52" Device="" Addr="d2052" Note="float" />
+    <AI_ITEM Index="27" Name="AI_Month" BufferOffset="54" Device="" Addr="d2054" Note="float" />
+    <AI_ITEM Index="28" Name="AI_Year" BufferOffset="56" Device="" Addr="d2056" Note="float" />
     <AI_ITEM Index="29" Name="" />
     <AI_ITEM Index="30" Name="" />
-    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" Device="" Addr="d2062" Note="float" />
+    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" BufferOffset="62" Device="" Addr="d2062" Note="float" />
     <AI_ITEM Index="32" Name="" />
     <AI_ITEM Index="33" Name="" />
     <AI_ITEM Index="34" Name="" />
-    <AI_ITEM Index="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
-    <AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
-    <AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
-    <AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
-    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" Device="" Addr="d2078" Note="MFC He2"/>
-    <AI_ITEM Index="40" Name="AI_He_Pressure1" Device="" Addr="d2080" Note="float" />
-    <AI_ITEM Index="41" Name="AI_He_Pressure2" Device="" Addr="d2082" Note="float"  />
+    <AI_ITEM Index="35" Name="AI_MFC9Flow" BufferOffset="70" Device="" Addr="d2070" Note="float" />
+    <AI_ITEM Index="36" Name="AI_MFC10Flow" BufferOffset="72" Device="" Addr="d2072" Note="float" />
+    <AI_ITEM Index="37" Name="AI_MFC11Flow" BufferOffset="74" Device="" Addr="d2074" Note="float" />
+    <AI_ITEM Index="38" Name="AI_MFC12Flow" BufferOffset="76" Device="" Addr="d2076" Note="float" />
+    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" BufferOffset="78" Device="" Addr="d2078" Note="MFC He2"/>
+    <AI_ITEM Index="40" Name="AI_He_Pressure1" BufferOffset="80" Device="" Addr="d2080" Note="float" />
+    <AI_ITEM Index="41" Name="AI_He_Pressure2" BufferOffset="82"  Device="" Addr="d2082" Note="float"  />
     <AI_ITEM Index="42" Name="" />
-    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" Addr="d2086" Note="float"/>
-    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" Addr="d2088" Note="float" />
-    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" Addr="d2090" Note="float" />
-    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" Addr="d2092" Note="float" />
-    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" Addr="d2094" Note="float" />
-    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" Addr="d2096" Note="float" />
+    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" BufferOffset="86"  Addr="d2086" Note="float"/>
+    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" BufferOffset="88"  Addr="d2088" Note="float" />
+    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" BufferOffset="90" Addr="d2090" Note="float" />
+    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" BufferOffset="92" Addr="d2092" Note="float" />
+    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" BufferOffset="94" Addr="d2094" Note="float" />
+    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" BufferOffset="96" Addr="d2096" Note="float" />
     <AI_ITEM Index="49" Name="" />
   </Ana_In>
 </IO_DEFINE>

+ 2 - 1
Venus/Venus_RT/Devices/IODevices/IoBacksideHe.cs

@@ -132,7 +132,8 @@ namespace Venus_RT.Devices
                 _DownValve.TurnValve(false, out _);
             }
 
-            _mfc.Ramp(setpoint, 1000);
+           // _mfc.Ramp(setpoint, 1000);
+           _mfc.SetPoint=setpoint;
 
             SetESCHeControlMode(false);
         }

+ 15 - 10
Venus/Venus_RT/Devices/JetVenusDEPM.cs

@@ -80,7 +80,7 @@ namespace Venus_RT.Devices
         private readonly IoValve _HeISOValve;
         private readonly IoValve _MainPurgeValve;//新增
         private readonly IoValve _SecondPurgeValve;//新增
-
+        private readonly IoValve _PurgeValve;
         private readonly IoSensor _ATM_sw;
         private readonly IoSensor _CDAPressure;
         private readonly IoSensor _N2Pressure_sw;
@@ -172,6 +172,7 @@ namespace Venus_RT.Devices
             _PVHe1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe1}");
             _PVHe2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe2}");
             _GasFinalValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGasFinal}");
+            _PurgeValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePurge}");
             //_SoftPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveSoftPump}");
             _FastPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveFastPump}");
             _TurboPumpPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPumping}");
@@ -326,7 +327,7 @@ namespace Venus_RT.Devices
                 { ValveType.PVHe3, _PVHe3Valve },
                 { ValveType.PVHe2, _PVHe2Valve },
                 { ValveType.GasFinal,  _GasFinalValve},
-                //{ ValveType.SoftPump,  _SoftPumpValve},
+                { ValveType.Purge,  _PurgeValve},
                 { ValveType.FastPump,  _FastPumpValve},
                 { ValveType.TurboPumpPumping,  _TurboPumpPumpingValve},
                 { ValveType.TurboPumpPurge,  _TurboPumpPurgeValve},
@@ -723,7 +724,7 @@ namespace Venus_RT.Devices
             _TurboPumpPumpingValve.TurnValve(false, out _);
             _TurboPumpPurgeValve.TurnValve(false, out _);
             _GuageValve.TurnValve(false, out _);
-
+            _PurgeValve.TurnValve(false, out _);
             _N2Valve.TurnValve(false, out _);
             _FastPumpValve.TurnValve(false, out _);
 
@@ -878,15 +879,19 @@ namespace Venus_RT.Devices
 
         public override void OpenValve(ValveType vlvType, bool on)
         {
-            if (Valve2IO.ContainsKey(vlvType))
-            {
-                Valve2IO[vlvType].TurnValve(on, out _);
-                LOG.Write(eEvent.EV_DEVICE_INFO, Module, $"{(on ? "打开" : "关闭")} 阀 {vlvType.ToString()}");
-            }
-            else
+            if (vlvType != ValveType.SoftPump)
             {
-                throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
+                if (Valve2IO.ContainsKey(vlvType))
+                {
+                    Valve2IO[vlvType].TurnValve(on, out _);
+                    LOG.Write(eEvent.EV_DEVICE_INFO, Module, $"{(on ? "打开" : "关闭")} 阀 {vlvType.ToString()}");
+                }
+                else
+                {
+                    throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
+                }
             }
+
         }
 
         public override bool PendulumValveIsOpen()

+ 9 - 2
Venus/Venus_RT/Modules/PMs/PMLeakCheckRoutine.cs

@@ -30,13 +30,14 @@ namespace Venus_RT.Modules.PMs
         private double _leakRate = 30.0;
         private double _leakCheckBasePressure = 1;
         public string CurrentStep;
-
+        private JetChamber jetChamber = JetChamber.None;
         Stopwatch _leakCheckTimer = new Stopwatch();
         PMLeakCheckResult pMLeakCheckResult;
         Stopwatch _routineTimer = new Stopwatch();
         PressureType _pressureType = PressureType.mTorr;
         public PMLeakCheckRoutine(JetPMBase chamber) : base(chamber)
         {
+            jetChamber = (JetChamber)SC.GetValue<int>($"{chamber.Name}.ChamberType");
             Name = "PM Leakcheck";
             if (chamber.ChamberType == JetChamber.Kepler2200A || chamber.ChamberType == JetChamber.Kepler2200B)
             {
@@ -163,7 +164,13 @@ namespace Venus_RT.Modules.PMs
         private void PreSetValves()
         {
             _chamber.OpenValve(ValveType.FastPump, false);
-            _chamber.OpenValve(ValveType.SoftPump, false);
+            
+            
+            if (jetChamber != JetChamber.VenusDE)
+            {
+                _chamber.OpenValve(ValveType.SoftPump, false);
+            }
+            
             _chamber.OpenValve(ValveType.TurboPumpPumping, true);
             _chamber.OpenValve(ValveType.Guage, true);
             _chamber.OpenValve(ValveType.GasFinal, true);

+ 8 - 1
Venus/Venus_RT/Modules/PMs/PMPurgeRoutine.cs

@@ -32,11 +32,18 @@ namespace Venus_RT.Modules.PMs
         private int _roughPumpDownPressure = 75;
         private int _purgePumpTime = 60;
         private int _purgeCycleCount = 30;
+        private JetChamber jetChamber = JetChamber.None;
+        private bool needsoft = true;
 
 
         public PMPurgeRoutine(JetPMBase chamber) : base(chamber)
         {
+            jetChamber = (JetChamber)SC.GetValue<int>($"{chamber.Name}.ChamberType");
             Name = "PM Purge";
+            if (jetChamber == JetChamber.VenusDE)
+            {
+                needsoft = false;
+            }
         }
 
         public RState Start(params object[] objs)
@@ -67,7 +74,7 @@ namespace Venus_RT.Modules.PMs
                 .LoopRun(PurgeStep.kPurgeVent,         OpenVentValves,                                                             () => { return _chamber.ChamberPressure >= _purgeVentPressure; })
                 .LoopRun(PurgeStep.kStopVent,          CloseVentValves,                                                            _delay_2s)
                 .LoopRun(PurgeStep.kCloseISOValve,     HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false),     _delay_2s)
-                .LoopRun(PurgeStep.kSoftPump,          HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true),              () => { return _chamber.ChamberPressure <= _roughPumpDownPressure; })
+                .LoopRunIf(PurgeStep.kSoftPump, needsoft,   HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true),              () => { return _chamber.ChamberPressure <= _roughPumpDownPressure; })
                 .LoopRun(PurgeStep.kFastPump,          StartFastPump,                                                              () => { return _chamber.ChamberPressure <= _pumpingTargetPressure; })
                 .LoopRun(PurgeStep.kCloseFastPump,     HOFs.WrapAction(_chamber.OpenValve, ValveType.FastPump, false),             _delay_2s)
                 .LoopRun(PurgeStep.kOpenISOValve,      HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, true),      _delay_2s)

+ 6 - 1
Venus/Venus_RT/Modules/PMs/PumpDownRoutine.cs

@@ -30,10 +30,15 @@ namespace Venus_RT.Modules.PMs
         private int _vHe2FlowPressure = 200;
         private int _basePressure = 10;
         private JetChamber jetChamber = JetChamber.None;
+        private bool needsoft=true;
         public PumpDownRoutine(JetPMBase chamber) : base(chamber)
         {
             jetChamber = (JetChamber)SC.GetValue<int>($"{chamber.Name}.ChamberType");
             Name = "PumpDown";
+            if (jetChamber == JetChamber.VenusDE)
+            {
+                needsoft = false;
+            }
         }
 
         public RState Start(params object[] objs)
@@ -70,7 +75,7 @@ namespace Venus_RT.Modules.PMs
 
             Runner.Delay(PumpStep.kDelay_2s,                _delay_2s)
                 .Run(PumpStep.kCloseISOValve,               HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false),     _delay_2s)
-                .Run(PumpStep.kSoftPump,                    HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true),              () => { return _chamber.ChamberPressure < _roughPumpPressure; })
+                .RunIf(PumpStep.kSoftPump,        needsoft,            HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true),              () => { return _chamber.ChamberPressure < _roughPumpPressure; })
                 .Run(PumpStep.kFastPump,                    OpenFastPump,       () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
                 .Run(PumpStep.kPVHe2,                       OpenHe2Valve,           _delay_2s)
                 .Run(PumpStep.kISOValve,                    OpenISOValve,           _delay_2s)

+ 4 - 1
Venus/Venus_RT/Modules/PMs/StartTurboPumpRoutine.cs

@@ -44,7 +44,10 @@ namespace Venus_RT.Modules.PMs
 
             Reset();
             _chamber.OpenValve(ValveType.FastPump, false);
-            _chamber.OpenValve(ValveType.SoftPump, false);
+            if (_chamber.ChamberType != JetChamber.VenusDE)
+            {
+                _chamber.OpenValve(ValveType.SoftPump, false);
+            }           
 
             _chamber.TurnTurboPump(true);
 

+ 67 - 67
Venus/Venus_Simulator/Config/_ioDefineVenusDE.xml

@@ -38,7 +38,7 @@
     <DI_ITEM Index="31"  Name="" />
     <DI_ITEM Index="32"  Name="" />
     <DI_ITEM Index="33"  Name=""/>
-    <DI_ITEM Index="34"  Name="DI_N2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
+    <DI_ITEM Index="34"  Name="DI_PN2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
     <DI_ITEM Index="35"  Name="DI_MFC1_Pressure_Switch" Device="PG1" Addr="w22.03" Note="Gas Box" />
     <DI_ITEM Index="36"  Name="DI_MFC2_Pressure_Switch" Device="PG2" Addr="w22.04" Note="Gas Box" />
     <DI_ITEM Index="37"  Name="DI_MFC3_Pressure_Switch" Device="PG3" Addr="w22.05" Note="Gas Box" />
@@ -140,7 +140,7 @@
     <DO_ITEM Index="19" Name="DO_PVHe1" Device="GPVHe1" Addr="w1.03" />
     <DO_ITEM Index="20" Name="DO_PVHe2" Device="GPVHe2" Addr="w1.04" />
     <DO_ITEM Index="21" Name="DO_Gas_Final_Valve" Device="PV1" Addr="w1.05" />
-    <DO_ITEM Index="22" Name="" />
+    <DO_ITEM Index="22" Name="DO_Purge_Valve" Device="PV2" Addr="w1.06" />
     <DO_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
     <DO_ITEM Index="24" Name="DO_PM_Slit_Door_Open" Device="PV4" Addr="w1.08"/>
     <DO_ITEM Index="25" Name="DO_PM_Slit_Door_Close" Device="PV4" Addr="w1.09"/>
@@ -149,7 +149,7 @@
     <DO_ITEM Index="28" Name="" />
     <DO_ITEM Index="29" Name="DO_Turbo_Pump_Pumping_Valve" Device="PV6" Addr="w1.13" />
     <DO_ITEM Index="30" Name="DO_Turbo_Pump_Purge_Valve" Device="PV7" Addr="w1.14" />
-    <DO_ITEM Index="31" Name="DO_Gauge_Valve" Device="PV8" Addr="w1.15" />
+    <DO_ITEM Index="31" Name="DO_Guage_Valve" Device="PV8" Addr="w1.15" />
     <DO_ITEM Index="32" Name="DO_Reset_Signal" Device="" Addr="w2.00" />
     <DO_ITEM Index="33" Name="DO_Valve_Heater_On" Device="" Addr="w2.01" />
     <DO_ITEM Index="34" Name="DO_Foreline_Heater_On" Device="" Addr="w2.02" />
@@ -173,7 +173,7 @@
     <DO_ITEM Index="52" Name="DO_MFC9_Valve" Device="GPV9" Addr="w3.04" />
     <DO_ITEM Index="53" Name="DO_MFC10_Valve" Device="GPV10" Addr="w3.05" />
     <DO_ITEM Index="54" Name="DO_MFC11_Valve" Device="GPV11" Addr="w3.06" />
-    <DO_ITEM Index="55" Name="DO_MFC12_Valve" Device="GPV12" Addr="w3.07" />
+    <DO_ITEM Index="55" Name="DO_Second_Purge_Valve" Device="GPV12" Addr="w3.07" />
     <DO_ITEM Index="56" Name="DO_Main_Purge_Valve" Device="GPVM" Addr="w3.08" />
     <DO_ITEM Index="57" Name="DO_PV51" Device="GPV51" Addr="w3.09" />
     <DO_ITEM Index="58" Name="DO_PV52" Device="GPV52" Addr="w3.10" />
@@ -232,47 +232,47 @@
     <DO_ITEM Index="111" Name="" />
   </Dig_Out>
   <Ana_Out>
-    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" Device="" Addr="d1000" Note="MFC" />
-    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" Device="" Addr="d1002" Note="MFC" />
-    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" Device="" Addr="d1004" Note="MFC" />
-    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" Device="" Addr="d1006" Note="MFC" />
-    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" Device="" Addr="d1008" Note="MFC" />
-    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" Device="" Addr="d1010" Note="MFC" />
-    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" Device="" Addr="d1012" Note="MFC" />
-    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" Device="" Addr="d1014" Note="MFC" />
+    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" BufferOffset="0" Device="" Addr="d1000" Note="MFC" />
+    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" BufferOffset="2" Device="" Addr="d1002" Note="MFC" />
+    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" BufferOffset="4" Device="" Addr="d1004" Note="MFC" />
+    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" BufferOffset="6" Device="" Addr="d1006" Note="MFC" />
+    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" BufferOffset="8" Device="" Addr="d1008" Note="MFC" />
+    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" BufferOffset="10" Device="" Addr="d1010" Note="MFC" />
+    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" BufferOffset="12" Device="" Addr="d1012" Note="MFC" />
+    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" BufferOffset="14" Device="" Addr="d1014" Note="MFC" />
     <AO_ITEM Index="8"  Name=""  />
     <AO_ITEM Index="9"  Name=""/>
-    <AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" Device="" Addr="d1020" Note="阀门加热设定温度" />
-    <AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" Device="" Addr="d1022" Note="Temp Limit" />
-    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" Device="" Addr="d1024" Note="前级管道设定温度" />
-    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" Device="" Addr="d1026" Note="Temp Limit" />
+    <AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" BufferOffset="20"  Device="" Addr="d1020" Note="阀门加热设定温度" />
+    <AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" BufferOffset="22" Device="" Addr="d1022" Note="Temp Limit" />
+    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" BufferOffset="24"  Device="" Addr="d1024" Note="前级管道设定温度" />
+    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" BufferOffset="26" Device="" Addr="d1026" Note="Temp Limit" />
     <AO_ITEM Index="14" Name="" />
     <AO_ITEM Index="15" Name="" />
-    <AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
-    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="16" Name="AO_Heartbeat" BufferOffset="32"  Device="" Addr="d1032" Note="PC to PLC" />
+    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" BufferOffset="34"  Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
     <AO_ITEM Index="18" Name=""/>
     <AO_ITEM Index="19" Name="" />
-    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" BufferOffset="40"  Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
     <AO_ITEM Index="21" Name="" />
     <AO_ITEM Index="22" Name="" />
     <AO_ITEM Index="23" Name="" />
     <AO_ITEM Index="24" Name="" />
-    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
-    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
-    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" Device="" Addr="d1054" Note="MFC" />
-    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" BufferOffset="50"  Device="" Addr="d1050" Note="MFC" />
+    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" BufferOffset="52" Device="" Addr="d1052" Note="MFC" />
+    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" BufferOffset="54" Device="" Addr="d1054" Note="MFC" />
+    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" BufferOffset="56" Device="" Addr="d1056" Note="MFC" />
     <AO_ITEM Index="29" Name="" />
     <AO_ITEM Index="30" Name="" />
     <AO_ITEM Index="31" Name="" />
     <AO_ITEM Index="32" Name="" />
     <AO_ITEM Index="33" Name="" />
     <AO_ITEM Index="34" Name="" />
-    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" Device="" Addr="d1070" Note="MFC"/>
-    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" Device="" Addr="d1072" Note="MFC" />
-    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" Device="" Addr="d1074" Note="MFC" />
+    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" BufferOffset="70" Device="" Addr="d1070" Note="MFC"/>
+    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" BufferOffset="72" Device="" Addr="d1072" Note="MFC" />
+    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" BufferOffset="74" Device="" Addr="d1074" Note="MFC" />
     <AO_ITEM Index="38" Name="" />
     <AO_ITEM Index="39" Name="" />
-    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" Device="" Addr="d1080" Note="MFC"/>
+    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" BufferOffset="80" Device="" Addr="d1080" Note="MFC"/>
     <AO_ITEM Index="41" Name="" />
     <AO_ITEM Index="42" Name="" />
     <AO_ITEM Index="43" Name="" />
@@ -284,55 +284,55 @@
     <AO_ITEM Index="49" Name="" />
   </Ana_Out>
   <Ana_In>
-    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" Device="" Addr="d2000" Note="float" />
-    <AI_ITEM Index="1"  Name="AI_Process_Pressure_1t" Device="" Addr="d2002" />
-    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
+    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" BufferOffset="0" Device="" Addr="d2000" Note="float" />
+    <AI_ITEM Index="1"  Name="AI_Process_Pressure_1t" BufferOffset="2" Device="" Addr="d2002" />
+    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" BufferOffset="4" Device="" Addr="d2004" Note="float" />
     <AI_ITEM Index="3"  Name="" />
-    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
-    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
-    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
-    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
-    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
-    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
-    <AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
-    <AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
-    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" Device="" Addr="d2024" Note="float" />
+    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" BufferOffset="8" Device="" Addr="d2008" Note="float" />
+    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" BufferOffset="10" Device="" Addr="d2010" Note="float" />
+    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" BufferOffset="12" Device="" Addr="d2012" Note="float" />
+    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" BufferOffset="14" Device="" Addr="d2014" Note="float" />
+    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" BufferOffset="16" Device="" Addr="d2016" Note="float" />
+    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" BufferOffset="18" Device="" Addr="d2018" Note="float" />
+    <AI_ITEM Index="10" Name="AI_MFC7_Flow" BufferOffset="20" Device="" Addr="d2020" Note="float" />
+    <AI_ITEM Index="11" Name="AI_MFC8_Flow" BufferOffset="22" Device="" Addr="d2022" Note="float" />
+    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" BufferOffset="24" Device="" Addr="d2024" Note="float" />
     <AI_ITEM Index="13" />
-    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
+    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" BufferOffset="28"  Device="" Addr="d2028" Note="float" />
     <AI_ITEM Index="15" Name="" />
-    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
-    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
-    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" Device="" Addr="d2036" Note="float" />
-    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" Device="" Addr="d2038" Note="float" />
-    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
-    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
-    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
-    <AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
-    <AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
-    <AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
-    <AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
-    <AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
-    <AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" BufferOffset="32" Device="" Addr="d2032" Note="float" />
+    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" BufferOffset="34" Device="" Addr="d2034" Note="float" />
+    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" BufferOffset="36" Device="" Addr="d2036" Note="float" />
+    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" BufferOffset="38" Device="" Addr="d2038" Note="float" />
+    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" BufferOffset="40" Device="" Addr="d2040" Note="float" />
+    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" BufferOffset="42" Device="" Addr="d2042" Note="float" />
+    <AI_ITEM Index="22" Name="AI_Heartbeat_FB"  BufferOffset="44" Device="" Addr="d2044" Note="float" />
+    <AI_ITEM Index="23" Name="AI_Second" BufferOffset="46" Device="" Addr="d2046" Note="float" />
+    <AI_ITEM Index="24" Name="AI_Minute" BufferOffset="48" Device="" Addr="d2048" Note="float" />
+    <AI_ITEM Index="25" Name="AI_Time" BufferOffset="50" Device="" Addr="d2050" Note="float" />
+    <AI_ITEM Index="26" Name="AI_Day" BufferOffset="52" Device="" Addr="d2052" Note="float" />
+    <AI_ITEM Index="27" Name="AI_Month" BufferOffset="54" Device="" Addr="d2054" Note="float" />
+    <AI_ITEM Index="28" Name="AI_Year" BufferOffset="56" Device="" Addr="d2056" Note="float" />
     <AI_ITEM Index="29" Name="" />
     <AI_ITEM Index="30" Name="" />
-    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" Device="" Addr="d2062" Note="float" />
+    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" BufferOffset="62" Device="" Addr="d2062" Note="float" />
     <AI_ITEM Index="32" Name="" />
     <AI_ITEM Index="33" Name="" />
     <AI_ITEM Index="34" Name="" />
-    <AI_ITEM Index="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
-    <AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
-    <AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
-    <AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
-    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" Device="" Addr="d2078" Note="MFC He2"/>
-    <AI_ITEM Index="40" Name="AI_He_Pressure1" Device="" Addr="d2080" Note="float" />
-    <AI_ITEM Index="41" Name="AI_He_Pressure2" Device="" Addr="d2082" Note="float"  />
+    <AI_ITEM Index="35" Name="AI_MFC9Flow" BufferOffset="70" Device="" Addr="d2070" Note="float" />
+    <AI_ITEM Index="36" Name="AI_MFC10Flow" BufferOffset="72" Device="" Addr="d2072" Note="float" />
+    <AI_ITEM Index="37" Name="AI_MFC11Flow" BufferOffset="74" Device="" Addr="d2074" Note="float" />
+    <AI_ITEM Index="38" Name="AI_MFC12Flow" BufferOffset="76" Device="" Addr="d2076" Note="float" />
+    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" BufferOffset="78" Device="" Addr="d2078" Note="MFC He2"/>
+    <AI_ITEM Index="40" Name="AI_He_Pressure1" BufferOffset="80" Device="" Addr="d2080" Note="float" />
+    <AI_ITEM Index="41" Name="AI_He_Pressure2" BufferOffset="82"  Device="" Addr="d2082" Note="float"  />
     <AI_ITEM Index="42" Name="" />
-    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" Addr="d2086" Note="float"/>
-    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" Addr="d2088" Note="float" />
-    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" Addr="d2090" Note="float" />
-    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" Addr="d2092" Note="float" />
-    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" Addr="d2094" Note="float" />
-    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" Addr="d2096" Note="float" />
+    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" BufferOffset="86"  Addr="d2086" Note="float"/>
+    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" BufferOffset="88"  Addr="d2088" Note="float" />
+    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" BufferOffset="90" Addr="d2090" Note="float" />
+    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" BufferOffset="92" Addr="d2092" Note="float" />
+    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" BufferOffset="94" Addr="d2094" Note="float" />
+    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" BufferOffset="96" Addr="d2096" Note="float" />
     <AI_ITEM Index="49" Name="" />
   </Ana_In>
 </IO_DEFINE>

+ 62 - 62
Venus/Venus_Simulator/Config/_ioDefineVenusSE.xml

@@ -27,7 +27,7 @@
     <DI_ITEM Index="20"  Name="" />
     <DI_ITEM Index="21"  Name="DI_Valve_Control_TC_Broken_Alarm" Device="" Addr="w21.05" />
     <DI_ITEM Index="22"  Name="" />
-    <DI_ITEM Index="23"  Name="DI_Valve_Heater_On_FB" Device="Q7.13同步" Addr="w21.07" />
+    <DI_ITEM Index="23"  Name=""/>
     <DI_ITEM Index="24"  Name="" />
     <DI_ITEM Index="25"  Name="DI_Foreline_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.09" />
     <DI_ITEM Index="26"  Name="" />
@@ -149,9 +149,9 @@
     <DO_ITEM Index="28" Name="" />
     <DO_ITEM Index="29" Name="DO_Turbo_Pump_Pumping_Valve" Device="PV6" Addr="w1.13" />
     <DO_ITEM Index="30" Name="DO_Turbo_Pump_Purge_Valve" Device="PV7" Addr="w1.14" />
-    <DO_ITEM Index="31" Name="DO_Gauge_Valve" Device="PV8" Addr="w1.15" />
+    <DO_ITEM Index="31" Name="DO_Guage_Valve" Device="PV8" Addr="w1.15" />
     <DO_ITEM Index="32" Name="DO_Reset_Signal" Device="" Addr="w2.00" />
-    <DO_ITEM Index="33" Name="DO_Valve_Heater_On" Device="" Addr="w2.01" />
+    <DO_ITEM Index="33" Name=""/>
     <DO_ITEM Index="34" Name="DO_Foreline_Heater_On" Device="" Addr="w2.02" />
     <DO_ITEM Index="35" Name="DO_CHB_Wall_Heater_On" Device="" Addr="w2.03" />
     <DO_ITEM Index="36" Name=""/>
@@ -163,12 +163,12 @@
     <DO_ITEM Index="42" Name=""/>
     <DO_ITEM Index="43" Name=""/>
     <DO_ITEM Index="44" Name=""/>
+    <DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
     <DO_ITEM Index="45" Name=""/>
     <DO_ITEM Index="46" Name="DO_Gasline_Heater_On" Device="" Addr="w2.14" />
     <DO_ITEM Index="47" Name="DO_Slit_Door_Open_Enable" Device="" Addr="w2.15"/>
-    <DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
     <DO_ITEM Index="49" Name="DO_He_ISO" Device="PV9" Addr="w3.01" />
-    <DO_ITEM Index="50" Name="" />
+    <DO_ITEM Index="50" Name="DO_Second_Purge_Valve" Device="PV13" Addr="w3.02"/>
     <DO_ITEM Index="51" Name="" />
     <DO_ITEM Index="52" Name="DO_MFC9_Valve" Device="GPV9" Addr="w3.04" />
     <DO_ITEM Index="53" Name="DO_MFC10_Valve" Device="GPV10" Addr="w3.05" />
@@ -232,24 +232,24 @@
     <DO_ITEM Index="111" Name="" />
   </Dig_Out>
   <Ana_Out>
-    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" Device="" Addr="d1000" Note="MFC" />
-    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" Device="" Addr="d1002" Note="MFC" />
-    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" Device="" Addr="d1004" Note="MFC" />
-    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" Device="" Addr="d1006" Note="MFC" />
-    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" Device="" Addr="d1008" Note="MFC" />
-    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" Device="" Addr="d1010" Note="MFC" />
-    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" Device="" Addr="d1012" Note="MFC" />
-    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" Device="" Addr="d1014" Note="MFC" />
-    <AO_ITEM Index="8"  Name=""  />
+    <AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" BufferOffset="0" Device="" Addr="d1000" Note="MFC" />
+    <AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" BufferOffset="2" Device="" Addr="d1002" Note="MFC" />
+    <AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" BufferOffset="4" Device="" Addr="d1004" Note="MFC" />
+    <AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" BufferOffset="6" Device="" Addr="d1006" Note="MFC" />
+    <AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" BufferOffset="8" Device="" Addr="d1008" Note="MFC" />
+    <AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" BufferOffset="10" Device="" Addr="d1010" Note="MFC" />
+    <AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" BufferOffset="12" Device="" Addr="d1012" Note="MFC" />
+    <AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" BufferOffset="14" Device="" Addr="d1014" Note="MFC" />
+    <AO_ITEM Index="8"  Name=""/>
     <AO_ITEM Index="9"  Name=""/>
-    <AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" Device="" Addr="d1020" Note="阀门加热设定温度" />
-    <AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" Device="" Addr="d1022" Note="Temp Limit" />
-    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" Device="" Addr="d1024" Note="前级管道设定温度" />
-    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" Device="" Addr="d1026" Note="Temp Limit" />
-    <AO_ITEM Index="14" Name="AO_CHB_Wall_Temperature_Setpoint" Device="" Addr="d1028" Note="腔体壁设定温度" />
-    <AO_ITEM Index="15" Name="AO_CHB_Wall_Temp_Limit_Setpoint" Device="" Addr="d1030" Note="Temp Limit" />
-    <AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
-    <AO_ITEM Index="17" Name=""/>
+    <AO_ITEM Index="10" Name="" />
+    <AO_ITEM Index="11" Name="" />
+    <AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" BufferOffset="24" Device="" Addr="d1024" Note="前级管道设定温度" />
+    <AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" BufferOffset="26" Device="" Addr="d1026" Note="Temp Limit" />
+    <AO_ITEM Index="14" Name="AO_CHB_Wall_Temperature_Setpoint" BufferOffset="28" Device="" Addr="d1028" Note="腔体壁设定温度" />
+    <AO_ITEM Index="15" Name="AO_CHB_Wall_Temp_Limit_Setpoint" BufferOffset="30" Device="" Addr="d1030" Note="Temp Limit" />
+    <AO_ITEM Index="16" Name="AO_Heartbeat" BufferOffset="32" Device="" Addr="d1032" Note="PC to PLC" />
+    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint" BufferOffset="34" Device="" Addr="d1034" Note="He气体压力设定"/>
     <AO_ITEM Index="18" Name=""/>
     <AO_ITEM Index="19" Name="" />
     <AO_ITEM Index="20" Name="" />
@@ -257,13 +257,13 @@
     <AO_ITEM Index="22" Name="" />
     <AO_ITEM Index="23" Name="" />
     <AO_ITEM Index="24" Name="" />
-    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
-    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
-    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" Device="" Addr="d1054" Note="MFC" />
-    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" BufferOffset="50" Device="" Addr="d1050" Note="MFC" />
+    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" BufferOffset="52" Device="" Addr="d1052" Note="MFC" />
+    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" BufferOffset="54" Addr="d1054" Note="MFC" />
+    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" BufferOffset="56" Device="" Addr="d1056" Note="MFC" />
     <AO_ITEM Index="29" Name="" />
-    <AO_ITEM Index="30" Name="AO_GASLINE_Temperature_Setpoint" Device="" Addr="d1060" Note="GASLINE 加热设定温度" />
-    <AO_ITEM Index="31" Name="AO_GASLINE_Temp_Limit_Setpoint" Device="" Addr="d1062" Note="Temp Limit" />
+    <AO_ITEM Index="30" Name="AO_GASLINE_Temperature_Setpoint" BufferOffset="60" Device="" Addr="d1060" Note="GASLINE 加热设定温度" />
+    <AO_ITEM Index="31" Name="AO_GASLINE_Temp_Limit_Setpoint" BufferOffset="62" Device="" Addr="d1062" Note="Temp Limit" />
     <AO_ITEM Index="32" Name="" />
     <AO_ITEM Index="33" Name="" />
     <AO_ITEM Index="34" Name="" />
@@ -284,47 +284,47 @@
     <AO_ITEM Index="49" Name="" />
   </Ana_Out>
   <Ana_In>
-    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" Device="" Addr="d2000" Note="float" />
-    <AI_ITEM Index="1"  Name="AI_Process_Pressure_100mt" Device="" Addr="d2002" />
-    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
-    <AI_ITEM Index="3"  Name="AI_He_Pressure_100t" Device="" Addr="d2006" Note="float" />
-    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
-    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
-    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
-    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
-    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
-    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
-    <AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
-    <AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
-    <AI_ITEM Index="12" Name="AI_He_Flow" Device="" Addr="d2024" Note="float" />
+    <AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" BufferOffset="0" Device="" Addr="d2000" Note="float" />
+    <AI_ITEM Index="1"  Name="AI_Process_Pressure_100mt" BufferOffset="2" Device="" Addr="d2002" />
+    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" BufferOffset="4" Device="" Addr="d2004" Note="float" />
+    <AI_ITEM Index="3"  Name="AI_He_Pressure_100t" BufferOffset="6" Device="" Addr="d2006" Note="float" />
+    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" BufferOffset="8" Device="" Addr="d2008" Note="float" />
+    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" BufferOffset="10" Device="" Addr="d2010" Note="float" />
+    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" BufferOffset="12" Device="" Addr="d2012" Note="float" />
+    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" BufferOffset="14" Device="" Addr="d2014" Note="float" />
+    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" BufferOffset="16" Device="" Addr="d2016" Note="float" />
+    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" BufferOffset="18" Device="" Addr="d2018" Note="float" />
+    <AI_ITEM Index="10" Name="AI_MFC7_Flow" BufferOffset="20" Device="" Addr="d2020" Note="float" />
+    <AI_ITEM Index="11" Name="AI_MFC8_Flow" BufferOffset="22" Device="" Addr="d2022" Note="float" />
+    <AI_ITEM Index="12" Name="AI_He_Flow" BufferOffset="24" Device="" Addr="d2024" Note="float" />
     <AI_ITEM Index="13" />
-    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
-    <AI_ITEM Index="15" Name="AI_Gasline_Control_TC_Temp" Device="" Addr="d2030" Note="float" />
-    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
-    <AI_ITEM Index="17" Name="AI_Gasline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
-    <AI_ITEM Index="18" Name="AI_CHB_Wall_Control_TC_Temp" Device="" Addr="d2036" Note="float" />
-    <AI_ITEM Index="19" Name="AI_CHB_Wall_Monitor_TC_Temp" Device="" Addr="d2038" Note="float" />
-    <AI_ITEM Index="20" Name="AI_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
-    <AI_ITEM Index="21" Name="AI_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
-    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
-    <AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
-    <AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
-    <AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
-    <AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
-    <AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
-    <AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" BufferOffset="28" Device="" Addr="d2028" Note="float" />
+    <AI_ITEM Index="15" Name="AI_Gasline_Control_TC_Temp" BufferOffset="30" Device="" Addr="d2030" Note="float" />
+    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" BufferOffset="32" Device="" Addr="d2032" Note="float" />
+    <AI_ITEM Index="17" Name="AI_Gasline_Monitor_TC_Temp" BufferOffset="34" Device="" Addr="d2034" Note="float" />
+    <AI_ITEM Index="18" Name="AI_CHB_Wall_Control_TC_Temp" BufferOffset="36" Device="" Addr="d2036" Note="float" />
+    <AI_ITEM Index="19" Name="AI_CHB_Wall_Monitor_TC_Temp" BufferOffset="38" Device="" Addr="d2038" Note="float" />
+    <AI_ITEM Index="20" Name="AI_Coolant_Inlet_Temp" BufferOffset="40" Device="" Addr="d2040" Note="float" />
+    <AI_ITEM Index="21" Name="AI_Coolant_Outlet_Temp" BufferOffset="42" Device="" Addr="d2042" Note="float" />
+    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" BufferOffset="44" Device="" Addr="d2044" Note="float" />
+    <AI_ITEM Index="23" Name="AI_Second" BufferOffset="46" Device="" Addr="d2046" Note="float" />
+    <AI_ITEM Index="24" Name="AI_Minute" BufferOffset="48" Device="" Addr="d2048" Note="float" />
+    <AI_ITEM Index="25" Name="AI_Time"  BufferOffset="50" Device="" Addr="d2050" Note="float" />
+    <AI_ITEM Index="26" Name="AI_Day" BufferOffset="52" Device="" Addr="d2052" Note="float" />
+    <AI_ITEM Index="27" Name="AI_Month" BufferOffset="54" Device="" Addr="d2054" Note="float" />
+    <AI_ITEM Index="28" Name="AI_Year" BufferOffset="56" Device="" Addr="d2056" Note="float" />
     <AI_ITEM Index="29" Name="" />
     <AI_ITEM Index="30" Name="" />
-    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" Device="" Addr="d2062" Note="float" />
+    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" BufferOffset="62" Device="" Addr="d2062" Note="float" />
     <AI_ITEM Index="32" Name="" />
     <AI_ITEM Index="33" Name="" />
     <AI_ITEM Index="34" Name="" />
-    <AI_ITEM Index="35" Name="AI_MFC9_Flow" Device="" Addr="d2070" Note="float" />
-    <AI_ITEM Index="36" Name="AI_MFC10_Flow" Device="" Addr="d2072" Note="float" />
-    <AI_ITEM Index="37" Name="AI_MFC11_Flow" Device="" Addr="d2074" Note="float" />
-    <AI_ITEM Index="38" Name="AI_MFC12_Flow" Device="" Addr="d2076" Note="float" />
+    <AI_ITEM Index="35" Name="AI_MFC9_Flow" BufferOffset="70" Device="" Addr="d2070" Note="float" />
+    <AI_ITEM Index="36" Name="AI_MFC10_Flow" BufferOffset="72" Device="" Addr="d2072" Note="float" />
+    <AI_ITEM Index="37" Name="AI_MFC11_Flow" BufferOffset="74" Device="" Addr="d2074" Note="float" />
+    <AI_ITEM Index="38" Name="AI_MFC12_Flow" BufferOffset="76" Device="" Addr="d2076" Note="float" />
     <AI_ITEM Index="39" Name="" />
-    <AI_ITEM Index="40" Name="AI_He_Pressure" Device="" Addr="d2080" Note="float" />
+    <AI_ITEM Index="40" Name="AI_He_Pressure" BufferOffset="80" Device="" Addr="d2080" Note="float" />
     <AI_ITEM Index="41" Name="" />
     <AI_ITEM Index="42" Name="" />
     <AI_ITEM Index="43" Name="" />

+ 21 - 7
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -205,7 +205,6 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_Process_Pressure_100mt_Gauge_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_Foreline_Pressure_10t_Gauge_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_Valve_Control_TC_Broken_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Valve_Heater_On_FB"].Value = false;
 
                     IO.DI[$"{mod}.DI_Foreline_Control_TC_Broken_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_Foreline_Heater_On_FB"].Value = false;
@@ -320,7 +319,7 @@ namespace Venus_Simulator.Instances
                     //IO.DI[$"{mod}.DI_CHB_Wall_Monitor_TC_Broken_Alarm"].Value = true;
                     //IO.DI[$"{mod}.DI_CHB_Wall_Heater_On_FB"].Value = true;
                     //IO.DI[$"{mod}.DI_CHB_Wall_OT_Switch_Alarm"].Value = true;
-                    IO.DI[$"{mod}.DI_N2_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_PN2_Pressure_Switch"].Value = true;
 
                     IO.DI[$"{mod}.DI_MFC1_Pressure_Switch"].Value = true;
                     IO.DI[$"{mod}.DI_MFC2_Pressure_Switch"].Value = true;
@@ -743,6 +742,7 @@ namespace Venus_Simulator.Instances
                             break;
                         case JetChamber.VenusDE:
                             MonitorPin(item.Key);
+                            MonitorDEGas(item.Key);
                             //MonitorVenuDESlitDoor(item.Key);
                             MonitorDEPressure(item.Key);
                             ChangeTime(item.Key);
@@ -1387,7 +1387,7 @@ namespace Venus_Simulator.Instances
             }
             else if (chamber_pressure1 < 20)
             {
-                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 20);
+                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5);
             }
 
             float process_pressure1 = GetAiValue($"{mod}.{sAI_ProcessPressure}");
@@ -1397,7 +1397,7 @@ namespace Venus_Simulator.Instances
             }
             else if (process_pressure1 < 20)
             {
-                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", 20);
+                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", 5);
             }
 
             float foreline_pressure = GetAiValue($"{mod}.{sAI_Foreline}");
@@ -1520,7 +1520,7 @@ namespace Venus_Simulator.Instances
             }
             else if (chamber_pressure1 < 20)
             {
-                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 20);
+                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5);
             }
 
             float process_pressure1 = GetAiValue($"{mod}.{sAI_ProcessPressure}");
@@ -1530,7 +1530,7 @@ namespace Venus_Simulator.Instances
             }
             else if (process_pressure1 < 20)
             {
-                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", 20);
+                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", 5);
             }
 
             float foreline_pressure = GetAiValue($"{mod}.{sAI_Foreline}");
@@ -2271,7 +2271,21 @@ namespace Venus_Simulator.Instances
             SimulateMFC(mod, 11);
             SimulateMFC(mod, 12);
         }
-
+        void MonitorDEGas(ModuleName mod)
+        {
+            SimulateMFC(mod, 1);
+            SimulateMFC(mod, 2);
+            SimulateMFC(mod, 3);
+            SimulateMFC(mod, 4);
+            SimulateMFC(mod, 5);
+            SimulateMFC(mod, 6);
+            SimulateMFC(mod, 7);
+            SimulateMFC(mod, 8);
+            SimulateMFC(mod, 9);
+            SimulateMFC(mod, 10);
+            SimulateMFC(mod, 11);
+            SimulateMFC(mod, 12);
+        }
         private void SimulateMFC(ModuleName mod, byte gasNum)
         {
             var sp = GetAoValue($"{mod}.AO_MFC{gasNum}_Flow_Setpoint");