Browse Source

1.添加TMP Water Flow与Lid Water Flow 报警
2.PM Gas Leak Check界面优化,添加部分管路硬件的UI控制与显示,修复查询日志数据错乱的bug,压力由原来保留一位改为保留五位
3.Kepler2200B PM 与 TM 添加部分表头数据ai,plc暂未更新
4.添加 部分 SENSOR ID与ALARM ID
5.添加Kepler2300 功能代码

lixiang 1 month ago
parent
commit
27fe4c7e97
46 changed files with 3285 additions and 5435 deletions
  1. 1 1
      Venus/Framework/Common/SCCore/SystemConfigManager.cs
  2. 3 0
      Venus/Venus_Core/EventDefine.cs
  3. 2 2
      Venus/Venus_MainPages/Properties/AssemblyInfo.cs
  4. 4 4
      Venus/Venus_MainPages/Venus_MainPages.csproj
  5. 2 2
      Venus/Venus_MainPages/ViewModels/GasLeakCheckViewModel.cs
  6. 311 402
      Venus/Venus_MainPages/ViewModels/KeplerGasLeakCheckViewModel.cs
  7. 2 16
      Venus/Venus_MainPages/ViewModels/OverKepler2200AViewModel.cs
  8. 145 31
      Venus/Venus_MainPages/ViewModels/OverKepler2300ViewModel.cs
  9. 1 1
      Venus/Venus_MainPages/Views/GasLeakCheckView.xaml
  10. 4 4
      Venus/Venus_MainPages/Views/GasLeakCheckView.xaml.cs
  11. 736 485
      Venus/Venus_MainPages/Views/KeplerGasLeakCheckView.xaml
  12. 2 2
      Venus/Venus_MainPages/Views/KeplerPartialPressureView.xaml
  13. 4 3
      Venus/Venus_MainPages/Views/OverKepler2200AView.xaml
  14. 11 5
      Venus/Venus_MainPages/Views/OverKepler2200BView.xaml
  15. 480 574
      Venus/Venus_MainPages/Views/OverKepler2300View.xaml
  16. 4 0
      Venus/Venus_MainPages/Views/OverKepler2300View.xaml.cs
  17. 653 643
      Venus/Venus_MainPages/Views/TMOperationView.xaml
  18. 2 2
      Venus/Venus_MainPages/Views/VenusGasLeakCheckView.xaml.cs
  19. 0 743
      Venus/Venus_RT/Config/EquipmentVariables - 复制.xml
  20. 76 6
      Venus/Venus_RT/Config/EquipmentVariables.xml
  21. 27 0
      Venus/Venus_RT/Config/LogDefine.json
  22. BIN
      Venus/Venus_RT/Config/PM/Kepler2200A/Kepler2200ADeviceModel.xml
  23. BIN
      Venus/Venus_RT/Config/PM/Kepler2200B/Kepler2200BDeviceModel.xml
  24. BIN
      Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300DeviceModel.xml
  25. 128 32
      Venus/Venus_RT/Config/System_Kepler2300.sccfg
  26. 5 5
      Venus/Venus_RT/Config/TM/_ioDefineVenus_MF.xml
  27. 8 8
      Venus/Venus_RT/Devices/AIRSYSChiller.cs
  28. 16 9
      Venus/Venus_RT/Devices/EdwardsPump.cs
  29. 35 59
      Venus/Venus_RT/Devices/JetKepler2200APM.cs
  30. 38 45
      Venus/Venus_RT/Devices/JetKepler2200BPM.cs
  31. 330 350
      Venus/Venus_RT/Devices/JetKepler2300PM.cs
  32. 8 8
      Venus/Venus_RT/Devices/SMCChiller.cs
  33. 8 8
      Venus/Venus_RT/Devices/SMCShareChiller.cs
  34. 8 0
      Venus/Venus_RT/Devices/TM/JetTM.cs
  35. 5 5
      Venus/Venus_RT/Devices/TruPlasmaRF.cs
  36. 2 2
      Venus/Venus_RT/Modules/PMs/GasBoxLeakCheckRoutine.cs
  37. 2 2
      Venus/Venus_RT/Modules/PMs/PMLeakCheckRoutine.cs
  38. 1 3
      Venus/Venus_RT/Venus_RT.csproj
  39. BIN
      Venus/Venus_Simulator/Config/_ioDefineVenus_MF.xml
  40. 26 253
      Venus/Venus_Simulator/Instances/SimulatorSystem.cs
  41. 4 1720
      Venus/Venus_Themes/Themes/Generic.xaml
  42. 30 0
      Venus/Venus_Themes/Themes/ValueConverter.xaml
  43. 38 0
      Venus/Venus_Themes/UserControls/GasStick.xaml
  44. 110 0
      Venus/Venus_Themes/UserControls/GasStick.xaml.cs
  45. 11 0
      Venus/Venus_Themes/Venus_Themes.csproj
  46. 2 0
      Venus/Venus_UI/App.xaml

+ 1 - 1
Venus/Framework/Common/SCCore/SystemConfigManager.cs

@@ -301,7 +301,7 @@ namespace MECF.Framework.Common.SCCore
             }
             catch (Exception ex)
             {
-                LOG.WriteExeption(ex);
+                //LOG.WriteExeption(ex);
             }
         }
 

+ 3 - 0
Venus/Venus_Core/EventDefine.cs

@@ -163,6 +163,9 @@ namespace Aitex.Core.RT.Log{
 		WARN_MFC7_PRESSURE = 1298,
 		WARN_MFC8_PRESSURE = 1299,
 		WARN_N2_PRESSURE = 1300,
+		WARN_GASBOX_N2_FLOW = 1301,
+		WARNING_SENSOR_TMP_WATERFLOW = 1302,
+		WARNING_SENSOR_LID_WATERFLOW = 1303,
 		ERR_TM = 2000,
 		INFO_TM = 2001,
 		WARN_TM = 2002,

+ 2 - 2
Venus/Venus_MainPages/Properties/AssemblyInfo.cs

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //通过使用 "*",如下所示:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.1")]
-[assembly: AssemblyFileVersion("1.0.0.1")]
+[assembly: AssemblyVersion("1.0.0.2")]
+[assembly: AssemblyFileVersion("1.0.0.2")]

+ 4 - 4
Venus/Venus_MainPages/Venus_MainPages.csproj

@@ -173,7 +173,7 @@
     <Compile Include="ViewModels\FAViewModel.cs" />
     <Compile Include="ViewModels\GasVerificationViewModel.cs" />
     <Compile Include="ViewModels\KeplerGasLeakCheckViewModel.cs" />
-    <Compile Include="ViewModels\GasLeakCheckViewModel.cs" />
+    <Compile Include="ViewModels\Kepler2300GasLeakCheckViewModel.cs" />
     <Compile Include="ViewModels\IOViewModel.cs" />
     <Compile Include="ViewModels\MFCVerificationViewModel.cs" />
     <Compile Include="ViewModels\OperationOverViewModel.cs" />
@@ -240,8 +240,8 @@
     <Compile Include="Views\KeplerGasLeakCheckView.xaml.cs">
       <DependentUpon>KeplerGasLeakCheckView.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Views\GasLeakCheckView.xaml.cs">
-      <DependentUpon>GasLeakCheckView.xaml</DependentUpon>
+    <Compile Include="Views\Kepler2300GasLeakCheckView.xaml.cs">
+      <DependentUpon>Kepler2300GasLeakCheckView.xaml</DependentUpon>
     </Compile>
     <Compile Include="Views\HeaterView.xaml.cs">
       <DependentUpon>HeaterView.xaml</DependentUpon>
@@ -452,7 +452,7 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Views\GasLeakCheckView.xaml">
+    <Page Include="Views\Kepler2300GasLeakCheckView.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>

+ 2 - 2
Venus/Venus_MainPages/ViewModels/GasLeakCheckViewModel.cs

@@ -16,7 +16,7 @@ using Venus_Themes.CustomControls;
 
 namespace Venus_MainPages.ViewModels
 {
-    internal class GasLeakCheckViewModel : BindableBase
+    internal class Kepler2300GasLeakCheckViewModel : BindableBase
     {
         #region 私有字段
         private List<string> m_LeakCheckMode;
@@ -755,7 +755,7 @@ namespace Venus_MainPages.ViewModels
         #endregion
 
         #region 构造函数
-        public GasLeakCheckViewModel()
+        public Kepler2300GasLeakCheckViewModel()
         {
 
             m_LeakCheckMode = new List<string>() { "ChamberOnly", "ChamberAndGasLine", "ChamberAndGasLineAndFAC" };

+ 311 - 402
Venus/Venus_MainPages/ViewModels/KeplerGasLeakCheckViewModel.cs

@@ -1,18 +1,25 @@
 using Aitex.Core.Common.DeviceData;
+using Aitex.Core.RT.Log;
+using MECF.Framework.Common.CommonData.DeviceData;
 using MECF.Framework.Common.DataCenter;
 using MECF.Framework.Common.OperationCenter;
+using OpenSEMI.ClientBase;
 using Prism.Commands;
 using Prism.Mvvm;
 using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Diagnostics;
+using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows;
 using System.Windows.Threading;
 using Venus_Core;
 using Venus_MainPages.Unity;
+using Venus_MainPages.Views;
 using Venus_Themes.CustomControls;
+using Venus_Themes.UserControls;
 
 namespace Venus_MainPages.ViewModels
 {
@@ -30,7 +37,7 @@ namespace Venus_MainPages.ViewModels
         private bool[] m_PurgeGasIsCheck = new bool[12];
 
         private int GasIndex = 9;
-        public string ModuleName;
+        public string m_ModuleName;
         private bool m_GasIsFlowing;
         private bool m_IsAutoMode;
 
@@ -42,10 +49,7 @@ namespace Venus_MainPages.ViewModels
         private AITMfcData m_MFC6Data;
         private AITMfcData m_MFC7Data;
         private AITMfcData m_MFC8Data;
-        //private AITMfcData m_MFC9Data;
-        //private AITMfcData m_MFC10Data;
-        //private AITMfcData m_MFC11Data;
-        //private AITMfcData m_MFC12Data;
+
         private AITMfcData m_MFCN2Data;
         private PMState m_PMCurrentState;
 
@@ -62,6 +66,9 @@ namespace Venus_MainPages.ViewModels
 
         private JetChamber m_JetChamber;
 
+        private WaferInfo m_PMWafer;
+        private bool m_IsHasWafer;
+
 
         #region
         private bool m_O2ValveIsOpen;
@@ -87,11 +94,11 @@ namespace Venus_MainPages.ViewModels
         private bool m_GasFinalValveIsOpen;
         private bool m_SoftPumpValveIsOpen;
         private bool m_FastPumpValveIsOpen;
-        private bool m_PVHe1ValveIsOpen;
-        private bool m_PVHe2ValveIsOpen;
+
         private bool m_TurboPumpPumpingValveIsOpen;
         private bool m_TurboPumpPurgeValveIsOpen;
         private bool m_GuageValveIsOpen;
+        private bool m_PenningGaugeValveIsOpen;
 
         private double m_MFC1SetPoint;
         private double m_MFC2SetPoint;
@@ -102,44 +109,14 @@ namespace Venus_MainPages.ViewModels
         private double m_MFC7SetPoint;
         private double m_MFC8SetPoint;
 
-        //新增12路所需阀体 mfc等信息 在jetchamber确定后将其输入 否则指向为空 可能会导致异常
-        private bool m_PV51ValveIsOpen;
-        private bool m_PV52ValveIsOpen;
-        private bool m_PV61ValveIsOpen;
-        private bool m_PV62ValveIsOpen;
-        private bool m_PV71ValveIsOpen;
-        private bool m_PV72ValveIsOpen;
-        private bool m_PV81ValveIsOpen;
-        private bool m_PV82ValveIsOpen;
-        private bool m_PV91ValveIsOpen;
-        private bool m_PV92ValveIsOpen;
-        private bool m_PVA1ValveIsOpen;
-        private bool m_PVA2ValveIsOpen;
-        private bool m_PVB1ValveIsOpen;
-        private bool m_PVB2ValveIsOpen;
-        private bool m_PVC1ValveIsOpen;
-        private bool m_PVC2ValveIsOpen;
-        private bool m_MFC9ValveIsOpen;
-        private bool m_MFC10ValveIsOpen;
-        private bool m_MFC11ValveIsOpen;
-        private bool m_MFC12ValveIsOpen;
-        private bool m_PVHe3ValveIsOpen;
-        private bool m_HeISOValveIsOpen;
-        private bool m_PV14ValveIsOpen;
-
-        //private bool m_Valve9Visible;
-        //private bool m_Valve10Visible;
-        //private bool m_Valve11Visible;
-        //private bool m_Valve12Visible;
-
-        //private double m_MFC9SetPoint;
-        //private double m_MFC10SetPoint;
-        //private double m_MFC11SetPoint;
-        //private double m_MFC12SetPoint;
 
-        private bool m_PurgeValveIsOpen;
 
+        private bool m_PendulumValveIsOpen;
+        private bool m_PurgeValveIsOpen;
+        private bool m_N2Purge1ValveIsOpen;
         private bool m_N2Purge2ValveIsOpen;
+        private int m_TurboPumpRotationalSpeed;
+
         #endregion
 
 
@@ -153,6 +130,20 @@ namespace Venus_MainPages.ViewModels
         private bool m_firstLoadFlag = true;
         private float m_PenningPressure;
 
+        private bool m_PumpIsOpen;
+        private bool m_TurboIsOpen;
+        private bool m_IsATM;
+        private bool m_IsVAC;
+        private AITPendulumValveData m_PendulumValveData;
+
+        private float m_ChamberPressure;
+        private float m_ProcessPressure;
+        private float m_ForelinePressurePressure;
+        private AITHighTemperatureHeaterData m_HighTemperatureHeaterData;
+        ButterflyValveView butterflyValveMessageBox;
+        private DispatcherTimer timer;
+        private bool m_IsSlitDoorClosed = true;
+        private bool m_IsLidClosed = true;
         #endregion
 
         #region  属性
@@ -296,47 +287,7 @@ namespace Venus_MainPages.ViewModels
             set { SetProperty(ref m_MFC8SetPoint, value); }
         }
 
-        //public double MFC9SetPoint
-        //{
-        //    get { return m_MFC9SetPoint; }
-        //    set { SetProperty(ref m_MFC9SetPoint, value); }
-        //}
-        //public double MFC10SetPoint
-        //{
-        //    get { return m_MFC10SetPoint; }
-        //    set { SetProperty(ref m_MFC10SetPoint, value); }
-        //}
-        //public double MFC11SetPoint
-        //{
-        //    get { return m_MFC11SetPoint; }
-        //    set { SetProperty(ref m_MFC11SetPoint, value); }
-        //}
-        //public double MFC12SetPoint
-        //{
-        //    get { return m_MFC12SetPoint; }
-        //    set { SetProperty(ref m_MFC12SetPoint, value); }
-        //}
-
-        //public AITMfcData MFC9Data
-        //{
-        //    get { return m_MFC9Data; }
-        //    set { SetProperty(ref m_MFC9Data, value); }
-        //}
-        //public AITMfcData MFC10Data
-        //{
-        //    get { return m_MFC10Data; }
-        //    set { SetProperty(ref m_MFC10Data, value); }
-        //}
-        //public AITMfcData MFC11Data
-        //{
-        //    get { return m_MFC11Data; }
-        //    set { SetProperty(ref m_MFC11Data, value); }
-        //}
-        //public AITMfcData MFC12Data
-        //{
-        //    get { return m_MFC12Data; }
-        //    set { SetProperty(ref m_MFC12Data, value); }
-        //}
+        
 
         public PMState PMCurrentState
         {
@@ -488,61 +439,9 @@ namespace Venus_MainPages.ViewModels
             set { SetProperty(ref m_MFC8ValveIsOpen, value); }
         }
 
-        public bool MFC9ValveIsOpen
-        {
-            get { return m_MFC9ValveIsOpen; }
-            set { SetProperty(ref m_MFC9ValveIsOpen, value); }
-        }
-        public bool MFC10ValveIsOpen
-        {
-            get { return m_MFC10ValveIsOpen; }
-            set { SetProperty(ref m_MFC10ValveIsOpen, value); }
-        }
-        public bool MFC11ValveIsOpen
-        {
-            get { return m_MFC11ValveIsOpen; }
-            set { SetProperty(ref m_MFC11ValveIsOpen, value); }
-        }
-        public bool MFC12ValveIsOpen
-        {
-            get { return m_MFC12ValveIsOpen; }
-            set { SetProperty(ref m_MFC12ValveIsOpen, value); }
-        }
-        public bool PVHe1ValveIsOpen
-        {
-            get { return m_PVHe1ValveIsOpen; }
-            set { SetProperty(ref m_PVHe1ValveIsOpen, value); }
-        }
-        public bool PVHe2ValveIsOpen
-        {
-            get { return m_PVHe2ValveIsOpen; }
-            set { SetProperty(ref m_PVHe2ValveIsOpen, value); }
-        }
-
-        public bool PVHe3ValveIsOpen
-        {
-            get { return m_PVHe3ValveIsOpen; }
-            set { SetProperty(ref m_PVHe3ValveIsOpen, value); }
-        }
-
-        public bool HeISOValveIsOpen
-        {
-            get { return m_HeISOValveIsOpen; }
-            set { SetProperty(ref m_HeISOValveIsOpen, value); }
-        }
-        private bool m_MainPurgeValveIsOpen;
-        public bool MainPurgeValveIsOpen
-        {
-            get { return m_MainPurgeValveIsOpen; }
-            set { SetProperty(ref m_MainPurgeValveIsOpen, value); }
-        }
+       
+                
 
-        private bool m_SecondPurgeValveIsOpen;
-        public bool SecondPurgeValveIsOpen
-        {
-            get { return m_SecondPurgeValveIsOpen; }
-            set { SetProperty(ref m_SecondPurgeValveIsOpen, value); }
-        }
         public bool TurboPumpPumpingValveIsOpen
         {
             get { return m_TurboPumpPumpingValveIsOpen; }
@@ -551,7 +450,23 @@ namespace Venus_MainPages.ViewModels
         public bool TurboPumpPurgeValveIsOpen
         {
             get { return m_TurboPumpPurgeValveIsOpen; }
-            set { SetProperty(ref m_TurboPumpPurgeValveIsOpen, value); }
+            set
+            {
+                if (value != m_TurboPumpPurgeValveIsOpen)
+                {
+                    if (value == true)
+                    {
+                        var setpoint = Convert.ToInt32(QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.TurboN2FlowSetPoint"));
+
+                        InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", setpoint);
+                    }
+                    else
+                    {
+                        InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", 0);
+                    }
+                }
+                SetProperty(ref m_TurboPumpPurgeValveIsOpen, value);
+            }
         }
         public bool SoftPumpValveIsOpen
         {
@@ -619,156 +534,163 @@ namespace Venus_MainPages.ViewModels
             get { return m_MFC8IsEnable; }
             set { SetProperty(ref m_MFC8IsEnable, value); }
         }
-        //public bool Valve9Visible
-        //{
-        //    get { return m_Valve9Visible; }
-        //    set { SetProperty(ref m_Valve9Visible, value); }
-        //}
-        //public bool Valve10Visible
-        //{
-        //    get { return m_Valve10Visible; }
-        //    set { SetProperty(ref m_Valve10Visible, value); }
-        //}
-        //public bool Valve11Visible
+       
+       
+        public bool O2ValveIsOpen
+        {
+            get { return m_O2ValveIsOpen; }
+            set { SetProperty(ref m_O2ValveIsOpen, value); }
+        }
+       
+
+        //private bool m_GasIs8;
+        //private bool m_GasIs12;
+        //public bool GasIs8
         //{
-        //    get { return m_Valve11Visible; }
-        //    set { SetProperty(ref m_Valve11Visible, value); }
+        //    get { return m_GasIs8; }
+        //    set { SetProperty(ref m_GasIs8, value); }
         //}
-        //public bool Valve12Visible
+        //public bool GasIs12
         //{
-        //    get { return m_Valve12Visible; }
-        //    set { SetProperty(ref m_Valve12Visible, value); }
+        //    get { return m_GasIs12; }
+        //    set { SetProperty(ref m_GasIs12, value); }
         //}
-        public bool PV51ValveIsOpen
-        {
-            get { return m_PV51ValveIsOpen; }
-            set { SetProperty(ref m_PV51ValveIsOpen, value); }
-        }
-        public bool PV52ValveIsOpen
+
+
+
+        public PressureType PressureType
         {
-            get { return m_PV52ValveIsOpen; }
-            set { SetProperty(ref m_PV52ValveIsOpen, value); }
+            get { return m_PressureType; }
+            set { SetProperty(ref m_PressureType, value); }
         }
-        public bool PV61ValveIsOpen
+        public bool N2Purge1ValveIsOpen
         {
-            get { return m_PV61ValveIsOpen; }
-            set { SetProperty(ref m_PV61ValveIsOpen, value); }
+            get { return m_N2Purge1ValveIsOpen; }
+            set { SetProperty(ref m_N2Purge1ValveIsOpen, value); }
         }
-        public bool PV62ValveIsOpen
+        public bool N2Purge2ValveIsOpen
         {
-            get { return m_PV62ValveIsOpen; }
-            set { SetProperty(ref m_PV62ValveIsOpen, value); }
+            get { return m_N2Purge2ValveIsOpen; }
+            set { SetProperty(ref m_N2Purge2ValveIsOpen, value); }
         }
-        public bool PV71ValveIsOpen
+        public bool PurgeValveIsOpen
         {
-            get { return m_PV71ValveIsOpen; }
-            set { SetProperty(ref m_PV71ValveIsOpen, value); }
+            get { return m_PurgeValveIsOpen; }
+            set { SetProperty(ref m_PurgeValveIsOpen, value); }
         }
-        public bool PV72ValveIsOpen
+        public float PenningPressure
         {
-            get { return m_PV72ValveIsOpen; }
-            set { SetProperty(ref m_PV72ValveIsOpen, value); }
+            get { return m_PenningPressure; }
+            set
+            {
+                SetProperty(ref m_PenningPressure, value);
+            }
         }
-        public bool PV81ValveIsOpen
+        public bool IsATM
         {
-            get { return m_PV81ValveIsOpen; }
-            set { SetProperty(ref m_PV81ValveIsOpen, value); }
+            get { return m_IsATM; }
+            set { SetProperty(ref m_IsATM, value); }
         }
-        public bool O2ValveIsOpen
+
+        public bool IsVAC
         {
-            get { return m_O2ValveIsOpen; }
-            set { SetProperty(ref m_O2ValveIsOpen, value); }
+            get { return m_IsVAC; }
+            set { SetProperty(ref m_IsVAC, value); }
         }
-        public bool PV82ValveIsOpen
+        public bool PumpIsOpen
         {
-            get { return m_PV82ValveIsOpen; }
-            set { SetProperty(ref m_PV82ValveIsOpen, value); }
+            get { return m_PumpIsOpen; }
+            set { SetProperty(ref m_PumpIsOpen, value); }
         }
-        public bool PV91ValveIsOpen
+        public bool TurboIsOpen
         {
-            get { return m_PV91ValveIsOpen; }
-            set { SetProperty(ref m_PV91ValveIsOpen, value); }
+            get { return m_TurboIsOpen; }
+            set { SetProperty(ref m_TurboIsOpen, value); }
         }
-        public bool PV92ValveIsOpen
+        public bool PenningGaugeValveIsOpen
         {
-            get { return m_PV92ValveIsOpen; }
-            set { SetProperty(ref m_PV92ValveIsOpen, value); }
+            get { return m_PenningGaugeValveIsOpen; }
+            set { SetProperty(ref m_PenningGaugeValveIsOpen, value); }
         }
-        public bool PVA1ValveIsOpen
+        public AITPendulumValveData PendulumValveData
         {
-            get { return m_PVA1ValveIsOpen; }
-            set { SetProperty(ref m_PVA1ValveIsOpen, value); }
+            get { return m_PendulumValveData; }
+            set
+            {
+                SetProperty(ref m_PendulumValveData, value);
+            }
         }
-        public bool PVA2ValveIsOpen
+        public float ChamberPressure
         {
-            get { return m_PVA2ValveIsOpen; }
-            set { SetProperty(ref m_PVA2ValveIsOpen, value); }
+            get { return m_ChamberPressure; }
+            set
+            {
+                SetProperty(ref m_ChamberPressure, value);
+            }
         }
-        public bool PVB1ValveIsOpen
+        public float ProcessPressure
         {
-            get { return m_PVB1ValveIsOpen; }
-            set { SetProperty(ref m_PVB1ValveIsOpen, value); }
+            get { return m_ProcessPressure; }
+            set
+            {
+                SetProperty(ref m_ProcessPressure, value);
+            }
         }
-        public bool PVB2ValveIsOpen
+        public float ForelinePressure
         {
-            get { return m_PVB2ValveIsOpen; }
-            set { SetProperty(ref m_PVB2ValveIsOpen, value); }
+            get { return m_ForelinePressurePressure; }
+            set
+            {
+                SetProperty(ref m_ForelinePressurePressure, value);
+            }
         }
-        public bool PVC1ValveIsOpen
+        public int TurboPumpRotationalSpeed
         {
-            get { return m_PVC1ValveIsOpen; }
-            set { SetProperty(ref m_PVC1ValveIsOpen, value); }
+            get { return m_TurboPumpRotationalSpeed; }
+            set
+            {
+                SetProperty(ref m_TurboPumpRotationalSpeed, value);
+            }
         }
-        public bool PVC2ValveIsOpen
+        public AITHighTemperatureHeaterData HighTemperatureHeaterData
         {
-            get { return m_PVC2ValveIsOpen; }
-            set { SetProperty(ref m_PVC2ValveIsOpen, value); }
+            get { return m_HighTemperatureHeaterData; }
+            set { SetProperty(ref m_HighTemperatureHeaterData, value); }
         }
-
-        public bool PV14ValveIsOpen
+        public bool IsLidClosed
         {
-            get { return m_PV14ValveIsOpen; }
-            set { SetProperty(ref m_PV14ValveIsOpen, value); }
+            get { return m_IsLidClosed; }
+            set
+            {
+                SetProperty(ref m_IsLidClosed, value);
+            }
         }
 
-        //private bool m_GasIs8;
-        //private bool m_GasIs12;
-        //public bool GasIs8
-        //{
-        //    get { return m_GasIs8; }
-        //    set { SetProperty(ref m_GasIs8, value); }
-        //}
-        //public bool GasIs12
-        //{
-        //    get { return m_GasIs12; }
-        //    set { SetProperty(ref m_GasIs12, value); }
-        //}
-
-
-
-        public PressureType PressureType
+        public bool IsSlitDoorClosed
         {
-            get { return m_PressureType; }
-            set { SetProperty(ref m_PressureType, value); }
+            get { return m_IsSlitDoorClosed; }
+            set
+            {
+                SetProperty(ref m_IsSlitDoorClosed, value);
+            }
         }
-
-        public bool N2Purge2ValveIsOpen
+        public string ModuleName
         {
-            get { return m_N2Purge2ValveIsOpen; }
-            set { SetProperty(ref m_N2Purge2ValveIsOpen, value); }
+            get { return m_ModuleName; }
+            set
+            {
+                SetProperty(ref m_ModuleName, value);
+            }
         }
-        public bool PurgeValveIsOpen
+        public WaferInfo PMWafer
         {
-            get { return m_PurgeValveIsOpen; }
-            set { SetProperty(ref m_PurgeValveIsOpen, value); }
+            get { return m_PMWafer; }
+            set { SetProperty(ref m_PMWafer, value); }
         }
-        public float PenningPressure
+        public bool IsHasWafer
         {
-            get { return m_PenningPressure; }
-            set
-            {
-                SetProperty(ref m_PenningPressure, value);
-            }
+            get { return m_IsHasWafer; }
+            set { SetProperty(ref m_IsHasWafer, value); }
         }
         #endregion
 
@@ -805,8 +727,33 @@ namespace Venus_MainPages.ViewModels
         public DelegateCommand GasCommand =>
             _GasCommand ?? (_GasCommand = new DelegateCommand(OnGas));
 
+        private DelegateCommand _OpenButterflyValveViewCommand;
+        public DelegateCommand OpenButterflyValveViewCommand =>
+            _OpenButterflyValveViewCommand ?? (_OpenButterflyValveViewCommand = new DelegateCommand(OnOpenButterflyValveView));
 
-        private DispatcherTimer timer;
+        private DelegateCommand _OpenPumpCommand;
+        public DelegateCommand OpenPumpCommand =>
+            _OpenPumpCommand ?? (_OpenPumpCommand = new DelegateCommand(OnOpenPump));
+
+        private DelegateCommand _ClosePumpCommand;
+        public DelegateCommand ClosePumpCommand =>
+            _ClosePumpCommand ?? (_ClosePumpCommand = new DelegateCommand(OnClosePump));
+
+        private DelegateCommand _OpenTurboPumpCommand;
+        public DelegateCommand OpenTurboPumpCommand =>
+            _OpenTurboPumpCommand ?? (_OpenTurboPumpCommand = new DelegateCommand(OnOpenTurboPump));
+
+        private DelegateCommand _CloseTurboPumpCommand;
+        public DelegateCommand CloseTurboPumpCommand =>
+            _CloseTurboPumpCommand ?? (_CloseTurboPumpCommand = new DelegateCommand(OnCloseTurboPump));
+
+        private DelegateCommand _OpenPendulumValveCommand;
+        public DelegateCommand OpenPendulumValveCommand =>
+            _OpenPendulumValveCommand ?? (_OpenPendulumValveCommand = new DelegateCommand(OnOpenPendulumValve));
+
+        private DelegateCommand _ClosePendulumValveCommand;
+        public DelegateCommand ClosePendulumValveCommand =>
+            _ClosePendulumValveCommand ?? (_ClosePendulumValveCommand = new DelegateCommand(OnClosePendulumValve));
         #endregion
 
         #region 构造函数
@@ -943,8 +890,7 @@ namespace Venus_MainPages.ViewModels
             if (m_firstLoadFlag == true)
             {
 
-                //GasIs8 = ChamberType != JetChamber.VenusSE && ChamberType != JetChamber.VenusDE;
-                //GasIs12 = ChamberType == JetChamber.VenusSE || ChamberType == JetChamber.VenusDE;
+               
                 var AllLeakCheckDa = QueryDataClient.Instance.Service.GetPMLeakCheckResultWithBasePressure(ModuleName);
                 if (AllLeakCheckDa != null)
                 {
@@ -952,32 +898,79 @@ namespace Venus_MainPages.ViewModels
 
                 }
 
-                //MFC7IsEnable = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas7.Enable");
-                //MFC8IsEnable = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas8.Enable");
-                //if (GasIs12)
-                //{
-                //    Valve9Visible = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas9.Enable");
-                //    Valve10Visible = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas10.Enable");
-                //    Valve11Visible = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas11.Enable");
-                //    Valve12Visible = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas12.Enable");
-                //}
+               
                 var m_ChamberType = (JetChamber)Enum.Parse(typeof(JetChamber), QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.ChamberType").ToString());
-                //if (m_ChamberType != JetChamber.Kepler2200A && m_ChamberType != JetChamber.Kepler2200B)
-                //{
-                //    MFC7IsEnable = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas7.Enable");
-                //    MFC8IsEnable = (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas8.Enable");
-                //}
+              
                 if (m_ChamberType == JetChamber.Kepler2200A || m_ChamberType == JetChamber.Kepler2200B)
                 {
                     PressureType = PressureType.Pa;
                 }
                 m_firstLoadFlag = false;
-                //add12DataKeys();
+               
+
+            }
+
+
+        }
+        private void OnOpenButterflyValveView()
+        {
+            var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is Window) as Window;
+            if (butterflyValveMessageBox == null || butterflyValveMessageBox.IsVisible == false)
+            {
+                butterflyValveMessageBox = new ButterflyValveView(ModuleName.ToString());
+                butterflyValveMessageBox.WindowStartupLocation = WindowStartupLocation.Manual;
+                butterflyValveMessageBox.Left = 700;
+                butterflyValveMessageBox.Top = 600;
+                butterflyValveMessageBox.Show();
+                butterflyValveMessageBox.Owner = _mainWindow;
+            }
+        }
+        private void OnOpenPump()
+        {
+            if (PMCurrentState == PMState.LaunchingPump)
+            {
+                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
+                return;
+            }
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartPump");
+            LOG.Info($"{ModuleName},打开Pump");
+
+        }
+        private void OnClosePump()
+        {
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ClosePump");
+            LOG.Info($"{ModuleName},关闭Pump");
 
+        }
+        private void OnOpenTurboPump()
+        {
+            if (PMCurrentState == PMState.LaunchingTurboPump)
+            {
+                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
+                return;
             }
 
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartTurboPump");
+            LOG.Info($"{ModuleName},打开分子泵");
 
         }
+
+        private void OnCloseTurboPump()
+        {
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.CloseTurboPump");
+            LOG.Info($"{ModuleName},关闭分子泵");
+        }
+        private void OnOpenPendulumValve()
+        {
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", true);
+            LOG.Info($"{ModuleName},打开钟摆阀");
+
+        }
+        private void OnClosePendulumValve()
+        {
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", false);
+            LOG.Info($"{ModuleName},关闭钟摆阀");
+        }
         #endregion
 
         #region 私有方法
@@ -1026,82 +1019,49 @@ namespace Venus_MainPages.ViewModels
             MFC8Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas8");
 
             MFCN2Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcN2"];
-            N2Purge2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2Purge2.IsOpen");
+            N2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2.IsOpen");
+            O2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveO2.IsOpen");
+
+            SoftPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveSoftPump.IsOpen");
+            FastPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveFastPump.IsOpen");
+            GuageValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveGuage.IsOpen");
+            PenningGaugeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePenningGauge.IsOpen");
+
+            //PVHe1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe1.IsOpen");
+            //PVHe2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe2.IsOpen");
+            PVN21ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN21.IsOpen");
+            PVN22ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN22.IsOpen");
+            TurboPumpPumpingValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPumping.IsOpen");
+            TurboPumpPurgeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPurge.IsOpen");
             PurgeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePurge.IsOpen");
-            PenningPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.PenningPressure");
 
-            //if (ChamberType == JetChamber.VenusSE)
-            //{
-            //    MFC9Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas9"];
-            //    MFC10Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas10"];
-            //    MFC11Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas11"];
-            //    MFC12Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas12"];
-            //    //12 valve
-            //    PV51ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV51.IsOpen"];
-            //    PV52ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV52.IsOpen"];
-            //    PV61ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV61.IsOpen"];
-            //    PV62ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV62.IsOpen"];
-            //    PV71ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV71.IsOpen"];
-            //    PV72ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV72.IsOpen"];
-            //    PV81ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV81.IsOpen"];
-            //    PV82ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV82.IsOpen"];
-            //    PV91ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV91.IsOpen"];
-            //    PV92ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV92.IsOpen"];
-            //    PVA1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVA1.IsOpen"];
-            //    PVA2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVA2.IsOpen"];
-            //    PVB1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVB1.IsOpen"];
-            //    PVB2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVB2.IsOpen"];
-            //    PVC1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVC1.IsOpen"];
-            //    PVC2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVC2.IsOpen"];
-            //    //12 mfc
-            //    MFC9ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc9.IsOpen"];
-            //    MFC10ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc10.IsOpen"];
-            //    MFC11ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc11.IsOpen"];
-            //    MFC12ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc12.IsOpen"];
-            //    //purge
-            //    MainPurgeValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMainPurge.IsOpen"];
-            //    SecondPurgeValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveSecondPurge.IsOpen"];
-            //    PV14ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV14.IsOpen"];
-            //}
-            //else if (ChamberType == JetChamber.VenusDE)
-            //{
-            //    MFC9Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas9"];
-            //    MFC10Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas10"];
-            //    MFC11Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas11"];
-            //    MFC12Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas12"];
-            //    //12 valve
-            //    PV51ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV51.IsOpen"];
-            //    PV52ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV52.IsOpen"];
-            //    PV61ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV61.IsOpen"];
-            //    PV62ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV62.IsOpen"];
-            //    PV71ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV71.IsOpen"];
-            //    PV72ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV72.IsOpen"];
-            //    PV81ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV81.IsOpen"];
-            //    PV82ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV82.IsOpen"];
-            //    PV91ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV91.IsOpen"];
-            //    PV92ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV92.IsOpen"];
-            //    PVA1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVA1.IsOpen"];
-            //    PVA2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVA2.IsOpen"];
-            //    PVB1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVB1.IsOpen"];
-            //    PVB2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVB2.IsOpen"];
-            //    PVC1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVC1.IsOpen"];
-            //    PVC2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVC2.IsOpen"];
-            //    //12 mfc
-            //    MFC9ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc9.IsOpen"];
-            //    MFC10ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc10.IsOpen"];
-            //    MFC11ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc11.IsOpen"];
-
-            //    //purge
-            //    MainPurgeValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMainPurge.IsOpen"];
-            //    SecondPurgeValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveSecondPurge.IsOpen"];
-            //}
+            N2Purge1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2Purge1.IsOpen");
+            N2Purge2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2Purge2.IsOpen");
+
+            IsATM = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsATM");
+            IsVAC = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsVAC");
+            PendulumValveData = CommonFunction.GetValue<AITPendulumValveData>(RtDataValues, $"{ModuleName}.{VenusDevice.PendulumValve}.DeviceData");
+
 
+            PumpIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.PumpIsRunning");
+            TurboIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.TurboPumpIsRunning");
+            TurboPumpRotationalSpeed = Convert.ToInt32(RtDataValues[$"{ModuleName}.TurboPumpRotationalSpeed"].ToString());
 
 
             PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
 
             GasIsFlowing = (PMState)RtDataValues[$"{ModuleName}.FsmState"] == PMState.GasFlowing;
             IsAutoMode = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsOnline");
+
+            HighTemperatureHeaterData = CommonFunction.GetValue<AITHighTemperatureHeaterData>(RtDataValues, $"{ModuleName}.HighTemperatureHeater.DeviceData");
+
+            ChamberPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ChamberPressure");
+            ProcessPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ProcessPressure");
+            ForelinePressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ForelinePressure");
+            PenningPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.PenningPressure");
+
+            IsSlitDoorClosed = CommonFunction.GetValue<bool>(RtDataValues, $"TM.{ModuleName}SlitDoor.IsClosed");
+            IsLidClosed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsLidClosed");
             if ((PMState)RtDataValues[$"{ModuleName}.FsmState"] == PMState.GasBoxLeakCheck)
             {
                 CurrentStep = RtDataValues[$"{ModuleName}.GasLeakCheck.Step"]?.ToString();
@@ -1121,6 +1081,9 @@ namespace Venus_MainPages.ViewModels
                 stopwatch.Stop();
                 StepTime = null;
             }
+            PMWafer = ModuleManager.ModuleInfos[$"{ModuleName}"].WaferManager.Wafers[0];
+            IsHasWafer = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.HasWafer");
+
         }
         public void addDataKeys()
         {
@@ -1178,86 +1141,32 @@ namespace Venus_MainPages.ViewModels
             m_RtDataKeys.Add($"{ModuleName}.IsOnline");
             m_RtDataKeys.Add($"{ModuleName}.ValveN2Purge2.IsOpen");
             m_RtDataKeys.Add($"{ModuleName}.ValvePurge.IsOpen");
+         
+
+            m_RtDataKeys.Add($"{ModuleName}.IsATM");
+            m_RtDataKeys.Add($"{ModuleName}.IsVAC");
+
+            m_RtDataKeys.Add($"{ModuleName}.ValveN2Purge1.IsOpen");
+            m_RtDataKeys.Add($"{ModuleName}.ValveN2Purge2.IsOpen");
+
+            m_RtDataKeys.Add($"{ModuleName}.TurboPumpIsRunning");
+            m_RtDataKeys.Add($"{ModuleName}.PumpIsRunning");
+            m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.PendulumValve}.DeviceData");
+
+            m_RtDataKeys.Add($"{ModuleName}.ForelinePressure");
+            m_RtDataKeys.Add($"{ModuleName}.ChamberPressure");
+            m_RtDataKeys.Add($"{ModuleName}.ProcessPressure");
             m_RtDataKeys.Add($"{ModuleName}.PenningPressure");
+            m_RtDataKeys.Add($"{ModuleName}.TurboPumpRotationalSpeed");
+            m_RtDataKeys.Add($"{ModuleName}.HighTemperatureHeater.DeviceData");
 
+            m_RtDataKeys.Add($"TM.{ModuleName}SlitDoor.IsClosed");
+            m_RtDataKeys.Add($"{ModuleName}.IsLidClosed");
+
+            m_RtDataKeys.Add($"{ModuleName}.HasWafer");
 
         }
 
-        //public void add12DataKeys()
-        //{
-        //    if (ChamberType == JetChamber.VenusSE)
-        //    {
-        //        //12 valve
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV14.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV51.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV52.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV61.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV62.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV71.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV72.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV81.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV82.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV91.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV92.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVA1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVA2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVB1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVB2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVC1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVC2.IsOpen");
-        //        //12 mfc
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc9.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc10.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc11.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc12.IsOpen");
-        //        //purge
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMainPurge.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveSecondPurge.IsOpen");
-        //    }
-        //    else if (ChamberType == JetChamber.VenusDE)
-        //    {
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVN21.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVN22.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV11.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV12.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV21.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV22.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV31.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV32.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV41.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV42.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV51.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV52.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV61.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV62.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV71.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV72.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV81.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV82.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV91.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePV92.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVA1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVA2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVB1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVB2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVC1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValvePVC2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc1.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc2.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc3.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc4.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc5.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc6.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc7.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc8.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc9.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc10.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMfc11.IsOpen");
-        //        //purge
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveMainPurge.IsOpen");
-        //        m_RtDataKeys.Add($"{ModuleName}.ValveSecondPurge.IsOpen");
-        //    }
-        //}
         public void EnterExitView(bool isEnter)
         {
             if (isEnter)

+ 2 - 16
Venus/Venus_MainPages/ViewModels/OverKepler2200AViewModel.cs

@@ -51,8 +51,7 @@ namespace Venus_MainPages.ViewModels
         private bool m_GasFinalValveIsOpen;
         private bool m_SoftPumpValveIsOpen;
         private bool m_FastPumpValveIsOpen;
-        //private bool m_PVHe1ValveIsOpen;
-        //private bool m_PVHe2ValveIsOpen;
+
         private bool m_TurboPumpPumpingValveIsOpen;
         private bool m_TurboPumpPurgeValveIsOpen;
         private bool m_GuageValveIsOpen;
@@ -1477,20 +1476,7 @@ namespace Venus_MainPages.ViewModels
             LOG.Info($"{ModuleName},关闭钟摆阀");
         }
 
-        //private void OnLidUpDown(object upDown)
-        //{
-        //    if (upDown.ToString() == "Up")
-        //    {
-        //        InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Lid}.{AITCylinderOperation.Open}");
-        //        LOG.Info($"{ModuleName},打开Lid");
-
-        //    }
-        //    else
-        //    {
-        //        InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Lid}.{AITCylinderOperation.Close}");
-        //        LOG.Info($"{ModuleName},关闭Lid");
-        //    }
-        //}
+       
         private void OnSetSRf()
         {
             if (SRFData.IsRfOn == true)

+ 145 - 31
Venus/Venus_MainPages/ViewModels/OverKepler2300ViewModel.cs

@@ -75,6 +75,14 @@ namespace Venus_MainPages.ViewModels
         private double m_MFC6SetPoint;
         private double m_MFC7SetPoint;
         private double m_MFC8SetPoint;
+        private double m_MFC9SetPoint;
+        private double m_MFC10SetPoint;
+        private double m_MFC11SetPoint;
+        private double m_MFC12SetPoint;
+        private double m_MFC13SetPoint;
+        private double m_MFC14SetPoint;
+        private double m_MFC15SetPoint;
+        private double m_MFC16SetPoint;
         private double m_N2SetPoint;
 
 
@@ -88,6 +96,17 @@ namespace Venus_MainPages.ViewModels
         private AITMfcData m_MFC6Data;
         private AITMfcData m_MFC7Data;
         private AITMfcData m_MFC8Data;
+        private AITMfcData m_MFC9Data;
+        private AITMfcData m_MFC10Data;
+        private AITMfcData m_MFC11Data;
+        private AITMfcData m_MFC12Data;
+        private AITMfcData m_MFC13Data;
+        private AITMfcData m_MFC14Data;
+        private AITMfcData m_MFC15Data;
+        private AITMfcData m_MFC16Data;
+
+
+
         private AITMfcData m_MFCHeData;
         private AITMfcData m_MFCN2Data;
 
@@ -542,6 +561,46 @@ namespace Venus_MainPages.ViewModels
             get { return m_MFC8SetPoint; }
             set { SetProperty(ref m_MFC8SetPoint, value); }
         }
+        public double MFC9SetPoint
+        {
+            get { return m_MFC9SetPoint; }
+            set { SetProperty(ref m_MFC9SetPoint, value); }
+        }
+        public double MFC10SetPoint
+        {
+            get { return m_MFC10SetPoint; }
+            set { SetProperty(ref m_MFC10SetPoint, value); }
+        }
+        public double MFC11SetPoint
+        {
+            get { return m_MFC11SetPoint; }
+            set { SetProperty(ref m_MFC11SetPoint, value); }
+        }
+        public double MFC12SetPoint
+        {
+            get { return m_MFC12SetPoint; }
+            set { SetProperty(ref m_MFC12SetPoint, value); }
+        }
+        public double MFC13SetPoint
+        {
+            get { return m_MFC13SetPoint; }
+            set { SetProperty(ref m_MFC13SetPoint, value); }
+        }
+        public double MFC14SetPoint
+        {
+            get { return m_MFC14SetPoint; }
+            set { SetProperty(ref m_MFC14SetPoint, value); }
+        }
+        public double MFC15SetPoint
+        {
+            get { return m_MFC15SetPoint; }
+            set { SetProperty(ref m_MFC15SetPoint, value); }
+        }
+        public double MFC16SetPoint
+        {
+            get { return m_MFC16SetPoint; }
+            set { SetProperty(ref m_MFC16SetPoint, value); }
+        }
         public double N2SetPoint
         {
             get { return m_N2SetPoint; }
@@ -599,6 +658,49 @@ namespace Venus_MainPages.ViewModels
             get { return m_MFC8Data; }
             set { SetProperty(ref m_MFC8Data, value); }
         }
+
+        public AITMfcData MFC9Data
+        {
+            get { return m_MFC9Data; }
+            set { SetProperty(ref m_MFC9Data, value); }
+        }
+
+        public AITMfcData MFC10Data
+        {
+            get { return m_MFC10Data; }
+            set { SetProperty(ref m_MFC10Data, value); }
+        }
+
+        public AITMfcData MFC11Data
+        {
+            get { return m_MFC11Data; }
+            set { SetProperty(ref m_MFC11Data, value); }
+        }
+        public AITMfcData MFC12Data
+        {
+            get { return m_MFC12Data; }
+            set { SetProperty(ref m_MFC12Data, value); }
+        }
+        public AITMfcData MFC13Data
+        {
+            get { return m_MFC13Data; }
+            set { SetProperty(ref m_MFC13Data, value); }
+        }
+        public AITMfcData MFC14Data
+        {
+            get { return m_MFC14Data; }
+            set { SetProperty(ref m_MFC14Data, value); }
+        }
+        public AITMfcData MFC15Data
+        {
+            get { return m_MFC15Data; }
+            set { SetProperty(ref m_MFC15Data, value); }
+        }
+        public AITMfcData MFC16Data
+        {
+            get { return m_MFC16Data; }
+            set { SetProperty(ref m_MFC16Data, value); }
+        }
         public AITMfcData MFCHeData
         {
             get { return m_MFCHeData; }
@@ -1162,37 +1264,29 @@ namespace Venus_MainPages.ViewModels
         {
             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Home");
         }
-        private async void OnGas()
-        {
-            await Task.Run(async () =>
-            {
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas1.SetPoint", MFC1SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas2.SetPoint", MFC2SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas3.SetPoint", MFC3SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas4.SetPoint", MFC4SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas5.SetPoint", MFC5SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
-                await Task.Delay(1000);
-                object[] mfc = new object[8];
-                string[] mfcSetPoint = new string[8];
-                mfc[0] = MFC1Data.SetPoint;
-                mfc[1] = MFC2Data.SetPoint;
-                mfc[2] = MFC3Data.SetPoint;
-                mfc[3] = MFC4Data.SetPoint;
-                mfc[4] = MFC5Data.SetPoint;
-                mfc[5] = MFC6Data.SetPoint;
-                mfc[6] = MFC7Data.SetPoint;
-                mfc[7] = MFC8Data.SetPoint;
-
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
-                string operation = GasIsFlowing ? "关闭" : "打开";
-
-                LOG.Info($"{ModuleName},{operation}GasFlow({mfc[0]},{mfc[1]},{mfc[2]},{mfc[3]},{mfc[4]},{mfc[5]},{mfc[6]},{mfc[7]})");
-            });
-
-
+        private  void OnGas()
+        {
+            object[] mfc = new object[16];
+            mfc[0] =  MFC1SetPoint;
+            mfc[1] =  MFC2SetPoint;
+            mfc[2] =  MFC3SetPoint;
+            mfc[3] =  MFC4SetPoint;
+            mfc[4] =  MFC5SetPoint;
+            mfc[5] =  MFC6SetPoint;
+            mfc[6] =  MFC7SetPoint;
+            mfc[7] =  MFC8SetPoint;
+            mfc[8] =  MFC9SetPoint;
+            mfc[9] =  MFC10SetPoint;
+            mfc[10] = MFC11SetPoint;
+            mfc[11] = MFC12SetPoint;
+            mfc[12] = MFC13SetPoint;
+            mfc[13] = MFC14SetPoint;
+            mfc[14] = MFC15SetPoint;
+            mfc[15] = MFC16SetPoint;
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
+            string operation = GasIsFlowing ? "关闭" : "打开";
+
+            LOG.Info($"{ModuleName},{operation}GasFlow({mfc[0]},{mfc[1]},{mfc[2]},{mfc[3]},{mfc[4]},{mfc[5]},{mfc[6]},{mfc[7]},{mfc[8]},{mfc[9]},{mfc[10]},{mfc[11]},{mfc[12]},{mfc[13]},{mfc[14]},{mfc[15]}");
         }
         private void OnHe()
         {
@@ -1619,6 +1713,8 @@ namespace Venus_MainPages.ViewModels
             MFC6ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc6.IsOpen");
             MFC7ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc7.IsOpen");
             MFC8ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc8.IsOpen");
+
+
             N2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2.IsOpen");
             SoftPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveSoftPump.IsOpen");
             FastPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveFastPump.IsOpen");
@@ -1658,6 +1754,15 @@ namespace Venus_MainPages.ViewModels
             MFC6Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas6");
             MFC7Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas7");
             MFC8Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas8");
+            MFC9Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas9");
+            MFC10Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas10");
+            MFC11Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas11");
+            MFC12Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas12");
+            MFC13Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas13");
+            MFC14Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas14");
+            MFC15Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas15");
+            MFC16Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas16");
+
             MFCHeData = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcHe");
             MFCN2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcN2");
 
@@ -1757,6 +1862,15 @@ namespace Venus_MainPages.ViewModels
             m_RtDataKeys.Add($"{ModuleName}.MfcGas6");
             m_RtDataKeys.Add($"{ModuleName}.MfcGas7");
             m_RtDataKeys.Add($"{ModuleName}.MfcGas8");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas9");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas10");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas11");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas12");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas13");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas14");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas15");
+            m_RtDataKeys.Add($"{ModuleName}.MfcGas16");
+
             m_RtDataKeys.Add($"{ModuleName}.MfcHe");
             m_RtDataKeys.Add($"{ModuleName}.MfcN2");
 

+ 1 - 1
Venus/Venus_MainPages/Views/GasLeakCheckView.xaml

@@ -1,4 +1,4 @@
-<UserControl x:Class="Venus_MainPages.Views.GasLeakCheckView"
+<UserControl x:Class="Venus_MainPages.Views.Kepler2300GasLeakCheckView"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 

+ 4 - 4
Venus/Venus_MainPages/Views/GasLeakCheckView.xaml.cs

@@ -19,16 +19,16 @@ namespace Venus_MainPages.Views
     /// <summary>
     /// GasLeakCheckView.xaml 的交互逻辑
     /// </summary>
-    public partial class GasLeakCheckView : UserControl
+    public partial class Kepler2300GasLeakCheckView : UserControl
     {
-        public GasLeakCheckView()
+        public Kepler2300GasLeakCheckView()
         {
             InitializeComponent();
         }
         public void Init(string systemName)
         {
-            (this.DataContext as GasLeakCheckViewModel).ModuleName = systemName;
-            (this.DataContext as GasLeakCheckViewModel).addDataKeys();
+            (this.DataContext as Kepler2300GasLeakCheckViewModel).ModuleName = systemName;
+            (this.DataContext as Kepler2300GasLeakCheckViewModel).addDataKeys();
         }
     }
 }

File diff suppressed because it is too large
+ 736 - 485
Venus/Venus_MainPages/Views/KeplerGasLeakCheckView.xaml


+ 2 - 2
Venus/Venus_MainPages/Views/KeplerPartialPressureView.xaml

@@ -155,8 +155,8 @@
                 <TextBlock Text="{Binding ReferenceLineSeries[8]}"  Grid.Row="10" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                 <TextBlock Text="{Binding ReferenceLineSeries[9]}" Grid.Row="11" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
             </Grid>
-            <customControls:PathButton Content="Save"   Canvas.Left="10"  Canvas.Top="700"  Width="100"  Height="26" Command="{Binding SaveCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
-            <customControls:PathButton Content="Compare"   Canvas.Left="310" Canvas.Top="700"  Width="100"  Height="26" Command="{Binding LoadReferenceCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
+            <customControls:PathButton Content="Save"      Canvas.Left="10"  Canvas.Top="700"  Width="110"  Height="26" Command="{Binding SaveCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
+            <customControls:PathButton Content="Compare"   Canvas.Left="300" Canvas.Top="700"  Width="110"  Height="26" Command="{Binding LoadReferenceCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
 
         </Canvas>
         <Grid Grid.Column="2">

+ 4 - 3
Venus/Venus_MainPages/Views/OverKepler2200AView.xaml

@@ -24,7 +24,7 @@
             <GradientStop Color="Gray" Offset="0.1" />
             <GradientStop Color="White" Offset="1" />
         </LinearGradientBrush>
-        <converters:ToBoolMultiValueConverter  x:Key="toBoolMultiValueConverter"/>
+        <!--<converters:ToBoolMultiValueConverter  x:Key="toBoolMultiValueConverter"/>
         <converters:ToBoolMultiValueConverter2 x:Key="toBoolMultiValueConverter2"/>
         <converters:ToBoolMultiValueConverter3 x:Key="toBoolMultiValueConverter3"/>
         <converters:ToBoolMultiValueConverter4 x:Key="toBoolMultiValueConverter4"/>
@@ -41,8 +41,9 @@
         <converters:BoolToColor6 x:Key="boolToColor6"/>
 
         <converters:BoolToBool   x:Key="BoolToBool"/>
+        <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>-->
+
         <converters2:HeaterToStringConverter x:Key="HeaterToStringConverter"/>
-        <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
     </UserControl.Resources>
 
     <Grid>
@@ -1340,7 +1341,7 @@
                 <TextBlock Grid.Row="14"  Grid.Column="1" Text="{Binding MFC8Data.FeedBack,StringFormat='F1'}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="15" Grid.Column="1"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterPositionFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,5,0,0"/>
                 <TextBlock Grid.Row="16"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterTemperatureFeedBack,StringFormat='F1'}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
 
                 <TextBlock Grid.Row="1"   Grid.Column="2"  Text="{Binding SRFData.PowerSetPoint}"          Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="2"   Grid.Column="2"  Text="N/A"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>

+ 11 - 5
Venus/Venus_MainPages/Views/OverKepler2200BView.xaml

@@ -24,7 +24,7 @@
             <GradientStop Color="Gray" Offset="0.1" />
             <GradientStop Color="White" Offset="1" />
         </LinearGradientBrush>
-        <converters:ToBoolMultiValueConverter  x:Key="toBoolMultiValueConverter"/>
+        <!--<converters:ToBoolMultiValueConverter  x:Key="toBoolMultiValueConverter"/>
         <converters:ToBoolMultiValueConverter2 x:Key="toBoolMultiValueConverter2"/>
         <converters:ToBoolMultiValueConverter3 x:Key="toBoolMultiValueConverter3"/>
         <converters:ToBoolMultiValueConverter4 x:Key="toBoolMultiValueConverter4"/>
@@ -42,8 +42,9 @@
         <converters:BoolToColor6 x:Key="boolToColor6"/>
 
         <converters:BoolToBool   x:Key="BoolToBool"/>
+        <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>-->
+
         <converters2:HeaterToStringConverter x:Key="HeaterToStringConverter"/>
-        <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
     </UserControl.Resources>
 
     <Grid>
@@ -1201,7 +1202,7 @@
 
 
 
-            <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"  unity:GridOptions.LineThickness="1" >
+            <Grid  Width="500" Height="472" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"  unity:GridOptions.LineThickness="1" >
                 <Grid.Resources>
                     <Style TargetType="TextBlock">
                         <Setter Property="FontSize" Value="14"/>
@@ -1226,6 +1227,7 @@
                     <RowDefinition/>
                     <RowDefinition/>
                     <RowDefinition/>
+                    <RowDefinition/>
 
 
                 </Grid.RowDefinitions>
@@ -1315,8 +1317,9 @@
                     </TextBlock.Text>
                 </TextBlock>
                 <TextBlock Grid.Row="15"   Text="Heater Position"                   Background="#F5F7FA"    Padding="10,5,0,0"/>
-                <TextBlock Grid.Row="16"   Text="Heater Temp(°C)"                        Background="#FFFFFF"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="16"   Text="Heater Temperature"                        Background="#FFFFFF"    Padding="10,5,0,0" />
                 <TextBlock Grid.Row="17"   Text="Heater Ratio"                       Background="#F5F7FA"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="18"   Text="RFBox C1%"                       Background="#FFFFFF"    Padding="10,5,0,0" />
 
 
 
@@ -1337,7 +1340,8 @@
                 <TextBlock Grid.Row="14"  Grid.Column="1" Text="{Binding MFC8Data.FeedBack,StringFormat='F1'}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="15" Grid.Column="1"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterPositionFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,5,0,0"/>
                 <TextBlock Grid.Row="16"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterTemperatureFeedBack,StringFormat='F1'}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="18"  Grid.Column="1" Text="{Binding RFBoxData.C1,StringFormat='F1'}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
 
                 <TextBlock Grid.Row="1"   Grid.Column="2"  Text="{Binding SRFData.PowerSetPoint}"          Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="2"   Grid.Column="2"  Text="N/A"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
@@ -1356,6 +1360,7 @@
                 <TextBlock Grid.Row="15"  Grid.Column="2"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterPositionSetPoint}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="16"  Grid.Column="2"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterTemperatureSetPoint}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="17"  Grid.Column="2"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioSetPoint}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="18"  Grid.Column="2"  Text="{Binding RFBoxData.C1SetPoint}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
 
                 <TextBlock Grid.Row="1"  Grid.Column="3" Text="W"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="2"  Grid.Column="3" Text="W"           Background="#FFFFFF"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
@@ -1374,6 +1379,7 @@
                 <TextBlock Grid.Row="15"  Grid.Column="3" Text="N/A"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="16"  Grid.Column="3" Text="°C"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="17"  Grid.Column="3" Text="N/A"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="18"  Grid.Column="3" Text="%"           Background="#FFFFFF"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
 
             </Grid>
 

File diff suppressed because it is too large
+ 480 - 574
Venus/Venus_MainPages/Views/OverKepler2300View.xaml


+ 4 - 0
Venus/Venus_MainPages/Views/OverKepler2300View.xaml.cs

@@ -20,5 +20,9 @@ namespace Venus_MainPages.Views
             (this.DataContext as OverKepler2300ViewModel).addDataKeys();
         }
 
+        private void FlowPipe_Loaded(object sender, RoutedEventArgs e)
+        {
+
+        }
     }
 }

File diff suppressed because it is too large
+ 653 - 643
Venus/Venus_MainPages/Views/TMOperationView.xaml


+ 2 - 2
Venus/Venus_MainPages/Views/VenusGasLeakCheckView.xaml.cs

@@ -27,8 +27,8 @@ namespace Venus_MainPages.Views
         }
         public void Init(string systemName)
         {
-            (this.DataContext as GasLeakCheckViewModel).ModuleName = systemName;
-            (this.DataContext as GasLeakCheckViewModel).addDataKeys();
+            (this.DataContext as Kepler2300GasLeakCheckViewModel).ModuleName = systemName;
+            (this.DataContext as Kepler2300GasLeakCheckViewModel).addDataKeys();
         }
     }
 }

+ 0 - 743
Venus/Venus_RT/Config/EquipmentVariables - 复制.xml

@@ -1,743 +0,0 @@
-<?xml version="1.0"?>
-<EquipmentVariables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-	<SpoolingStreamFunctions />
-
-	<StatusVariables>
-		
-		<StatusVariable id="620101001" valueType="F4" logicalName="PMA.AI_CHB_M-HT_Current_Speed" eventTrigger="" units="" />
-		<StatusVariable id="620101002" valueType="F4" logicalName="PMA.AI_CHB_M-HT_Max_Power" eventTrigger="" units="" />
-		<StatusVariable id="620101003" valueType="F4" logicalName="PMA.AI_CHB_M-HT_Min_Power" eventTrigger="" units="" />
-		<StatusVariable id="620101004" valueType="F4" logicalName="PMA.AI_CHB_M-HT_Reference_Power_Output" eventTrigger="" units="" />
-		<StatusVariable id="620101005" valueType="F4" logicalName="PMA.ChamberPressure" eventTrigger="" units="" />
-		<StatusVariable id="620101006" valueType="Boolean" logicalName="PMA.CHBWallOTSWAlarm.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101007" valueType="F8" logicalName="PMA.Chiller.Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101008" valueType="F4" logicalName="PMA.ChillerInnerTemp" eventTrigger="" units="" />
-		<StatusVariable id="620101009" valueType="F4" logicalName="PMA.ChillerOuterTemp" eventTrigger="" units="" />
-		<StatusVariable id="620101010" valueType="F4" logicalName="PMA.ChillerTopTemp" eventTrigger="" units="" />
-		<StatusVariable id="620101011" valueType="F8" logicalName="PMA.ESCHePressure" eventTrigger="" units="" />
-		<StatusVariable id="620101012" valueType="F8" logicalName="PMA.ESCHV.Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101013" valueType="F8" logicalName="PMA.ForelinePressure" eventTrigger="" units="" />
-		<StatusVariable id="620101014" valueType="Boolean" logicalName="PMA.GasBoxDoorSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101015" valueType="Boolean" logicalName="PMA.GasBoxPressureSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101016" valueType="Boolean" logicalName="PMA.GeneratorInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101017" valueType="F8" logicalName="PMA.GetPVPosition" eventTrigger="" units="" />
-		<StatusVariable id="620101018" valueType="F8" logicalName="PMA.HighTemperatureHeater.Position" eventTrigger="" units="" />
-		<StatusVariable id="620101019" valueType="F8" logicalName="PMA.HighTemperatureHeater.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="620101020" valueType="F8" logicalName="PMA.IoHeater.PendulumHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101021" valueType="F8" logicalName="PMA.IoHeater.PendulumHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="620101022" valueType="F8" logicalName="PMA.IoHeater.PendulumHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101023" valueType="F8" logicalName="PMA.IoHeater.PendulumHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101024" valueType="Boolean" logicalName="PMA.IoHeater.ValveHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101025" valueType="Boolean" logicalName="PMA.IoHeater.ValveHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="620101026" valueType="Boolean" logicalName="PMA.IoHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101027" valueType="Boolean" logicalName="PMA.IoHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101028" valueType="Boolean" logicalName="PMA.IoHeater.WallHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101029" valueType="Boolean" logicalName="PMA.IoHeater.WallHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="620101030" valueType="Boolean" logicalName="PMA.IoHeater.WallHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="620101031" valueType="Boolean" logicalName="PMA.IoHeater.WallHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101032" valueType="Boolean" logicalName="PMA.IoSensor.CHBWallOTSWAlarm.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101033" valueType="Boolean" logicalName="PMA.IoSensor.GasBoxDoorSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101034" valueType="Boolean" logicalName="PMA.IoSensor.GasBoxPressureSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101035" valueType="Boolean" logicalName="PMA.IoSensor.GeneratorInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101036" valueType="Boolean" logicalName="PMA.IoSensor.N2PressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101037" valueType="Boolean" logicalName="PMA.IoSensor.RFMatchInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101038" valueType="Boolean" logicalName="PMA.IoSensor.SensorATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101039" valueType="Boolean" logicalName="PMA.IoSensor.SensorCDAPressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101040" valueType="Boolean" logicalName="PMA.IoSensor.SensorLoadlockATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101041" valueType="Boolean" logicalName="PMA.IoSensor.SensorPMLidClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101042" valueType="Boolean" logicalName="PMA.IoSensor.SensorSlitDoorClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101043" valueType="Boolean" logicalName="PMA.IoSensor.SensorSmallWaferInPos.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101044" valueType="Boolean" logicalName="PMA.IoSensor.SensorSourceRFFan.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101045" valueType="Boolean" logicalName="PMA.IoSensor.SensorVacSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101046" valueType="Boolean" logicalName="PMA.IoSensor.SensorWaterLeakOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101047" valueType="Boolean" logicalName="PMA.IoSensor.TurboPumpInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101048" valueType="Boolean" logicalName="PMA.IoValve.ValveFastPump.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101049" valueType="Boolean" logicalName="PMA.IoValve.ValveFastPump.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101050" valueType="Boolean" logicalName="PMA.IoValve.ValveGasFinal.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101051" valueType="Boolean" logicalName="PMA.IoValve.ValveGasFinal.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101052" valueType="Boolean" logicalName="PMA.IoValve.ValveGuage.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101053" valueType="Boolean" logicalName="PMA.IoValve.ValveGuage.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101054" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101055" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc1.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101056" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101057" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc2.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101058" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc3.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101059" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc3.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101060" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc4.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101061" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc4.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101062" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc5.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101063" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc5.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101064" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc6.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101065" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc6.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101066" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc7.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101067" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc7.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101068" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc8.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101069" valueType="Boolean" logicalName="PMA.IoValve.ValveMfc8.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101070" valueType="Boolean" logicalName="PMA.IoValve.ValveN2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101071" valueType="Boolean" logicalName="PMA.IoValve.ValveN2.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101072" valueType="Boolean" logicalName="PMA.IoValve.ValvePurge.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101073" valueType="Boolean" logicalName="PMA.IoValve.ValvePV11.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101074" valueType="Boolean" logicalName="PMA.IoValve.ValvePV11.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101075" valueType="Boolean" logicalName="PMA.IoValve.ValvePV12.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101076" valueType="Boolean" logicalName="PMA.IoValve.ValvePV12.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101077" valueType="Boolean" logicalName="PMA.IoValve.ValvePV21.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101078" valueType="Boolean" logicalName="PMA.IoValve.ValvePV21.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101079" valueType="Boolean" logicalName="PMA.IoValve.ValvePV22.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101080" valueType="Boolean" logicalName="PMA.IoValve.ValvePV22.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101081" valueType="Boolean" logicalName="PMA.IoValve.ValvePV31.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101082" valueType="Boolean" logicalName="PMA.IoValve.ValvePV31.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101083" valueType="Boolean" logicalName="PMA.IoValve.ValvePV32.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101084" valueType="Boolean" logicalName="PMA.IoValve.ValvePV32.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101085" valueType="Boolean" logicalName="PMA.IoValve.ValvePV41.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101086" valueType="Boolean" logicalName="PMA.IoValve.ValvePV41.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101087" valueType="Boolean" logicalName="PMA.IoValve.ValvePV42.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101088" valueType="Boolean" logicalName="PMA.IoValve.ValvePV42.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101089" valueType="Boolean" logicalName="PMA.IoValve.ValvePVHe1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101090" valueType="Boolean" logicalName="PMA.IoValve.ValvePVHe1.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101091" valueType="Boolean" logicalName="PMA.IoValve.ValvePVHe2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101092" valueType="Boolean" logicalName="PMA.IoValve.ValvePVHe2.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101093" valueType="Boolean" logicalName="PMA.IoValve.ValvePVN21.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101094" valueType="Boolean" logicalName="PMA.IoValve.ValvePVN21.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101095" valueType="Boolean" logicalName="PMA.IoValve.ValvePVN22.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101096" valueType="Boolean" logicalName="PMA.IoValve.ValvePVN22.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101097" valueType="Boolean" logicalName="PMA.IoValve.ValveSoftPump.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101098" valueType="Boolean" logicalName="PMA.IoValve.ValveSoftPump.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101099" valueType="Boolean" logicalName="PMA.IoValve.ValveTurboPumpPumping.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101100" valueType="Boolean" logicalName="PMA.IoValve.ValveTurboPumpPumping.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101101" valueType="Boolean" logicalName="PMA.IoValve.ValveTurboPumpPurge.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101102" valueType="Boolean" logicalName="PMA.IoValve.ValveTurboPumpPurge.Status" eventTrigger="" units="" />
-		<StatusVariable id="620101103" valueType="Boolean" logicalName="PMA.IsTurboPumpAtSpeed" eventTrigger="" units="" />
-		<StatusVariable id="620101104" valueType="Boolean" logicalName="PMA.Lid.IsClosed" eventTrigger="" units="" />
-		<StatusVariable id="620101105" valueType="F8" logicalName="PMA.LoadlockPressure" eventTrigger="" units="" />
-		<StatusVariable id="620101106" valueType="Boolean" logicalName="PMA.MainPump.IsError" eventTrigger="" units="" />
-		<StatusVariable id="620101107" valueType="Boolean" logicalName="PMA.MainPump.IsOn" eventTrigger="" units="" />
-		<StatusVariable id="620101108" valueType="Boolean" logicalName="PMA.MainPump.IsRunning" eventTrigger="" units="" />
-		<StatusVariable id="620101109" valueType="F8" logicalName="PMA.MainPump.Speed" eventTrigger="" units="" />
-		<StatusVariable id="620101110" valueType="F8" logicalName="PMA.MainPump.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="620101111" valueType="F8" logicalName="PMA.Match.C1" eventTrigger="" units="" />
-		<StatusVariable id="620101112" valueType="F8" logicalName="PMA.Match.C2" eventTrigger="" units="" />
-		<StatusVariable id="620101113" valueType="F8" logicalName="PMA.MfcGas1.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101114" valueType="F8" logicalName="PMA.MfcGas1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101115" valueType="F8" logicalName="PMA.MfcGas2.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101116" valueType="F8" logicalName="PMA.MfcGas2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101117" valueType="F8" logicalName="PMA.MfcGas3.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101118" valueType="F8" logicalName="PMA.MfcGas3.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101119" valueType="F8" logicalName="PMA.MfcGas4.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101120" valueType="F8" logicalName="PMA.MfcGas4.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101121" valueType="F8" logicalName="PMA.MfcGas5.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101122" valueType="F8" logicalName="PMA.MfcGas5.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101123" valueType="F8" logicalName="PMA.MfcGas6.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101124" valueType="F8" logicalName="PMA.MfcGas6.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101125" valueType="F8" logicalName="PMA.MfcGas7.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101126" valueType="F8" logicalName="PMA.MfcGas7.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101127" valueType="F8" logicalName="PMA.MfcGas8.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101128" valueType="F8" logicalName="PMA.MfcGas8.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101129" valueType="F8" logicalName="PMA.MfcHe.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101130" valueType="F8" logicalName="PMA.MfcHe.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101131" valueType="F8" logicalName="PMA.MfcN2.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="620101132" valueType="F8" logicalName="PMA.MfcN2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101133" valueType="Boolean" logicalName="PMA.N2PressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101134" valueType="F8" logicalName="PMA.ProcessPressure" eventTrigger="" units="" />
-		<StatusVariable id="620101135" valueType="F8" logicalName="PMA.Rf.ForwardPower" eventTrigger="" units="" />
-		<StatusVariable id="620101136" valueType="F8" logicalName="PMA.Rf.Frequency" eventTrigger="" units="" />
-		<StatusVariable id="620101137" valueType="F8" logicalName="PMA.Rf.PowerSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101138" valueType="F8" logicalName="PMA.Rf.PulsingDutyCycle" eventTrigger="" units="" />
-		<StatusVariable id="620101139" valueType="F8" logicalName="PMA.Rf.PulsingFrequency" eventTrigger="" units="" />
-		<StatusVariable id="620101140" valueType="F8" logicalName="PMA.Rf.ReflectPower" eventTrigger="" units="" />
-		<StatusVariable id="620101141" valueType="Boolean" logicalName="PMA.RFMatchInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101142" valueType="F8" logicalName="PMA.SCR1" eventTrigger="" units="" />
-		<StatusVariable id="620101143" valueType="F8" logicalName="PMA.SCR2" eventTrigger="" units="" />
-		<StatusVariable id="620101144" valueType="Boolean" logicalName="PMA.SensorATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101145" valueType="Boolean" logicalName="PMA.SensorCDAPressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101146" valueType="Boolean" logicalName="PMA.SensorLoadlockATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101147" valueType="Boolean" logicalName="PMA.SensorPMLidClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101148" valueType="Boolean" logicalName="PMA.SensorSlitDoorClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101149" valueType="Boolean" logicalName="PMA.SensorSmallWaferInPos.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101150" valueType="Boolean" logicalName="PMA.SensorSourceRFFan.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101151" valueType="Boolean" logicalName="PMA.SensorVacSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101152" valueType="Boolean" logicalName="PMA.SensorWaterLeakOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101153" valueType="Boolean" logicalName="PMA.SlitDoor.IsClosed" eventTrigger="" units="" />
-		<StatusVariable id="620101154" valueType="Boolean" logicalName="PMA.TurboPumpInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="620101155" valueType="F8" logicalName="PMA.TurboPumpRotationalSpeed" eventTrigger="" units="" />
-		<StatusVariable id="620101156" valueType="Boolean" logicalName="PMA.BiasRf.CommunicationStatus" eventTrigger="" units="" />
-		<StatusVariable id="620101157" valueType="F8" logicalName="PMA.BiasRf.ForwardPower" eventTrigger="" units="" />
-		<StatusVariable id="620101158" valueType="F8" logicalName="PMA.BiasRf.Frequency" eventTrigger="" units="" />
-		<StatusVariable id="620101159" valueType="F8" logicalName="PMA.BiasRf.IsPowerOn" eventTrigger="" units="" />
-		<StatusVariable id="620101160" valueType="F8" logicalName="PMA.BiasRf.PowerSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101161" valueType="F8" logicalName="PMA.BiasRf.PulsingDutyCycle" eventTrigger="" units="" />
-		<StatusVariable id="620101162" valueType="F8" logicalName="PMA.BiasRf.PulsingFrequency" eventTrigger="" units="" />
-		<StatusVariable id="620101163" valueType="F8" logicalName="PMA.BiasRf.ReflectPower" eventTrigger="" units="" />
-		<StatusVariable id="620101164" valueType="F8" logicalName="IO.PMA.AI_Chamber_Pressure_10t" eventTrigger="" units="" />
-		<StatusVariable id="620101165" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101166" valueType="F8" logicalName="IO.PMA.AI_Day" eventTrigger="" units="" />
-		<StatusVariable id="620101167" valueType="F8" logicalName="IO.PMA.AI_Foreline_Pressure_10t" eventTrigger="" units="" />
-		<StatusVariable id="620101168" valueType="F8" logicalName="IO.PMA.AI_Heartbeat_FB" eventTrigger="" units="" />
-		<StatusVariable id="620101169" valueType="F8" logicalName="IO.PMA.AI_MFC1_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101170" valueType="F8" logicalName="IO.PMA.AI_MFC2_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101171" valueType="F8" logicalName="IO.PMA.AI_MFC3_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101172" valueType="F8" logicalName="IO.PMA.AI_MFC4_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101173" valueType="F8" logicalName="IO.PMA.AI_MFC5_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101174" valueType="F8" logicalName="IO.PMA.AI_MFC6_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101175" valueType="F8" logicalName="IO.PMA.AI_Minute" eventTrigger="" units="" />
-		<StatusVariable id="620101176" valueType="F8" logicalName="IO.PMA.AI_Month" eventTrigger="" units="" />
-		<StatusVariable id="620101177" valueType="F8" logicalName="IO.PMA.AI_Process_Pressure_2t" eventTrigger="" units="" />
-		<StatusVariable id="620101178" valueType="F8" logicalName="IO.PMA.AI_Second" eventTrigger="" units="" />
-		<StatusVariable id="620101179" valueType="F8" logicalName="IO.PMA.AI_Time" eventTrigger="" units="" />
-		<StatusVariable id="620101180" valueType="F8" logicalName="IO.PMA.AI_Year" eventTrigger="" units="" />
-		<StatusVariable id="620101181" valueType="F8" logicalName="IO.PMA.AO_CHB_M_HT_Temperature_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101182" valueType="F8" logicalName="IO.PMA.AO_CHB_M_HT_Temp_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101183" valueType="F8" logicalName="IO.PMA.AO_Heartbeat" eventTrigger="" units="" />
-		<StatusVariable id="620101184" valueType="F8" logicalName="IO.PMA.AO_MFC1_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101185" valueType="F8" logicalName="IO.PMA.AO_MFC2_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101186" valueType="F8" logicalName="IO.PMA.AO_MFC3_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101187" valueType="F8" logicalName="IO.PMA.AO_MFC4_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101188" valueType="F8" logicalName="IO.PMA.AO_MFC5_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101189" valueType="F8" logicalName="IO.PMA.AO_MFC6_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101190" valueType="Boolean" logicalName="IO.PMA.DI_1_SlitDoorClosePos" eventTrigger="" units="" />
-		<StatusVariable id="620101191" valueType="Boolean" logicalName="IO.PMA.DI_1_SlitDoorOpenPos" eventTrigger="" units="" />
-		<StatusVariable id="620101192" valueType="Boolean" logicalName="IO.PMA.DI_ATMSW" eventTrigger="" units="" />
-		<StatusVariable id="620101193" valueType="Boolean" logicalName="IO.PMA.DI_Chamber_Pressure_10t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101194" valueType="Boolean" logicalName="IO.PMA.DI_CHB_M-HT_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101195" valueType="Boolean" logicalName="IO.PMA.DI_CHB_M-HT_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="620101196" valueType="Boolean" logicalName="IO.PMA.DI_Foreline_Pressure_10t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101197" valueType="Boolean" logicalName="IO.PMA.DI_MFC1_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101198" valueType="Boolean" logicalName="IO.PMA.DI_MFC2_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101199" valueType="Boolean" logicalName="IO.PMA.DI_MFC3_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101200" valueType="Boolean" logicalName="IO.PMA.DI_MFC4_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101201" valueType="Boolean" logicalName="IO.PMA.DI_MFC5_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101202" valueType="Boolean" logicalName="IO.PMA.DI_MFC6_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101203" valueType="Boolean" logicalName="IO.PMA.DI_N2_Purge_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101204" valueType="Boolean" logicalName="IO.PMA.DI_Process_Pressure_2t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101205" valueType="Boolean" logicalName="IO.PMA.DI_TM_Safety_Door_Colse" eventTrigger="" units="" />
-		<StatusVariable id="620101206" valueType="Boolean" logicalName="IO.PMA.DI_Arm_Not_Extend_to_PM" eventTrigger="" units="" />
-		<StatusVariable id="620101207" valueType="Boolean" logicalName="IO.PMA.DI_VACSW" eventTrigger="" units="" />
-		<StatusVariable id="620101208" valueType="Boolean" logicalName="IO.PMA.DI_WaterLeak" eventTrigger="" units="" />
-		<StatusVariable id="620101209" valueType="Boolean" logicalName="IO.PMA.DO_Purge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101210" valueType="Boolean" logicalName="IO.PMA.DO_CHB_M_HT_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="620101211" valueType="Boolean" logicalName="IO.PMA.DO_Fast_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101212" valueType="Boolean" logicalName="IO.PMA.DO_MFC1_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101213" valueType="Boolean" logicalName="IO.PMA.DO_MFC2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101214" valueType="Boolean" logicalName="IO.PMA.DO_MFC3_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101215" valueType="Boolean" logicalName="IO.PMA.DO_MFC4_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101216" valueType="Boolean" logicalName="IO.PMA.DO_MFC5_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101217" valueType="Boolean" logicalName="IO.PMA.DO_MFC6_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101218" valueType="Boolean" logicalName="IO.PMA.DO_N2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101219" valueType="Boolean" logicalName="IO.PMA.DO_Gas_Final_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101220" valueType="Boolean" logicalName="IO.PMA.DO_Reset_Signal" eventTrigger="" units="" />
-		<StatusVariable id="620101221" valueType="Boolean" logicalName="IO.PMA.DO_Soft_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101222" valueType="Boolean" logicalName="IO.PMA.DI_RF_BOX_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="620101223" valueType="Boolean" logicalName="IO.PMA.DI_Source_RF_Generator_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="620101224" valueType="Boolean" logicalName="IO.PMA.DI_Source_RF_Match_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="620101225" valueType="Boolean" logicalName="IO.PMA.DI_Turbo_Pump_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="620101226" valueType="Boolean" logicalName="IO.PMA.DI_CDA_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101227" valueType="Boolean" logicalName="IO.PMA.DI_Top_Safty_Door_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101228" valueType="Boolean" logicalName="IO.PMA.DI_Gas_Detector1_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101229" valueType="Boolean" logicalName="IO.PMA.DI__Gas_Detector2_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101230" valueType="Boolean" logicalName="IO.PMA.DI_CHB_M-HT_Switch_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101231" valueType="Boolean" logicalName="IO.PMA.DI_PN2_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101232" valueType="F8" logicalName="IO.PMA.DI_MFC7_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101233" valueType="F8" logicalName="IO.PMA.DI_MFC8_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101234" valueType="Boolean" logicalName="IO.PMA.DI_Gas_Box_Door_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101235" valueType="Boolean" logicalName="IO.PMA.DI_Gas_Box_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101236" valueType="Boolean" logicalName="IO.PMA.DI_Turbo_Pump_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101237" valueType="Boolean" logicalName="IO.PMA.DI_Source_RF_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101238" valueType="Boolean" logicalName="IO.PMA.DI_Spare_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="620101239" valueType="Boolean" logicalName="IO.PMA.DI_P_Valve_TC_Deviation_out_of_Range" eventTrigger="" units="" />
-		<StatusVariable id="620101240" valueType="Boolean" logicalName="IO.PMA.DI_P_Valve_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101241" valueType="Boolean" logicalName="IO.PMA.DI_P_Valve_Monitor_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101242" valueType="Boolean" logicalName="IO.PMA.DI_P_Valve_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="620101243" valueType="Boolean" logicalName="IO.PMA.DI_Gas_Line_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101244" valueType="Boolean" logicalName="IO.PMA.DI_Gas_Line_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="620101245" valueType="Boolean" logicalName="IO.PMA.DI_S_Valve_OT_Switch_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101246" valueType="Boolean" logicalName="IO.PMA.DI_Space_Heater_Ctrl_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101247" valueType="Boolean" logicalName="IO.PMA.DI_Space_Heater_Heat_ON" eventTrigger="" units="" />
-		<StatusVariable id="620101248" valueType="Boolean" logicalName="IO.PMA.DI_Space_Heater_Over_Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101249" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Up_Button" eventTrigger="" units="" />
-		<StatusVariable id="620101250" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Down_Button" eventTrigger="" units="" />
-		<StatusVariable id="620101251" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Up_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101252" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Down_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101253" valueType="Boolean" logicalName="IO.PMA.DI_Top_Plate_Coolant_Flow_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101254" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Rotate_Lock_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101255" valueType="Boolean" logicalName="IO.PMA.DI_Lid_Serve_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101256" valueType="Boolean" logicalName="IO.PMA.DI_MFC1_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101257" valueType="Boolean" logicalName="IO.PMA.DI_MFC2_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101258" valueType="Boolean" logicalName="IO.PMA.DI_MFC3_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101259" valueType="Boolean" logicalName="IO.PMA.DI_MFC4_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101260" valueType="Boolean" logicalName="IO.PMA.DI_MFC5_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101261" valueType="Boolean" logicalName="IO.PMA.DI_MFC6_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101262" valueType="Boolean" logicalName="IO.PMA.DI_MFC7_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101263" valueType="Boolean" logicalName="IO.PMA.DI_MFC8_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="620101264" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101265" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Up_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101266" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Down_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101267" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_ORG_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="620101268" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_with_origin" eventTrigger="" units="" />
-		<StatusVariable id="620101269" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_servo_on" eventTrigger="" units="" />
-		<StatusVariable id="620101270" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101271" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_ORG_fail_alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101272" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_ABS_fail_alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101273" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Over_software_Limt_alarm" eventTrigger="" units="" />
-		<StatusVariable id="620101274" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Go_Position1_Complete" eventTrigger="" units="" />
-		<StatusVariable id="620101275" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Go_Position2_Complete" eventTrigger="" units="" />
-		<StatusVariable id="620101276" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Go_Position3_Complete" eventTrigger="" units="" />
-		<StatusVariable id="620101277" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Go_Position4_Complete" eventTrigger="" units="" />
-		<StatusVariable id="620101278" valueType="Boolean" logicalName="IO.PMA.DI_Lift_Servo_Go_Position5_Complete" eventTrigger="" units="" />
-		<StatusVariable id="620101279" valueType="Boolean" logicalName="IO.PMA.DO_PVN21" eventTrigger="" units="" />
-		<StatusVariable id="620101280" valueType="Boolean" logicalName="IO.PMA.DO_PVN22" eventTrigger="" units="" />
-		<StatusVariable id="620101281" valueType="Boolean" logicalName="IO.PMA.DO_PV11" eventTrigger="" units="" />
-		<StatusVariable id="620101282" valueType="Boolean" logicalName="IO.PMA.DO_PV12" eventTrigger="" units="" />
-		<StatusVariable id="620101283" valueType="Boolean" logicalName="IO.PMA.DO_PV21" eventTrigger="" units="" />
-		<StatusVariable id="620101284" valueType="Boolean" logicalName="IO.PMA.DO_PV22" eventTrigger="" units="" />
-		<StatusVariable id="620101285" valueType="Boolean" logicalName="IO.PMA.DO_PV31" eventTrigger="" units="" />
-		<StatusVariable id="620101286" valueType="Boolean" logicalName="IO.PMA.DO_PV32" eventTrigger="" units="" />
-		<StatusVariable id="620101287" valueType="Boolean" logicalName="IO.PMA.DO_PV41" eventTrigger="" units="" />
-		<StatusVariable id="620101288" valueType="Boolean" logicalName="IO.PMA.DO_PV42" eventTrigger="" units="" />
-		<StatusVariable id="620101289" valueType="Boolean" logicalName="IO.PMA.DO_MFC7_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101290" valueType="Boolean" logicalName="IO.PMA.DO_MFC8_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101291" valueType="Boolean" logicalName="IO.PMA.DO_N2_Purge1_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101292" valueType="Boolean" logicalName="IO.PMA.DO_N2_Purge2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101293" valueType="Boolean" logicalName="IO.PMA.DO_Turbo_Pump_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101294" valueType="Boolean" logicalName="IO.PMA.DO_Pump_Purge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101295" valueType="Boolean" logicalName="IO.PMA.DO_Gauge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="620101296" valueType="Boolean" logicalName="IO.PMA.DO_P_Valve_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="620101297" valueType="Boolean" logicalName="IO.PMA.DO_Gas_Line_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="620101298" valueType="Boolean" logicalName="IO.PMA.DO_Lid_Up" eventTrigger="" units="" />
-		<StatusVariable id="620101299" valueType="Boolean" logicalName="IO.PMA.DO_Lid_Down" eventTrigger="" units="" />
-		<StatusVariable id="620101300" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Go_Position1" eventTrigger="" units="" />
-		<StatusVariable id="620101301" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Go_Position2" eventTrigger="" units="" />
-		<StatusVariable id="620101302" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Go_Position3" eventTrigger="" units="" />
-		<StatusVariable id="620101303" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Origin" eventTrigger="" units="" />
-		<StatusVariable id="620101304" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Enable" eventTrigger="" units="" />
-		<StatusVariable id="620101305" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Manual_UP" eventTrigger="" units="" />
-		<StatusVariable id="620101306" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Manual_DOWN" eventTrigger="" units="" />
-		<StatusVariable id="620101307" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Go_Position4" eventTrigger="" units="" />
-		<StatusVariable id="620101308" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Go_Position5" eventTrigger="" units="" />
-		<StatusVariable id="620101309" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_Estop" eventTrigger="" units="" />
-		<StatusVariable id="620101310" valueType="Boolean" logicalName="IO.PMA.DO_Lift_Servo_MATC_Mode" eventTrigger="" units="" />
-		<StatusVariable id="620101311" valueType="F8" logicalName="IO.PMA.AI_MFC7_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101312" valueType="F8" logicalName="IO.PMA.AI_MFC8_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101313" valueType="F8" logicalName="IO.PMA.AI_Turbo_Pump_N2_Flow" eventTrigger="" units="" />
-		<StatusVariable id="620101314" valueType="F8" logicalName="IO.PMA.AI_Penning_Gauge_Pressure1" eventTrigger="" units="" />
-		<StatusVariable id="620101315" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_SCR1_PWR_OUT" eventTrigger="" units="" />
-		<StatusVariable id="620101316" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_SCR2_PWR_OUT" eventTrigger="" units="" />
-		<StatusVariable id="620101317" valueType="F8" logicalName="IO.PMA.AI_Spare_Heater_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101318" valueType="F8" logicalName="IO.PMA.AI_Chamber_Pressure_Virtual" eventTrigger="" units="" />
-		<StatusVariable id="620101319" valueType="F8" logicalName="IO.PMA.AI_P_Valve_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101320" valueType="F8" logicalName="IO.PMA.AI_Gas_Line_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="620101321" valueType="F8" logicalName="IO.PMA.AI_Lift_Servo_Current_Posi_Mm" eventTrigger="" units="" />
-		<StatusVariable id="620101322" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_Reference_Power_Out" eventTrigger="" units="" />
-		<StatusVariable id="620101323" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_Max_Power" eventTrigger="" units="" />
-		<StatusVariable id="620101324" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_Min_Power" eventTrigger="" units="" />
-		<StatusVariable id="620101325" valueType="F8" logicalName="IO.PMA.AI_CHB_M_HT_Current_Speed" eventTrigger="" units="" />
-		<StatusVariable id="620101326" valueType="F8" logicalName="IO.PMA.AO_MFC7_Flow_Swtpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101327" valueType="F8" logicalName="IO.PMA.AO_MFC8_Flow_Swtpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101328" valueType="F8" logicalName="IO.PMA.AO_Turbo_Pump_N2_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101329" valueType="F8" logicalName="IO.PMA.AO_P_Valve_Temperature_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101330" valueType="F8" logicalName="IO.PMA.AO_P_Valve_Temp_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101331" valueType="F8" logicalName="IO.PMA.AO_Space_Heater_Heat_Temp_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101332" valueType="F8" logicalName="IO.PMA.AO_Space_Heater_Temp_High_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="620101333" valueType="F8" logicalName="IO.PMA.AO_CHB_H_HT_Power_Distribute_Percent" eventTrigger="" units="" />
-		<StatusVariable id="620101334" valueType="Ascii" logicalName="PMA.RecipeStartTime" eventTrigger="" units="" />
-		<StatusVariable id="620101335" valueType="Ascii" logicalName="PMA.RecipeEndTime" eventTrigger="" units="" />
-		<StatusVariable id="620101336" valueType="F8" logicalName="PMA.RecipeStepTime" eventTrigger="" units="" />
-		<StatusVariable id="620101337" valueType="F8" logicalName="PMA.RecipeRfOntime" eventTrigger="" units="" />
-
-		<StatusVariable id="620101338" valueType="F8" logicalName="PMB.RecipeStartTime" eventTrigger="" units="" />
-		<StatusVariable id="620101339" valueType="F8" logicalName="PMB.RecipeEndTime" eventTrigger="" units="" />
-		<StatusVariable id="620101340" valueType="F8" logicalName="PMB.RecipeStepTime" eventTrigger="" units="" />
-		<StatusVariable id="620101341" valueType="F8" logicalName="PMB.RecipeRfOntime" eventTrigger="" units="" />
-
-	
-
-
-		<StatusVariable id="620101350" valueType="U4" logicalName="PMA.WaferCounter" eventTrigger="" units="" />
-		<StatusVariable id="620101351" valueType="F8" logicalName="PMA.RfOnTime" eventTrigger="" units="" />
-		<StatusVariable id="620101352" valueType="F8" logicalName="PMA.PumpOnTime" eventTrigger="" units="" />
-
-		<StatusVariable id="620101353" valueType="U4" logicalName="PMB.WaferCounter" eventTrigger="" units="" />
-		<StatusVariable id="620101354" valueType="F8" logicalName="PMB.RfOnTime" eventTrigger="" units="" />
-		<StatusVariable id="620101355" valueType="F8" logicalName="PMB.PumpOnTime" eventTrigger="" units="" />
-
-		
-
-		<StatusVariable id="620101362" valueType="U4" logicalName="PMA.StepNo" eventTrigger="" units="" />
-		<StatusVariable id="620101363" valueType="U4" logicalName="PMB.StepNo" eventTrigger="" units="" />
-		<StatusVariable id="620101364" valueType="U4" logicalName="PMC.StepNo" eventTrigger="" units="" />
-		<StatusVariable id="620101365" valueType="U4" logicalName="PMD.StepNo" eventTrigger="" units="" />
-
-		<StatusVariable id="620101366" valueType="F8" logicalName="PMA.Match.C1SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101367" valueType="F8" logicalName="PMA.Match.C2SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101368" valueType="F8" logicalName="PMB.Match.C1SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101369" valueType="F8" logicalName="PMB.Match.C2SetPoint" eventTrigger="" units="" />
-	
-		
-		<StatusVariable id="620101374" valueType="F8" logicalName="PMA.HighTemperatureHeater.InnerPower" eventTrigger="" units="" />
-		<StatusVariable id="620101375" valueType="F8" logicalName="PMA.HighTemperatureHeater.OuterPower" eventTrigger="" units="" />
-		<StatusVariable id="620101376" valueType="F8" logicalName="PMA.Match.Vpp" eventTrigger="" units="" />
-		<StatusVariable id="620101377" valueType="F8" logicalName="PMA.RFBox.C1"         eventTrigger="" units="" />
-		<StatusVariable id="620101378" valueType="F8" logicalName="PMA.RFBox.C1SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101379" valueType="F8" logicalName="PMA.RFBox.Vpp" eventTrigger="" units="" />
-
-		<StatusVariable id="620101380" valueType="F8" logicalName="PMB.HighTemperatureHeater.InnerPower" eventTrigger="" units="" />
-		<StatusVariable id="620101381" valueType="F8" logicalName="PMB.HighTemperatureHeater.OuterPower" eventTrigger="" units="" />
-		<StatusVariable id="620101382" valueType="F8" logicalName="PMB.Match.Vpp" eventTrigger="" units="" />
-		<StatusVariable id="620101383" valueType="F8" logicalName="PMB.RFBox.C1"         eventTrigger="" units="" />
-		<StatusVariable id="620101384" valueType="F8" logicalName="PMB.RFBox.C1SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="620101385" valueType="F8" logicalName="PMB.RFBox.Vpp" eventTrigger="" units="" />
-		
-	
-
-		<StatusVariable id="620101398" valueType="F8" logicalName="PMA.TurboPump.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="620101399" valueType="F8" logicalName="PMB.TurboPump.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="620101400" valueType="F8" logicalName="PMC.TurboPump.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="620101401" valueType="F8" logicalName="PMD.TurboPump.Temperature" eventTrigger="" units="" />
-
-		<StatusVariable id="620101402" valueType="F8" logicalName="PMA.HighTemperatureHeater.Posi_Mm" eventTrigger="" units="" />
-		<StatusVariable id="620101403" valueType="F8" logicalName="PMB.HighTemperatureHeater.Posi_Mm" eventTrigger="" units="" />
-		<StatusVariable id="620101404" valueType="F8" logicalName="PMC.HighTemperatureHeater.Posi_Mm" eventTrigger="" units="" />
-		<StatusVariable id="620101405" valueType="F8" logicalName="PMD.HighTemperatureHeater.Posi_Mm" eventTrigger="" units="" />
-
-		<StatusVariable id="630101001" valueType="F4" logicalName="PMB.AI_CHB_M-HT_Current_Speed" eventTrigger="" units="" />
-		<StatusVariable id="630101002" valueType="F4" logicalName="PMB.AI_CHB_M-HT_Max_Power" eventTrigger="" units="" />
-		<StatusVariable id="630101003" valueType="F4" logicalName="PMB.AI_CHB_M-HT_Min_Power" eventTrigger="" units="" />
-		<StatusVariable id="630101004" valueType="F4" logicalName="PMB.AI_CHB_M-HT_Reference_Power_Output" eventTrigger="" units="" />
-		<StatusVariable id="630101005" valueType="F4" logicalName="PMB.ChamberPressure" eventTrigger="" units="" />
-		<StatusVariable id="630101006" valueType="Boolean" logicalName="PMB.CHBWallOTSWAlarm.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101007" valueType="F8" logicalName="PMB.Chiller.Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101008" valueType="F4" logicalName="PMB.ChillerInnerTemp" eventTrigger="" units="" />
-		<StatusVariable id="630101009" valueType="F4" logicalName="PMB.ChillerOuterTemp" eventTrigger="" units="" />
-		<StatusVariable id="630101010" valueType="F4" logicalName="PMB.ChillerTopTemp" eventTrigger="" units="" />
-		<StatusVariable id="630101011" valueType="F8" logicalName="PMB.ESCHePressure" eventTrigger="" units="" />
-		<StatusVariable id="630101012" valueType="F8" logicalName="PMB.ESCHV.Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101013" valueType="F8" logicalName="PMB.ForelinePressure" eventTrigger="" units="" />
-		<StatusVariable id="630101014" valueType="Boolean" logicalName="PMB.GasBoxDoorSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101015" valueType="Boolean" logicalName="PMB.GasBoxPressureSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101016" valueType="Boolean" logicalName="PMB.GeneratorInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101017" valueType="F8" logicalName="PMB.GetPVPosition" eventTrigger="" units="" />
-		<StatusVariable id="630101018" valueType="F8" logicalName="PMB.HighTemperatureHeater.Position" eventTrigger="" units="" />
-		<StatusVariable id="630101019" valueType="F8" logicalName="PMB.HighTemperatureHeater.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="630101020" valueType="F8" logicalName="PMB.IoHeater.PendulumHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101021" valueType="F8" logicalName="PMB.IoHeater.PendulumHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="630101022" valueType="F8" logicalName="PMB.IoHeater.PendulumHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101023" valueType="F8" logicalName="PMB.IoHeater.PendulumHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101024" valueType="Boolean" logicalName="PMB.IoHeater.ValveHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101025" valueType="Boolean" logicalName="PMB.IoHeater.ValveHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="630101026" valueType="Boolean" logicalName="PMB.IoHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101027" valueType="Boolean" logicalName="PMB.IoHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101028" valueType="Boolean" logicalName="PMB.IoHeater.WallHeater.ControlTcFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101029" valueType="Boolean" logicalName="PMB.IoHeater.WallHeater.ControlTcSetPointView" eventTrigger="" units="" />
-		<StatusVariable id="630101030" valueType="Boolean" logicalName="PMB.IoHeater.WallHeater.IsPowerOnFeedback" eventTrigger="" units="" />
-		<StatusVariable id="630101031" valueType="Boolean" logicalName="PMB.IoHeater.WallHeater.IsPowerOnSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101032" valueType="Boolean" logicalName="PMB.IoSensor.CHBWallOTSWAlarm.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101033" valueType="Boolean" logicalName="PMB.IoSensor.GasBoxDoorSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101034" valueType="Boolean" logicalName="PMB.IoSensor.GasBoxPressureSW.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101035" valueType="Boolean" logicalName="PMB.IoSensor.GeneratorInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101036" valueType="Boolean" logicalName="PMB.IoSensor.N2PressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101037" valueType="Boolean" logicalName="PMB.IoSensor.RFMatchInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101038" valueType="Boolean" logicalName="PMB.IoSensor.SensorATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101039" valueType="Boolean" logicalName="PMB.IoSensor.SensorCDAPressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101040" valueType="Boolean" logicalName="PMB.IoSensor.SensorLoadlockATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101041" valueType="Boolean" logicalName="PMB.IoSensor.SensorPMLidClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101042" valueType="Boolean" logicalName="PMB.IoSensor.SensorSlitDoorClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101043" valueType="Boolean" logicalName="PMB.IoSensor.SensorSmallWaferInPos.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101044" valueType="Boolean" logicalName="PMB.IoSensor.SensorSourceRFFan.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101045" valueType="Boolean" logicalName="PMB.IoSensor.SensorVacSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101046" valueType="Boolean" logicalName="PMB.IoSensor.SensorWaterLeakOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101047" valueType="Boolean" logicalName="PMB.IoSensor.TurboPumpInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101048" valueType="Boolean" logicalName="PMB.IoValve.ValveFastPump.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101049" valueType="Boolean" logicalName="PMB.IoValve.ValveFastPump.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101050" valueType="Boolean" logicalName="PMB.IoValve.ValveGasFinal.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101051" valueType="Boolean" logicalName="PMB.IoValve.ValveGasFinal.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101052" valueType="Boolean" logicalName="PMB.IoValve.ValveGuage.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101053" valueType="Boolean" logicalName="PMB.IoValve.ValveGuage.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101054" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101055" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc1.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101056" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101057" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc2.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101058" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc3.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101059" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc3.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101060" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc4.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101061" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc4.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101062" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc5.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101063" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc5.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101064" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc6.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101065" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc6.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101066" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc7.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101067" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc7.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101068" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc8.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101069" valueType="Boolean" logicalName="PMB.IoValve.ValveMfc8.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101070" valueType="Boolean" logicalName="PMB.IoValve.ValveN2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101071" valueType="Boolean" logicalName="PMB.IoValve.ValveN2.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101072" valueType="Boolean" logicalName="PMB.IoValve.ValvePurge.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101073" valueType="Boolean" logicalName="PMB.IoValve.ValvePV11.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101074" valueType="Boolean" logicalName="PMB.IoValve.ValvePV11.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101075" valueType="Boolean" logicalName="PMB.IoValve.ValvePV12.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101076" valueType="Boolean" logicalName="PMB.IoValve.ValvePV12.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101077" valueType="Boolean" logicalName="PMB.IoValve.ValvePV21.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101078" valueType="Boolean" logicalName="PMB.IoValve.ValvePV21.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101079" valueType="Boolean" logicalName="PMB.IoValve.ValvePV22.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101080" valueType="Boolean" logicalName="PMB.IoValve.ValvePV22.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101081" valueType="Boolean" logicalName="PMB.IoValve.ValvePV31.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101082" valueType="Boolean" logicalName="PMB.IoValve.ValvePV31.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101083" valueType="Boolean" logicalName="PMB.IoValve.ValvePV32.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101084" valueType="Boolean" logicalName="PMB.IoValve.ValvePV32.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101085" valueType="Boolean" logicalName="PMB.IoValve.ValvePV41.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101086" valueType="Boolean" logicalName="PMB.IoValve.ValvePV41.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101087" valueType="Boolean" logicalName="PMB.IoValve.ValvePV42.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101088" valueType="Boolean" logicalName="PMB.IoValve.ValvePV42.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101089" valueType="Boolean" logicalName="PMB.IoValve.ValvePVHe1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101090" valueType="Boolean" logicalName="PMB.IoValve.ValvePVHe1.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101091" valueType="Boolean" logicalName="PMB.IoValve.ValvePVHe2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101092" valueType="Boolean" logicalName="PMB.IoValve.ValvePVHe2.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101093" valueType="Boolean" logicalName="PMB.IoValve.ValvePVN21.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101094" valueType="Boolean" logicalName="PMB.IoValve.ValvePVN21.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101095" valueType="Boolean" logicalName="PMB.IoValve.ValvePVN22.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101096" valueType="Boolean" logicalName="PMB.IoValve.ValvePVN22.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101097" valueType="Boolean" logicalName="PMB.IoValve.ValveSoftPump.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101098" valueType="Boolean" logicalName="PMB.IoValve.ValveSoftPump.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101099" valueType="Boolean" logicalName="PMB.IoValve.ValveTurboPumpPumping.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101100" valueType="Boolean" logicalName="PMB.IoValve.ValveTurboPumpPumping.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101101" valueType="Boolean" logicalName="PMB.IoValve.ValveTurboPumpPurge.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101102" valueType="Boolean" logicalName="PMB.IoValve.ValveTurboPumpPurge.Status" eventTrigger="" units="" />
-		<StatusVariable id="630101103" valueType="Boolean" logicalName="PMB.IsTurboPumpAtSpeed" eventTrigger="" units="" />
-		<StatusVariable id="630101104" valueType="Boolean" logicalName="PMB.Lid.IsClosed" eventTrigger="" units="" />
-		<StatusVariable id="630101105" valueType="F8" logicalName="PMB.LoadlockPressure" eventTrigger="" units="" />
-		<StatusVariable id="630101106" valueType="Boolean" logicalName="PMB.MainPump.IsError" eventTrigger="" units="" />
-		<StatusVariable id="630101107" valueType="Boolean" logicalName="PMB.MainPump.IsOn" eventTrigger="" units="" />
-		<StatusVariable id="630101108" valueType="Boolean" logicalName="PMB.MainPump.IsRunning" eventTrigger="" units="" />
-		<StatusVariable id="630101109" valueType="F8" logicalName="PMB.MainPump.Speed" eventTrigger="" units="" />
-		<StatusVariable id="630101110" valueType="F8" logicalName="PMB.MainPump.Temperature" eventTrigger="" units="" />
-		<StatusVariable id="630101111" valueType="F8" logicalName="PMB.Match.C1" eventTrigger="" units="" />
-		<StatusVariable id="630101112" valueType="F8" logicalName="PMB.Match.C2" eventTrigger="" units="" />
-		<StatusVariable id="630101113" valueType="F8" logicalName="PMB.MfcGas1.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101114" valueType="F8" logicalName="PMB.MfcGas1.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101115" valueType="F8" logicalName="PMB.MfcGas2.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101116" valueType="F8" logicalName="PMB.MfcGas2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101117" valueType="F8" logicalName="PMB.MfcGas3.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101118" valueType="F8" logicalName="PMB.MfcGas3.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101119" valueType="F8" logicalName="PMB.MfcGas4.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101120" valueType="F8" logicalName="PMB.MfcGas4.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101121" valueType="F8" logicalName="PMB.MfcGas5.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101122" valueType="F8" logicalName="PMB.MfcGas5.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101123" valueType="F8" logicalName="PMB.MfcGas6.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101124" valueType="F8" logicalName="PMB.MfcGas6.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101125" valueType="F8" logicalName="PMB.MfcGas7.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101126" valueType="F8" logicalName="PMB.MfcGas7.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101127" valueType="F8" logicalName="PMB.MfcGas8.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101128" valueType="F8" logicalName="PMB.MfcGas8.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101129" valueType="F8" logicalName="PMB.MfcHe.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101130" valueType="F8" logicalName="PMB.MfcHe.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101131" valueType="F8" logicalName="PMB.MfcN2.FeedBack" eventTrigger="" units="" />
-		<StatusVariable id="630101132" valueType="F8" logicalName="PMB.MfcN2.SetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101133" valueType="Boolean" logicalName="PMB.N2PressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101134" valueType="F8" logicalName="PMB.ProcessPressure" eventTrigger="" units="" />
-		<StatusVariable id="630101135" valueType="F8" logicalName="PMB.Rf.ForwardPower" eventTrigger="" units="" />
-		<StatusVariable id="630101136" valueType="F8" logicalName="PMB.Rf.Frequency" eventTrigger="" units="" />
-		<StatusVariable id="630101137" valueType="F8" logicalName="PMB.Rf.PowerSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101138" valueType="F8" logicalName="PMB.Rf.PulsingDutyCycle" eventTrigger="" units="" />
-		<StatusVariable id="630101139" valueType="F8" logicalName="PMB.Rf.PulsingFrequency" eventTrigger="" units="" />
-		<StatusVariable id="630101140" valueType="F8" logicalName="PMB.Rf.ReflectPower" eventTrigger="" units="" />
-		<StatusVariable id="630101141" valueType="Boolean" logicalName="PMB.RFMatchInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101142" valueType="F8" logicalName="PMB.SCR1" eventTrigger="" units="" />
-		<StatusVariable id="630101143" valueType="F8" logicalName="PMB.SCR2" eventTrigger="" units="" />
-		<StatusVariable id="630101144" valueType="Boolean" logicalName="PMB.SensorATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101145" valueType="Boolean" logicalName="PMB.SensorCDAPressureOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101146" valueType="Boolean" logicalName="PMB.SensorLoadlockATMSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101147" valueType="Boolean" logicalName="PMB.SensorPMLidClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101148" valueType="Boolean" logicalName="PMB.SensorSlitDoorClosed.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101149" valueType="Boolean" logicalName="PMB.SensorSmallWaferInPos.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101150" valueType="Boolean" logicalName="PMB.SensorSourceRFFan.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101151" valueType="Boolean" logicalName="PMB.SensorVacSwitch.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101152" valueType="Boolean" logicalName="PMB.SensorWaterLeakOk.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101153" valueType="Boolean" logicalName="PMB.SlitDoor.IsClosed" eventTrigger="" units="" />
-		<StatusVariable id="630101154" valueType="Boolean" logicalName="PMB.TurboPumpInterlock.Value" eventTrigger="" units="" />
-		<StatusVariable id="630101155" valueType="F8" logicalName="PMB.TurboPumpRotationalSpeed" eventTrigger="" units="" />
-		<StatusVariable id="630101156" valueType="Boolean" logicalName="PMB.BiasRf.CommunicationStatus" eventTrigger="" units="" />
-		<StatusVariable id="630101157" valueType="F8" logicalName="PMB.BiasRf.ForwardPower" eventTrigger="" units="" />
-		<StatusVariable id="630101158" valueType="F8" logicalName="PMB.BiasRf.Frequency" eventTrigger="" units="" />
-		<StatusVariable id="630101159" valueType="F8" logicalName="PMB.BiasRf.IsPowerOn" eventTrigger="" units="" />
-		<StatusVariable id="630101160" valueType="F8" logicalName="PMB.BiasRf.PowerSetPoint" eventTrigger="" units="" />
-		<StatusVariable id="630101161" valueType="F8" logicalName="PMB.BiasRf.PulsingDutyCycle" eventTrigger="" units="" />
-		<StatusVariable id="630101162" valueType="F8" logicalName="PMB.BiasRf.PulsingFrequency" eventTrigger="" units="" />
-		<StatusVariable id="630101163" valueType="F8" logicalName="PMB.BiasRf.ReflectPower" eventTrigger="" units="" />
-		<StatusVariable id="630101164" valueType="F8" logicalName="IO.PMB.AI_Chamber_Pressure_10t" eventTrigger="" units="" />
-		<StatusVariable id="630101165" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101166" valueType="F8" logicalName="IO.PMB.AI_Day" eventTrigger="" units="" />
-		<StatusVariable id="630101167" valueType="F8" logicalName="IO.PMB.AI_Foreline_Pressure_10t" eventTrigger="" units="" />
-		<StatusVariable id="630101168" valueType="F8" logicalName="IO.PMB.AI_Heartbeat_FB" eventTrigger="" units="" />
-		<StatusVariable id="630101169" valueType="F8" logicalName="IO.PMB.AI_MFC1_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101170" valueType="F8" logicalName="IO.PMB.AI_MFC2_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101171" valueType="F8" logicalName="IO.PMB.AI_MFC3_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101172" valueType="F8" logicalName="IO.PMB.AI_MFC4_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101173" valueType="F8" logicalName="IO.PMB.AI_MFC5_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101174" valueType="F8" logicalName="IO.PMB.AI_MFC6_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101175" valueType="F8" logicalName="IO.PMB.AI_Minute" eventTrigger="" units="" />
-		<StatusVariable id="630101176" valueType="F8" logicalName="IO.PMB.AI_Month" eventTrigger="" units="" />
-		<StatusVariable id="630101177" valueType="F8" logicalName="IO.PMB.AI_Process_Pressure_2t" eventTrigger="" units="" />
-		<StatusVariable id="630101178" valueType="F8" logicalName="IO.PMB.AI_Second" eventTrigger="" units="" />
-		<StatusVariable id="630101179" valueType="F8" logicalName="IO.PMB.AI_Time" eventTrigger="" units="" />
-		<StatusVariable id="630101180" valueType="F8" logicalName="IO.PMB.AI_Year" eventTrigger="" units="" />
-		<StatusVariable id="630101181" valueType="F8" logicalName="IO.PMB.AO_CHB_M_HT_Temperature_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101182" valueType="F8" logicalName="IO.PMB.AO_CHB_M_HT_Temp_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101183" valueType="F8" logicalName="IO.PMB.AO_Heartbeat" eventTrigger="" units="" />
-		<StatusVariable id="630101184" valueType="F8" logicalName="IO.PMB.AO_MFC1_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101185" valueType="F8" logicalName="IO.PMB.AO_MFC2_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101186" valueType="F8" logicalName="IO.PMB.AO_MFC3_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101187" valueType="F8" logicalName="IO.PMB.AO_MFC4_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101188" valueType="F8" logicalName="IO.PMB.AO_MFC5_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101189" valueType="F8" logicalName="IO.PMB.AO_MFC6_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101190" valueType="Boolean" logicalName="IO.PMB.DI_1_SlitDoorClosePos" eventTrigger="" units="" />
-		<StatusVariable id="630101191" valueType="Boolean" logicalName="IO.PMB.DI_1_SlitDoorOpenPos" eventTrigger="" units="" />
-		<StatusVariable id="630101192" valueType="Boolean" logicalName="IO.PMB.DI_ATMSW" eventTrigger="" units="" />
-		<StatusVariable id="630101193" valueType="Boolean" logicalName="IO.PMB.DI_Chamber_Pressure_10t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101194" valueType="Boolean" logicalName="IO.PMB.DI_CHB_M-HT_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101195" valueType="Boolean" logicalName="IO.PMB.DI_CHB_M-HT_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="630101196" valueType="Boolean" logicalName="IO.PMB.DI_Foreline_Pressure_10t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101197" valueType="Boolean" logicalName="IO.PMB.DI_MFC1_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101198" valueType="Boolean" logicalName="IO.PMB.DI_MFC2_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101199" valueType="Boolean" logicalName="IO.PMB.DI_MFC3_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101200" valueType="Boolean" logicalName="IO.PMB.DI_MFC4_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101201" valueType="Boolean" logicalName="IO.PMB.DI_MFC5_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101202" valueType="Boolean" logicalName="IO.PMB.DI_MFC6_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101203" valueType="Boolean" logicalName="IO.PMB.DI_N2_Purge_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101204" valueType="Boolean" logicalName="IO.PMB.DI_Process_Pressure_2t_Gauge_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101205" valueType="Boolean" logicalName="IO.PMB.DI_TM_Safety_Door_Colse" eventTrigger="" units="" />
-		<StatusVariable id="630101206" valueType="Boolean" logicalName="IO.PMB.DI_Arm_Not_Extend_to_PM" eventTrigger="" units="" />
-		<StatusVariable id="630101207" valueType="Boolean" logicalName="IO.PMB.DI_VACSW" eventTrigger="" units="" />
-		<StatusVariable id="630101208" valueType="Boolean" logicalName="IO.PMB.DI_WaterLeak" eventTrigger="" units="" />
-		<StatusVariable id="630101209" valueType="Boolean" logicalName="IO.PMB.DO_Purge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101210" valueType="Boolean" logicalName="IO.PMB.DO_CHB_M_HT_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="630101211" valueType="Boolean" logicalName="IO.PMB.DO_Fast_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101212" valueType="Boolean" logicalName="IO.PMB.DO_MFC1_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101213" valueType="Boolean" logicalName="IO.PMB.DO_MFC2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101214" valueType="Boolean" logicalName="IO.PMB.DO_MFC3_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101215" valueType="Boolean" logicalName="IO.PMB.DO_MFC4_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101216" valueType="Boolean" logicalName="IO.PMB.DO_MFC5_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101217" valueType="Boolean" logicalName="IO.PMB.DO_MFC6_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101218" valueType="Boolean" logicalName="IO.PMB.DO_N2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101219" valueType="Boolean" logicalName="IO.PMB.DO_Gas_Final_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101220" valueType="Boolean" logicalName="IO.PMB.DO_Reset_Signal" eventTrigger="" units="" />
-		<StatusVariable id="630101221" valueType="Boolean" logicalName="IO.PMB.DO_Soft_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101222" valueType="Boolean" logicalName="IO.PMB.DI_RF_BOX_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="630101223" valueType="Boolean" logicalName="IO.PMB.DI_Source_RF_Generator_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="630101224" valueType="Boolean" logicalName="IO.PMB.DI_Source_RF_Match_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="630101225" valueType="Boolean" logicalName="IO.PMB.DI_Turbo_Pump_Interlock" eventTrigger="" units="" />
-		<StatusVariable id="630101226" valueType="Boolean" logicalName="IO.PMB.DI_CDA_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101227" valueType="Boolean" logicalName="IO.PMB.DI_Top_Safty_Door_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101228" valueType="Boolean" logicalName="IO.PMB.DI_Gas_Detector1_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101229" valueType="Boolean" logicalName="IO.PMB.DI__Gas_Detector2_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101230" valueType="Boolean" logicalName="IO.PMB.DI_CHB_M-HT_Switch_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101231" valueType="Boolean" logicalName="IO.PMB.DI_PN2_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101232" valueType="F8" logicalName="IO.PMB.DI_MFC7_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101233" valueType="F8" logicalName="IO.PMB.DI_MFC8_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101234" valueType="Boolean" logicalName="IO.PMB.DI_Gas_Box_Door_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101235" valueType="Boolean" logicalName="IO.PMB.DI_Gas_Box_Pressure_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101236" valueType="Boolean" logicalName="IO.PMB.DI_Turbo_Pump_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101237" valueType="Boolean" logicalName="IO.PMB.DI_Source_RF_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101238" valueType="Boolean" logicalName="IO.PMB.DI_Spare_Water_Flow_Switch" eventTrigger="" units="" />
-		<StatusVariable id="630101239" valueType="Boolean" logicalName="IO.PMB.DI_P_Valve_TC_Deviation_out_of_Range" eventTrigger="" units="" />
-		<StatusVariable id="630101240" valueType="Boolean" logicalName="IO.PMB.DI_P_Valve_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101241" valueType="Boolean" logicalName="IO.PMB.DI_P_Valve_Monitor_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101242" valueType="Boolean" logicalName="IO.PMB.DI_P_Valve_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="630101243" valueType="Boolean" logicalName="IO.PMB.DI_Gas_Line_Control_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101244" valueType="Boolean" logicalName="IO.PMB.DI_Gas_Line_Heater_On_FB" eventTrigger="" units="" />
-		<StatusVariable id="630101245" valueType="Boolean" logicalName="IO.PMB.DI_S_Valve_OT_Switch_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101246" valueType="Boolean" logicalName="IO.PMB.DI_Space_Heater_Ctrl_TC_Broken_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101247" valueType="Boolean" logicalName="IO.PMB.DI_Space_Heater_Heat_ON" eventTrigger="" units="" />
-		<StatusVariable id="630101248" valueType="Boolean" logicalName="IO.PMB.DI_Space_Heater_Over_Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101249" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Up_Button" eventTrigger="" units="" />
-		<StatusVariable id="630101250" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Down_Button" eventTrigger="" units="" />
-		<StatusVariable id="630101251" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Up_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101252" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Down_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101253" valueType="Boolean" logicalName="IO.PMB.DI_Top_Plate_Coolant_Flow_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101254" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Rotate_Lock_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101255" valueType="Boolean" logicalName="IO.PMB.DI_Lid_Serve_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101256" valueType="Boolean" logicalName="IO.PMB.DI_MFC1_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101257" valueType="Boolean" logicalName="IO.PMB.DI_MFC2_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101258" valueType="Boolean" logicalName="IO.PMB.DI_MFC3_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101259" valueType="Boolean" logicalName="IO.PMB.DI_MFC4_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101260" valueType="Boolean" logicalName="IO.PMB.DI_MFC5_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101261" valueType="Boolean" logicalName="IO.PMB.DI_MFC6_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101262" valueType="Boolean" logicalName="IO.PMB.DI_MFC7_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101263" valueType="Boolean" logicalName="IO.PMB.DI_MFC8_Fauit_Exist" eventTrigger="" units="" />
-		<StatusVariable id="630101264" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101265" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Up_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101266" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Down_Limit_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101267" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_ORG_Pos_SW" eventTrigger="" units="" />
-		<StatusVariable id="630101268" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_with_origin" eventTrigger="" units="" />
-		<StatusVariable id="630101269" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_servo_on" eventTrigger="" units="" />
-		<StatusVariable id="630101270" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101271" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_ORG_fail_alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101272" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_ABS_fail_alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101273" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Over_software_Limt_alarm" eventTrigger="" units="" />
-		<StatusVariable id="630101274" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Go_Position1_Complete" eventTrigger="" units="" />
-		<StatusVariable id="630101275" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Go_Position2_Complete" eventTrigger="" units="" />
-		<StatusVariable id="630101276" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Go_Position3_Complete" eventTrigger="" units="" />
-		<StatusVariable id="630101277" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Go_Position4_Complete" eventTrigger="" units="" />
-		<StatusVariable id="630101278" valueType="Boolean" logicalName="IO.PMB.DI_Lift_Servo_Go_Position5_Complete" eventTrigger="" units="" />
-		<StatusVariable id="630101279" valueType="Boolean" logicalName="IO.PMB.DO_PVN21" eventTrigger="" units="" />
-		<StatusVariable id="630101280" valueType="Boolean" logicalName="IO.PMB.DO_PVN22" eventTrigger="" units="" />
-		<StatusVariable id="630101281" valueType="Boolean" logicalName="IO.PMB.DO_PV11" eventTrigger="" units="" />
-		<StatusVariable id="630101282" valueType="Boolean" logicalName="IO.PMB.DO_PV12" eventTrigger="" units="" />
-		<StatusVariable id="630101283" valueType="Boolean" logicalName="IO.PMB.DO_PV21" eventTrigger="" units="" />
-		<StatusVariable id="630101284" valueType="Boolean" logicalName="IO.PMB.DO_PV22" eventTrigger="" units="" />
-		<StatusVariable id="630101285" valueType="Boolean" logicalName="IO.PMB.DO_PV31" eventTrigger="" units="" />
-		<StatusVariable id="630101286" valueType="Boolean" logicalName="IO.PMB.DO_PV32" eventTrigger="" units="" />
-		<StatusVariable id="630101287" valueType="Boolean" logicalName="IO.PMB.DO_PV41" eventTrigger="" units="" />
-		<StatusVariable id="630101288" valueType="Boolean" logicalName="IO.PMB.DO_PV42" eventTrigger="" units="" />
-		<StatusVariable id="630101289" valueType="Boolean" logicalName="IO.PMB.DO_MFC7_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101290" valueType="Boolean" logicalName="IO.PMB.DO_MFC8_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101291" valueType="Boolean" logicalName="IO.PMB.DO_N2_Purge1_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101292" valueType="Boolean" logicalName="IO.PMB.DO_N2_Purge2_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101293" valueType="Boolean" logicalName="IO.PMB.DO_Turbo_Pump_Pumping_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101294" valueType="Boolean" logicalName="IO.PMB.DO_Pump_Purge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101295" valueType="Boolean" logicalName="IO.PMB.DO_Gauge_Valve" eventTrigger="" units="" />
-		<StatusVariable id="630101296" valueType="Boolean" logicalName="IO.PMB.DO_P_Valve_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="630101297" valueType="Boolean" logicalName="IO.PMB.DO_Gas_Line_Heater_On" eventTrigger="" units="" />
-		<StatusVariable id="630101298" valueType="Boolean" logicalName="IO.PMB.DO_Lid_Up" eventTrigger="" units="" />
-		<StatusVariable id="630101299" valueType="Boolean" logicalName="IO.PMB.DO_Lid_Down" eventTrigger="" units="" />
-		<StatusVariable id="630101300" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Go_Position1" eventTrigger="" units="" />
-		<StatusVariable id="630101301" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Go_Position2" eventTrigger="" units="" />
-		<StatusVariable id="630101302" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Go_Position3" eventTrigger="" units="" />
-		<StatusVariable id="630101303" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Origin" eventTrigger="" units="" />
-		<StatusVariable id="630101304" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Enable" eventTrigger="" units="" />
-		<StatusVariable id="630101305" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Manual_UP" eventTrigger="" units="" />
-		<StatusVariable id="630101306" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Manual_DOWN" eventTrigger="" units="" />
-		<StatusVariable id="630101307" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Go_Position4" eventTrigger="" units="" />
-		<StatusVariable id="630101308" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Go_Position5" eventTrigger="" units="" />
-		<StatusVariable id="630101309" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_Estop" eventTrigger="" units="" />
-		<StatusVariable id="630101310" valueType="Boolean" logicalName="IO.PMB.DO_Lift_Servo_MATC_Mode" eventTrigger="" units="" />
-		<StatusVariable id="630101311" valueType="F8" logicalName="IO.PMB.AI_MFC7_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101312" valueType="F8" logicalName="IO.PMB.AI_MFC8_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101313" valueType="F8" logicalName="IO.PMB.AI_Turbo_Pump_N2_Flow" eventTrigger="" units="" />
-		<StatusVariable id="630101314" valueType="F8" logicalName="IO.PMB.AI_Penning_Gauge_Pressure1" eventTrigger="" units="" />
-		<StatusVariable id="630101315" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_SCR1_PWR_OUT" eventTrigger="" units="" />
-		<StatusVariable id="630101316" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_SCR2_PWR_OUT" eventTrigger="" units="" />
-		<StatusVariable id="630101317" valueType="F8" logicalName="IO.PMB.AI_Spare_Heater_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101318" valueType="F8" logicalName="IO.PMB.AI_Chamber_Pressure_Virtual" eventTrigger="" units="" />
-		<StatusVariable id="630101319" valueType="F8" logicalName="IO.PMB.AI_P_Valve_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101320" valueType="F8" logicalName="IO.PMB.AI_Gas_Line_Control_TC_Temp" eventTrigger="" units="" />
-		<StatusVariable id="630101321" valueType="F8" logicalName="IO.PMB.AI_Lift_Servo_Current_Posi_Mm" eventTrigger="" units="" />
-		<StatusVariable id="630101322" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_Reference_Power_Out" eventTrigger="" units="" />
-		<StatusVariable id="630101323" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_Max_Power" eventTrigger="" units="" />
-		<StatusVariable id="630101324" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_Min_Power" eventTrigger="" units="" />
-		<StatusVariable id="630101325" valueType="F8" logicalName="IO.PMB.AI_CHB_M_HT_Current_Speed" eventTrigger="" units="" />
-		<StatusVariable id="630101326" valueType="F8" logicalName="IO.PMB.AO_MFC7_Flow_Swtpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101327" valueType="F8" logicalName="IO.PMB.AO_MFC8_Flow_Swtpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101328" valueType="F8" logicalName="IO.PMB.AO_Turbo_Pump_N2_Flow_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101329" valueType="F8" logicalName="IO.PMB.AO_P_Valve_Temperature_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101330" valueType="F8" logicalName="IO.PMB.AO_P_Valve_Temp_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101331" valueType="F8" logicalName="IO.PMB.AO_Space_Heater_Heat_Temp_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101332" valueType="F8" logicalName="IO.PMB.AO_Space_Heater_Temp_High_Limit_Setpoint" eventTrigger="" units="" />
-		<StatusVariable id="630101333" valueType="F8" logicalName="IO.PMB.AO_CHB_H_HT_Power_Distribute_Percent" eventTrigger="" units="" />
-		<StatusVariable id="640101001" valueType="F4" logicalName="PMC.AI_CHB_M-HT_Current_Speed" eventTrigger="" units="" />
-		<StatusVariable id="640101002" valueType="F4" logicalName="PMC.AI_CHB_M-HT_Max_Power" eventTrigger="" units="" />
-		<StatusVariable id="640101003" valueType="F4" logicalName="PMC.AI_CHB_M-HT_Min_Power" eventTrigger="" units="" />
-		<StatusVariable id="640101004" valueType="F4" logicalName="PMC.AI_CHB_M-HT_Reference_Power_Output" eventTrigger="" units="" />
-		<StatusVariable id="640101005" valueType="F4" logicalName="PMC.ChamberPressure" eventTrigger="" units="" />
-		<StatusVariable id="640101006" valueType="Boolean" logicalName="PMC.CHBWallOTSWAlarm.Value" eventTrigger="" units="" />
-		 
-		
-	</StatusVariables>
-
-</EquipmentVariables>

+ 76 - 6
Venus/Venus_RT/Config/EquipmentVariables.xml

@@ -641,8 +641,8 @@
 		<StatusVariable id="620101336" valueType="F8" logicalName="PMA.RecipeStepTime" eventTrigger="" units="" />
 		<StatusVariable id="620101337" valueType="F8" logicalName="PMA.RecipeRfOntime" eventTrigger="" units="" />
 
-		<StatusVariable id="620101338" valueType="F8" logicalName="PMB.RecipeStartTime" eventTrigger="" units="" />
-		<StatusVariable id="620101339" valueType="F8" logicalName="PMB.RecipeEndTime" eventTrigger="" units="" />
+		<StatusVariable id="620101338" valueType="Ascii" logicalName="PMB.RecipeStartTime" eventTrigger="" units="" />
+		<StatusVariable id="620101339" valueType="Ascii" logicalName="PMB.RecipeEndTime" eventTrigger="" units="" />
 		<StatusVariable id="620101340" valueType="F8" logicalName="PMB.RecipeStepTime" eventTrigger="" units="" />
 		<StatusVariable id="620101341" valueType="F8" logicalName="PMB.RecipeRfOntime" eventTrigger="" units="" />
 
@@ -3059,7 +3059,7 @@
 		<AlarmVariable id="10101162" logicalName="PMA_ERR_PM_CLEANWITHWAFER"   description="PMA CLEAN WITH WAFER" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101163" logicalName="PMA_ERR_DEVICE_INFO"         description="PMA DEVICE ALARM"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101164" logicalName="PMA_WARNING_SENSOR_CDAPRESSURE"  description="PMA Sensor CDA Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
-		<AlarmVariable id="10101165" logicalName="PMA_WARNING_SENSOR_WATERFLOW"    description="PMA Sensor Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101165" logicalName="PMA_WARNING_SENSOR_WATERFLOW"    description="PMA Chamber Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101166" logicalName="PMA_WARNING_SENSOR_WATERLEAK"    description="PMA Sensor Water Leak"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101167" logicalName="PMA_WARNING_SENSOR_N2PRESSURE"    description="PMA N2 Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101168" logicalName="PMA_WARNING_SENSOR_GASBOXDOOR"    description="PMA Gas Box Door SW Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
@@ -3133,7 +3133,7 @@
 		<AlarmVariable id="10101238" logicalName="PMB_ERR_PM_CLEANWITHWAFER"   description="PMB CLEAN WITH WAFER" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101239" logicalName="PMB_ERR_DEVICE_INFO"         description="PMB DEVICE ALAEM"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101240" logicalName="PMB_WARNING_SENSOR_CDAPRESSURE"  description="PMB Sensor CDA Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
-		<AlarmVariable id="10101241" logicalName="PMB_WARNING_SENSOR_WATERFLOW"    description="PMB Sensor Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101241" logicalName="PMB_WARNING_SENSOR_WATERFLOW"    description="PMB Chamber Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101242" logicalName="PMB_WARNING_SENSOR_WATERLEAK"    description="PMB Sensor Water Leak"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101243" logicalName="PMB_WARNING_SENSOR_N2PRESSURE"    description="PMB N2 Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101244" logicalName="PMB_WARNING_SENSOR_GASBOXDOOR"    description="PMB Gas Box Door SW Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
@@ -3206,7 +3206,7 @@
 		<AlarmVariable id="10101313" logicalName="PMC_ERR_PM_CLEANWITHWAFER"   description="PMC CLEAN WITH WAFER" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101314" logicalName="PMC_ERR_DEVICE_INFO"         description="PMC DEVICE ALAEM"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101315" logicalName="PMC_WARNING_SENSOR_CDAPRESSURE"  description="PMC Sensor CDA Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
-		<AlarmVariable id="10101316" logicalName="PMC_WARNING_SENSOR_WATERFLOW"    description="PMC Sensor Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101316" logicalName="PMC_WARNING_SENSOR_WATERFLOW"    description="PMC Chamber Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101317" logicalName="PMC_WARNING_SENSOR_WATERLEAK"    description="PMC Sensor Water Leak"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101318" logicalName="PMC_WARNING_SENSOR_N2PRESSURE"    description="PMC N2 Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101319" logicalName="PMC_WARNING_SENSOR_GASBOXDOOR"    description="PMC Gas Box Door SW Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
@@ -3279,7 +3279,7 @@
 		<AlarmVariable id="10101388" logicalName="PMD_ERR_PM_CLEANWITHWAFER"   description="PMD CLEAN WITH WAFER" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101389" logicalName="PMD_ERR_DEVICE_INFO"         description="PMD DEVICE ALAEM"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101390" logicalName="PMD_WARNING_SENSOR_CDAPRESSURE"  description="PMD Sensor CDA Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
-		<AlarmVariable id="10101391" logicalName="PMD_WARNING_SENSOR_WATERFLOW"    description="PMD Sensor Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101391" logicalName="PMD_WARNING_SENSOR_WATERFLOW"    description="PMD Chamber Water Flow Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101392" logicalName="PMD_WARNING_SENSOR_WATERLEAK"    description="PMD Sensor Water Leak"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101393" logicalName="PMD_WARNING_SENSOR_N2PRESSURE"    description="PMD N2 Pressure Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101394" logicalName="PMD_WARNING_SENSOR_GASBOXDOOR"    description="PMD Gas Box Door SW Abnormal"                 alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
@@ -3290,6 +3290,76 @@
 		<AlarmVariable id="10101401" logicalName="ERR_TM_ROBOT_PMB_PLACE_AWCOVERRANGE"        description="TM ROBOT PLACE PMB AWC OVER RANGE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101402" logicalName="ERR_TM_ROBOT_PMC_PLACE_AWCOVERRANGE"        description="TM ROBOT PLACE PMC AWC OVER RANGE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
 		<AlarmVariable id="10101403" logicalName="ERR_TM_ROBOT_PMD_PLACE_AWCOVERRANGE"        description="TM ROBOT PLACE PMD AWC OVER RANGE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101404" logicalName="PMA_GAS6OFF_RFCLOSED"        description="PMA RF ClOSED DUE TO GAS6 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101405" logicalName="PMA_GAS7OFF_RFCLOSED"        description="PMA RF ClOSED DUE TO GAS7 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101406" logicalName="PMA_GAS8OFF_RFCLOSED"        description="PMA RF ClOSED DUE TO GAS8 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101407" logicalName="PMB_GAS5OFF_RFCLOSED"        description="PMB RF ClOSED DUE TO GAS5 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101408" logicalName="PMB_GAS6OFF_RFCLOSED"        description="PMB RF ClOSED DUE TO GAS6 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101409" logicalName="PMB_GAS7OFF_RFCLOSED"        description="PMB RF ClOSED DUE TO GAS7 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101410" logicalName="PMB_GAS8OFF_RFCLOSED"        description="PMB RF ClOSED DUE TO GAS8 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101411" logicalName="PMC_GAS5OFF_RFCLOSED"        description="PMC RF ClOSED DUE TO GAS5 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101412" logicalName="PMC_GAS6OFF_RFCLOSED"        description="PMC RF ClOSED DUE TO GAS6 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101413" logicalName="PMC_GAS7OFF_RFCLOSED"        description="PMC RF ClOSED DUE TO GAS7 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101414" logicalName="PMC_GAS8OFF_RFCLOSED"        description="PMC RF ClOSED DUE TO GAS8 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101415" logicalName="PMD_GAS4OFF_RFCLOSED"        description="PMD RF ClOSED DUE TO GAS4 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101416" logicalName="PMD_GAS5OFF_RFCLOSED"        description="PMD RF ClOSED DUE TO GAS5 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101417" logicalName="PMD_GAS6OFF_RFCLOSED"        description="PMD RF ClOSED DUE TO GAS6 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101418" logicalName="PMD_GAS7OFF_RFCLOSED"        description="PMD RF ClOSED DUE TO GAS7 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101419" logicalName="PMD_GAS8OFF_RFCLOSED"        description="PMD RF ClOSED DUE TO GAS8 OFF" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101420" logicalName="PMA_WARN_MFC1_PRESSURE"        description="PMA WARN MFC1 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101421" logicalName="PMA_WARN_MFC2_PRESSURE"        description="PMA WARN MFC2 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101422" logicalName="PMA_WARN_MFC3_PRESSURE"        description="PMA WARN MFC3 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101423" logicalName="PMA_WARN_MFC4_PRESSURE"        description="PMA WARN MFC4 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101424" logicalName="PMA_WARN_MFC5_PRESSURE"        description="PMA WARN MFC5 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101425" logicalName="PMA_WARN_MFC6_PRESSURE"        description="PMA WARN MFC6 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101426" logicalName="PMA_WARN_MFC7_PRESSURE"        description="PMA WARN MFC7 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101427" logicalName="PMA_WARN_MFC8_PRESSURE"        description="PMA WARN MFC8 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101428" logicalName="PMB_WARN_MFC1_PRESSURE"        description="PMB WARN MFC1 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101429" logicalName="PMB_WARN_MFC2_PRESSURE"        description="PMB WARN MFC2 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101430" logicalName="PMB_WARN_MFC3_PRESSURE"        description="PMB WARN MFC3 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101431" logicalName="PMB_WARN_MFC4_PRESSURE"        description="PMB WARN MFC4 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101432" logicalName="PMB_WARN_MFC5_PRESSURE"        description="PMB WARN MFC5 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101433" logicalName="PMB_WARN_MFC6_PRESSURE"        description="PMB WARN MFC6 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101434" logicalName="PMB_WARN_MFC7_PRESSURE"        description="PMB WARN MFC7 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101435" logicalName="PMB_WARN_MFC8_PRESSURE"        description="PMB WARN MFC8 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101436" logicalName="PMC_WARN_MFC1_PRESSURE"        description="PMC WARN MFC1 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101437" logicalName="PMC_WARN_MFC2_PRESSURE"        description="PMC WARN MFC2 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101438" logicalName="PMC_WARN_MFC3_PRESSURE"        description="PMC WARN MFC3 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101439" logicalName="PMC_WARN_MFC4_PRESSURE"        description="PMC WARN MFC4 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101440" logicalName="PMC_WARN_MFC5_PRESSURE"        description="PMC WARN MFC5 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101441" logicalName="PMC_WARN_MFC6_PRESSURE"        description="PMC WARN MFC6 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101442" logicalName="PMC_WARN_MFC7_PRESSURE"        description="PMC WARN MFC7 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101443" logicalName="PMC_WARN_MFC8_PRESSURE"        description="PMC WARN MFC8 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101444" logicalName="PMD_WARN_MFC1_PRESSURE"        description="PMD WARN MFC1 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101445" logicalName="PMD_WARN_MFC2_PRESSURE"        description="PMD WARN MFC2 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101446" logicalName="PMD_WARN_MFC3_PRESSURE"        description="PMD WARN MFC3 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101447" logicalName="PMD_WARN_MFC4_PRESSURE"        description="PMD WARN MFC4 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101448" logicalName="PMD_WARN_MFC5_PRESSURE"        description="PMD WARN MFC5 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101449" logicalName="PMD_WARN_MFC6_PRESSURE"        description="PMD WARN MFC6 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101450" logicalName="PMD_WARN_MFC7_PRESSURE"        description="PMD WARN MFC7 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101451" logicalName="PMD_WARN_MFC8_PRESSURE"        description="PMD WARN MFC8 PRESSURE" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101452" logicalName="PMA_WARN_GASBOX_N2_FLOW"        description="PMA GASBOX N2 FLOW ABORMAL" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101453" logicalName="PMB_WARN_GASBOX_N2_FLOW"        description="PMB GASBOX N2 FLOW ABORMAL" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101454" logicalName="PMC_WARN_GASBOX_N2_FLOW"        description="PMC GASBOX N2 FLOW ABORMAL" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101455" logicalName="PMD_WARN_GASBOX_N2_FLOW"        description="PMD GASBOX N2 FLOW ABORMAL" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101456" logicalName="PMA_WARNING_SENSOR_TMP_WATERFLOW"        description="PMA TMP Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101457" logicalName="PMB_WARNING_SENSOR_TMP_WATERFLOW"        description="PMB TMP Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101458" logicalName="PMC_WARNING_SENSOR_TMP_WATERFLOW"        description="PMC TMP Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101459" logicalName="PMD_WARNING_SENSOR_TMP_WATERFLOW"        description="PMD TMP Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+		<AlarmVariable id="10101460" logicalName="PMA_WARNING_SENSOR_LID_WATERFLOW"        description="PMA LID Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101461" logicalName="PMB_WARNING_SENSOR_LID_WATERFLOW"        description="PMB LID Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101462" logicalName="PMC_WARNING_SENSOR_LID_WATERFLOW"        description="PMC LID Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+		<AlarmVariable id="10101463" logicalName="PMD_WARNING_SENSOR_LID_WATERFLOW"        description="PMD LID Water Flow Abnormal" alarmLevel="EquipmentStatusWarning" enabled="true" eventSet="0" eventClear="0" />
+
+
 	</AlarmVariables>
 	
 	<Reports>

+ 27 - 0
Venus/Venus_RT/Config/LogDefine.json

@@ -1462,6 +1462,33 @@
     "Note": "N2 PRESSURE"
   },
   {
+    "Id": 1301,
+    "Level": "Warning",
+    "LogEnum": "WARN_GASBOX_N2_FLOW",
+    "GlobalDescription_zh": "{0}",
+    "GlobalDescription_en": "{0}",
+    "Module": "PM",
+    "Note": "GASBOX N2 FLOW"
+  },
+  {
+    "Id": 1302,
+    "Level": "Warning",
+    "LogEnum": "WARNING_SENSOR_TMP_WATERFLOW",
+    "GlobalDescription_zh": "IO Sensor : {0}",
+    "GlobalDescription_en": "IO Sensor : {0}",
+    "Module": "PM",
+    "Note": "IO Sensor"
+  },
+  {
+    "Id": 1303,
+    "Level": "Warning",
+    "LogEnum": "WARNING_SENSOR_LID_WATERFLOW",
+    "GlobalDescription_zh": "IO Sensor : {0}",
+    "GlobalDescription_en": "IO Sensor : {0}",
+    "Module": "PM",
+    "Note": "IO Sensor"
+  },
+  {
     "Id": 2000,
     "Level": "Error",
     "LogEnum": "ERR_TM",

BIN
Venus/Venus_RT/Config/PM/Kepler2200A/Kepler2200ADeviceModel.xml


BIN
Venus/Venus_RT/Config/PM/Kepler2200B/Kepler2200BDeviceModel.xml


BIN
Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300DeviceModel.xml


+ 128 - 32
Venus/Venus_RT/Config/System_Kepler2300.sccfg

@@ -296,7 +296,7 @@
 
 	<!--PMA-->
 	<configs name="PMA" nameView="PMA" >
-		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300" max="1" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="sccm" 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" />
@@ -351,19 +351,7 @@
 			<config default="5" name="CheckStableTimeout" nameView="稳定条件:在多长时间内处于稳定状态" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		</configs>
 
-		<!--<configs name="Chiller" nameView="Chiller">
-			<config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
-			--><!--<config default="false" name="ChillerSameWithPMB" nameView="Chiller Same With PMB" description="enable chiller same with PMB or not" max="1" min="0" tag="" unit="" type="Bool" />--><!--
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC; 2, AIRSYS" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="COM44" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
-			<config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="100" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="300" name="SetPointLimitMax" nameView="Chiller Set Point Limit Max" description="" max="500" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="0" name="SetPointLimitMin" nameView="Chiller Set Point Limit Min" description="" max="500" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="true" name="EnableToleranceAlarm" nameView="Enable Tolerance Alarm" description="Enable Tolerance Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
-			<config default="20" name="ToleranceAlarmRange" nameView="Tolerance Alarm Range" description="Tolerance Alarm Range" max="200" min="0" paramter="" tag="" unit="℃" type="Integer" />
-			<config default="60" name="ToleranceAlarmTime" nameView="Tolerance Alarm Time" description="Tolerance Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
-		</configs>-->
+
 		<configs name="InnerChiller" nameView="InnerChiller" >
 			<config default="false" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
 			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC; 2, AIRSYS" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
@@ -613,6 +601,128 @@
 
 		</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="O2" name="GasName" nameView="Gas Name" description="Name of NO.1 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="" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="" 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" 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="N2" 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="" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="" 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" type="Integer" />
+
+		</configs>
+		<configs name="MfcGas11" nameView="MFC Gas11" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 11 or not" tag="" unit="" type="Bool" />
+			<config default="AR" 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="" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="" 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" 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="Gas12" 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" type="Integer" />
+
+		</configs>
+		<configs name="MfcGas13" nameView="MFC Gas13" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 13 or not" tag="" unit="" type="Bool" />
+			<config default="Gas13" name="GasName" nameView="Gas Name" description="Name of NO.13 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" type="Integer" />
+
+		</configs>
+		<configs name="MfcGas14" nameView="MFC Gas14" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 14 or not" tag="" unit="" type="Bool" />
+			<config default="AR" name="GasName" nameView="Gas Name" description="Name of NO.14 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="" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="10" name="MfcAlarmRange" nameView="MFC Alarm Range" description="" max="200" min="0" paramter="" tag="" unit="sccm" type="Integer" />
+			<config default="10" name="MfcAlarmTime" nameView="MFC Alarm Time" description="" 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" type="Integer" />
+
+		</configs>
+		<configs name="MfcGas15" nameView="MFC Gas7" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 15 or not" tag="" unit="" type="Bool" />
+			<config default="Gas15" name="GasName" nameView="Gas Name" description="Name of NO.15 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" type="Integer" />
+
+		</configs>
+		<configs name="MfcGas16" nameView="MFC Gas8" >
+			<config default="true" name="Enable" nameView="Enable" description="Enable gas 16 or not" tag="" unit="" type="Bool" />
+			<config default="Gas16" name="GasName" nameView="Gas Name" description="Name of NO.16 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" />
+			<config default="0" name="MFCWriteMode" nameView="MFCWriteMode" description=" 0:Flow; 1:Percent" max="1" min="0" paramter="" tag="" unit="" 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" />
@@ -825,7 +935,7 @@
 
 	<!--PMB-->
 	<configs name="PMB" nameView="PMB" >
-		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300" max="1" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="sccm" 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" />
@@ -1356,7 +1466,7 @@
 
 	<!--PMC-->
 	<configs name="PMC" nameView="PMC" >
-		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300,2=>Kepler2200A,3=>Kepler2200B" max="5" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
+		<config default="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300" max="1" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="sccm" 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" />
@@ -1887,7 +1997,7 @@
 
 	<!--PMD-->
 	<configs name="PMD" nameView="PMD" >
-		<config default="0" 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="1" name="ChamberType"  nameView="Chamber Type" description="1=>Kepler2300" max="1" min="1" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="100" name="TurboN2FlowSetPoint" nameView="TurboN2SetPoint" description="" max="200" min="0" paramter="" tag="" unit="sccm" 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" />
@@ -1942,21 +2052,7 @@
 			<config default="5" name="CheckStableTimeout" nameView="稳定条件:在多长时间内处于稳定状态" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		</configs>
 
-		<!--<configs name="Chiller" nameView="Chiller">
-			<config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
-			-->
-		<!--<config default="false" name="ChillerSameWithPMB" nameView="Chiller Same With PMB" description="enable chiller same with PMB or not" max="1" min="0" tag="" unit="" type="Bool" />-->
-		<!--
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC; 2, AIRSYS" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="COM44" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
-			<config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="100" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="300" name="SetPointLimitMax" nameView="Chiller Set Point Limit Max" description="" max="500" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="0" name="SetPointLimitMin" nameView="Chiller Set Point Limit Min" description="" max="500" min="0" paramter="" tag="" unit="degree" type="Double" />
-			<config default="true" name="EnableToleranceAlarm" nameView="Enable Tolerance Alarm" description="Enable Tolerance Alarm" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
-			<config default="20" name="ToleranceAlarmRange" nameView="Tolerance Alarm Range" description="Tolerance Alarm Range" max="200" min="0" paramter="" tag="" unit="℃" type="Integer" />
-			<config default="60" name="ToleranceAlarmTime" nameView="Tolerance Alarm Time" description="Tolerance Alarm Time" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
-		</configs>-->
+		
 		<configs name="InnerChiller" nameView="InnerChiller" >
 			<config default="false" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
 			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC; 2, AIRSYS" max="10" min="0" paramter="" tag="" unit="" type="Integer" />

+ 5 - 5
Venus/Venus_RT/Config/TM/_ioDefineVenus_MF.xml

@@ -316,11 +316,11 @@
 		<AI_ITEM Index="27" Name="" />
 		<AI_ITEM Index="28" Name="" />
 		<AI_ITEM Index="29" Name="" />
-		<AI_ITEM Index="30" Name="" />
-		<AI_ITEM Index="31" Name="" />
-		<AI_ITEM Index="32" Name="" />
-		<AI_ITEM Index="33" Name="" />
-		<AI_ITEM Index="34" Name="" />
+		<AI_ITEM Index="30" Name="AI_CDA_PRES_PV"        BufferOffset="60" Device="" Addr="d2060" />
+		<AI_ITEM Index="31" Name="AI_N2_PRES_PV"         BufferOffset="62" Device="" Addr="d2062" />
+		<AI_ITEM Index="32" Name="AI_TM_WATER_FLOW_PV"   BufferOffset="64" Device="" Addr="d2064" />
+		<AI_ITEM Index="33" Name="AI_LLA_WATER_FLOW_PV"  BufferOffset="66" Device="" Addr="d2066" />
+		<AI_ITEM Index="34" Name="AI_LLB_WATER_FLOW_PV"  BufferOffset="68" Device="" Addr="d2068" />
 		<AI_ITEM Index="35" Name="" />
 		<AI_ITEM Index="36" Name="" />
 		<AI_ITEM Index="37" Name="" />

+ 8 - 8
Venus/Venus_RT/Devices/AIRSYSChiller.cs

@@ -86,14 +86,14 @@ namespace Venus_RT.Devices
                 return _controlTcSetPoint;
             }
         }
-        [Subscription(AITChillerProperty.ControlTcFeedback)]
-        public float ControlTcFeedback
-        {
-            get
-            {
-                return _controlTcFeedback;
-            }
-        }
+        //[Subscription(AITChillerProperty.ControlTcFeedback)]
+        //public float ControlTcFeedback
+        //{
+        //    get
+        //    {
+        //        return _controlTcFeedback;
+        //    }
+        //}
 
         [Subscription(AITChillerProperty.CoolantInletTempFeedback)]
         public override float CoolantInletTcFeedback

+ 16 - 9
Venus/Venus_RT/Devices/EdwardsPump.cs

@@ -66,7 +66,7 @@ namespace Venus_RT.Devices
             { 85,"Accessories Module Cold Junction Temperature"},
             { 89,"Purge Gas Heater control"},
             { 116,"Pump Power (iXL120 only)"},
-            
+
             { 152,"Gate Valve ls Closed"},
             { 153,"Gate Valve ls Open"},
 
@@ -478,27 +478,27 @@ namespace Venus_RT.Devices
                         oldAlarm = cmd;
                         string[] infos = cmd.Split(';');
                         int number = int.Parse(infos[0]);
-                        if (number > 0 && infos.Length>1)
+                        if (number > 0 && infos.Length > 1)
                         {
                             for (int i = 1; i < infos.Length; i++)
                             {
                                 string detail = infos[i];
-                                
+
                                 string[] details = detail.Split(',');
                                 if (details.Length == 4)
                                 {
-                                    
+
                                     int parameterCode = int.Parse(details[0]);
-                                    int priorityCode  = int.Parse(details[1]);
+                                    int priorityCode = int.Parse(details[1]);
                                     int alarmTypeCode = int.Parse(details[2]);
                                     int bitStatusCode = int.Parse(details[3]);
 
                                     string parameterDesc = EdwardsPumpErrorInformation.EdwardsPumpParameters.ContainsKey(parameterCode) ? EdwardsPumpErrorInformation.EdwardsPumpParameters[parameterCode] : "UnKnowParameter";
-                                    string priorityDesc  = EdwardsPumpErrorInformation.EdwardsPumpPriorityLevel.ContainsKey(priorityCode) ? EdwardsPumpErrorInformation.EdwardsPumpPriorityLevel[priorityCode] : "UnknowPriority";
+                                    string priorityDesc = EdwardsPumpErrorInformation.EdwardsPumpPriorityLevel.ContainsKey(priorityCode) ? EdwardsPumpErrorInformation.EdwardsPumpPriorityLevel[priorityCode] : "UnknowPriority";
                                     string alarmTypeDesc = EdwardsPumpErrorInformation.EdwardsPumpAlarmType.ContainsKey(alarmTypeCode) ? EdwardsPumpErrorInformation.EdwardsPumpAlarmType[alarmTypeCode] : "UnknowAlarmType";
-                                    var bitStatus= ConvertIntToBitArray(bitStatusCode);
+                                    var bitStatus = ConvertIntToBitArray(bitStatusCode);
                                     string bitbitStatusDesc = "";
-                                    for (int j = 0;j < 16;j++)
+                                    for (int j = 0; j < 16; j++)
                                     {
                                         if (bitStatus[j] == true)
                                         {
@@ -507,7 +507,14 @@ namespace Venus_RT.Devices
 
                                         }
                                     }
-                                    LOG.Write(eEvent.ERR_DRY_PUMP, Module, $"Code:{detail},Parameter Description:{parameterDesc},Priority Description:{priorityDesc},Alarm Type Description:{alarmTypeDesc},Status Description:{bitbitStatusDesc}]");
+                                    if (priorityCode == 0 ||priorityCode == 1)
+                                    {
+                                        LOG.Write(eEvent.WARN_DEFAULT_WARN, Module, $"Code:{detail},Parameter:{parameterDesc},Priority:{priorityDesc},Alarm Type:{alarmTypeDesc},Status:{bitbitStatusDesc}]");
+                                    }
+                                    else
+                                    {
+                                        LOG.Write(eEvent.ERR_DRY_PUMP, Module, $"Code:{detail},Parameter:{parameterDesc},Priority:{priorityDesc},Alarm Type:{alarmTypeDesc},Status:{bitbitStatusDesc}]");
+                                    }
                                 }
                             }
                         }

+ 35 - 59
Venus/Venus_RT/Devices/JetKepler2200APM.cs

@@ -77,7 +77,10 @@ namespace Venus_RT.Devices
         private readonly IoSensor _N2Pressure_sw;
         private readonly IoSensor _VAC_sw;
         private readonly IoSensor _WLK_sw;
-        private readonly IoSensor _Water_Flow;
+        private readonly IoSensor _TMP_Water_Flow;
+        private readonly IoSensor _Chamber_Water_Flow;
+        private readonly IoSensor _Lid_Water_Flow;
+
         private readonly IoSensor _RFG_Interlock;
         //private readonly IoSensor _PM_Lid_Closed;
         private readonly IoSensor _Source_RF_Match_Interlock;
@@ -178,7 +181,7 @@ namespace Venus_RT.Devices
         //public override bool IsATMLoadlock => _ATM_Loadlock_sw.Value;
         //public override bool IsVACLoadLock => LoadlockPressure <= 1000;
         public override bool IsVAC => _VAC_sw.Value;
-        public override bool IsWaterFlowOk => _Water_Flow.Value;
+        public override bool IsWaterFlowOk => _Chamber_Water_Flow.Value;
         public override bool IsWLK => _WLK_sw.Value;
         public override bool IsRFGInterlockOn => _RFG_Interlock.Value;
         //public override bool PMLidClosed => _PM_Lid_Closed.Value;
@@ -335,7 +338,11 @@ namespace Venus_RT.Devices
             //_ATM_Loadlock_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorLoadlockATMSwitch");
             _N2Pressure_sw = DEVICE.GetDevice<IoSensor>($"{Module}.N2PressureOk");
             _VAC_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorVacSwitch");
-            _Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterFlowOk");
+
+            _TMP_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.TMPWaterFlowOk");
+            _Chamber_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.ChamberWaterFlowOk");
+            _Lid_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.LidWaterFlowOk");
+
             _WLK_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterLeakOk");
             _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
             _RFG_Interlock = DEVICE.GetDevice<IoSensor>($"{Module}.GeneratorInterlock");
@@ -383,22 +390,9 @@ namespace Venus_RT.Devices
                 }
             }
 
-            //_ESCHV = DEVICE.GetDevice<ESC5HighVoltage>($"{Module}.{VenusDevice.ESCHV}");
             _TurboPump = DEVICE.GetDevice<AdixenTurboPump>($"{Module}.{VenusDevice.TurboPump}");
             _pendulumValve = DEVICE.GetDevice<PendulumValve>($"{Module}.{VenusDevice.PendulumValve}");
 
-            //if (SC.GetValue<bool>($"{Module}.Chiller.EnableChiller") &&
-            //    SC.GetValue<int>($"{Module}.Chiller.CommunicationType") == (int)CommunicationType.RS232)
-            //{
-            //    if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.SMC)
-            //    {
-            //        _Chiller = DEVICE.GetDevice<SMCChiller>($"{Module}.{VenusDevice.Chiller}");
-            //    }
-            //    else if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.AIRSYS)
-            //    {
-            //        _Chiller = DEVICE.GetDevice<AIRSYSChiller>($"{Module}.{VenusDevice.Chiller}");
-            //    }
-            //}
 
 
             // RS223 AdTec Generator
@@ -407,20 +401,7 @@ namespace Venus_RT.Devices
             {
                 _Generator = DEVICE.GetDevice<AdTecGenerator>($"{Module}.{VenusDevice.Rf}");
             }
-            //_Heartbeat = DEVICE.GetDevice<IoHeartbeat>($"{Module}.{VenusDevice.Heartbeat}");
-            // Ethernet Comet Generator Bias
-            //if (SC.GetValue<bool>($"{Module}.BiasRf.EnableBiasRF"))
-            //{
-            //    if (SC.GetValue<int>($"{Module}.BiasRf.CommunicationType") == (int)CommunicationType.Ethernet &&
-            //        SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.Comet)
-            //    {
-            //        _GeneratorBias = DEVICE.GetDevice<CometRF>($"{Module}.{VenusDevice.BiasRf}");
-            //    }
-            //    else if (SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.AdTec)
-            //    {
-            //        _GeneratorBias = DEVICE.GetDevice<AdTecGenerator>($"{Module}.{VenusDevice.BiasRf}");
-            //    }
-            //}
+
 
             if (SC.GetValue<int>($"{Module}.Match.CommunicationType") == (int)CommunicationType.RS232 &&
                 SC.GetValue<int>($"{Module}.Match.MFG") == (int)MatchMFG.AdTec)
@@ -433,64 +414,55 @@ namespace Venus_RT.Devices
                 _Match = DEVICE.GetDevice<RevtechMatch>($"{Module}.{VenusDevice.Match}");
             }
 
-
-            //if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.CommunicationType") == (int)CommunicationType.RS232 &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.AdTec)
-            //{
-            //    _BiasMatch = DEVICE.GetDevice<AdTecMatch>($"{Module}.{VenusDevice.BiasMatch}");
-            //}
-            //else if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.Revtech)
-            //{
-            //    _BiasMatch = DEVICE.GetDevice<RevtechMatch>($"{Module}.{VenusDevice.BiasMatch}");
-            //}
-            //if (SC.GetValue<bool>($"{Module}.RFBox.EnableMatch") &&
-            //   SC.GetValue<int>($"{Module}.RFBox.CommunicationType") == (int)CommunicationType.RS232 &&
-            //   SC.GetValue<int>($"{Module}.RFBox.MFG") == (int)MatchMFG.AdTec)
-            //{
-            //    _RFBox = DEVICE.GetDevice<AdTecMatch>($"{Module}.{VenusDevice.RFBox}");
-            //}
-            //else if (SC.GetValue<bool>($"{Module}.RFBox.EnableMatch") &&
-            //    SC.GetValue<int>($"{Module}.RFBox.MFG") == (int)MatchMFG.Revtech)
-            //{
-            //    _RFBox = DEVICE.GetDevice<RevtechMatch>($"{Module}.{VenusDevice.RFBox}");
-            //}
+          
             _foreline_interlock_pressure = SC.GetValue<int>($"{Module}.PendulumValve.ForelinePressureLimit");
 
             _GasRFStopWatch.Stop();
 
             processPressureLimit = 260;//unit Pa
             _GasBoxN2FlowSwitchStopWatch.Start();
-            //_PressureType = (PressureType)SC.GetValue<int>("System.PressureUnitType");
 
             DATA.Subscribe($"{Name}.PenningPressure", () => _pressureController.PenningGauge.Value);
 
             _CDAPressure.WarningAction += CDAPressureNotify;
-            _Water_Flow.WarningAction += WATERFLOWNotify;
+
+            _TMP_Water_Flow.WarningAction += TMPWATERFLOWNotify;
+            _Chamber_Water_Flow.WarningAction += WATERFLOWNotify;
+            _Lid_Water_Flow.WarningAction += LIDWATERFLOWNotify;
+
+
             _WLK_sw.WarningAction += WATERLEAKNotify;
             //_N2Pressure_sw.WarningAction += N2PressureNotify;
             _GasBoxDoor.WarningAction += GasBoxDoorNotify;
             _GasBoxPressure.WarningAction += GasBoxPressureNotify;
             _N2PurgePressure_sw.WarningAction += N2PurgePressureNotify;
+            _GasBoxN2Flow_sw.WarningAction += GasBoxN2FlowNotify;
         }
         private void CDAPressureNotify()
         {
             LOG.Write(eEvent.WARNING_SENSOR_CDAPRESSURE, Module, "CDA Pressure Abnormal");
         }
+        private void TMPWATERFLOWNotify()
+        {
+            LOG.Write(eEvent.WARNING_SENSOR_TMP_WATERFLOW, Module, "TMP Water Flow Abnormal");
+        }
+        private void LIDWATERFLOWNotify()
+        {
+            LOG.Write(eEvent.WARNING_SENSOR_LID_WATERFLOW, Module, "LID Water Flow Abnormal");
+        }
         private void WATERFLOWNotify()
         {
             var waterFlowMode = (WaterFlowMode)SC.GetValue<int>($"{Module}.WaterFlowMode");
             switch (waterFlowMode)
             {
                 case WaterFlowMode.Warning:
-                    LOG.Write(eEvent.WARNING_SENSOR_WATERFLOW, Module, "Water Flow Abnormal");
+                    LOG.Write(eEvent.WARNING_SENSOR_WATERFLOW, Module, "Chamber Water Flow Abnormal");
                     break;
                 case WaterFlowMode.StopCurrentProcess:
-                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_CURRENTPROCESS, Module, "Water Flow Abnormal,立即停止工艺");
+                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_CURRENTPROCESS, Module, "Chamber Water Flow Abnormal,立即停止工艺");
                     break;
                 case WaterFlowMode.StopNextProcess:
-                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_NEXTPROCESS, Module, "Water Flow Abnormal,继续当前工艺,后续工艺不再进行");
+                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_NEXTPROCESS, Module, "Chamber Water Flow Abnormal,继续当前工艺,后续工艺不再进行");
                     break;
             }
         }
@@ -513,7 +485,11 @@ namespace Venus_RT.Devices
         }
         private void N2PurgePressureNotify()
         {
-            LOG.Write(eEvent.WARNING_SENSOR_N2PURGEPRESSURE, "N2 Purge Pressure Abnormal");
+            LOG.Write(eEvent.WARNING_SENSOR_N2PURGEPRESSURE,Module, "N2 Purge Pressure Abnormal");
+        }
+        private void GasBoxN2FlowNotify()
+        {
+            LOG.Write(eEvent.WARN_GASBOX_N2_FLOW, Module, "Gas Box N2 Flow Abnormal");
         }
         #endregion
 

+ 38 - 45
Venus/Venus_RT/Devices/JetKepler2200BPM.cs

@@ -73,7 +73,11 @@ namespace Venus_RT.Devices
         private readonly IoSensor _N2Pressure_sw;
         private readonly IoSensor _VAC_sw;
         private readonly IoSensor _WLK_sw;
-        private readonly IoSensor _Water_Flow;
+
+        private readonly IoSensor _TMP_Water_Flow;
+        private readonly IoSensor _Chamber_Water_Flow;
+        private readonly IoSensor _Lid_Water_Flow;
+
         private readonly IoSensor _RFG_Interlock;
         //private readonly IoSensor _PM_Lid_Closed;
         private readonly IoSensor _Source_RF_Match_Interlock;
@@ -174,7 +178,7 @@ namespace Venus_RT.Devices
         //public override bool IsATMLoadlock => _ATM_Loadlock_sw.Value;
         //public override bool IsVACLoadLock => LoadlockPressure <= 1000;
         public override bool IsVAC => _VAC_sw.Value;
-        public override bool IsWaterFlowOk => _Water_Flow.Value;
+        public override bool IsWaterFlowOk => _Chamber_Water_Flow.Value;
         public override bool IsWLK => _WLK_sw.Value;
         public override bool IsRFGInterlockOn => _RFG_Interlock.Value;
         //public override bool PMLidClosed => _PM_Lid_Closed.Value;
@@ -328,7 +332,11 @@ namespace Venus_RT.Devices
             //_ATM_Loadlock_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorLoadlockATMSwitch");
             _N2Pressure_sw = DEVICE.GetDevice<IoSensor>($"{Module}.N2PressureOk");
             _VAC_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorVacSwitch");
-            _Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterFlowOk");
+
+            _TMP_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.TMPWaterFlowOk");
+            _Chamber_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.ChamberWaterFlowOk");
+            _Lid_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.LidWaterFlowOk");
+
             _WLK_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterLeakOk");
             _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
             _RFG_Interlock = DEVICE.GetDevice<IoSensor>($"{Module}.GeneratorInterlock");
@@ -384,18 +392,7 @@ namespace Venus_RT.Devices
             _TurboPump = DEVICE.GetDevice<AdixenTurboPump>($"{Module}.{VenusDevice.TurboPump}");
             _pendulumValve = DEVICE.GetDevice<PendulumValve>($"{Module}.{VenusDevice.PendulumValve}");
 
-            //if (SC.GetValue<bool>($"{Module}.Chiller.EnableChiller") &&
-            //    SC.GetValue<int>($"{Module}.Chiller.CommunicationType") == (int)CommunicationType.RS232)
-            //{
-            //    if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.SMC)
-            //    {
-            //        _Chiller = DEVICE.GetDevice<SMCChiller>($"{Module}.{VenusDevice.Chiller}");
-            //    }
-            //    else if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.AIRSYS)
-            //    {
-            //        _Chiller = DEVICE.GetDevice<AIRSYSChiller>($"{Module}.{VenusDevice.Chiller}");
-            //    }
-            //}
+           
 
 
             // RS223 AdTec Generator
@@ -405,19 +402,7 @@ namespace Venus_RT.Devices
                 _Generator = DEVICE.GetDevice<AdTecGenerator>($"{Module}.{VenusDevice.Rf}");
             }
             _Heartbeat = DEVICE.GetDevice<IoHeartbeat>($"{Module}.{VenusDevice.Heartbeat}");
-            // Ethernet Comet Generator Bias
-            //if (SC.GetValue<bool>($"{Module}.BiasRf.EnableBiasRF"))
-            //{
-            //    if (SC.GetValue<int>($"{Module}.BiasRf.CommunicationType") == (int)CommunicationType.Ethernet &&
-            //        SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.Comet)
-            //    {
-            //        _GeneratorBias = DEVICE.GetDevice<CometRF>($"{Module}.{VenusDevice.BiasRf}");
-            //    }
-            //    else if (SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.AdTec)
-            //    {
-            //        _GeneratorBias = DEVICE.GetDevice<AdTecGenerator>($"{Module}.{VenusDevice.BiasRf}");
-            //    }
-            //}
+           
 
             if (SC.GetValue<int>($"{Module}.Match.CommunicationType") == (int)CommunicationType.RS232 &&
                 SC.GetValue<int>($"{Module}.Match.MFG") == (int)MatchMFG.AdTec)
@@ -431,17 +416,7 @@ namespace Venus_RT.Devices
             }
 
 
-            //if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.CommunicationType") == (int)CommunicationType.RS232 &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.AdTec)
-            //{
-            //    _BiasMatch = DEVICE.GetDevice<AdTecMatch>($"{Module}.{VenusDevice.BiasMatch}");
-            //}
-            //else if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
-            //    SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.Revtech)
-            //{
-            //    _BiasMatch = DEVICE.GetDevice<RevtechMatch>($"{Module}.{VenusDevice.BiasMatch}");
-            //}
+           
             if (SC.GetValue<bool>($"{Module}.RFBox.EnableMatch") &&
                SC.GetValue<int>($"{Module}.RFBox.CommunicationType") == (int)CommunicationType.RS232 &&
                SC.GetValue<int>($"{Module}.RFBox.MFG") == (int)MatchMFG.AdTec)
@@ -484,39 +459,53 @@ namespace Venus_RT.Devices
 
 
             _CDAPressure.WarningAction += CDAPressureNotify;
-            _Water_Flow.WarningAction += WATERFLOWNotify;
+
+            _TMP_Water_Flow.WarningAction += TMPWATERFLOWNotify;
+            _Chamber_Water_Flow.WarningAction += WATERFLOWNotify;
+            _Lid_Water_Flow.WarningAction += LIDWATERFLOWNotify;
+
             _WLK_sw.WarningAction += WATERLEAKNotify;
             //_N2Pressure_sw.WarningAction += N2PressureNotify;
             _GasBoxDoor.WarningAction += GasBoxDoorNotify;
             _GasBoxPressure.WarningAction += GasBoxPressureNotify;
             _N2PurgePressure_sw.WarningAction += N2PurgePressureNotify;
+            _GasBoxN2Flow_sw.WarningAction += GasBoxN2FlowNotify;
 
 
 
         }
 
         #endregion
-         private void CDAPressureNotify()
+        private void CDAPressureNotify()
         {
             LOG.Write(eEvent.WARNING_SENSOR_CDAPRESSURE, Module, "CDA Pressure Abnormal");
         }
+
+        private void TMPWATERFLOWNotify()
+        {
+            LOG.Write(eEvent.WARNING_SENSOR_TMP_WATERFLOW, Module, "TMP Water Flow Abnormal");
+        }
+        
         private void WATERFLOWNotify()
         {
             var waterFlowMode = (WaterFlowMode)SC.GetValue<int>($"{Module}.WaterFlowMode");
             switch (waterFlowMode)
             {
                 case WaterFlowMode.Warning:
-                    LOG.Write(eEvent.WARNING_SENSOR_WATERFLOW, Module, "Water Flow Abnormal");
+                    LOG.Write(eEvent.WARNING_SENSOR_WATERFLOW, Module, "Chamber Water Flow Abnormal");
                     break;
                 case WaterFlowMode.StopCurrentProcess:
-                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_CURRENTPROCESS, Module, "Water Flow Abnormal,立即停止工艺");
+                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_CURRENTPROCESS, Module, "Chamber Water Flow Abnormal,立即停止工艺");
                     break;
                 case WaterFlowMode.StopNextProcess:
-                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_NEXTPROCESS, Module, "Water Flow Abnormal,继续当前工艺,后续工艺不再进行");
+                    LOG.Write(eEvent.ERR_SENSOR_WATERFLOW_STOP_NEXTPROCESS, Module, "Chamber Water Flow Abnormal,继续当前工艺,后续工艺不再进行");
                     break;
             }
         }
-        
+        private void LIDWATERFLOWNotify()
+        {
+            LOG.Write(eEvent.WARNING_SENSOR_LID_WATERFLOW, Module, "LID Water Flow Abnormal");
+        }
         private void WATERLEAKNotify()
         {
             LOG.Write(eEvent.WARNING_SENSOR_WATERLEAK, Module, "Water Leak");
@@ -537,6 +526,10 @@ namespace Venus_RT.Devices
         {
             LOG.Write(eEvent.WARNING_SENSOR_N2PURGEPRESSURE, Module, "N2 Purge Pressure Abnormal");
         }
+        private void GasBoxN2FlowNotify()
+        {
+            LOG.Write(eEvent.WARN_GASBOX_N2_FLOW, Module, "Gas Box N2 Flow Abnormal");
+        }
         public async override void CloseValves(int? delayTime = null)
         {
             _PVN21Valve.TurnValve(false, out _);

+ 330 - 350
Venus/Venus_RT/Devices/JetKepler2300PM.cs

@@ -3,77 +3,68 @@ using Aitex.Core.RT.Device;
 using Aitex.Core.RT.Device.Unit;
 using Aitex.Core.RT.SCCore;
 using Aitex.Core.RT.Log;
-using Aitex.Core.Util;
 using MECF.Framework.Common.Device.Bases;
 using MECF.Framework.Common.Equipment;
 using System;
-using System.Collections.Generic;
 using Venus_Core;
 using Venus_RT.Modules;
 using Venus_RT.Devices.IODevices;
-using Venus_RT.Devices.EPD;
 using MECF.Framework.Common.SubstrateTrackings;
 using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
 using System.Threading.Tasks;
-using Aitex.Core.RT.DataCenter;
-using Aitex.Core.Backend;
-using Aitex.Core.RT.OperationCenter;
-using Aitex.Core.RT.Event;
 using System.Diagnostics;
 
 namespace Venus_RT.Devices
 {
     class JetKepler2300PM : JetPMBase
     {
-        private readonly IoLid _Lid;
-
-        private readonly IoCylinder _slitDoor;
-        private readonly IoCylinder _LiftPin;
-
-        private readonly IoValve _PVN21Valve;
-        private readonly IoValve _PVN22Valve;
-        private readonly IoValve _PV11Valve;
-        private readonly IoValve _PV12Valve;
-        private readonly IoValve _PV21Valve;
-        private readonly IoValve _PV22Valve;
-        private readonly IoValve _PV31Valve;
-        private readonly IoValve _PV32Valve;
-        private readonly IoValve _PV41Valve;
-        private readonly IoValve _PV42Valve;
-        private readonly IoValve _N2Valve;
-        private readonly IoValve _Mfc1Valve;
-        private readonly IoValve _Mfc2Valve;
-        private readonly IoValve _Mfc3Valve;
-        private readonly IoValve _Mfc4Valve;
-        private readonly IoValve _Mfc5Valve;
-        private readonly IoValve _Mfc6Valve;
-        private readonly IoValve _Mfc7Valve;
-        private readonly IoValve _Mfc8Valve;
-        private readonly IoValve _PVHe1Valve;
-        private readonly IoValve _PVHe2Valve;
-        private readonly IoValve _GasFinalValve;
-        private readonly IoValve _SoftPumpValve;
-        private readonly IoValve _FastPumpValve;
-        private readonly IoValve _TurboPumpPumpingValve;
-        private readonly IoValve _TurboPumpPurgeValve;
-        private readonly IoValve _GuageValve;
-        //private readonly IoValve _LoadlockVentValve;
-        //private readonly IoValve _LoadlockPumpingValve;
-
-        private readonly IoSensor _ATM_sw;
-        private readonly IoSensor _CDAPressure;
-        private readonly IoSensor _ATM_Loadlock_sw;
-        private readonly IoSensor _N2Pressure_sw;
-        private readonly IoSensor _VAC_sw;
-        private readonly IoSensor _WLK_sw;
-        private readonly IoSensor _Water_Flow;
-        private readonly IoSensor _RFG_Interlock;
-        //private readonly IoSensor _PM_Lid_Closed;
-        private readonly IoSensor _Source_RF_Fan;
-        private readonly IoSensor _PM_SlitDoor_Closed;
-        private readonly IoSensor _TurboPumpInterlock;
-        private readonly IoSensor _GasBoxDoor;
-        private readonly IoSensor _GasBoxPressure;
+        //private readonly IoLid _Lid;
+
+        //private readonly IoCylinder _slitDoor;
+        //private readonly IoCylinder _LiftPin;
+
+        //private readonly IoValve _PVN21Valve;
+        //private readonly IoValve _PVN22Valve;
+        //private readonly IoValve _PV11Valve;
+        //private readonly IoValve _PV12Valve;
+        //private readonly IoValve _PV21Valve;
+        //private readonly IoValve _PV22Valve;
+        //private readonly IoValve _PV31Valve;
+        //private readonly IoValve _PV32Valve;
+        //private readonly IoValve _PV41Valve;
+        //private readonly IoValve _PV42Valve;
+        //private readonly IoValve _N2Valve;
+        //private readonly IoValve _Mfc1Valve;
+        //private readonly IoValve _Mfc2Valve;
+        //private readonly IoValve _Mfc3Valve;
+        //private readonly IoValve _Mfc4Valve;
+        //private readonly IoValve _Mfc5Valve;
+        //private readonly IoValve _Mfc6Valve;
+        //private readonly IoValve _Mfc7Valve;
+        //private readonly IoValve _Mfc8Valve;
+        //private readonly IoValve _PVHe1Valve;
+        //private readonly IoValve _PVHe2Valve;
+        //private readonly IoValve _GasFinalValve;
+        //private readonly IoValve _SoftPumpValve;
+        //private readonly IoValve _FastPumpValve;
+        //private readonly IoValve _TurboPumpPumpingValve;
+        //private readonly IoValve _TurboPumpPurgeValve;
+        //private readonly IoValve _GuageValve;
+
+
+        //private readonly IoSensor _ATM_sw;
+        //private readonly IoSensor _CDAPressure;
+        //private readonly IoSensor _ATM_Loadlock_sw;
+        //private readonly IoSensor _N2Pressure_sw;
+        //private readonly IoSensor _VAC_sw;
+        //private readonly IoSensor _WLK_sw;
+        //private readonly IoSensor _Water_Flow;
+        //private readonly IoSensor _RFG_Interlock;
+        //private readonly IoSensor _Source_RF_Fan;
+        //private readonly IoSensor _PM_SlitDoor_Closed;
+        //private readonly IoSensor _TurboPumpInterlock;
+        //private readonly IoSensor _GasBoxDoor;
+        //private readonly IoSensor _GasBoxPressure;
 
 
         private readonly PumpBase _MainPump;
@@ -81,7 +72,6 @@ namespace Venus_RT.Devices
         private readonly AdixenTurboPump _TurboPump;
         private readonly PendulumValve _pendulumValve;
 
-        //private readonly ChillerBase _Chiller;
         private readonly ChillerBase _InnerChiller;
         private readonly ChillerBase _OuterChiller;
         private readonly ChillerBase _TopChiller;
@@ -109,63 +99,56 @@ namespace Venus_RT.Devices
         private readonly double _foreline_interlock_pressure = 750;
 
         private Stopwatch _GasRFStopWatch = new Stopwatch();
-        //private bool _GasFlag = false;
 
 
-        private float _chillerInnerTemp => GetAiValue($"{Module}.AI_ESC_inner_coolant_outlet_TC_Temp");
-        private float _chillerOuterTemp => GetAiValue($"{Module}.AI_ESC_outer_coolant_outlet_TC_Temp");
-        private float _chillerTopTemp => GetAiValue($"{Module}.AI_Top_Plate_coolant_outlet_TC_Temp");
-
         private Stopwatch _pendulumValveStopWatch = new Stopwatch();
 
         // 盖子的状态
-        public override bool IsLidClosed => _Lid.OFFFeedback;
-        //public override bool IsLidLoadlockClosed => _LidLoadlock.OFFFeedback;
+        public override bool IsLidClosed => false;
 
-        public override bool IsSlitDoorClosed => _slitDoor.State == CylinderState.Close;
+        public override bool IsSlitDoorClosed => false;
 
         public override bool IsPumpRunning => _MainPump.IsRunning;
         public override bool IsTurboPumpRunning => _TurboPump.IsRunning;
         public override bool IsTurboPumpAtSpeed => _TurboPump.AtSpeed;
         public override float TurboPumpSpeed => _TurboPump.Speed;
-        public override bool IsISOOpen => _TurboPumpPumpingValve.Status;
+        public override bool IsISOOpen => false;
         public override bool HasPumpError => _MainPump.IsError || !_MainPump.IsRunning;
 
         public override bool HasTurboPumpError => _TurboPump.IsError || !_TurboPump.IsRunning;
 
-        public override bool IsCDA_OK => _CDAPressure.Value;
+        public override bool IsCDA_OK => false;
 
-        public override bool IsFastPumpOpened => _FastPumpValve.Status;
-        public override bool IsSoftPumpOpened => _SoftPumpValve.Status;
-        public override bool IsMfc1ValveOpened => _Mfc1Valve.Status;
-        public override bool IsMfc2ValveOpened => _Mfc2Valve.Status;
-        public override bool IsMfc3ValveOpened => _Mfc3Valve.Status;
-        public override bool IsMfc4ValveOpened => _Mfc4Valve.Status;
-        public override bool IsMfc5ValveOpened => _Mfc5Valve.Status;
-        public override bool IsMfc6ValveOpened => _Mfc6Valve.Status;
-        public override bool IsMfc7ValveOpened => _Mfc7Valve.Status;
-        public override bool IsMfc8ValveOpened => _Mfc8Valve.Status;
+        public override bool IsFastPumpOpened => false;
+        public override bool IsSoftPumpOpened => false;
+        public override bool IsMfc1ValveOpened => false;
+        public override bool IsMfc2ValveOpened => false;
+        public override bool IsMfc3ValveOpened => false;
+        public override bool IsMfc4ValveOpened => false;
+        public override bool IsMfc5ValveOpened => false;
+        public override bool IsMfc6ValveOpened => false;
+        public override bool IsMfc7ValveOpened => false;
+        public override bool IsMfc8ValveOpened => false;
 
-        public override bool IsGuageValveOpened => _GuageValve.Status;
+        public override bool IsGuageValveOpened => false;
 
         // 压力信号
-        public override bool IsATM => _ATM_sw.Value;
+        public override bool IsATM => false;
 
-        public override bool PVN22ValveIsOpen => _PVN22Valve.Status;
-        public override bool LiftPinIsDown => _LiftPin.OFFFeedback;
-        public override bool LiftPinIsUp => _LiftPin.ONFeedback;
+        public override bool PVN22ValveIsOpen => false;
+        public override bool LiftPinIsDown => false;
+        public override bool LiftPinIsUp => false;
 
         //public override bool IsATMLoadlock => _ATM_Loadlock_sw.Value;
         //public override bool IsVACLoadLock => LoadlockPressure <= 1000;
-        public override bool IsVAC => _VAC_sw.Value;
+        public override bool IsVAC => false;
         public override bool IsWaterFlowOk => true;
-        public override bool IsWLK => _WLK_sw.Value;
-        public override bool IsRFGInterlockOn => _RFG_Interlock.Value;
+        public override bool IsWLK => false;
+        public override bool IsRFGInterlockOn => false;
 
-        //public override bool PMLidClosed => _PM_Lid_Closed.Value;
-        public override bool TurboPumpInterlock => _TurboPumpInterlock.Value;
-        public override bool SourceRFFanInterlock => _Source_RF_Fan.Value;
-        public override bool SlitDoorClosed => _PM_SlitDoor_Closed.Value;
+        public override bool TurboPumpInterlock => false;
+        public override bool SourceRFFanInterlock => false;
+        public override bool SlitDoorClosed => false;
 
         //public override double ProcessLowPressure => _pressureController.ProcessLow.Value;
         //public override double ProcessHighPressure => _pressureController.ProcessHigh.Value;
@@ -183,12 +166,11 @@ namespace Venus_RT.Devices
         //        }
         //    }
         //}
-        public override double ProcessPressure => _pressureController.ProcessGauge.Value;
-        public override double ChamberPressure => _pressureController.PressureGauge.Value;
-        public override double ForelinePressure => _pressureController.ForelineGauge.Value;
-        public override double TargetPressure => _pressureController.TargetPressure;
-        //public override double LoadlockPressure => 0;
-        public override double ESCHePressure => _pressureController.ESCHeGauge.Value;
+        public override double ProcessPressure => 0;
+        public override double ChamberPressure => 0;
+        public override double ForelinePressure => 0;
+        public override double TargetPressure =>0;
+        public override double ESCHePressure => 0;
 
         public override int ESCOutputVoltage => _ESCHV.OutputVoltage;
         public override double ESCPositiveOutputCurrent => _ESCHV.PositiveOutputCurrent;
@@ -227,46 +209,46 @@ namespace Venus_RT.Devices
 
         public new ModuleName Module { get; }
 
-        public override MovementPosition LiftPinPosition
-        {
-            get
-            {
-                MovementPosition pos = MovementPosition.Unknown;
-                if (_LiftPin.ONFeedback && !_LiftPin.OFFFeedback)
-                {
-                    pos = MovementPosition.Up;
-                }
-                else if (!_LiftPin.ONFeedback && _LiftPin.OFFFeedback)
-                {
-                    pos = MovementPosition.Down;
-                }
-                return pos;
-            }
-        }
+        //public override MovementPosition LiftPinPosition
+        //{
+        //    get
+        //    {
+        //        MovementPosition pos = MovementPosition.Unknown;
+        //        if (_LiftPin.ONFeedback && !_LiftPin.OFFFeedback)
+        //        {
+        //            pos = MovementPosition.Up;
+        //        }
+        //        else if (!_LiftPin.ONFeedback && _LiftPin.OFFFeedback)
+        //        {
+        //            pos = MovementPosition.Down;
+        //        }
+        //        return pos;
+        //    }
+        //}
 
         //public override bool CheckAtm()
         //{
         //    return _ATM_sw.Value && ChamberPressure > 700000;
         //}
-        public override bool CheckSlitDoorOpen()
-        {
-            return _slitDoor.State == CylinderState.Open;
-        }
+        //public override bool CheckSlitDoorOpen()
+        //{
+        //    return _slitDoor.State == CylinderState.Open;
+        //}
 
-        public override bool CheckSlitDoorClose()
-        {
-            return _slitDoor.State == CylinderState.Close;
-        }
+        //public override bool CheckSlitDoorClose()
+        //{
+        //    return _slitDoor.State == CylinderState.Close;
+        //}
 
-        public override bool CheckLiftUp()
-        {
-            return _LiftPin.State == CylinderState.Open;
-        }
+        //public override bool CheckLiftUp()
+        //{
+        //    return _LiftPin.State == CylinderState.Open;
+        //}
 
-        public override bool CheckLiftDown()
-        {
-            return _LiftPin.State == CylinderState.Close;
-        }
+        //public override bool CheckLiftDown()
+        //{
+        //    return _LiftPin.State == CylinderState.Close;
+        //}
         public override double TotalGasSetpoint
         {
             get
@@ -311,58 +293,55 @@ namespace Venus_RT.Devices
         public JetKepler2300PM(ModuleName moduleName) : base(moduleName)
         {
             Module = moduleName;
-            _Lid = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.Lid}");
-            //_LidLoadlock = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.LidLoadlock}");
-
-            _slitDoor = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.SlitDoor}");
-            _LiftPin = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LiftPin}");
-            //_LoadLockArm = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LoadLockArm}");
-
-            _PVN21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN21}");
-            _PVN22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN22}");
-            _PV11Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV11}");
-            _PV12Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV12}");
-            _PV21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV21}");
-            _PV22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV22}");
-            _PV31Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV31}");
-            _PV32Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV32}");
-            _PV41Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV41}");
-            _PV42Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV42}");
-            _N2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveN2}");
-            _Mfc1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc1}");
-            _Mfc2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
-            _Mfc3Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc3}");
-            _Mfc4Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc4}");
-            _Mfc5Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc5}");
-            _Mfc6Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc6}");
-            _Mfc7Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc7}");
-            _Mfc8Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc8}");
-            _PVHe1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe1}");
-            _PVHe2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe2}");
-            _GasFinalValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGasFinal}");
-            _SoftPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveSoftPump}");
-            _FastPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveFastPump}");
-            _TurboPumpPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPumping}");
-            _TurboPumpPurgeValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPurge}");
-            _GuageValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGuage}");
-            //_LoadlockVentValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockVent}");
-            //_LoadlockPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockPumping}");
-            _heMfc = DEVICE.GetDevice<IoMfc>($"{Module}.MfcHe");
-            _ATM_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorATMSwitch");
-            _ATM_Loadlock_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorLoadlockATMSwitch");
-            _N2Pressure_sw = DEVICE.GetDevice<IoSensor>($"{Module}.N2PressureOk");
-            _VAC_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorVacSwitch");
-            _Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterFlowOk");
-            _WLK_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterLeakOk");
-            _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
-            _RFG_Interlock = DEVICE.GetDevice<IoSensor>($"{Module}.GeneratorInterlock");
-
-            //_PM_Lid_Closed = DEVICE.GetDevice<IoSensor>($"{Module}.SensorPMLidClosed");
-            _Source_RF_Fan = DEVICE.GetDevice<IoSensor>($"{Module}.SensorSourceRFFan");
-            _PM_SlitDoor_Closed = DEVICE.GetDevice<IoSensor>($"{Module}.SensorSlitDoorClosed");
-            _TurboPumpInterlock = DEVICE.GetDevice<IoSensor>($"{Module}.TurboPumpInterlock");
-            _GasBoxDoor = DEVICE.GetDevice<IoSensor>($"{Module}.GasBoxDoorSW");
-            _GasBoxPressure = DEVICE.GetDevice<IoSensor>($"{Module}.GasBoxPressureSW");
+           // _Lid = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.Lid}");
+
+
+            //_slitDoor = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.SlitDoor}");
+            //_LiftPin = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LiftPin}");
+
+
+            //_PVN21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN21}");
+            //_PVN22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN22}");
+            //_PV11Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV11}");
+            //_PV12Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV12}");
+            //_PV21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV21}");
+            //_PV22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV22}");
+            //_PV31Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV31}");
+            //_PV32Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV32}");
+            //_PV41Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV41}");
+            //_PV42Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV42}");
+            //_N2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveN2}");
+            //_Mfc1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc1}");
+            //_Mfc2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
+            //_Mfc3Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc3}");
+            //_Mfc4Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc4}");
+            //_Mfc5Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc5}");
+            //_Mfc6Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc6}");
+            //_Mfc7Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc7}");
+            //_Mfc8Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc8}");
+            //_PVHe1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe1}");
+            //_PVHe2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe2}");
+            //_GasFinalValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGasFinal}");
+            //_SoftPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveSoftPump}");
+            //_FastPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveFastPump}");
+            //_TurboPumpPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPumping}");
+            //_TurboPumpPurgeValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPurge}");
+            //_GuageValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGuage}");
+            
+            //_heMfc = DEVICE.GetDevice<IoMfc>($"{Module}.MfcHe");
+            //_ATM_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorATMSwitch");
+            //_ATM_Loadlock_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorLoadlockATMSwitch");
+            //_N2Pressure_sw = DEVICE.GetDevice<IoSensor>($"{Module}.N2PressureOk");
+            //_VAC_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorVacSwitch");
+            //_Water_Flow = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterFlowOk");
+            //_WLK_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorWaterLeakOk");
+            //_CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
+            //_RFG_Interlock = DEVICE.GetDevice<IoSensor>($"{Module}.GeneratorInterlock");
+            //_Source_RF_Fan = DEVICE.GetDevice<IoSensor>($"{Module}.SensorSourceRFFan");
+            //_PM_SlitDoor_Closed = DEVICE.GetDevice<IoSensor>($"{Module}.SensorSlitDoorClosed");
+            //_TurboPumpInterlock = DEVICE.GetDevice<IoSensor>($"{Module}.TurboPumpInterlock");
+            //_GasBoxDoor = DEVICE.GetDevice<IoSensor>($"{Module}.GasBoxDoorSW");
+            //_GasBoxPressure = DEVICE.GetDevice<IoSensor>($"{Module}.GasBoxPressureSW");
 
 
             _ForelineTC = DEVICE.GetDevice<IoHeater>($"{Module}.ForelineHeater");
@@ -371,7 +350,7 @@ namespace Venus_RT.Devices
 
             _SignalTower = DEVICE.GetDevice<IoSignalTower>($"{Module}.SignalTower");
 
-            _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
+            //_CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
             _pressureController = DEVICE.GetDevice<IoPressureControl>($"{Module}.{VenusDevice.PressureControl}");
 
             _gasLines = new IoGasStick[8];
@@ -489,9 +468,9 @@ namespace Venus_RT.Devices
             _foreline_interlock_pressure = SC.GetValue<double>($"{Module}.ForelineInterlockPressure");
 
             _GasRFStopWatch.Stop();
-            DATA.Subscribe($"{Module}.ChillerInnerTemp", () => _chillerInnerTemp);
-            DATA.Subscribe($"{Module}.ChillerOuterTemp", () => _chillerOuterTemp);
-            DATA.Subscribe($"{Module}.ChillerTopTemp", () => _chillerTopTemp);
+            //DATA.Subscribe($"{Module}.ChillerInnerTemp", () => _chillerInnerTemp);
+            //DATA.Subscribe($"{Module}.ChillerOuterTemp", () => _chillerOuterTemp);
+            //DATA.Subscribe($"{Module}.ChillerTopTemp", () => _chillerTopTemp);
 
             //DATA.Subscribe($"{Module}.InnerChiller.IsRunning", () => innerChillerIsRunning);
             //DATA.Subscribe($"{Module}.OuterChiller.IsRunning", () => outerChillerIsRunning);
@@ -514,47 +493,47 @@ namespace Venus_RT.Devices
 
         public async override void CloseValves(int? delayTime = null)
         {
-            _PVN21Valve.TurnValve(false, out _);
-            // _PVN22Valve.TurnValve(false, out _);
-            _PV11Valve.TurnValve(false, out _);
-            _PV12Valve.TurnValve(false, out _);
-            _PV21Valve.TurnValve(false, out _);
-            _PV22Valve.TurnValve(false, out _);
-            _PV31Valve.TurnValve(false, out _);
-            _PV32Valve.TurnValve(false, out _);
-            _PV41Valve.TurnValve(false, out _);
-            _PV42Valve.TurnValve(false, out _);
-
-            _PVHe1Valve.TurnValve(false, out _);
-            _PVHe2Valve.TurnValve(false, out _);
-            _SoftPumpValve.TurnValve(false, out _);
-            _FastPumpValve.TurnValve(false, out _);
-            _TurboPumpPumpingValve.TurnValve(false, out _);
-            _TurboPumpPurgeValve.TurnValve(false, out _);
-            _GuageValve.TurnValve(false, out _);
-
-
-            _N2Valve.TurnValve(false, out _);
-            _FastPumpValve.TurnValve(false, out _);
-
-            _Mfc1Valve.TurnValve(false, out _);
-            _Mfc2Valve.TurnValve(false, out _);
-            _Mfc3Valve.TurnValve(false, out _);
-            _Mfc4Valve.TurnValve(false, out _);
-            _Mfc5Valve.TurnValve(false, out _);
-            _Mfc6Valve.TurnValve(false, out _);
-            _Mfc7Valve.TurnValve(false, out _);
-            _Mfc8Valve.TurnValve(false, out _);
-
-            foreach (var stick in _gasLines)
-            {
-                stick.Stop();
-            }
-            if (delayTime != null)
-            {
-                await Task.Delay((int)delayTime);
-            }
-            _GasFinalValve.TurnValve(false, out _);
+            //_PVN21Valve.TurnValve(false, out _);
+
+            //_PV11Valve.TurnValve(false, out _);
+            //_PV12Valve.TurnValve(false, out _);
+            //_PV21Valve.TurnValve(false, out _);
+            //_PV22Valve.TurnValve(false, out _);
+            //_PV31Valve.TurnValve(false, out _);
+            //_PV32Valve.TurnValve(false, out _);
+            //_PV41Valve.TurnValve(false, out _);
+            //_PV42Valve.TurnValve(false, out _);
+
+            //_PVHe1Valve.TurnValve(false, out _);
+            //_PVHe2Valve.TurnValve(false, out _);
+            //_SoftPumpValve.TurnValve(false, out _);
+            //_FastPumpValve.TurnValve(false, out _);
+            //_TurboPumpPumpingValve.TurnValve(false, out _);
+            //_TurboPumpPurgeValve.TurnValve(false, out _);
+            //_GuageValve.TurnValve(false, out _);
+
+
+            //_N2Valve.TurnValve(false, out _);
+            //_FastPumpValve.TurnValve(false, out _);
+
+            //_Mfc1Valve.TurnValve(false, out _);
+            //_Mfc2Valve.TurnValve(false, out _);
+            //_Mfc3Valve.TurnValve(false, out _);
+            //_Mfc4Valve.TurnValve(false, out _);
+            //_Mfc5Valve.TurnValve(false, out _);
+            //_Mfc6Valve.TurnValve(false, out _);
+            //_Mfc7Valve.TurnValve(false, out _);
+            //_Mfc8Valve.TurnValve(false, out _);
+
+            //foreach (var stick in _gasLines)
+            //{
+            //    stick.Stop();
+            //}
+            //if (delayTime != null)
+            //{
+            //    await Task.Delay((int)delayTime);
+            //}
+            //_GasFinalValve.TurnValve(false, out _);
         }
 
         public override void TurnDryPump(bool on)
@@ -570,138 +549,138 @@ namespace Venus_RT.Devices
 
         public override void OpenValve(ValveType vlvType, bool on)
         {
-            switch (vlvType)
-            {
-                case ValveType.PVN21:
-                    _PVN21Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PVN22:
-                    _PVN22Valve.TurnValve(on, out _);
-                    LOG.Write(eEvent.EV_DEVICE_INFO, Module, $"{(on ? "打开" : "关闭")}{vlvType.ToString()}");
-
-                    break;
-                case ValveType.PV11:
-                    _PV11Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV12:
-                    _PV12Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV21:
-                    _PV21Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV22:
-                    _PV22Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV31:
-                    _PV31Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV32:
-                    _PV32Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV41:
-                    _PV41Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PV42:
-                    _PV42Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.N2:
-                    _N2Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PVHe1:
-                    _PVHe1Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.PVHe2:
-                    _PVHe2Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.GasFinal:
-                    _GasFinalValve.TurnValve(on, out _);
-                    break;
-                case ValveType.SoftPump:
-                    _SoftPumpValve.TurnValve(on, out _);
-                    break;
-                case ValveType.FastPump:
-                    _FastPumpValve.TurnValve(on, out _);
-                    break;
-                case ValveType.TurboPumpPumping:
-                    _TurboPumpPumpingValve.TurnValve(on, out _);
-                    break;
-                case ValveType.TurboPumpPurge:
-                    _TurboPumpPurgeValve.TurnValve(on, out _);
-                    break;
-                case ValveType.Guage:
-                    _GuageValve.TurnValve(on, out _);
-                    break;
-                //case ValveType.LoadlockVent:
-                //    _LoadlockVentValve.TurnValve(on, out _);
-                //    break;
-                //case ValveType.LoadlockPumping:
-                //    _LoadlockPumpingValve.TurnValve(on, out _);
-                //    break;
-                case ValveType.Mfc1:
-                    _Mfc1Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc2:
-                    _Mfc2Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc3:
-                    _Mfc3Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc4:
-                    _Mfc4Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc5:
-                    _Mfc5Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc6:
-                    _Mfc6Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc7:
-                    _Mfc7Valve.TurnValve(on, out _);
-                    break;
-                case ValveType.Mfc8:
-                    _Mfc8Valve.TurnValve(on, out _);
-                    break;
-                default:
-                    throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
+            //switch (vlvType)
+            //{
+            //    case ValveType.PVN21:
+            //        _PVN21Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PVN22:
+            //        _PVN22Valve.TurnValve(on, out _);
+            //        LOG.Write(eEvent.EV_DEVICE_INFO, Module, $"{(on ? "打开" : "关闭")} 阀 {vlvType.ToString()}");
+
+            //        break;
+            //    case ValveType.PV11:
+            //        _PV11Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV12:
+            //        _PV12Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV21:
+            //        _PV21Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV22:
+            //        _PV22Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV31:
+            //        _PV31Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV32:
+            //        _PV32Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV41:
+            //        _PV41Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PV42:
+            //        _PV42Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.N2:
+            //        _N2Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PVHe1:
+            //        _PVHe1Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.PVHe2:
+            //        _PVHe2Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.GasFinal:
+            //        _GasFinalValve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.SoftPump:
+            //        _SoftPumpValve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.FastPump:
+            //        _FastPumpValve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.TurboPumpPumping:
+            //        _TurboPumpPumpingValve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.TurboPumpPurge:
+            //        _TurboPumpPurgeValve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Guage:
+            //        _GuageValve.TurnValve(on, out _);
+            //        break;
+            //    //case ValveType.LoadlockVent:
+            //    //    _LoadlockVentValve.TurnValve(on, out _);
+            //    //    break;
+            //    //case ValveType.LoadlockPumping:
+            //    //    _LoadlockPumpingValve.TurnValve(on, out _);
+            //    //    break;
+            //    case ValveType.Mfc1:
+            //        _Mfc1Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc2:
+            //        _Mfc2Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc3:
+            //        _Mfc3Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc4:
+            //        _Mfc4Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc5:
+            //        _Mfc5Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc6:
+            //        _Mfc6Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc7:
+            //        _Mfc7Valve.TurnValve(on, out _);
+            //        break;
+            //    case ValveType.Mfc8:
+            //        _Mfc8Valve.TurnValve(on, out _);
+            //        break;
+            //    default:
+            //        throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
 
-            }
+            //}
         }
 
         public override void Monitor()
         {
-            //foreach (var gas in _gasLines)
-            //{
-            //    gas.Monitor();
-            //}
+
             //if (_pendulumValveStopWatch.ElapsedMilliseconds > 1000)
             //{
             //    CheckPermanentInterlock();
             //    _pendulumValveStopWatch.Restart();
             //}
+          var test=  DEVICE.GetDevice<IoMfc>($"{Module}.MfcGas1").FeedBack;
+
+           var test2=  DEVICE.GetAllDevice();
         }
 
 
         protected override void CheckPermanentInterlock()
         {
-            if (ProcessPressure >= 99 && _GuageValve.SetPoint)
-            {
-                _GuageValve.TurnValve(false, out _);
-                LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Process pressure:{ProcessPressure} exceed 99 mtorr, Guage Valve (DO-31) closed automaticlly.");
-            }
+            //if (ProcessPressure >= 99 && _GuageValve.SetPoint)
+            //{
+            //    _GuageValve.TurnValve(false, out _);
+            //    LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Process pressure:{ProcessPressure} exceed 99 mtorr, Guage Valve (DO-31) closed automaticlly.");
+            //}
         }
         public override void CheckIdleInterlock(int delaytime )
         {
-            if (ForelinePressure > _foreline_interlock_pressure)
-            {
-                if (_TurboPumpPumpingValve.SetPoint || _TurboPumpPurgeValve.SetPoint || _pendulumValve.IsOpen)
-                {
-                    _pendulumValve.TurnValve(false);
-                    _TurboPumpPurgeValve.TurnValve(false, out _);
-                    _TurboPumpPumpingValve.TurnValve(false, out _);
+            //if (ForelinePressure > _foreline_interlock_pressure)
+            //{
+            //    if (_TurboPumpPumpingValve.SetPoint || _TurboPumpPurgeValve.SetPoint || _pendulumValve.IsOpen)
+            //    {
+            //        _pendulumValve.TurnValve(false);
+            //        _TurboPumpPurgeValve.TurnValve(false, out _);
+            //        _TurboPumpPumpingValve.TurnValve(false, out _);
 
-                    LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Foreline pressure:{ForelinePressure} exceed {_foreline_interlock_pressure} mtorr, Pendulum valve & PV6 & PV7 closed automaticlly.");
-                }
-            }
+            //        LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Foreline pressure:{ForelinePressure} exceed {_foreline_interlock_pressure} mtorr, Pendulum valve & PV6 & PV7 closed automaticlly.");
+            //    }
+            //}
         }
 
         public override void BuzzerBlinking(double time)
@@ -746,17 +725,17 @@ namespace Venus_RT.Devices
         {
             reason = string.Empty;
 
-            switch (dirt)
-            {
-                case MovementPosition.Down:
-                    return _LiftPin.SetCylinder(false, out reason);
-                case MovementPosition.Up:
-                    return _LiftPin.SetCylinder(true, out reason);
-                case MovementPosition.Left:
-                case MovementPosition.Right:
-                case MovementPosition.Middle:
-                    throw new ArgumentException("Movement argument error");
-            }
+            //switch (dirt)
+            //{
+            //    case MovementPosition.Down:
+            //        return _LiftPin.SetCylinder(false, out reason);
+            //    case MovementPosition.Up:
+            //        return _LiftPin.SetCylinder(true, out reason);
+            //    case MovementPosition.Left:
+            //    case MovementPosition.Right:
+            //    case MovementPosition.Middle:
+            //        throw new ArgumentException("Movement argument error");
+            //}
 
             return true;
         }
@@ -794,8 +773,9 @@ namespace Venus_RT.Devices
                 }
 
             }
-
-            return _slitDoor.SetCylinder(open, out reason);
+            reason = string.Empty;
+            return false;
+            //return _slitDoor.SetCylinder(open, out reason);
         }
 
         //public override bool RetractWafer()

+ 8 - 8
Venus/Venus_RT/Devices/SMCChiller.cs

@@ -175,14 +175,14 @@ namespace Venus_RT.Devices
             }
         }
 
-        [Subscription(AITChillerProperty.ControlTcFeedback)]
-        public float ControlTcFeedback
-        {
-            get
-            {
-                return _controlTcFeedback;
-            }
-        }
+        //[Subscription(AITChillerProperty.ControlTcFeedback)]
+        //public float ControlTcFeedback
+        //{
+        //    get
+        //    {
+        //        return _controlTcFeedback;
+        //    }
+        //}
 
         [Subscription(AITChillerProperty.CoolantInletTempFeedback)]
         public override float CoolantInletTcFeedback

+ 8 - 8
Venus/Venus_RT/Devices/SMCShareChiller.cs

@@ -88,14 +88,14 @@ namespace Venus_RT.Devices
             }
         }
 
-        [Subscription(AITChillerProperty.ControlTcFeedback)]
-        public float ControlTcFeedback
-        {
-            get
-            {
-                return _controlTcFeedback;
-            }
-        }
+        //[Subscription(AITChillerProperty.ControlTcFeedback)]
+        //public float ControlTcFeedback
+        //{
+        //    get
+        //    {
+        //        return _controlTcFeedback;
+        //    }
+        //}
 
         [Subscription(AITChillerProperty.CoolantInletTempFeedback)]
         public override float CoolantInletTcFeedback

+ 8 - 0
Venus/Venus_RT/Devices/TM/JetTM.cs

@@ -400,6 +400,14 @@ namespace Venus_RT.Devices
             DATA.Subscribe($"{Name}.LLAPressure", () => LLAPressure);
             DATA.Subscribe($"{Name}.LLBPressure", () => LLBPressure);
 
+            DATA.Subscribe($"{Name}.PV.CDA_PRES",     () => GetAiValue($"{Module}.AI_CDA_PRES_PV"));
+            DATA.Subscribe($"{Name}.PV.N2_PRES",      () => GetAiValue($"{Module}.AI_N2_PRES_PV"));
+            DATA.Subscribe($"{Name}.PV.TMWATER_FLOW", () => GetAiValue($"{Module}.AI_TM_WATER_FLOW_PV"));
+            DATA.Subscribe($"{Name}.PV.LLAWATER_FLOW",() => GetAiValue($"{Module}.AI_LLA_WATER_FLOW_PV"));
+            DATA.Subscribe($"{Name}.PV.LLBWATER_FLOW",() => GetAiValue($"{Module}.AI_LLB_WATER_FLOW_PV"));
+
+
+
             OP.Subscribe("TM.ControlPump", (cmd, args) =>
             {
                 _TMPump.SetPumpOnOff((bool)args[0]);

+ 5 - 5
Venus/Venus_RT/Devices/TruPlasmaRF.cs

@@ -37,9 +37,9 @@ namespace Venus_RT.Devices
         private readonly R_TRIG _ErrTrigger = new R_TRIG();
         private readonly R_TRIG _trigPMNeeded = new R_TRIG();
         private readonly RD_TRIG _trigOnOff = new RD_TRIG();
-        private ToleranceChecker _alarmChecker;
-        private ToleranceChecker _warningChecker;
-        private ToleranceChecker _checkerReflectPower;
+        //private ToleranceChecker _alarmChecker;
+        //private ToleranceChecker _warningChecker;
+        //private ToleranceChecker _checkerReflectPower;
 
         private readonly double _scPowerAlarmTime;
         private readonly double _scPowerAlarmRange;
@@ -327,7 +327,7 @@ namespace Venus_RT.Devices
                 _timerFromLast.Restart(0);
                 _alarmChecker.Reset(_scPowerAlarmTime);
                 _warningChecker.Reset(_scPowerWarningTime);
-                _checkerReflectPower.Reset(_scReflectPowerAlarmTime);
+                //_checkerReflectPower.Reset(_scReflectPowerAlarmTime);
             }
 
             if (_rfOnTrigger.M)
@@ -557,7 +557,7 @@ namespace Venus_RT.Devices
         private readonly AsyncSerialPort _serial;
         private const ushort S3_HEAD_LENGTH = 2;
         private readonly DeviceTimer _timerQueryStatus = new DeviceTimer();
-        private int QUERY_INTERVAL = 1000;
+        //private int QUERY_INTERVAL = 1000;
         private List<byte> buffer = new List<byte>(4096);
         [Subscription("MatchWorkMode")]
         public EnumRfMatchTuneMode WorkMode { get; set; }

+ 2 - 2
Venus/Venus_RT/Modules/PMs/GasBoxLeakCheckRoutine.cs

@@ -251,13 +251,13 @@ namespace Venus_RT.Modules.PMs
             }
             if (RtInstance.ConfigType == ConfigType.Kepler2200)
             {
-                LeakCheckDataRecorder.AddKepler2200(_leakcheckHoldTime, pMLeakCheckResult.BasePressure, Math.Round(_startPressure, 1), Math.Round(_endPressure, 1), LeakRate, pMLeakCheckResult.Result, pMLeakCheckResult.CheckMode, _chamber.Name, gasLines.ToString());
+                LeakCheckDataRecorder.AddKepler2200(_leakcheckHoldTime, pMLeakCheckResult.BasePressure, Math.Round(_startPressure, 5), Math.Round(_endPressure, 5), LeakRate, pMLeakCheckResult.Result, pMLeakCheckResult.CheckMode, _chamber.Name, gasLines.ToString());
 
             }
             else
             {
                 //LeakCheckDataRecorder.Add(_leakcheckHoldTime, Math.Round(_startPressure, 1), Math.Round(_endPressure, 1), LeakRate, pMLeakCheckResult.Result, "ChamberOnly", _chamber.Name);
-                LeakCheckDataRecorder.Add(_leakcheckHoldTime, Math.Round(_startPressure, 1), Math.Round(_endPressure, 1), LeakRate, pMLeakCheckResult.Result, pMLeakCheckResult.CheckMode, _chamber.Name, gasLines.ToString());
+                LeakCheckDataRecorder.Add(_leakcheckHoldTime, Math.Round(_startPressure, 5), Math.Round(_endPressure, 5), LeakRate, pMLeakCheckResult.Result, pMLeakCheckResult.CheckMode, _chamber.Name, gasLines.ToString());
             }
 
             _chamber.StopAllGases();

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

@@ -162,12 +162,12 @@ namespace Venus_RT.Modules.PMs
             }
             if (RtInstance.ConfigType == ConfigType.Kepler2200)
             {
-                LeakCheckDataRecorder.AddKepler2200(_leakcheckHoldTime, pMLeakCheckResult.BasePressure, Math.Round(_startPressure, 1), Math.Round(_endPressure, 1), LeakRate, pMLeakCheckResult.Result, "ChamberOnly", _chamber.Name);
+                LeakCheckDataRecorder.AddKepler2200(_leakcheckHoldTime, pMLeakCheckResult.BasePressure, Math.Round(_startPressure, 5), Math.Round(_endPressure, 5), LeakRate, pMLeakCheckResult.Result, "ChamberOnly", _chamber.Name);
 
             }
             else
             { 
-                LeakCheckDataRecorder.Add(_leakcheckHoldTime, Math.Round(_startPressure, 1), Math.Round(_endPressure, 1), LeakRate, pMLeakCheckResult.Result, "ChamberOnly", _chamber.Name);
+                LeakCheckDataRecorder.Add(_leakcheckHoldTime, Math.Round(_startPressure, 5), Math.Round(_endPressure, 5), LeakRate, pMLeakCheckResult.Result, "ChamberOnly", _chamber.Name);
 
             }
             _chamber.OpenValve(ValveType.GasFinal, true);

+ 1 - 3
Venus/Venus_RT/Venus_RT.csproj

@@ -348,9 +348,6 @@
     <Content Include="Config\DataGroup.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Resource Include="Config\EquipmentVariables - 复制.xml">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Resource>
     <Content Include="Config\EquipmentVariables.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
@@ -506,6 +503,7 @@
   <ItemGroup>
     <Folder Include="Config\TM\Kepler2200\" />
     <Folder Include="Config\TM\Kepler2300\" />
+    <Folder Include="Devices\Twincat\" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>

BIN
Venus/Venus_Simulator/Config/_ioDefineVenus_MF.xml


+ 26 - 253
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -97,215 +97,7 @@ namespace Venus_Simulator.Instances
 
             switch (jetChamber)
             {
-                case JetChamber.VenusSE:
-                    IO.DI[$"{mod}.DI_Lid_Closed"].Value = true;
-                    IO.DI[$"{mod}.DI_ATM_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = false;
-                    IO.DI[$"{mod}.DI_ESC_Coolant_Flow_SW"].Value = true;
-                    IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
-
-                    IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_Lift_Pin_Up_POS"].Value = false;
-                    IO.DI[$"{mod}.DI_Lift_Pin_Down_POS"].Value = true;
-                    //IO.DI[$"{mod}.DI_RF_Generator_Interlock"].Value = true;
-                    //IO.DI[$"{mod}.DI_Source_RF_Fan"].Value = true;
-
-                    IO.DI[$"{mod}.DI_RF_HV_Interlock_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_Turbo_Pump_Interlock"].Value = true;
-                    IO.DI[$"{mod}.DI_Coolant_Inlet_TC_Broken_Alarm"].Value = false;
-
-                    IO.DI[$"{mod}.DI_Coolant_Outlet_TC_Broken_Alarm"].Value = false;
-
-                    IO.DI[$"{mod}.DI_Chamber_Pressure_10t_Gauge_Alarm"].Value = false;
-
-                    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_Foreline_Control_TC_Broken_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Foreline_Heater_On_FB"].Value = false;
-
-                    IO.DI[$"{mod}.DI_CHB_Wall_TC_Deviation_out_of_range"].Value = true;
-                    IO.DI[$"{mod}.DI_CHB_Wall_Control_TC_Broken_Alarm"].Value = true;
-                    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_PN2_Pressure_Switch"].Value = true;
-
-                    IO.DI[$"{mod}.DI_MFC1_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC2_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC3_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC4_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC5_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC6_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC7_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC8_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC9_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC10_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC11_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC12_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_He_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_ESC_He_Pressure_100t_Gauge_Alarm"].Value = true;
-
-
-
-                    IO.DI[$"{mod}.DI_Gas_Box_Door_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_Gas_Box_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_Turbo_Pump_Water_Flow_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_SOURCE_RF_Water_Flow_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_TM_ROB_NOT_EXTEND_TO_PM"].Value = true;
-                    IO.DI[$"{mod}.DI_TM_Slit_Door_Closed"].Value = true;
-                    IO.DI[$"{mod}.DI_Source_Match_interlock_ok"].Value = true;
-                    IO.DI[$"{mod}.DI_Bias_Match_interlock_ok"].Value = true;
-
-                    IO.DI[$"{mod}.DI_GASLINE_TC_Deviation_out_of_range"].Value = true;
-                    IO.DI[$"{mod}.DI_GASLINE_Control_TC_Broken_Alarm"].Value = true;
-                    IO.DI[$"{mod}.DI_GASLINE_Monitor_TC_Broken_Alarm"].Value = true;
-                    IO.DI[$"{mod}.DI_GASLINE_Heater_On_FB"].Value = true;
-
-                    IO.DI[$"{mod}.DI_CTRL_BOX_1#FAN_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_CTRL_BOX_2#FAN_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_POWER_BOX_FAN_OK"].Value = true;
-
-                    //// pressure
-
-                    SetAiValue($"{mod}.AI_Process_Pressure_100mt", 100);
-                    //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ATM_PRESSURE);
-                    SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", PROCESS_GAUGE);
-                    SetAiValue($"{mod}.AI_Foreline_Pressure_10t", 5001);
-                    SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
-
-                    //// Temperature
-
-                    SetAiValue($"{mod}.AI_Valve_Control_TC_Temp", 28);
-                    //SetAiValue($"{mod}.AI_Valve_Monitor_TC_Temp", 27);
-                    SetAiValue($"{mod}.AI_Fline_Control_TC_Temp", 28);
-                    //SetAiValue($"{mod}.AI_Fline_Monitor_TC_Temp", 27);
-                    SetAiValue($"{mod}.AI_CHB_Wall_Control_TC_Temp", 28);
-                    SetAiValue($"{mod}.AI_CHB_Wall_Monitor_TC_Temp", 27);
-                    SetAiValue($"{mod}.AI_Coolant_Inlet_Temp", 28);
-
-
-                    // Datetime
-                    SetAiValue($"{mod}.AI_Year", DateTime.Today.Year);
-                    SetAiValue($"{mod}.AI_Month", DateTime.Today.Month);
-                    SetAiValue($"{mod}.AI_Day", DateTime.Today.Day);
-                    SetAiValue($"{mod}.AI_Time", DateTime.Now.Hour);
-                    SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
-                    SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
-
-                    break;
-
-                case JetChamber.VenusDE:
-                    IO.DI[$"{mod}.DI_Lid_Closed"].Value = true;
-                    IO.DI[$"{mod}.DI_ATM_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = false;
-                    IO.DI[$"{mod}.DI_ESC_Coolant_Flow_SW"].Value = true;
-                    IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
-
-                    IO.DI[$"{mod}.DI_Lift_Pin_Up_POS"].Value = false;
-                    IO.DI[$"{mod}.DI_Lift_Pin_Down_POS"].Value = true;
-                    IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = true;
-                    //IO.DI[$"{mod}.DI_RF_Generator_Interlock"].Value = true;
-                    //IO.DI[$"{mod}.DI_Source_RF_Fan"].Value = true;
-
-                    IO.DI[$"{mod}.DI_RF_HV_Interlock_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_Turbo_Pump_Interlock"].Value = true;
-                    IO.DI[$"{mod}.DI_Liner_Door_Open_Position"].Value = true;
-                    IO.DI[$"{mod}.DI_Liner_Door_Close_Position"].Value = false;
-                    IO.DI[$"{mod}.DI_ESC_Coolant_Inlet_TC_Broken_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Magnets_Coils_ON_FB"].Value = false;
-
-                    IO.DI[$"{mod}.DI_ESC_Coolant_Outlet_TC_Broken_Alarm"].Value = false;
-
-                    IO.DI[$"{mod}.DI_Chamber_Pressure_10t_Gauge_Alarm"].Value = false;
-
-                    IO.DI[$"{mod}.DI_Process_Pressure_1t_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_TC_Deviation_out_of_range"].Value = false;
-                    IO.DI[$"{mod}.DI_Foreline_Control_TC_Broken_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Foreline_Monitor_TC_Broken_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Foreline_Heater_On_FB"].Value = false;
-
-                    //IO.DI[$"{mod}.DI_CHB_Wall_TC_Deviation_out_of_range"].Value = true;
-                    //IO.DI[$"{mod}.DI_CHB_Wall_Control_TC_Broken_Alarm"].Value = true;
-                    //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_PN2_Pressure_Switch"].Value = true;
-
-                    IO.DI[$"{mod}.DI_MFC1_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC2_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC3_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC4_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC5_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC6_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC7_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC8_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC9_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC10_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC11_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_MFC12_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_He_Pressure_Switch"].Value = true;
-                    //IO.DI[$"{mod}.DI_ESC_He_Pressure_100t_Gauge_Alarm"].Value = true;
-
-
-
-                    IO.DI[$"{mod}.DI_Gas_Box_Door_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_Gas_Box_Pressure_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_Turbo_Pump_Water_Flow_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_BIAS_RF_Water_Flow_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_CHB_Coolant_Flow_SW"].Value = true;
-
-                    //IO.DI[$"{mod}.DI_SOURCE_RF_Water_Flow_Switch"].Value = true;
-                    IO.DI[$"{mod}.DI_TM_ROB_NOT_EXTEND_TO_PM"].Value = true;
-                    IO.DI[$"{mod}.DI_TM_Slit_Door_Closed"].Value = true;
-                    //IO.DI[$"{mod}.DI_Source_Match_interlock_ok"].Value = true;
-                    IO.DI[$"{mod}.DI_Bias_Match_interlock_ok"].Value = true;
-
-                    //IO.DI[$"{mod}.DI_GASLINE_TC_Deviation_out_of_range"].Value = true;
-                    //IO.DI[$"{mod}.DI_GASLINE_Control_TC_Broken_Alarm"].Value = true;
-                    //IO.DI[$"{mod}.DI_GASLINE_Monitor_TC_Broken_Alarm"].Value = true;
-                    //IO.DI[$"{mod}.DI_GASLINE_Heater_On_FB"].Value = true;
-
-                    IO.DI[$"{mod}.DI_CTRL_BOX_1#FAN_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_CTRL_BOX_2#FAN_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_POWER_BOX_FAN_OK"].Value = true;
-                    IO.DI[$"{mod}.DI_MAGNET_BOX_FAN_OK"].Value = true;
-
-                    //// pressure
-
-                    SetAiValue($"{mod}.AI_Process_Pressure_1t", 100);
-                    //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ATM_PRESSURE);
-                    SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", PROCESS_GAUGE);
-                    SetAiValue($"{mod}.AI_Foreline_Pressure_10t", 5001);
-                    SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
-
-                    //// Temperature
-
-                    SetAiValue($"{mod}.AI_Valve_Control_TC_Temp", 28);
-                    //SetAiValue($"{mod}.AI_Gasline_Control_TC_Temp", 27);
-                    SetAiValue($"{mod}.AI_Fline_Control_TC_Temp", 28);
-                    SetAiValue($"{mod}.AI_Fline_Monitor_TC_Temp", 28);
-                    //SetAiValue($"{mod}.AI_Gasline_Monitor_TC_Temp", 27);
-                    SetAiValue($"{mod}.AI_CHB_Coolant_Inlet_Temp", 28);
-                    SetAiValue($"{mod}.AI_CHB_Coolant_Outlet_Temp", 27);
-                    SetAiValue($"{mod}.AI_ESC_Coolant_Inlet_Temp", 28);
-                    SetAiValue($"{mod}.AI_ESC_Coolant_Outlet_Temp", 28);
-
-
-                    // Datetime
-                    SetAiValue($"{mod}.AI_Year", DateTime.Today.Year);
-                    SetAiValue($"{mod}.AI_Month", DateTime.Today.Month);
-                    SetAiValue($"{mod}.AI_Day", DateTime.Today.Day);
-                    SetAiValue($"{mod}.AI_Time", DateTime.Now.Hour);
-                    SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
-                    SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
-
-                    break;
+               
                 case JetChamber.Kepler2300:
                     // chamber
                     IO.DI[$"{mod}.DI_Lid_Closed"].Value = true;
@@ -459,7 +251,7 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_CHB_Water_Flow_Switch"].Value = true;
                     IO.DI[$"{mod}.DI_SCRUBBER_OK"].Value = true;
 
-
+                    IO.DI[$"{mod}.DI_Lift_Servo_with_origin"].Value = true;
 
                     //IO.DI[$"{mod}.DI_Source_RF_Water_Flow_Switch"].Value = true;
                     //// pressure
@@ -841,23 +633,6 @@ namespace Venus_Simulator.Instances
                             MonitorKepler2200Heater(item.Key);
                             break;
 
-                        case JetChamber.VenusSE:
-                            MonitorPin(item.Key);
-                            //MonitorVenuSESlitDoor(item.Key);
-                            MonitorSEPressure(item.Key);
-                            MonitorSEGas(item.Key);
-                            ChangeTime(item.Key);
-                            this.SimulateSEHe(item.Key);
-                            break;
-                        case JetChamber.VenusDE:
-                            MonitorPin(item.Key);
-                            MonitorDEGas(item.Key);
-                            //MonitorVenuDESlitDoor(item.Key);
-                            MonitorDEPressure(item.Key);
-                            ChangeTime(item.Key);
-                            MonitorLinerDoor(item.Key);
-                            this.SimulateDEHe(item.Key);
-                            break;
                     }
                 }
 
@@ -1069,6 +844,11 @@ namespace Venus_Simulator.Instances
                 IO.DI[$"{mod}.DI_PMD_SlitDoor_Open_Position"].Value = true;
                 IO.DI[$"{mod}.DI_PMD_SlitDoor_Close_Position"].Value = false;
             }
+            SetAiValue($"{mod}.AI_CDA_PRES_PV", 1);
+            SetAiValue($"{mod}.AI_N2_PRES_PV", 2);
+            SetAiValue($"{mod}.AI_TM_WATER_FLOW_PV", 3);
+            SetAiValue($"{mod}.AI_LLA_WATER_FLOW_PV", 4);
+            SetAiValue($"{mod}.AI_LLB_WATER_FLOW_PV", 5);
 
         }
         void MonitorSEMFSlitDoor()
@@ -2077,7 +1857,7 @@ namespace Venus_Simulator.Instances
                     }
                     else
                     {
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0.00001F);
                     }
                     //if (getAiValue_ChamberPressure > 1000)
                     //{
@@ -2100,7 +1880,7 @@ namespace Venus_Simulator.Instances
                     if ((getAiValue_ChamberPressure - 8000) >= 0)
                         SetAiValue($"{mod}.{sAI_ChamberPressure}", getAiValue_ChamberPressure - 8000);
                     else
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0.00001F);
 
                 }
                 else if (soft_pump_vlv.Value)
@@ -2111,22 +1891,9 @@ namespace Venus_Simulator.Instances
                     }
                     else
                     {
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0.00001F);
                     }
-                    //if (getAiValue_ChamberPressure > 5000)
-                    //{
-                    //    float targetChamberPressure = ConvertPressureUnit.ConvertmTorrToPa(getAiValue_ChamberPressure - 1000 > 0 ? getAiValue_ChamberPressure - 1000 : 0);
-                    //    SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
-                    //    //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
-                    //}
-                    //else if (getAiValue_ChamberPressure <= 1000)
-                    //{
-                    //    float targetChamberPressure = ConvertPressureUnit.ConvertmTorrToPa(getAiValue_ProcessPressure - 110 > 0 ? getAiValue_ProcessPressure - 110 : 0);
-                    //    SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
-                    //    SetAiValue($"{mod}.{sAI_ProcessPressure}", targetChamberPressure);
-                    //}
-                    //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - _rd.Next(13000, 14000));
-                    //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - _rd.Next(100, 110));
+                   
                 }
                 else if (turbo_pump_vlv.Value)
                 {
@@ -2134,7 +1901,7 @@ namespace Venus_Simulator.Instances
                     if ((getAiValue_ChamberPressure - 50) >= 0)
                         SetAiValue($"{mod}.{sAI_ChamberPressure}", getAiValue_ChamberPressure - 50);
                     else
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0.00001F);
 
 
                 }
@@ -2181,7 +1948,7 @@ namespace Venus_Simulator.Instances
             }
             else if (chamber_pressure1 < 20)
             {
-                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 0.5F);
+                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 0.51001F);
             }
 
             //float process_pressure1 = GetAiValue($"{mod}.{sAI_ProcessPressure}");
@@ -2210,7 +1977,7 @@ namespace Venus_Simulator.Instances
             // VAC switch
             IO.DI[$"{mod}.DI_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < ConvertPressureUnit.ConvertmTorrToPa(VAC_SW_PRESSURE);
 
-            SetAiValue($"{mod}.AI_Process_Pressure_2t", 0);
+            SetAiValue($"{mod}.AI_Process_Pressure_2t", 0.00001F);
 
             //var chamberPressure = GetAiValue($"{mod}.AI_Chamber_Pressure_10t");
             //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ConvertPressureUnit.ConvertmTorrToPa( GetAiValue($"{mod}.AI_Chamber_Pressure_10t")));
@@ -2218,6 +1985,10 @@ namespace Venus_Simulator.Instances
             //SetAiValue($"{mod}.AI_Foreline_Pressure_10t", ConvertPressureUnit.ConvertmTorrToPa(GetAiValue($"{mod}.AI_Foreline_Pressure_10t")));
             SetAiValue($"{mod}.{sAI_Foreline}",200);
 
+     
+
+
+
         }
         void MonitorSEMFPressure()
         {
@@ -3083,12 +2854,14 @@ namespace Venus_Simulator.Instances
         void MonitorKepler2200Heater(ModuleName mod)
         {
             var pendulumHeaterSetpoint = GetAoValue($"{mod}.AO_P_Valve_Temperature_Setpoint");
-            SetAiValue($"{mod}.AI_P_Valve_Control_TC_Temp", (float)pendulumHeaterSetpoint);
-
-            SetAiValue($"{mod}.AI_CHB_M-HT_Inner_Alarm_Word1", (float)0);
-            SetAiValue($"{mod}.AI_CHB_M-HT_Inner_Alarm_Word2", (float)0);
-            SetAiValue($"{mod}.AI_CHB_M-HT_Outer_Alarm_Word1", (float)0);
-            SetAiValue($"{mod}.AI_CHB_M-HT_Outer_Alarm_Word2", (float)0);
+            SetAiValue($"{mod}.AI_P_Valve_Control_TC_Temp", pendulumHeaterSetpoint);
+
+            SetAiValue($"{mod}.AI_CHB_M-HT_Inner_Alarm_Word1", 0F);
+            SetAiValue($"{mod}.AI_CHB_M-HT_Inner_Alarm_Word2", 0F);
+            SetAiValue($"{mod}.AI_CHB_M-HT_Outer_Alarm_Word1", 0F);
+            SetAiValue($"{mod}.AI_CHB_M-HT_Outer_Alarm_Word2", 0F);
+            SetAiValue($"{mod}.AI_Heater_Purge_N2_Flow", 1.2F);
+            
         }
         public void Terminate()
         {

File diff suppressed because it is too large
+ 4 - 1720
Venus/Venus_Themes/Themes/Generic.xaml


+ 30 - 0
Venus/Venus_Themes/Themes/ValueConverter.xaml

@@ -0,0 +1,30 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+                    xmlns:converters="clr-namespace:Venus_Themes.Converters"
+                    xmlns:customControls="clr-namespace:Venus_Themes.CustomControls"
+                    xmlns:userControls="clr-namespace:Venus_Themes.UserControls"
+                    
+                    x:Name="Generic"
+                    >
+
+    <converters:ToBoolMultiValueConverter  x:Key="toBoolMultiValueConverter"/>
+    <converters:ToBoolMultiValueConverter2 x:Key="toBoolMultiValueConverter2"/>
+    <converters:ToBoolMultiValueConverter3 x:Key="toBoolMultiValueConverter3"/>
+    <converters:ToBoolMultiValueConverter4 x:Key="toBoolMultiValueConverter4"/>
+    <converters:ToBoolMultiValueConverter5 x:Key="toBoolMultiValueConverter5"/>
+    <converters:ToBoolMultiValueConverter7 x:Key="toBoolMultiValueConverter7"/>
+    <converters:ToBoolMultiValueConverter9 x:Key="toBoolMultiValueConverter9"/>
+
+
+    <converters:BoolToColor  x:Key="boolToColor"/>
+    <converters:BoolToColor2 x:Key="boolToColor2"/>
+    <converters:BoolToColor3 x:Key="boolToColor3"/>
+    <converters:BoolToColor4 x:Key="boolToColor4"/>
+    <converters:BoolToColor5 x:Key="boolToColor5"/>
+    <converters:BoolToColor6 x:Key="boolToColor6"/>
+
+    <converters:BoolToBool   x:Key="BoolToBool"/>
+    <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
+
+
+</ResourceDictionary>

+ 38 - 0
Venus/Venus_Themes/UserControls/GasStick.xaml

@@ -0,0 +1,38 @@
+<UserControl x:Class="Venus_Themes.UserControls.GasStick"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+             xmlns:local="clr-namespace:Venus_Themes.UserControls"
+             xmlns:customControls="clr-namespace:Venus_Themes.CustomControls"
+             mc:Ignorable="d" 
+             d:DesignHeight="350" d:DesignWidth="500" x:Name="gasStickControl">
+    <Canvas>
+        <local:FlowPipe   Height="8"  Width="40" Canvas.Left="487"  Canvas.Top="195" RotateTransformValue="90" IsReverse="True"/>
+
+        <local:FlowPipe   Height="8"  Width="114" Canvas.Left="64"  Canvas.Top="230" />
+        <local:FlowPipe   Height="8"  Width="304" Canvas.Left="176" Canvas.Top="230" />
+        <local:FlowPipe   Height="8"  Width="20" Canvas.Left="178"  Canvas.Top="236" RotateTransformValue="90" />
+        <local:Pipe2     Canvas.Left="183"  Canvas.Top="264" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
+        <local:FlowPipe   Height="8"  Width="76" Canvas.Left="177"  Canvas.Top="256" />
+        <local:TextboxWithLabel    Canvas.Top="205" Canvas.Left="275" LabelValue="{Binding ElementName=gasStickControl,Path=MFCName}" TextBoxColor="White" IsReadOnly="False" TextBoxValue="{Binding ElementName=gasStickControl,Path=MFCFlowSetpoint}"/>
+        <local:TextBlockWithLabel  Canvas.Top="205" Canvas.Left="345" LabelValue="Flow"   TextBoxValue="{Binding ElementName=gasStickControl,Path=MFCFlowFeedback}"/>
+
+        <customControls:CommonValveControl   ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="127" Canvas.Top="224"    Status="{Binding ElementName=gasStickControl,Path=InletValveIsOpen}"  IsCanEdit="True"/>
+        <customControls:CommonValveControl   ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="200" Canvas.Top="249"    Status="{Binding ElementName=gasStickControl,Path=BypassValveIsOpen}" IsCanEdit="True"/>
+        <customControls:CommonValveControl   ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="224"    Status="{Binding ElementName=gasStickControl,Path=OutletValveIsOpen}" IsCanEdit="True"/>
+
+        <Ellipse Width="20" Height="20"  Canvas.Left="90" Canvas.Top="223.5"   Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm" Fill="{Binding ElementName=gasStickControl,Path=IsPressureAlarm,Converter={StaticResource boolToColor4}}"></Ellipse>
+        <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="220" Block.TextAlignment="Right" MaxWidth="65" Text="{Binding ElementName=gasStickControl ,Path=GasInformation}"/>
+        <local:Pipe4     Canvas.Left="241" Canvas.Top="225" HorizontalAlignment="Left" VerticalAlignment="Top"/>
+        <local:FlowPipe   Height="8"  Width="20" Canvas.Left="257"  Canvas.Top="240" RotateTransformValue="90" IsReverse="True"/>
+
+        <local:FlowPipe   Height="8"  Width="15" Canvas.Left="257"  Canvas.Top="211" RotateTransformValue="90" IsReverse="True"/>
+        <TextBlock Text="{Binding ElementName=gasStickControl,Path=BypassValveNameName}" Canvas.Left="189"  Canvas.Top="238" />
+
+        <TextBlock Text="{Binding ElementName=gasStickControl,Path=InletValveNameName}"  Canvas.Left="118"  Canvas.Top="210"/>
+        <TextBlock Text="{Binding ElementName=gasStickControl,Path=OutletValveNameName}" Canvas.Left="428"  Canvas.Top="210"/>
+
+
+    </Canvas>
+</UserControl>

+ 110 - 0
Venus/Venus_Themes/UserControls/GasStick.xaml.cs

@@ -0,0 +1,110 @@
+using System.Windows;
+using System.Windows.Controls;
+
+namespace Venus_Themes.UserControls
+{
+    /// <summary>
+    /// GasStick.xaml 的交互逻辑
+    /// </summary>
+    public partial class GasStick : UserControl
+    {
+        public GasStick()
+        {
+            InitializeComponent();
+        }
+        public static readonly DependencyProperty MFCNameProperty = DependencyProperty.Register(
+      "MFCName", typeof(string), typeof(GasStick));
+
+        public string MFCName
+        {
+            get { return (string)this.GetValue(MFCNameProperty); }
+            set { this.SetValue(MFCNameProperty, value); }
+        }
+
+        public static readonly DependencyProperty GasInformationProperty = DependencyProperty.Register(
+      "GasInformation", typeof(string), typeof(GasStick));
+
+        public string GasInformation
+        {
+            get { return (string)this.GetValue(GasInformationProperty); }
+            set { this.SetValue(GasInformationProperty, value); }
+        }
+
+        public static readonly DependencyProperty MFCFlowSetpointProperty = DependencyProperty.Register(
+      "MFCFlowSetpoint", typeof(float), typeof(GasStick));
+
+        public float MFCFlowSetpoint
+        {
+            get { return (float)this.GetValue(MFCFlowSetpointProperty); }
+            set { this.SetValue(MFCFlowSetpointProperty, value); }
+        }
+        public static readonly DependencyProperty MFCFlowFeedbackProperty = DependencyProperty.Register(
+      "MFCFlowFeedback", typeof(float), typeof(GasStick));
+
+        public float MFCFlowFeedback
+        {
+            get { return (float)this.GetValue(MFCFlowFeedbackProperty); }
+            set { this.SetValue(MFCFlowFeedbackProperty, value); }
+        }
+
+        public static readonly DependencyProperty InletValveNameNameProperty = DependencyProperty.Register(
+      "InletValveNameName", typeof(string), typeof(GasStick));
+
+        public string InletValveNameName
+        {
+            get { return (string)this.GetValue(InletValveNameNameProperty); }
+            set { this.SetValue(InletValveNameNameProperty, value); }
+        }
+
+        public static readonly DependencyProperty OutletValveNameNameProperty = DependencyProperty.Register(
+      "OutletValveNameName", typeof(string), typeof(GasStick));
+
+        public string OutletValveNameName
+        {
+            get { return (string)this.GetValue(OutletValveNameNameProperty); }
+            set { this.SetValue(OutletValveNameNameProperty, value); }
+        }
+        public static readonly DependencyProperty BypassValveNameNameProperty = DependencyProperty.Register(
+      "BypassValveNameName", typeof(string), typeof(GasStick));
+
+        public string BypassValveNameName
+        {
+            get { return (string)this.GetValue(BypassValveNameNameProperty); }
+            set { this.SetValue(BypassValveNameNameProperty, value); }
+        }
+
+        public static readonly DependencyProperty IsPressureAlarmProperty = DependencyProperty.Register(
+      "IsPressureAlarm", typeof(bool), typeof(GasStick),new PropertyMetadata (false));
+
+        public bool IsPressureAlarm
+        {
+            get { return (bool)this.GetValue(IsPressureAlarmProperty); }
+            set { this.SetValue(IsPressureAlarmProperty, value); }
+        }
+
+        public static readonly DependencyProperty InletValveIsOpenProperty = DependencyProperty.Register(
+      "InletValveIsOpen", typeof(bool), typeof(GasStick), new PropertyMetadata(false));
+
+        public bool InletValveIsOpen
+        {
+            get { return (bool)this.GetValue(InletValveIsOpenProperty); }
+            set { this.SetValue(InletValveIsOpenProperty, value); }
+        }
+
+        public static readonly DependencyProperty BypassValveIsOpenProperty = DependencyProperty.Register(
+      "BypassValveIsOpen", typeof(bool), typeof(GasStick), new PropertyMetadata(false));
+        public bool BypassValveIsOpen
+        {
+            get { return (bool)this.GetValue(BypassValveIsOpenProperty); }
+            set { this.SetValue(BypassValveIsOpenProperty, value); }
+        }
+
+        public static readonly DependencyProperty OutletValveIsOpenProperty = DependencyProperty.Register(
+     "OutletValveIsOpen", typeof(bool), typeof(GasStick), new PropertyMetadata(false));
+        public bool OutletValveIsOpen
+        {
+            get { return (bool)this.GetValue(OutletValveIsOpenProperty); }
+            set { this.SetValue(OutletValveIsOpenProperty, value); }
+        }
+    }
+}

+ 11 - 0
Venus/Venus_Themes/Venus_Themes.csproj

@@ -181,6 +181,9 @@
     <Compile Include="UserControls\FOUPFrontView.xaml.cs">
       <DependentUpon>FOUPFrontView.xaml</DependentUpon>
     </Compile>
+    <Compile Include="UserControls\GasStick.xaml.cs">
+      <DependentUpon>GasStick.xaml</DependentUpon>
+    </Compile>
     <Compile Include="UserControls\LoadLockLeft.xaml.cs">
       <DependentUpon>LoadLockLeft.xaml</DependentUpon>
     </Compile>
@@ -371,6 +374,10 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
+    <Page Include="Themes\ValueConverter.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="Themes\Generic.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
@@ -447,6 +454,10 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
+    <Page Include="UserControls\GasStick.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="UserControls\LoadLockLeft.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 2 - 0
Venus/Venus_UI/App.xaml

@@ -23,6 +23,8 @@
                 <ResourceDictionary Source="pack://application:,,,/Venus_Themes;component/Styles/ToggleButton.xaml"/>
                 <ResourceDictionary Source="pack://application:,,,/Venus_Themes;component/CustomControls/AduRadioButton.xaml"/>
                 <ResourceDictionary Source="pack://application:,,,/Venus_Themes;component/Themes/Generic.xaml"/>
+                <ResourceDictionary Source="pack://application:,,,/Venus_Themes;component/Themes/ValueConverter.xaml"/>
+
                 <!--<ResourceDictionary Source="/Venus_Themes;component/Languages/StringResources.en-US.xaml"/>
                 <ResourceDictionary Source="/Venus_Themes;component/Languages/StringResources.zh-CN.xaml"/>-->
                 <!--<ResourceDictionary Source="pack://application:,,,/Venus_Themes;component/Styles/WindowElementStyle.xaml"></ResourceDictionary>-->