浏览代码

Add compatibility for VenusSE in Process,GasFlowRoutine && add More Gas define in config for VenusSE PM && fix bug in IoDefine

zhouhr 1 年之前
父节点
当前提交
3e18a3a534

+ 33 - 1
Venus/Venus_Core/ProcessUnitDefine.cs

@@ -63,7 +63,22 @@ namespace Venus_Core
     {
        
     }
-   
+
+    public enum VenusSEUnits
+    {
+        PressureByPressureModeUnit,
+        TCPUnit,
+        BiasUnit,
+        VenusSEGasControlUnit,
+        ESCHVUnit,
+        ProcessKitUnit
+    }
+
+    public enum VenusDEUnits
+    {
+
+    }
+
     public partial class PressureByPressureModeUnit : ProcessUnitBase
     {
         public string UnitName { get; set; } = "PressureModeUnit";
@@ -194,6 +209,23 @@ namespace Venus_Core
         public int Gas6 { get; set; }
     }
 
+    public class VenusSEGasControlUnit : ProcessUnitBase
+    {
+        public string UnitName { get; set; } = "SEGasControlUnit";
+        public int Gas1 { get; set;}
+        public int Gas2 { get; set;}
+        public int Gas3 { get; set;}
+        public int Gas4 { get; set;}
+        public int Gas5 { get; set;}
+        public int Gas6 { get; set;}
+        public int Gas7 { get; set;}
+        public int Gas8 { get; set;}
+        public int Gas9 { get; set;}
+        public int Gas10 { get; set;}
+        public int Gas11 { get; set;}
+        public int Gas12 { get; set;}
+    }
+
     public class ESCHVUnit : ProcessUnitBase
     {
         public string UnitName { get; set; } = "ESCHVUnit";

+ 19 - 0
Venus/Venus_Core/Recipe.cs

@@ -567,6 +567,9 @@ namespace Venus_Core
                         case "GasUnit":
                             unit.Add(JsonConvert.DeserializeObject<Kepler2200GasControlUnit>(step.LstUnit[i].ToString()));
                             break;
+                        case "SEGasControlUnit":
+                            unit.Add(JsonConvert.DeserializeObject<VenusSEGasControlUnit>(step.LstUnit[i].ToString()));
+                            break;
                     }
                 }
                 step.LstUnit.Clear();
@@ -680,6 +683,14 @@ namespace Venus_Core
                         LstUnit.Add(obj);
                     }
                     break;
+                case JetChamber.VenusSE:
+                    foreach (var item in Enum.GetValues(typeof(VenusSEUnits)))
+                    {
+                        Type t = Type.GetType($"Venus_Core.{item.ToString()}");
+                        var obj = System.Activator.CreateInstance(t);
+                        LstUnit.Add(obj);
+                    }
+                    break;
             }
             return LstUnit;
         }
@@ -738,6 +749,14 @@ namespace Venus_Core
                         LstUnit.Add(obj);
                     }
                     break;
+                case JetChamber.VenusSE:
+                    foreach (var item in Enum.GetValues(typeof(VenusSEUnits)))
+                    {
+                        Type t = Type.GetType($"Venus_Core.{item.ToString()}");
+                        var obj = System.Activator.CreateInstance(t);
+                        LstUnit.Add(obj);
+                    }
+                    break;
             }
             return LstUnit;
         }

+ 2 - 1
Venus/Venus_MainPages/ViewModels/OverVenusSEViewModel.cs

@@ -1165,6 +1165,7 @@ namespace Venus_MainPages.ViewModels
 
             CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
 
+            HeIsPressureMode = true;
             DispatcherTimer timer = new DispatcherTimer();
             timer.Interval = TimeSpan.FromSeconds(0.5);
             timer.Tick += timer_Tick;
@@ -1203,7 +1204,7 @@ namespace Venus_MainPages.ViewModels
 
                 await Task.Delay(1000);
                 object[] mfc = new object[12];
-                string[] mfcSetPoint = new string[8];
+                string[] mfcSetPoint = new string[12];
 
                 mfc[0] = MFC1Data.SetPoint;
                 mfc[1] = MFC2Data.SetPoint;

+ 56 - 23
Venus/Venus_MainPages/Views/OverVenusSEView.xaml

@@ -748,79 +748,112 @@
 
             <Ellipse Width="20" Height="20" Fill="{Binding GasIsFlowing,Converter={StaticResource boolToColor}}"  Canvas.Left="360" Canvas.Top="712" Stroke="Silver" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <Button Width="100" Content="Gas ON/OFF" Canvas.Left="390" Canvas.Top="712" Style="{StaticResource SysBtnStyle}"  Command="{Binding GasCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <TextBlock FontSize="13" Text="Vent N2" Canvas.Left="10" Canvas.Top="117" Foreground="Black"  Block.TextAlignment="Right" Width="50"/>
-            <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="227" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12" Text="Vent N2" Canvas.Left="35" Canvas.Top="117" Foreground="Black"  Block.TextAlignment="Right"  Panel.ZIndex="4"/>
+            <TextBlock FontSize="12" Canvas.Left="-5" Canvas.Top="158" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC1Data.DisplayName"></Binding>
                         <Binding Path="MFC1Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="284" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="214" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC2Data.DisplayName"></Binding>
                         <Binding Path="MFC2Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="338" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="269" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC3Data.DisplayName"></Binding>
                         <Binding Path="MFC3Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="392" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="325" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC4Data.DisplayName"></Binding>
                         <Binding Path="MFC4Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="448" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="367" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC5Data.DisplayName"></Binding>
                         <Binding Path="MFC5Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="503" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12" Canvas.Left="-5" Canvas.Top="413" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC6Data.DisplayName"></Binding>
                         <Binding Path="MFC6Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="562" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="455" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC7Data.DisplayName"></Binding>
                         <Binding Path="MFC7Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="618" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="496" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC8Data.DisplayName"></Binding>
                         <Binding Path="MFC8Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="539" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC9Data.DisplayName"></Binding>
+                        <Binding Path="MFC9Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="584" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC10Data.DisplayName"></Binding>
+                        <Binding Path="MFC10Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="631" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC11Data.DisplayName"></Binding>
+                        <Binding Path="MFC11Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="676" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC12Data.DisplayName"></Binding>
+                        <Binding Path="MFC12Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <Border Background="#b1d2f2" Width="24" Height="570" Canvas.Top="118" Canvas.Left="61" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">
 
-
-        </Canvas >
+            </Border>
+        </Canvas>
         <Canvas Canvas.Right="2050" Canvas.Top="70">
             <Ellipse Width="20" Height="20" Fill="{Binding PVHe1ValveIsOpen,Converter={StaticResource boolToColor}}"  Canvas.Left="650" Canvas.Top="682" Stroke="Silver" StrokeThickness="2"/>
             <Button Width="100" Content="He ON/OFF"  Style="{StaticResource SysBtnStyle}"  Command="{Binding HeCommand}"                Canvas.Left="680" Canvas.Top="682" 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="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}"/>-->
 
             <!--与chamber右上角连接的管道-->
             <ctrls:FlowPipe  Height="8"  Width="40" Canvas.Left="1262" Canvas.Top="275"  RotateTransformValue="90" />
@@ -861,7 +894,7 @@
             <Ellipse Width="20" Height="20"  Canvas.Left="1272" Canvas.Top="200" Fill="{Binding IsVAC,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"></Ellipse>
             <TextBlock Text="ATM" Canvas.Left="1300" Canvas.Top="134"/>
             <TextBlock Text="VAC" Canvas.Left="1270" Canvas.Top="220"/>
-            <ctrls:Pipe2     Canvas.Left="1242" Canvas.Top="195" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
+            <ctrls:Pipe2     Canvas.Left="1242" Canvas.Top="195" HorizontalAlignment="Center" VerticalAlignment="Top" RotateTransformValue="-90" />
 
 
 
@@ -1028,7 +1061,7 @@
             <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ProcessHighPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
             <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessLowPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
             <!--<ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="880"  LabelValue="Pressure(mTorr)" TextBoxValue="{Binding HePressureSetpoint,Mode=TwoWay}" TextBoxColor="White" IsReadOnly="False"/>-->
-            <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="820" TextBoxValue="{Binding HeGasSetpoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"    LabelValue="Flow(sccm)/Pressure(Torr)"  TextBoxColor="White" IsReadOnly="False"/>
+            <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="820" TextBoxValue="{Binding HeGasSetpoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"    LabelValue="Pressure(Torr)"  TextBoxColor="White" IsReadOnly="False"/>
             <Ellipse Width="20" Height="20"  Canvas.Top="651.5" Canvas.Left="775" Fill="{Binding MFCHeData.IsWarning,Converter={StaticResource boolToColor4}}"  Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
 
             <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="1280" LabelValue="CM3(mTorr)" TextBoxValue="{Binding  ForelinePressure,StringFormat='F1'}" TextBoxColor="#D7E4BD" />

+ 56 - 56
Venus/Venus_RT/Config/PM/VenusSE/VenusSEIoDefine.xml

@@ -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="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_ESC_He_Pressure_Setpoint" Device="" Addr="d1034" Note="He气体压力设定"/>
+    <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_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" 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="" />

+ 211 - 3
Venus/Venus_RT/Config/System.sccfg

@@ -619,6 +619,58 @@
 			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
 			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		</configs>
+		<configs name="MfcGas9" nameView="MFC Gas9" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 9 or not" tag="" unit="" type="Bool" />
+			<config default="Gas6" name="GasName" nameView="Gas Name" description="Name of NO.9 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas10" nameView="MFC Gas10" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 10 or not" tag="" unit="" type="Bool" />
+			<config default="Gas7" name="GasName" nameView="Gas Name" description="Name of NO.10 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas11" nameView="MFC Gas8" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 11 or not" tag="" unit="" type="Bool" />
+			<config default="Gas8" name="GasName" nameView="Gas Name" description="Name of NO.11 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas12" nameView="MFC Gas12" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 12 or not" tag="" unit="" type="Bool" />
+			<config default="Gas9" name="GasName" nameView="Gas Name" description="Name of NO.12 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
 		<configs name="MfcN2" nameView="MFC N2" >
 			<config default="true" name="Enable" nameView="Enable" description="Enable N2 or not" tag="" unit="" type="Bool" />
 			<config default="N2" name="GasName" nameView="Gas Name" description="Name of N2 stick" tag="" unit="" type="String" />
@@ -861,7 +913,7 @@
 
 	<!--PMB-->
 	<configs name="PMB" nameView="PMB" >
-		<config default="1" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="3" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="1" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 		<config default="120" name="PrepareTransferTimeout" nameView="Prepare Transfer Timeout" description="prepare transfer time out" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="120" name="TransferWaferTimeout" nameView="Transfer Wafer Timeout" description="Transfer Wafer Timeout" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
@@ -1144,6 +1196,58 @@
 			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
 			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		</configs>
+		<configs name="MfcGas9" nameView="MFC Gas9" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 9 or not" tag="" unit="" type="Bool" />
+			<config default="Gas6" name="GasName" nameView="Gas Name" description="Name of NO.9 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas10" nameView="MFC Gas10" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 10 or not" tag="" unit="" type="Bool" />
+			<config default="Gas7" name="GasName" nameView="Gas Name" description="Name of NO.10 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas11" nameView="MFC Gas8" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 11 or not" tag="" unit="" type="Bool" />
+			<config default="Gas8" name="GasName" nameView="Gas Name" description="Name of NO.11 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas12" nameView="MFC Gas12" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 12 or not" tag="" unit="" type="Bool" />
+			<config default="Gas9" name="GasName" nameView="Gas Name" description="Name of NO.12 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
 		<configs name="MfcN2" nameView="MFC N2" >
 			<config default="true" name="Enable" nameView="Enable" description="Enable N2 or not" tag="" unit="" type="Bool" />
 			<config default="N2" name="GasName" nameView="Gas Name" description="Name of N2 stick" tag="" unit="" type="String" />
@@ -1386,7 +1490,7 @@
 
 	<!--PMC-->
 	<configs name="PMC" nameView="PMC" >
-		<config default="2" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="3" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="2" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 		<config default="120" name="PrepareTransferTimeout" nameView="Prepare Transfer Timeout" description="prepare transfer time out" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="120" name="TransferWaferTimeout" nameView="Transfer Wafer Timeout" description="Transfer Wafer Timeout" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
@@ -1669,6 +1773,58 @@
 			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
 			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		</configs>
+		<configs name="MfcGas9" nameView="MFC Gas9" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 9 or not" tag="" unit="" type="Bool" />
+			<config default="Gas6" name="GasName" nameView="Gas Name" description="Name of NO.9 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas10" nameView="MFC Gas10" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 10 or not" tag="" unit="" type="Bool" />
+			<config default="Gas7" name="GasName" nameView="Gas Name" description="Name of NO.10 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas11" nameView="MFC Gas8" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 11 or not" tag="" unit="" type="Bool" />
+			<config default="Gas8" name="GasName" nameView="Gas Name" description="Name of NO.11 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas12" nameView="MFC Gas12" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 12 or not" tag="" unit="" type="Bool" />
+			<config default="Gas9" name="GasName" nameView="Gas Name" description="Name of NO.12 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
 		<configs name="MfcN2" nameView="MFC N2" >
 			<config default="true" name="Enable" nameView="Enable" description="Enable N2 or not" tag="" unit="" type="Bool" />
 			<config default="N2" name="GasName" nameView="Gas Name" description="Name of N2 stick" tag="" unit="" type="String" />
@@ -1912,7 +2068,7 @@
 
 	<!--PMD-->
 	<configs name="PMD" nameView="PMD" >
-		<config default="2" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="3" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="2" name="ChamberType"  nameView="Chamber Type" description="0=>Venus,1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 		<config default="120" name="PrepareTransferTimeout" nameView="Prepare Transfer Timeout" description="prepare transfer time out" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="120" name="TransferWaferTimeout" nameView="Transfer Wafer Timeout" description="Transfer Wafer Timeout" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
@@ -2194,6 +2350,58 @@
 			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
 			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		</configs>
+		<configs name="MfcGas9" nameView="MFC Gas9" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 9 or not" tag="" unit="" type="Bool" />
+			<config default="Gas6" name="GasName" nameView="Gas Name" description="Name of NO.9 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas10" nameView="MFC Gas10" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 10 or not" tag="" unit="" type="Bool" />
+			<config default="Gas7" name="GasName" nameView="Gas Name" description="Name of NO.10 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas11" nameView="MFC Gas8" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 11 or not" tag="" unit="" type="Bool" />
+			<config default="Gas8" name="GasName" nameView="Gas Name" description="Name of NO.11 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
+		<configs name="MfcGas12" nameView="MFC Gas12" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 12 or not" tag="" unit="" type="Bool" />
+			<config default="Gas9" name="GasName" nameView="Gas Name" description="Name of NO.12 gas stick" tag="" unit="" type="String" />
+			<config default="100" name="MfcN2Scale" nameView="MFC N2 Scale" description="Max scale by N2 tuning" max="10000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="MfcScaleFactor" nameView="MFC Scale Factor" description="Scale factor" max="10" min="0" tag="" unit="sccm" type="Double" />
+			<config default="100" name="DefaultSetPoint" nameView="Default Set Point" description="default setpoint" max="1000" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="1" name="FlowRegulationFactor" nameView="Flow Regulation Factor" description="flow regulation factor" max="10" min="0" tag="" unit="sccm" type="Integer" />
+			<config default="true" name="MfcEnableAlarm" nameView="MFC Enable Alarm" description="Mfc Enable Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="Mfc Alarm Range" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="Mfc Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+			<config default="10" name="MfcWarningRange" nameView="MFC Warning Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcWarningTime" nameView="MFC Warning Time" description="" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		</configs>
 		<configs name="MfcN2" nameView="MFC N2" >
 			<config default="true" name="Enable" nameView="Enable" description="Enable N2 or not" tag="" unit="" type="Bool" />
 			<config default="N2" name="GasName" nameView="Gas Name" description="Name of N2 stick" tag="" unit="" type="String" />

+ 4 - 4
Venus/Venus_RT/Config/TM/_ioDefineVenusSE_MF.xml

@@ -132,11 +132,11 @@
     <AO_ITEM Index="49" Name="" />
   </Ana_Out>
   <Ana_In>
-    <AI_ITEM Index="0" Name="AI_MFC_Flow"  BufferOffset="2" Device="" Addr="D100" />
-    <AI_ITEM Index="1" Name="AI_VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
+    <AI_ITEM Index="0" Name="AI_MFC_Flow"  BufferOffset="0" Device="" Addr="D100" />
+    <AI_ITEM Index="1" Name="AI_VCE_Vacuum_Gauge"  BufferOffset="1" Device="" Addr="D101" />
     <AI_ITEM Index="2" Name="AI_TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
-    <AI_ITEM Index="3" Name="AI_VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
-    <AI_ITEM Index="4" Name="AI_TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
+    <AI_ITEM Index="3" Name="AI_VCE_Pipeline_Vacuum_Gauge"  BufferOffset="3" Device="" Addr="D103"/>
+    <AI_ITEM Index="4" Name="AI_TM_Pipeline_Vacuum_Gauge"  BufferOffset="4" Device="" Addr="D104"/>
     <AI_ITEM Index="5" Name=""/>
     <AI_ITEM Index="6" Name="" />
     <AI_ITEM Index="7" Name=""/>

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

@@ -139,7 +139,8 @@ namespace Venus_RT.Devices
 
         public void SetESCHeControlMode(bool bPressureMode)
         {
-            _SetRealFloat(_aoCtrlMode, bPressureMode ? 1 : 0);
+            if(_aoCtrlMode != null)
+                _SetRealFloat(_aoCtrlMode, bPressureMode ? 1 : 0);
         }
 
         private void _noRepeatLog(eEvent evt, string logInfo)

+ 4 - 4
Venus/Venus_RT/Devices/JetVenusSEPM.cs

@@ -200,8 +200,8 @@ namespace Venus_RT.Devices
             _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
             _pressureController = DEVICE.GetDevice<IoPressureControl>($"{Module}.{VenusDevice.PressureControl}");
 
-            _gasLines = new IoGasStick[8];
-            for (int index = 0; index < 8; index++)
+            _gasLines = new IoGasStick[12];
+            for (int index = 0; index < 12; index++)
             {
                 _gasLines[index] = DEVICE.GetDevice<IoGasStick>($"{Module}.GasStick{index + 1}");
             }
@@ -585,9 +585,9 @@ namespace Venus_RT.Devices
                 return false;
             }
         }
-        public override float RFMatchC1 => throw new NotImplementedException();
+        public override float RFMatchC1 => _Match!=null? _Match.TunePosition1 : 0;
 
-        public override float RFMatchC2 => throw new NotImplementedException();
+        public override float RFMatchC2 => _Match != null ? _Match.TunePosition1 : 0;
 
         public override float BiasRFMatchC1 => _BiasMatch != null ? _BiasMatch.TunePosition1 : 0;
 

+ 25 - 7
Venus/Venus_RT/Modules/PMs/GasFlowRoutine.cs

@@ -14,10 +14,28 @@ namespace Venus_RT.Modules.PMs
     class GasFlowRoutine : PMRoutineBase, IRoutine
     {
         public bool _gasStatus = false;
-        private double[] _mfcSetPoint = new double[8];
+        private double[] _mfcSetPoint;
+        private ValveType[] vlvs;
         public GasFlowRoutine(JetPMBase chamber) : base(chamber)
         {
             Name = "Gas Flow";
+            switch (chamber.ChamberType)
+            {
+                case JetChamber.VenusSE:
+                    _mfcSetPoint = new double[12];
+                    vlvs = new ValveType[] { 
+                        ValveType.PV11, ValveType.PV21, ValveType.PV31, 
+                        ValveType.PV41, ValveType.PV51, ValveType.PV61,
+                        ValveType.PV71, ValveType.PV81, ValveType.PV91,
+                        ValveType.PVA1, ValveType.PVB1, ValveType.PVC1
+                    };
+                    break;
+                default:
+                    _mfcSetPoint = new double[8];
+                    vlvs = new ValveType[] { ValveType.PV11, ValveType.PV21, ValveType.PV31, ValveType.PV41 };
+                    break;
+            }
+
         }
 
         public RState Start(params object[] objs)
@@ -86,8 +104,8 @@ namespace Venus_RT.Modules.PMs
 
         private void OpenPVNVlv(int mfcIndex, bool on)
         {
-            ValveType[] vlvs = new ValveType[] { ValveType.PV11, ValveType.PV21, ValveType.PV31, ValveType.PV41 };
-            if (mfcIndex < 4)
+
+            if (mfcIndex < vlvs.Length)
             {
                 _chamber.OpenValve(vlvs[mfcIndex], on);
             }
@@ -111,10 +129,10 @@ namespace Venus_RT.Modules.PMs
 
             _chamber.OpenValve(ValveType.GasFinal, false);
             _chamber.StopAllGases();
-            OpenPVNVlv(0, false);
-            OpenPVNVlv(1, false);
-            OpenPVNVlv(2, false);
-            OpenPVNVlv(3, false);
+            for (int i = 0; i < vlvs.Length; i++)
+            {
+                OpenPVNVlv(i, false);
+            }
         }
 
     }

+ 108 - 7
Venus/Venus_RT/Modules/PMs/ProcessDefine.cs

@@ -68,6 +68,10 @@ namespace Venus_RT.Modules.PMs
             checkerHelper[$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_Check(unit, step);
             endHelper[$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_End(unit, step);
 
+            startHelper[$"{Module}.VenusSEGasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => VenusSEGasControlUnit_Start(unit, step);
+            checkerHelper[$"{Module}.VenusSEGasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => VenusSEGasControlUnit_Check(unit, step);
+            endHelper[$"{Module}.VenusSEGasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => VenusSEGasControlUnit_End(unit, step);
+
             startHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Start(unit, step);
             checkerHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Check(unit, step);
             endHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_End(unit, step);
@@ -321,8 +325,8 @@ namespace Venus_RT.Modules.PMs
             {
                 Chamber.SetBiasMatchWorkMode(MatchWorkMode.Auto);
             }
-            else if(ProcessUnit.BiasMatchWorkMode == MatchWorkMode.Manual)
-            { 
+            else if (ProcessUnit.BiasMatchWorkMode == MatchWorkMode.Manual)
+            {
                 Chamber.SetBiasMatchWorkMode(MatchWorkMode.Manual);
             }
 
@@ -334,7 +338,7 @@ namespace Venus_RT.Modules.PMs
                 Chamber.SetDiasPulseDutyCycle(ProcessUnit.PulseDutyCycle);
             }
             else
-            { 
+            {
                 Chamber.SetBiasPulseMode(false);
             }
             biasRfMatchC1.Clear();
@@ -375,11 +379,11 @@ namespace Venus_RT.Modules.PMs
                 //cycleIndex += 1;
                 if (ProcessUnit.TargetMode == TargetMode.Cycle)
                 {
-                    if ( biasRFSetPointFlag==true)
+                    if (biasRFSetPointFlag == true)
                     {
                         biasRFSetPointFlag = false;
-              
-                        Chamber.GeneratorBiasSetpower((float)((ProcessUnit.BiasRFPower + (float)((float)(ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower) / ((float)(loopsteps-1) / (float)(currentStepIndex))))));
+
+                        Chamber.GeneratorBiasSetpower((float)((ProcessUnit.BiasRFPower + (float)((float)(ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower) / ((float)(loopsteps - 1) / (float)(currentStepIndex))))));
                     }
                     //float rampFactor = (float)currentStepIndex / (float)(loopsteps-1);
                     //double rampFactor = step.RampFactor();                                 
@@ -487,6 +491,95 @@ namespace Venus_RT.Modules.PMs
             Chamber.FlowGas(7, 0);
         }
 
+        private RState VenusSEGasControlUnit_Start(ProcessUnitBase unit, RecipeStep step)
+        {
+            Chamber.OpenValve(ValveType.GasFinal, true);
+            var ProcessUnit = unit as VenusSEGasControlUnit;
+            Chamber.FlowGas(0, ProcessUnit.Gas1);
+            if (ProcessUnit.Gas1 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV11, true);
+            }
+            Chamber.FlowGas(1, ProcessUnit.Gas2);
+            if (ProcessUnit.Gas2 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV21, true);
+            }
+            Chamber.FlowGas(2, ProcessUnit.Gas3);
+            if (ProcessUnit.Gas3 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV31, true);
+            }
+            Chamber.FlowGas(3, ProcessUnit.Gas4);
+            if (ProcessUnit.Gas4 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV41, true);
+            }
+            Chamber.FlowGas(4, ProcessUnit.Gas5);
+            if (ProcessUnit.Gas5 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV51, true);
+            }
+            Chamber.FlowGas(5, ProcessUnit.Gas6);
+            if (ProcessUnit.Gas6 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV61, true);
+            }
+            Chamber.FlowGas(6, ProcessUnit.Gas7);
+            if (ProcessUnit.Gas7 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV71, true);
+            }
+            Chamber.FlowGas(7, ProcessUnit.Gas8);
+            if (ProcessUnit.Gas8 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV81, true);
+            }
+            Chamber.FlowGas(8, ProcessUnit.Gas9);
+            if (ProcessUnit.Gas9 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PV91, true);
+            }
+            Chamber.FlowGas(9, ProcessUnit.Gas10);
+            if (ProcessUnit.Gas10 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PVA1, true);
+            }
+            Chamber.FlowGas(10, ProcessUnit.Gas11);
+            if (ProcessUnit.Gas11 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PVB1, true);
+            }
+            Chamber.FlowGas(11, ProcessUnit.Gas12);
+            if (ProcessUnit.Gas12 >= 1)
+            {
+                Chamber.OpenValve(ValveType.PVC1, true);
+            }
+            return RState.Running;
+        }
+
+        private RState VenusSEGasControlUnit_Check(ProcessUnitBase unit, RecipeStep step)
+        {
+            return RState.Running;
+        }
+
+        private void VenusSEGasControlUnit_End(ProcessUnitBase unit, RecipeStep step)
+        {
+            Chamber.FlowGas(0, 0);
+            Chamber.FlowGas(1, 0);
+            Chamber.FlowGas(2, 0);
+            Chamber.FlowGas(3, 0);
+            Chamber.FlowGas(4, 0);
+            Chamber.FlowGas(5, 0);
+            Chamber.FlowGas(6, 0);
+            Chamber.FlowGas(7, 0);
+            Chamber.FlowGas(8, 0);
+            Chamber.FlowGas(9, 0);
+            Chamber.FlowGas(10, 0);
+            Chamber.FlowGas(11, 0);
+            Chamber.FlowGas(12, 0);
+        }
+
         private RState ESCHVUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
             var ProcessUnit = unit as ESCHVUnit;
@@ -520,7 +613,15 @@ namespace Venus_RT.Modules.PMs
         private RState ProcessKitUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
             var ProcessUnit = unit as ProcessKitUnit;
-            return RState.Running;
+            if (Chamber.SetLiftPin(ProcessUnit.LiftPinPostion, out string reason))
+            {
+                return RState.Running;
+            }
+            else
+            {
+                LOG.Write(eEvent.ERR_PROCESS, Chamber.Module, $"Step:{step.StepNo} failed. Target Position:{ProcessUnit.LiftPinPostion}");
+                return RState.Failed;
+            }
         }
 
         private RState ProcessKitUnit_Check(ProcessUnitBase unit, RecipeStep step)

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

@@ -259,7 +259,7 @@
     <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_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="29" Name="" />
     <AO_ITEM Index="30" Name="AO_GASLINE_Temperature_Setpoint" Device="" Addr="d1060" Note="GASLINE 加热设定温度" />
@@ -319,10 +319,10 @@
     <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="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="39" Name="" />
     <AI_ITEM Index="40" Name="AI_He_Pressure" Device="" Addr="d2080" Note="float" />
     <AI_ITEM Index="41" Name="" />

+ 17 - 0
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -619,6 +619,7 @@ namespace Venus_Simulator.Instances
                             MonitorPin(item.Key);
                             //MonitorVenuSESlitDoor(item.Key);
                             MonitorSEPressure(item.Key);
+                            MonitorSEGas(item.Key);
                             break;
                     }
                 }
@@ -1993,6 +1994,22 @@ namespace Venus_Simulator.Instances
             this.SimulateN2(mod);
         }
 
+        void MonitorSEGas(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");