소스 검색

VenusSE TM pressurecontrol update

hecl 1 년 전
부모
커밋
afc3b9494f

+ 8 - 0
Venus/Framework/Common/IOCore/IOManager.cs

@@ -68,7 +68,15 @@ namespace MECF.Framework.Common.IOCore
             }
             if (installedModules.Contains("TM"))
             {
+  
+                int s= SC.GetValue<int>($"TM.TMType");
                 var InterlockTMConfigFile = PathManager.GetCfgDir() + "TM" + "\\" + "TMInterlock.xml";
+                if (s==1)
+                {
+                    InterlockTMConfigFile= PathManager.GetCfgDir() + "TM" + "\\" + "TMSEInterlock.xml";
+                }
+               
+
                 if (!InterlockManager.Instance.Initialize("TM", InterlockTMConfigFile, _doMap, _diMap, out reason))
                 {
                     throw new Exception(string.Format("TM interlock define file found error: \r\n {0}", reason));

BIN
Venus/Venus_RT/Config/TM/DeviceModelVenusSE_MF.xml


+ 4 - 0
Venus/Venus_RT/Config/TM/TMSEInterlock.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<Interlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+</Interlock>

BIN
Venus/Venus_RT/Config/TM/VenusSE/DeviceModelVenusSE_MF.xml


+ 0 - 4
Venus/Venus_RT/Config/TM/VenusSE/DeviceModelVenus_MF.xml

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<DeviceModelDefine type="TM" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="DeviceModel.xsd">
-	
-</DeviceModelDefine>

+ 64 - 59
Venus/Venus_RT/Config/TM/_ioDefineVenusSE_MF.xml

@@ -2,38 +2,43 @@
 <IO_DEFINE xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
 
 	<Dig_In>
-		<DI_ITEM Index="0" Name="DI_TM_DI1" Device="" Addr="0.00" Note="System CDA Pressure ok" />
-		<DI_ITEM Index="1" Name="DI_TM_DI2" Device="" Addr="0.01" Note="System N2 Pressure ok"/>
-		<DI_ITEM Index="2" Name="DI_TM_DI3" Device="" Addr="0.02" Note="VCE SLIT DOOR OPEN ENABLE" />
-		<DI_ITEM Index="3" Name="DI_TM_DI5" Device="" Addr="0.03" Note="PMA SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="4" Name="DI_TM_DI7" Device="" Addr="0.04" Note="PMB SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="5" Name="DI_TM_DI9" Device="" Addr="0.05" Note="PMC SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="6" Name="DI_TM_DI4" Device="" Addr="0.06" Note="TM RB EXTEND VCE  ENABLE" />
-		<DI_ITEM Index="7" Name="DI_TM_DI6" Device="" Addr="0.07" Note="TM RB EXTEND PMA  ENABLE" />
-		<DI_ITEM Index="8" Name="DI_TM_DI8" Device="" Addr="0.08" Note="TM RB EXTEND PMB  ENABLE" />
-		<DI_ITEM Index="9" Name="DI_TM_DI10" Device="" Addr="0.09" Note="TM RB EXTEND PMC  ENABLE" />
-		<DI_ITEM Index="10" Name="DI_SYS_C1" Device="" Addr="0.10" Note="AC RACK FAN OK" />
-		<DI_ITEM Index="11" Name="DI_SYS_C2" Device="" Addr="0.11" Note="AC RACK Smoke Detector out1" />
-		<DI_ITEM Index="12" Name="DI_SYS_C3" Device="" Addr="0.12" Note="AC RACK Smoke Detector out2" />
-		<DI_ITEM Index="13" Name="DI_SYS_C4" Device="" Addr="0.13" Note="Factory Smoke Detector Out" />
-		<DI_ITEM Index="14" Name="DI_TSYS_C5" Device="" Addr="0.14" Note="Abnormal exhaust gas treatment" />
-		<DI_ITEM Index="15" Name="DI_TM_N2_1" Device="" Addr="0.15" Note="TM N2气压表1" />
-		<DI_ITEM Index="16" Name="DI_VCE_TM_OPS" Device="" Addr="1.00" Note="VCE到TM门阀开信号" />
-		<DI_ITEM Index="17" Name="DI_VCE_TM_CLS" Device="" Addr="1.01" Note="VCE到TM门阀关信号" />
-		<DI_ITEM Index="18" Name="DI_TM_PMA_OPS" Device="" Addr="1.02" Note="TM到PMA门阀开信号" />
-		<DI_ITEM Index="19" Name="DI_TM_PMA_CLS" Device="" Addr="1.03" Note="TM到PMA门阀关信号" />
-		<DI_ITEM Index="20" Name="DI_TM_PMB_OPS" Device="" Addr="1.04" Note="TM到PMB门阀开信号" />
-    <DI_ITEM Index="21" Name="DI_TM_PMB_CLS" Device="" Addr="1.05" Note="TM到PMB门阀关信号" />
-		<DI_ITEM Index="22" Name="DI_TM_PMC_OPS" Device="" Addr="1.06" Note="TM N2气压表2" />
-		<DI_ITEM Index="23" Name="DI_TM_PMC_CLS" Device="" Addr="1.07" Note="TM CDA气压表" />
-		<DI_ITEM Index="24" Name="DI_TM_HE" Device="" Addr="1.08" Note="TM He气压表" />
-		<DI_ITEM Index="25" Name="DI_TM_LEAK" Device="" Addr="1.09" Note="漏液检测器" />
-		<DI_ITEM Index="26" Name="" Device="" Addr="" Note="" />
-		<DI_ITEM Index="27" Name="" Device="" Addr="" Note="" />
-		<DI_ITEM Index="28" Name="DI_VCE_RB_RET" Device="" Addr="1.12" Note="ROBOT TO VCE RETRACT" />
-		<DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="1.13" Note="ROBOT TO PMA RETRACT" />
-		<DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="1.14" Note="ROBOT TO PMB RETRACT" />
-		<DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="1.15" Note="ROBOT TO PMC RETRACT" />
+		<DI_ITEM Index="0" Name="DI_TM_DI1" Device="" Addr="w0.00" Note="System CDA Pressure ok" />
+		<DI_ITEM Index="1" Name="DI_TM_DI2" Device="" Addr="w0.01" Note="System N2 Pressure ok"/>
+		<DI_ITEM Index="2" Name="DI_TM_DI3" Device="" Addr="w0.02" Note="VCE SLIT DOOR OPEN ENABLE" />
+		<DI_ITEM Index="3" Name="DI_TM_DI5" Device="" Addr="w0.03" Note="PMA SLIT DOOR OPEN  ENABLE" />
+		<DI_ITEM Index="4" Name="DI_TM_DI7" Device="" Addr="w0.04" Note="PMB SLIT DOOR OPEN  ENABLE" />
+		<DI_ITEM Index="5" Name="DI_TM_DI9" Device="" Addr="w0.05" Note="PMC SLIT DOOR OPEN  ENABLE" />
+		<DI_ITEM Index="6" Name="DI_TM_DI4" Device="" Addr="w0.06" Note="TM RB EXTEND VCE  ENABLE" />
+		<DI_ITEM Index="7" Name="DI_TM_DI6" Device="" Addr="w0.07" Note="TM RB EXTEND PMA  ENABLE" />
+		<DI_ITEM Index="8" Name="DI_TM_DI8" Device="" Addr="w0.08" Note="TM RB EXTEND PMB  ENABLE" />
+		<DI_ITEM Index="9" Name="DI_TM_DI10" Device="" Addr="w0.09" Note="TM RB EXTEND PMC  ENABLE" />
+		<DI_ITEM Index="10" Name="DI_SYS_C1" Device="" Addr="w0.10" Note="AC RACK FAN OK" />
+		<DI_ITEM Index="11" Name="DI_SYS_C2" Device="" Addr="w0.11" Note="AC RACK Smoke Detector out1" />
+		<DI_ITEM Index="12" Name="DI_SYS_C3" Device="" Addr="w0.12" Note="AC RACK Smoke Detector out2" />
+		<DI_ITEM Index="13" Name="DI_SYS_C4" Device="" Addr="w0.13" Note="Factory Smoke Detector Out" />
+		<DI_ITEM Index="14" Name="DI_TSYS_C5" Device="" Addr="w0.14" Note="Abnormal exhaust gas treatment" />
+		<DI_ITEM Index="15" Name="DI_TM_N2_1" Device="" Addr="w0.15" Note="TM N2气压表1" />
+		<DI_ITEM Index="16" Name="DI_VCE_TM_OPS" Device="" Addr="w1.00" Note="VCE到TM门阀开信号" />
+		<DI_ITEM Index="17" Name="DI_VCE_TM_CLS" Device="" Addr="w1.01" Note="VCE到TM门阀关信号" />
+		<DI_ITEM Index="18" Name="DI_TM_PMA_OPS" Device="" Addr="w1.02" Note="TM到PMA门阀开信号" />
+		<DI_ITEM Index="19" Name="DI_TM_PMA_CLS" Device="" Addr="w1.03" Note="TM到PMA门阀关信号" />
+		<DI_ITEM Index="20" Name="DI_TM_PMB_OPS" Device="" Addr="w1.04" Note="TM到PMB门阀开信号" />
+    <DI_ITEM Index="21" Name="DI_TM_PMB_CLS" Device="" Addr="w1.05" Note="TM到PMB门阀关信号" />
+		<DI_ITEM Index="22" Name="DI_TM_N2_2" Device="" Addr="w1.06" Note="TM N2气压表2" />
+		<DI_ITEM Index="23" Name="DI_TM_CDA" Device="" Addr="w1.07" Note="TM CDA气压表" />    
+		<DI_ITEM Index="24" Name="DI_TM_HE" Device="" Addr="w1.08" Note="TM He气压表" />
+		<DI_ITEM Index="25" Name="DI_TM_LEAK" Device="" Addr="w1.09" Note="漏液检测器" />
+		<DI_ITEM Index="26" Name="DI_TM_DI11" Device="" Addr="w1.10" Note="PMD SLIT DOOR OPEN  ENABLE" />
+		<DI_ITEM Index="27" Name="DI_TM_DI12" Device="" Addr="w1.11" Note="TM RB EXTEND PMD  ENABLE" />
+		<DI_ITEM Index="28" Name="DI_VCE_RB_RET" Device="" Addr="w1.12" Note="ROBOT TO VCE RETRACT" />
+		<DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="w1.13" Note="ROBOT TO PMA RETRACT" />
+		<DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="w1.14" Note="ROBOT TO PMB RETRACT" />
+		<DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMC RETRACT" />
+    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMD RETRACT" />
+    <DI_ITEM Index="33" Name="DI_TM_PMC_OPS" Device="" Addr="w2.01" Note="TM到PMC门阀开信号" />
+    <DI_ITEM Index="34" Name="DI_TM_PMC_CLS" Device="" Addr="w2.02" Note="TM到PMC门阀关信号" />
+    <DI_ITEM Index="35" Name="DI_TM_PMD_OPS" Device="" Addr="w2.03" Note="TM到PMD门阀开信号" />
+    <DI_ITEM Index="36" Name="DI_TM_PMD_CLS" Device="" Addr="w2.04" Note="TM到PMD门阀关信号" />
 	</Dig_In>
 	<Dig_Out>
 		<DO_ITEM Index="0" Name="" Device="" Addr="" />
@@ -47,31 +52,31 @@
 		<DO_ITEM Index="8" Name="" Device="" Addr="" />
 		<DO_ITEM Index="9" Name="" Device="" Addr="" />
 		<DO_ITEM Index="10" Name="" Device="" Addr="" />
-		<DO_ITEM Index="11" Name="" Device="" Addr="" />
-		<DO_ITEM Index="12" Name="" Device="" Addr="" />
-		<DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="100.13" Note="VCE到TM门阀开" />
-		<DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="100.14" Note="VCE到TM门阀关" />
-		<DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="100.15" Note="TM到PMA门阀开"/>
-		<DO_ITEM Index="16" Name="DO_TM_PMA_CL" Device="" Addr="101.00" Note="TM到PMA门阀关"/>
-		<DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="101.01" Note="TM到PMB门阀开"/>
-		<DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="101.02" Note="TM到PMB门阀关"/>
-		<DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="101.03" Note="TM到PMC门阀开"/>
-		<DO_ITEM Index="20" Name="DO_TM-PMC-CL" Device="" Addr="101.04" Note="TM到PMC门阀关"/>
-		<DO_ITEM Index="21" Name="DO_TM_V_HS" Device="" Addr="101.05" Note="TM腔快抽真空"/>
-		<DO_ITEM Index="22" Name="DO_TM_V_LS" Device="" Addr="101.06" Note="TM腔慢抽真空"/>
-		<DO_ITEM Index="23" Name="DO_TM_B_HS" Device="" Addr="101.07" Note="TM腔快破真空"/>
-		<DO_ITEM Index="24" Name="DO_TM_B_LS" Device="" Addr="101.08" Note="TM腔慢破真空"/>
-		<DO_ITEM Index="25" Name="DO_VCE_V_HS" Device="" Addr="101.09" Note="VCE腔快抽真空"/>
-		<DO_ITEM Index="26" Name="DO_VCE_V_LS" Device="" Addr="101.10" Note="VCE腔慢抽真空" />
-		<DO_ITEM Index="27" Name="DO_VCE_B_HS" Device="" Addr="101.11" Note="VCE腔快破真空"/>
-		<DO_ITEM Index="28" Name="DO_VCE_B_LS" Device="" Addr="101.12" Note="VCE腔慢破真空"/>
-		<DO_ITEM Index="29" Name="DO_V_220V" Device="" Addr="101.13" Note="220V线圈"/>
-		<DO_ITEM Index="30" Name="DO_TM_C1" Device="" Addr="101.14" Note="系统允许断电"/>
-		<DO_ITEM Index="31" Name="DO_TM_C2" Device="" Addr="101.15" Note="备用"/>
+		<DO_ITEM Index="11" Name="TM-PMD-OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
+		<DO_ITEM Index="12" Name="TM-PMD-CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
+		<DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="w200.00" Note="VCE到TM门阀开" />
+		<DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="w200.01" Note="VCE到TM门阀关" />
+		<DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="w200.02" Note="TM到PMA门阀开"/>
+		<DO_ITEM Index="16" Name="DO_TM_PMA_CL" Device="" Addr="w200.03" Note="TM到PMA门阀关"/>
+		<DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="w200.04" Note="TM到PMB门阀开"/>
+		<DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="w200.05" Note="TM到PMB门阀关"/>
+		<DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="w200.06" Note="TM到PMC门阀开"/>
+		<DO_ITEM Index="20" Name="DO_TM-PMC-CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
+		<DO_ITEM Index="21" Name="DO_TM_V_HS" Device=""   Addr="w200.08" Note="TM腔快抽真空"/>
+		<DO_ITEM Index="22" Name="DO_TM_V_LS" Device=""   Addr="w200.09" Note="TM腔慢抽真空"/>
+		<DO_ITEM Index="23" Name="DO_TM_B_HS" Device=""   Addr="w200.10" Note="TM腔快破真空"/>
+		<DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""   Addr="w200.11" Note="TM腔慢破真空"/>
+		<DO_ITEM Index="25" Name="DO_VCE_V_HS" Device=""  Addr="w200.12" Note="VCE腔快抽真空"/>
+		<DO_ITEM Index="26" Name="DO_VCE_V_LS" Device=""  Addr="w200.13" Note="VCE腔慢抽真空" />
+		<DO_ITEM Index="27" Name="DO_VCE_B_HS" Device=""  Addr="w200.14" Note="VCE腔快破真空"/>
+		<DO_ITEM Index="28" Name="DO_VCE_B_LS" Device=""  Addr="w200.15" Note="VCE腔慢破真空"/>
+		<DO_ITEM Index="29" Name="DO_V_220V" Device=""    Addr="w201.00" Note="220V线圈"/>
+		<DO_ITEM Index="30" Name="DO_TM_C1" Device=""     Addr="w201.01" Note="系统允许断电"/>
+		<DO_ITEM Index="31" Name="DO_TM_C2" Device=""     Addr="w201.02" Note="备用"/>
 	</Dig_Out>
 	<Ana_Out>
 		<AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="4000" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
-		<AO_ITEM Index="1" Name="" BufferOffset=""  />
+    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="4000"  Device="" Addr="d201" Note=""/>
 		<AO_ITEM Index="2" Name="" BufferOffset=""  />
 		<AO_ITEM Index="3" Name="" BufferOffset="" />
 		<AO_ITEM Index="4" Name="" BufferOffset="" />
@@ -122,11 +127,11 @@
 		<AO_ITEM Index="49" Name="" />
 	</Ana_Out>
 	<Ana_In>
-		<AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="4000" Device="" Addr="D100" />
-		<AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="4000" Device="" Addr="D101" />
-		<AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="4000" Device="" Addr="D102"/>
-		<AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="4000" Device="" Addr="D103"/>
-		<AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="4000" Device="" Addr="D104"/>
+		<AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="2" Device="" Addr="D100" />
+		<AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
+		<AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
+		<AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
+		<AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
 		<AI_ITEM Index="5" Name=""/>
 		<AI_ITEM Index="6" Name="" />
 		<AI_ITEM Index="7" Name=""/>

+ 85 - 0
Venus/Venus_RT/Devices/IODevices/IoTMSEPressureCtl.cs

@@ -0,0 +1,85 @@
+using Aitex.Core.RT.DataCenter;
+using Aitex.Core.RT.Device;
+using Aitex.Core.RT.Log;
+using System;
+using Venus_RT.Devices.IODevices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Aitex.Core.RT.Tolerance;
+using Aitex.Core.Util;
+using Aitex.Core.RT.IOCore;
+using System.Xml;
+
+namespace Venus_RT.Devices
+{
+     class IoTMSEPressureCtl:BaseDevice,IDevice
+    {
+        public readonly IoPressureMeter TMVacuumGauge;
+        public readonly IoPressureMeter TMPipelineGauge;
+        public readonly IoPressureMeter VCEVacuumGauge;
+        public readonly IoPressureMeter VCEPipelineVacuumGauge;
+
+
+        private readonly ToleranceChecker _tolerance = new ToleranceChecker();
+
+        private readonly R_TRIG _trigTMVacuumGauge = new R_TRIG();
+        private readonly R_TRIG _trigTMPipelineGauge = new R_TRIG();
+        private readonly R_TRIG _trigVCEVacuumGauge = new R_TRIG();
+        private readonly R_TRIG _trigVCEPipelineVacuumGauge = new R_TRIG();
+        private readonly AOAccessor _aoMFPressureSP;
+        public double TargetPressure { get; set; }
+
+        public IoTMSEPressureCtl(string module, XmlElement node, string ioModule = "")
+        {
+            base.Module = module;
+            base.Name = node.GetAttribute("id");
+            base.Display = node.GetAttribute("display");
+            base.DeviceID = node.GetAttribute("schematicId");
+
+            TMVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "MFPressureMeter", node);
+            TMPipelineGauge = ParseDeviceNode<IoPressureMeter>(Module, "MFForelineMeter", node);
+            VCEVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "VCEPressureMeter", node);
+            VCEPipelineVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "VCEPipelineMeter", node);
+
+            _aoMFPressureSP = ParseAoNode("aoMFPressure", node, ioModule);
+
+        }
+        public bool Initialize()
+        {
+            //DATA.Subscribe($"{Module}.{Name}.TMChamberSetPoint", () => _GetRealFloat(_aoMFPressureSP));
+            return true;
+        }
+        public void SetTMPressure(float pressure)
+        {
+            _SetRealFloat(_aoMFPressureSP, pressure);
+        }
+        public void Terminate()
+        {
+        }
+        public void Monitor()
+        {
+   
+                _trigTMVacuumGauge.CLK = TMVacuumGauge.GaugeAlarm;
+                if (_trigTMVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "MF pressure gauge Alarm");
+            
+                _trigTMPipelineGauge.CLK = TMPipelineGauge.GaugeAlarm;
+                if (_trigTMPipelineGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "MF Pipeline pressure gauge Alarm");
+            
+                _trigVCEVacuumGauge.CLK = VCEVacuumGauge.GaugeAlarm;
+                if (_trigVCEVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "VCE pressure gauge Alarm");
+            
+                _trigVCEPipelineVacuumGauge.CLK = VCEPipelineVacuumGauge.GaugeAlarm;
+                if (_trigVCEPipelineVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "VCE Pipeline pressure Gauge Alarm");
+            
+        }
+        public void Reset()
+        {
+            _trigTMVacuumGauge.RST = true;
+            _trigTMPipelineGauge.RST = true;
+            _trigVCEVacuumGauge.RST = true;
+            _trigVCEPipelineVacuumGauge.RST = true;
+        }
+    }
+}

+ 8 - 7
Venus/Venus_RT/Venus_RT.csproj

@@ -149,6 +149,7 @@
     <Compile Include="Devices\IODevices\IoSignalTower.cs" />
     <Compile Include="Devices\IODevices\IoSwitch.cs" />
     <Compile Include="Devices\IODevices\IoTMPressureCtl.cs" />
+    <Compile Include="Devices\IODevices\IoTMSEPressureCtl.cs" />
     <Compile Include="Devices\JetEPDBase.cs" />
     <Compile Include="Devices\JetKepler2200APM.cs" />
     <Compile Include="Devices\JetPMBase.cs" />
@@ -261,11 +262,10 @@
     <Compile Include="Modules\TM\MFSwapRoutine.cs" />
     <Compile Include="Modules\TM\MFVentRoutine.cs" />
     <Compile Include="Modules\TM\TMEntity.cs" />
-    <Compile Include="Modules\TM\VenusEntity\SEMFPickRoutine.cs" />
     <Compile Include="Modules\TM\VenusEntity\SEMFHomeRoutine.cs" />
+    <Compile Include="Modules\TM\VenusEntity\SEMFPickRoutine.cs" />
     <Compile Include="Modules\TM\VenusEntity\SEMFPlaceRoutine.cs" />
     <Compile Include="Modules\TM\VenusEntity\SETMEntity.cs" />
-    <Compile Include="Modules\VCE\LoadPrepareRoutine.cs" />
     <Compile Include="Modules\VCE\VceEntity.cs" />
     <Compile Include="Properties\AssemblyInfo.cs">
       <SubType>Code</SubType>
@@ -299,7 +299,7 @@
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
     <Content Include="Config\TM\DeviceModelVenusSE_MF.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
     <Content Include="Config\TM\DeviceModelVenus_MF.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -313,20 +313,21 @@
     <Content Include="Config\PM\Venus\VenusInterlock.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Content Include="Config\TM\TMInterlock.xml">
+    <Content Include="Config\TM\TMSEInterlock.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Content Include="Config\TM\VenusSE\_ioDefineVenus_MF.xml">
+    <Content Include="Config\TM\TMInterlock.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Content Include="Config\TM\VenusSE\DeviceModelVenus_MF.xml">
+    <Resource Include="Config\TM\VenusSE\DeviceModelVenusSE_MF.xml" />
+    <Content Include="Config\TM\VenusSE\_ioDefineVenus_MF.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
     <Content Include="Config\TM\VenusSE\TMInterlock.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
     <Content Include="Config\TM\_ioDefineVenusSE_MF.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
     <Content Include="Config\TM\_ioDefineVenus_MF.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>

+ 1 - 1
Venus/Venus_RT/Venus_RT.csproj.user

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <ProjectView>ShowAllFiles</ProjectView>
+    <ProjectView>ProjectFiles</ProjectView>
     <PublishUrlHistory>publish\</PublishUrlHistory>
     <InstallUrlHistory />
     <SupportUrlHistory />

+ 179 - 336
Venus/Venus_Simulator/Config/_ioDefineVenusSE_MF.xml

@@ -1,338 +1,181 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
 <IO_DEFINE xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
 
-	<!--文件根据IO LIST_PM_VNS_SE 20230905.xlsx生成-->
-	<!--生成时间:09/06/2023 10:44:54-->
-	<Dig_In>
-		<DI_ITEM Index="0"   Name="DI_Lid_Closed" Device="" Addr="w20.00" />
-		<DI_ITEM Index="1"   Name="DI_ATM_Switch" Device="ATM_SW" Addr="w20.01" />
-		<DI_ITEM Index="2"   Name="DI_PM_VAC_Switch" Device="" Addr="w20.02" />
-		<DI_ITEM Index="3"   Name="DI_Plate_Water_Flow_Switch" Device="" Addr="w20.03" />
-		<DI_ITEM Index="4"   Name="DI_Water_Leak_Sensor" Device="" Addr="w20.04" />
-		<DI_ITEM Index="5"   Name="DI_Lift_Pin_Up_Position" Device="" Addr="w20.05" />
-		<DI_ITEM Index="6"   Name="DI_Lift_Pin_Down_Position" Device="" Addr="w20.06" />
-		<DI_ITEM Index="7"   Name="DI_RF_HV_Interlock_OK" Device="Lid_VAC_Slit_Door_MATCH_INT_OK." Addr="w20.07" />
-		<DI_ITEM Index="8"   Name="" />
-		<DI_ITEM Index="9"   Name="DI_Turbo_Pump_Interlock" Device="Q7.12同步" Addr="w20.09" />
-		<DI_ITEM Index="10"  Name="DI_Slit_Door_Open_Position" Device="" Addr="w20.10" />
-		<DI_ITEM Index="11"  Name="DI_Slit_Door_Close_Position" Device="" Addr="w20.11" />
-		<DI_ITEM Index="12"  Name="DI_CDA_Pressure_Switch" Device="" Addr="w20.12" />
-		<DI_ITEM Index="13"  Name="DI_Coolant_Inlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.13" />
-		<DI_ITEM Index="14"  Name="DI_Coolant_Outlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.14" />
-		<DI_ITEM Index="15"  Name="DI_Chamber_Pressure_10t_Gauge_Alarm" Device="VG_PPH_真空值比较" Addr="w20.15" />
-		<DI_ITEM Index="16"  Name="DI_GASLINE_TC_Deviation_out_of_range" Device="值比较" Addr="w21.00" />
-		<DI_ITEM Index="17"  Name="DI_GASLINE_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.01" />
-		<DI_ITEM Index="18"  Name="DI_GASLINE_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.02" />
-		<DI_ITEM Index="19"  Name="DI_GASLINE_Heater_On_FB" Device="Q7.10同步" Addr="w21.03" />
-		<DI_ITEM Index="20"  Name="" />
-		<DI_ITEM Index="21"  Name="DI_Valve_Control_TC_Broken_Alarm" Device="" Addr="w21.05" />
-		<DI_ITEM Index="22"  Name="" />
-		<DI_ITEM Index="23"  Name="DI_Valve_Heater_On_FB" Device="Q7.13同步" Addr="w21.07" />
-		<DI_ITEM Index="24"  Name="" />
-		<DI_ITEM Index="25"  Name="DI_Foreline_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.09" />
-		<DI_ITEM Index="26"  Name="" />
-		<DI_ITEM Index="27"  Name="DI_Foreline_Heater_On_FB" Device="Q7.14同步" Addr="w21.11" />
-		<DI_ITEM Index="28"  Name="DI_CHB_Wall_TC_Deviation_out_of_range" Device="值比较" Addr="w21.12" />
-		<DI_ITEM Index="29"  Name="DI_CHB_Wall_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.13" />
-		<DI_ITEM Index="30"  Name="DI_CHB_Wall_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.14" />
-		<DI_ITEM Index="31"  Name="DI_CHB_Wall_Heater_On_FB" Device="Q7.15同步" Addr="w21.15" />
-		<DI_ITEM Index="32"  Name="DI_CHB_Wall_OT_Switch_Alarm" Device="" Addr="w22.00" />
-		<DI_ITEM Index="33"  Name=""/>
-		<DI_ITEM Index="34"  Name="DI_PN2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
-		<DI_ITEM Index="35"  Name="DI_MFC1_Pressure_Switch" Device="PG1" Addr="w22.03" Note="Gas Box" />
-		<DI_ITEM Index="36"  Name="DI_MFC2_Pressure_Switch" Device="PG2" Addr="w22.04" Note="Gas Box" />
-		<DI_ITEM Index="37"  Name="DI_MFC3_Pressure_Switch" Device="PG3" Addr="w22.05" Note="Gas Box" />
-		<DI_ITEM Index="38"  Name="DI_MFC4_Pressure_Switch" Device="PG4" Addr="w22.06" Note="Gas Box" />
-		<DI_ITEM Index="39"  Name="DI_MFC5_Pressure_Switch" Device="PG5" Addr="w22.07" Note="Gas Box" />
-		<DI_ITEM Index="40"  Name="DI_MFC6_Pressure_Switch" Device="PG6" Addr="w22.08" Note="Gas Box" />
-		<DI_ITEM Index="41"  Name="DI_MFC7_Pressure_Switch" Device="PG7" Addr="w22.09" Note="Gas Box" />
-		<DI_ITEM Index="42"  Name="DI_MFC8_Pressure_Switch" Device="PG8" Addr="w22.10" Note="Gas Box" />
-		<DI_ITEM Index="43"  Name="DI_He_Pressure_Switch" Device="PGHe" Addr="w22.11" Note="Gas Box" />
-		<DI_ITEM Index="44"  Name="" />
-		<DI_ITEM Index="45"  Name="" />
-		<DI_ITEM Index="46"  Name="" />
-		<DI_ITEM Index="47"  Name="" />
-		<DI_ITEM Index="48"  Name="" />
-		<DI_ITEM Index="49"  Name="" />
-		<DI_ITEM Index="50"  Name="" />
-		<DI_ITEM Index="51"  Name="DI_Gas_Box_Door_Switch" Device="" Addr="w23.03" />
-		<DI_ITEM Index="52"  Name="DI_Gas_Box_Pressure_Switch" Device="" Addr="w23.04" />
-		<DI_ITEM Index="53"  Name="DI_Turbo_Pump_Water_Flow_Switch" Device="" Addr="w23.05" />
-		<DI_ITEM Index="54"  Name="" />
-		<DI_ITEM Index="55"  Name="DI_SOURCE_RF_Water_Flow_Switch" Device="" Addr="w23.07" />
-		<DI_ITEM Index="56"  Name="" />
-		<DI_ITEM Index="57"  Name="" />
-		<DI_ITEM Index="58"  Name="" />
-		<DI_ITEM Index="59"  Name="DI_TM_Slit_Door_Closed" Device="" Addr="w23.11" />
-		<DI_ITEM Index="60"  Name="" />
-		<DI_ITEM Index="61"  Name="" />
-		<DI_ITEM Index="62"  Name="DI_Source_Match_interlock_ok" Device="" Addr="w23.14" />
-		<DI_ITEM Index="63"  Name="DI_Bias_Match_interlock_ok" Device="" Addr="w23.15" />
-		<DI_ITEM Index="64"  Name="" />
-		<DI_ITEM Index="65"  Name="" />
-		<DI_ITEM Index="66"  Name="DI_MFC9_Pressure_Switch" Device="PG9" Addr="w24.02" Note="Gas Box" />
-		<DI_ITEM Index="67"  Name="DI_MFC10_Pressure_Switch" Device="PG10" Addr="w24.03" Note="Gas Box" />
-		<DI_ITEM Index="68"  Name="DI_MFC11_Pressure_Switch" Device="PG11_SPARE_" Addr="w24.04" Note="Gas Box" />
-		<DI_ITEM Index="69"  Name="DI_MFC12_Pressure_Switch" Device="PG12" Addr="w24.05" Note="Gas Box" />
-		<DI_ITEM Index="70"  Name="" />
-		<DI_ITEM Index="71"  Name="" />
-		<DI_ITEM Index="72"  Name="" />
-		<DI_ITEM Index="73"  Name="" />
-		<DI_ITEM Index="74"  Name="" />
-		<DI_ITEM Index="75"  Name="" />
-		<DI_ITEM Index="76"  Name="" />
-		<DI_ITEM Index="77"  Name="" />
-		<DI_ITEM Index="78"  Name="" />
-		<DI_ITEM Index="79"  Name="" />
-		<DI_ITEM Index="80"  Name="" />
-		<DI_ITEM Index="81"  Name="" />
-		<DI_ITEM Index="82"  Name="" />
-		<DI_ITEM Index="83"  Name="" />
-		<DI_ITEM Index="84"  Name="" />
-		<DI_ITEM Index="85"  Name="" />
-		<DI_ITEM Index="86"  Name="" />
-		<DI_ITEM Index="87"  Name="" />
-		<DI_ITEM Index="88"  Name="" />
-		<DI_ITEM Index="89"  Name="" />
-		<DI_ITEM Index="90"  Name="" />
-		<DI_ITEM Index="91"  Name="" />
-		<DI_ITEM Index="92"  Name="" />
-		<DI_ITEM Index="93"  Name="" />
-		<DI_ITEM Index="94"  Name="" />
-		<DI_ITEM Index="95"  Name="" />
-		<DI_ITEM Index="96"  Name="" />
-		<DI_ITEM Index="97"  Name="" />
-		<DI_ITEM Index="98"  Name="" />
-		<DI_ITEM Index="99"  Name="" />
-		<DI_ITEM Index="100" Name="" />
-		<DI_ITEM Index="101" Name="" />
-		<DI_ITEM Index="102" Name="" />
-		<DI_ITEM Index="103" Name="" />
-		<DI_ITEM Index="104" Name="" />
-		<DI_ITEM Index="105" Name="" />
-		<DI_ITEM Index="106" Name="" />
-		<DI_ITEM Index="107" Name="" />
-		<DI_ITEM Index="108" Name="" />
-		<DI_ITEM Index="109" Name="" />
-		<DI_ITEM Index="110" Name="" />
-		<DI_ITEM Index="111" Name="" />
-	</Dig_In>
-	<Dig_Out>
-		<DO_ITEM Index="0" Name="DO_PVN21" Device="GPVN21" Addr="w0.00" Note="Gas Box" />
-		<DO_ITEM Index="1" Name="DO_PVN22" Device="GPVN22" Addr="w0.01" Note="Gas Box" />
-		<DO_ITEM Index="2" Name="DO_PV11" Device="GPV11" Addr="w0.02" Note="Gas Box" />
-		<DO_ITEM Index="3" Name="DO_PV12" Device="GPV12" Addr="w0.03" Note="Gas Box" />
-		<DO_ITEM Index="4" Name="DO_PV21" Device="GPV21" Addr="w0.04" Note="Gas Box" />
-		<DO_ITEM Index="5" Name="DO_PV22" Device="GPV22" Addr="w0.05" Note="Gas Box" />
-		<DO_ITEM Index="6" Name="DO_PV31" Device="GPV31" Addr="w0.06" Note="Gas Box" />
-		<DO_ITEM Index="7" Name="DO_PV32" Device="GPV32" Addr="w0.07" Note="Gas Box" />
-		<DO_ITEM Index="8" Name="DO_PV41" Device="GPV41" Addr="w0.08" Note="Gas Box" />
-		<DO_ITEM Index="9" Name="DO_PV42" Device="GPV42" Addr="w0.09" Note="Gas Box" />
-		<DO_ITEM Index="10" Name="DO_N2_Valve" Device="GPVN2" Addr="w0.10" Note="Gas Box" />
-		<DO_ITEM Index="11" Name="DO_MFC1_Valve" Device="GPV1" Addr="w0.11" Note="Gas Box" />
-		<DO_ITEM Index="12" Name="DO_MFC2_Valve" Device="GPV2" Addr="w0.12" Note="Gas Box" />
-		<DO_ITEM Index="13" Name="DO_MFC3_Valve" Device="GPV3" Addr="w0.13" Note="Gas Box" />
-		<DO_ITEM Index="14" Name="DO_MFC4_Valve" Device="GPV4" Addr="w0.14" Note="Gas Box" />
-		<DO_ITEM Index="15" Name="DO_MFC5_Valve" Device="GPV5" Addr="w0.15" Note="Gas Box" />
-		<DO_ITEM Index="16" Name="DO_MFC6_Valve" Device="GPV6" Addr="w1.00" Note="Gas Box" />
-		<DO_ITEM Index="17" Name="DO_MFC7_Valve" Device="GPV7" Addr="w1.01" Note="Gas Box" />
-		<DO_ITEM Index="18" Name="DO_MFC8_Valve" Device="GPV8" Addr="w1.02" Note="Gas Box" />
-		<DO_ITEM Index="19" Name="DO_PVHe1" Device="GPVHe1" Addr="w1.03" />
-		<DO_ITEM Index="20" Name="DO_PVHe2" Device="GPVHe2" Addr="w1.04" />
-		<DO_ITEM Index="21" Name="DO_Gas_Final_Valve" Device="PV1" Addr="w1.05" />
-		<DO_ITEM Index="22" Name="DO_Soft_Pumping_Valve" Device="PV2" Addr="w1.06" />
-		<DO_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
-		<DO_ITEM Index="24" Name=""/>
-		<DO_ITEM Index="25" Name=""/>
-		<DO_ITEM Index="26" Name="DO_Lift_Pin_Up" Device="PV5" Addr="w1.10" />
-		<DO_ITEM Index="27" Name="DO_Lift_Pin_Down" Device="PV5" Addr="w1.11" />
-		<DO_ITEM Index="28" Name="" />
-		<DO_ITEM Index="29" Name="DO_Turbo_Pump_Pumping_Valve" Device="PV6" Addr="w1.13" />
-		<DO_ITEM Index="30" Name="DO_Turbo_Pump_Purge_Valve" Device="PV7" Addr="w1.14" />
-		<DO_ITEM Index="31" Name="DO_Gauge_Valve" Device="PV8" Addr="w1.15" />
-		<DO_ITEM Index="32" Name="DO_Reset_Signal" Device="" Addr="w2.00" />
-		<DO_ITEM Index="33" Name="DO_Valve_Heater_On" Device="" Addr="w2.01" />
-		<DO_ITEM Index="34" Name="DO_Foreline_Heater_On" Device="" Addr="w2.02" />
-		<DO_ITEM Index="35" Name="DO_CHB_Wall_Heater_On" Device="" Addr="w2.03" />
-		<DO_ITEM Index="36" Name=""/>
-		<DO_ITEM Index="37" Name=""/>
-		<DO_ITEM Index="38" Name=""/>
-		<DO_ITEM Index="39" Name=""/>
-		<DO_ITEM Index="40" Name=""/>
-		<DO_ITEM Index="41" Name=""/>
-		<DO_ITEM Index="42" Name=""/>
-		<DO_ITEM Index="43" Name=""/>
-		<DO_ITEM Index="44" Name=""/>
-		<DO_ITEM Index="45" Name=""/>
-		<DO_ITEM Index="46" Name="DO_Gasline_Heater_On" Device="" Addr="w2.14" />
-		<DO_ITEM Index="47" Name="" />
-		<DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
-		<DO_ITEM Index="49" Name="DO_He_ISO" Device="PV9" Addr="w3.01" />
-		<DO_ITEM Index="50" Name="" />
-		<DO_ITEM Index="51" Name="" />
-		<DO_ITEM Index="52" Name="DO_MFC9_Valve" Device="GPV9" Addr="w3.04" />
-		<DO_ITEM Index="53" Name="DO_MFC10_Valve" Device="GPV10" Addr="w3.05" />
-		<DO_ITEM Index="54" Name="DO_MFC11_Valve" Device="GPV11" Addr="w3.06" />
-		<DO_ITEM Index="55" Name="DO_MFC12_Valve" Device="GPV12" Addr="w3.07" />
-		<DO_ITEM Index="56" Name="DO_Main_Purge_Valve" Device="GPVM" Addr="w3.08" />
-		<DO_ITEM Index="57" Name="DO_PV51" Device="GPV51" Addr="w3.09" />
-		<DO_ITEM Index="58" Name="DO_PV52" Device="GPV52" Addr="w3.10" />
-		<DO_ITEM Index="59" Name="DO_PV61" Device="GPV61" Addr="w3.11" />
-		<DO_ITEM Index="60" Name="DO_PV62" Device="GPV62" Addr="w3.12" />
-		<DO_ITEM Index="61" Name="DO_PV71" Device="GPV71" Addr="w3.13" />
-		<DO_ITEM Index="62" Name="DO_PV72" Device="GPV72" Addr="w3.14" />
-		<DO_ITEM Index="63" Name="DO_PV81" Device="GPV81" Addr="w3.15" />
-		<DO_ITEM Index="64" Name="DO_PV82" Device="GPV82" Addr="w4.00" />
-		<DO_ITEM Index="65" Name="DO_PV91" Device="GPV91" Addr="w4.01" />
-		<DO_ITEM Index="66" Name="DO_PV92" Device="GPV92" Addr="w4.02" />
-		<DO_ITEM Index="67" Name="DO_PVA1" Device="GPVA1" Addr="w4.03" />
-		<DO_ITEM Index="68" Name="DO_PVA2" Device="GPVA2" Addr="w4.04" />
-		<DO_ITEM Index="69" Name="DO_PVB1" Device="GPVB1" Addr="w4.05" />
-		<DO_ITEM Index="70" Name="DO_PVB2" Device="GPVB2" Addr="w4.06" />
-		<DO_ITEM Index="71" Name="DO_PVC1" Device="GPVC1" Addr="w4.07" />
-		<DO_ITEM Index="72" Name="DO_PVC2" Device="GPVC2" Addr="w4.08" />
-		<DO_ITEM Index="73" Name="" />
-		<DO_ITEM Index="74" Name="" />
-		<DO_ITEM Index="75" Name="" />
-		<DO_ITEM Index="76" Name="" />
-		<DO_ITEM Index="77" Name="" />
-		<DO_ITEM Index="78" Name="" />
-		<DO_ITEM Index="79" Name="" />
-		<DO_ITEM Index="80" Name="" />
-		<DO_ITEM Index="81" Name="" />
-		<DO_ITEM Index="82" Name="" />
-		<DO_ITEM Index="83" Name="" />
-		<DO_ITEM Index="84" Name="" />
-		<DO_ITEM Index="85" Name="" />
-		<DO_ITEM Index="86" Name="" />
-		<DO_ITEM Index="87" Name="" />
-		<DO_ITEM Index="88" Name="" />
-		<DO_ITEM Index="89" Name="" />
-		<DO_ITEM Index="90" Name="" />
-		<DO_ITEM Index="91" Name="" />
-		<DO_ITEM Index="92" Name="" />
-		<DO_ITEM Index="93" Name="" />
-		<DO_ITEM Index="94" Name="" />
-		<DO_ITEM Index="95" Name="" />
-		<DO_ITEM Index="96" Name="" />
-		<DO_ITEM Index="97" Name="" />
-		<DO_ITEM Index="98" Name="" />
-		<DO_ITEM Index="99" Name="" />
-		<DO_ITEM Index="100" Name="" />
-		<DO_ITEM Index="101" Name="" />
-		<DO_ITEM Index="102" Name="" />
-		<DO_ITEM Index="103" Name="" />
-		<DO_ITEM Index="104" Name="" />
-		<DO_ITEM Index="105" Name="" />
-		<DO_ITEM Index="106" Name="" />
-		<DO_ITEM Index="107" Name="" />
-		<DO_ITEM Index="108" Name="" />
-		<DO_ITEM Index="109" Name="" />
-		<DO_ITEM Index="110" Name="" />
-		<DO_ITEM Index="111" Name="" />
-	</Dig_Out>
-	<Ana_Out>
-		<AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" Device="" Addr="d1000" Note="MFC" />
-		<AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" Device="" Addr="d1002" Note="MFC" />
-		<AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" Device="" Addr="d1004" Note="MFC" />
-		<AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" Device="" Addr="d1006" Note="MFC" />
-		<AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" Device="" Addr="d1008" Note="MFC" />
-		<AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" Device="" Addr="d1010" Note="MFC" />
-		<AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" Device="" Addr="d1012" Note="MFC" />
-		<AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" Device="" Addr="d1014" Note="MFC" />
-		<AO_ITEM Index="8"  Name="AO_He_Pressure_Setpoint" Device="" Addr="d1016" Note="He MFC" />
-		<AO_ITEM Index="9"  Name=""/>
-		<AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" Device="" Addr="d1020" Note="阀门加热设定温度" />
-		<AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" Device="" Addr="d1022" Note="Temp Limit" />
-		<AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" Device="" Addr="d1024" Note="前级管道设定温度" />
-		<AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" Device="" Addr="d1026" Note="Temp Limit" />
-		<AO_ITEM Index="14" Name="AO_CHB_Wall_Temperature_Setpoint" Device="" Addr="d1028" Note="腔体壁设定温度" />
-		<AO_ITEM Index="15" Name="AO_CHB_Wall_Temp_Limit_Setpoint" Device="" Addr="d1030" Note="Temp Limit" />
-		<AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
-		<AO_ITEM Index="17" Name=""/>
-		<AO_ITEM Index="18" Name=""/>
-		<AO_ITEM Index="19" Name="" />
-		<AO_ITEM Index="20" Name="" />
-		<AO_ITEM Index="21" Name="" />
-		<AO_ITEM Index="22" Name="" />
-		<AO_ITEM Index="23" Name="" />
-		<AO_ITEM Index="24" Name="" />
-		<AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
-		<AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
-		<AO_ITEM Index="27" Name="" />
-		<AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
-		<AO_ITEM Index="29" Name="" />
-		<AO_ITEM Index="30" Name="AO_GASLINE_Temperature_Setpoint" Device="" Addr="d1060" Note="GASLINE 加热设定温度" />
-		<AO_ITEM Index="31" Name="AO_GASLINE_Temp_Limit_Setpoint" Device="" Addr="d1062" Note="Temp Limit" />
-		<AO_ITEM Index="32" Name="" />
-		<AO_ITEM Index="33" Name="" />
-		<AO_ITEM Index="34" Name="" />
-		<AO_ITEM Index="35" Name="" />
-		<AO_ITEM Index="36" Name="" />
-		<AO_ITEM Index="37" Name="" />
-		<AO_ITEM Index="38" Name="" />
-		<AO_ITEM Index="39" Name="" />
-		<AO_ITEM Index="40" Name="" />
-		<AO_ITEM Index="41" Name="" />
-		<AO_ITEM Index="42" Name="" />
-		<AO_ITEM Index="43" Name="" />
-		<AO_ITEM Index="44" Name="" />
-		<AO_ITEM Index="45" Name="" />
-		<AO_ITEM Index="46" Name="" />
-		<AO_ITEM Index="47" Name="" />
-		<AO_ITEM Index="48" Name="" />
-		<AO_ITEM Index="49" Name="" />
-	</Ana_Out>
-	<Ana_In>
-		<AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" Device="" Addr="d2000" Note="float" />
-		<AI_ITEM Index="1"  Name=""/>
-		<AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
-		<AI_ITEM Index="3"  Name="AI_He_Pressure_100t" Device="" Addr="d2006" Note="float" />
-		<AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
-		<AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
-		<AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
-		<AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
-		<AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
-		<AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
-		<AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
-		<AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
-		<AI_ITEM Index="12" Name="AI_He_Flow" Device="" Addr="d2024" Note="float" />
-		<AI_ITEM Index="13" />
-		<AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
-		<AI_ITEM Index="15" Name="AI_Gasline_Control_TC_Temp" Device="" Addr="d2030" Note="float" />
-		<AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
-		<AI_ITEM Index="17" Name="AI_Gasline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
-		<AI_ITEM Index="18" Name="AI_CHB_Wall_Control_TC_Temp" Device="" Addr="d2036" Note="float" />
-		<AI_ITEM Index="19" Name="AI_CHB_Wall_Monitor_TC_Temp" Device="" Addr="d2038" Note="float" />
-		<AI_ITEM Index="20" Name="AI_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
-		<AI_ITEM Index="21" Name="AI_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
-		<AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
-		<AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
-		<AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
-		<AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
-		<AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
-		<AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
-		<AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
-		<AI_ITEM Index="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="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
-		<AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
-		<AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
-		<AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
-		<AI_ITEM Index="39" Name="" />
-		<AI_ITEM Index="40" Name="AI_He_Pressure" Device="" Addr="d2080" Note="float" />
-		<AI_ITEM Index="41" Name="" />
-		<AI_ITEM Index="42" Name="" />
-		<AI_ITEM Index="43" Name="" />
-		<AI_ITEM Index="44" Name="" />
-		<AI_ITEM Index="45" Name="" />
-		<AI_ITEM Index="46" Name="" />
-		<AI_ITEM Index="47" Name="" />
-		<AI_ITEM Index="48" Name="" />
-		<AI_ITEM Index="49" Name="" />
-	</Ana_In>
-</IO_DEFINE>
+  <Dig_In>
+    <DI_ITEM Index="0" Name="DI_TM_DI1" Device="" Addr="w0.00" Note="System CDA Pressure ok" />
+    <DI_ITEM Index="1" Name="DI_TM_DI2" Device="" Addr="w0.01" Note="System N2 Pressure ok"/>
+    <DI_ITEM Index="2" Name="DI_TM_DI3" Device="" Addr="w0.02" Note="VCE SLIT DOOR OPEN ENABLE" />
+    <DI_ITEM Index="3" Name="DI_TM_DI5" Device="" Addr="w0.03" Note="PMA SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="4" Name="DI_TM_DI7" Device="" Addr="w0.04" Note="PMB SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="5" Name="DI_TM_DI9" Device="" Addr="w0.05" Note="PMC SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="6" Name="DI_TM_DI4" Device="" Addr="w0.06" Note="TM RB EXTEND VCE  ENABLE" />
+    <DI_ITEM Index="7" Name="DI_TM_DI6" Device="" Addr="w0.07" Note="TM RB EXTEND PMA  ENABLE" />
+    <DI_ITEM Index="8" Name="DI_TM_DI8" Device="" Addr="w0.08" Note="TM RB EXTEND PMB  ENABLE" />
+    <DI_ITEM Index="9" Name="DI_TM_DI10" Device="" Addr="w0.09" Note="TM RB EXTEND PMC  ENABLE" />
+    <DI_ITEM Index="10" Name="DI_SYS_C1" Device="" Addr="w0.10" Note="AC RACK FAN OK" />
+    <DI_ITEM Index="11" Name="DI_SYS_C2" Device="" Addr="w0.11" Note="AC RACK Smoke Detector out1" />
+    <DI_ITEM Index="12" Name="DI_SYS_C3" Device="" Addr="w0.12" Note="AC RACK Smoke Detector out2" />
+    <DI_ITEM Index="13" Name="DI_SYS_C4" Device="" Addr="w0.13" Note="Factory Smoke Detector Out" />
+    <DI_ITEM Index="14" Name="DI_TSYS_C5" Device="" Addr="w0.14" Note="Abnormal exhaust gas treatment" />
+    <DI_ITEM Index="15" Name="DI_TM_N2_1" Device="" Addr="w0.15" Note="TM N2气压表1" />
+    <DI_ITEM Index="16" Name="DI_VCE_TM_OPS" Device="" Addr="w1.00" Note="VCE到TM门阀开信号" />
+    <DI_ITEM Index="17" Name="DI_VCE_TM_CLS" Device="" Addr="w1.01" Note="VCE到TM门阀关信号" />
+    <DI_ITEM Index="18" Name="DI_TM_PMA_OPS" Device="" Addr="w1.02" Note="TM到PMA门阀开信号" />
+    <DI_ITEM Index="19" Name="DI_TM_PMA_CLS" Device="" Addr="w1.03" Note="TM到PMA门阀关信号" />
+    <DI_ITEM Index="20" Name="DI_TM_PMB_OPS" Device="" Addr="w1.04" Note="TM到PMB门阀开信号" />
+    <DI_ITEM Index="21" Name="DI_TM_PMB_CLS" Device="" Addr="w1.05" Note="TM到PMB门阀关信号" />
+    <DI_ITEM Index="22" Name="DI_TM_N2_2" Device="" Addr="w1.06" Note="TM N2气压表2" />
+    <DI_ITEM Index="23" Name="DI_TM_CDA" Device="" Addr="w1.07" Note="TM CDA气压表" />
+    <DI_ITEM Index="24" Name="DI_TM_HE" Device="" Addr="w1.08" Note="TM He气压表" />
+    <DI_ITEM Index="25" Name="DI_TM_LEAK" Device="" Addr="w1.09" Note="漏液检测器" />
+    <DI_ITEM Index="26" Name="DI_TM_DI11" Device="" Addr="w1.10" Note="PMD SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="27" Name="DI_TM_DI12" Device="" Addr="w1.11" Note="TM RB EXTEND PMD  ENABLE" />
+    <DI_ITEM Index="28" Name="DI_VCE_RB_RET" Device="" Addr="w1.12" Note="ROBOT TO VCE RETRACT" />
+    <DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="w1.13" Note="ROBOT TO PMA RETRACT" />
+    <DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="w1.14" Note="ROBOT TO PMB RETRACT" />
+    <DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMC RETRACT" />
+    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMD RETRACT" />
+    <DI_ITEM Index="33" Name="DI_TM_PMC_OPS" Device="" Addr="w2.01" Note="TM到PMC门阀开信号" />
+    <DI_ITEM Index="34" Name="DI_TM_PMC_CLS" Device="" Addr="w2.02" Note="TM到PMC门阀关信号" />
+    <DI_ITEM Index="35" Name="DI_TM_PMD_OPS" Device="" Addr="w2.03" Note="TM到PMD门阀开信号" />
+    <DI_ITEM Index="36" Name="DI_TM_PMD_CLS" Device="" Addr="w2.04" Note="TM到PMD门阀关信号" />
+  </Dig_In>
+  <Dig_Out>
+    <DO_ITEM Index="0" Name="" Device="" Addr="" />
+    <DO_ITEM Index="1" Name="" Device="" Addr="" />
+    <DO_ITEM Index="2" Name="" Device="" Addr="" />
+    <DO_ITEM Index="3" Name="" Device="" Addr="" />
+    <DO_ITEM Index="4" Name="" Device="" Addr="" />
+    <DO_ITEM Index="5" Name="" Device="" Addr="" />
+    <DO_ITEM Index="6" Name="" Device="" Addr="" />
+    <DO_ITEM Index="7" Name="" Device="" Addr="" />
+    <DO_ITEM Index="8" Name="" Device="" Addr="" />
+    <DO_ITEM Index="9" Name="" Device="" Addr="" />
+    <DO_ITEM Index="10" Name="" Device="" Addr="" />
+    <DO_ITEM Index="11" Name="TM-PMD-OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
+    <DO_ITEM Index="12" Name="TM-PMD-CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
+    <DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="w200.00" Note="VCE到TM门阀开" />
+    <DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="w200.01" Note="VCE到TM门阀关" />
+    <DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="w200.02" Note="TM到PMA门阀开"/>
+    <DO_ITEM Index="16" Name="DO_TM_PMA_CL" Device="" Addr="w200.03" Note="TM到PMA门阀关"/>
+    <DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="w200.04" Note="TM到PMB门阀开"/>
+    <DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="w200.05" Note="TM到PMB门阀关"/>
+    <DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="w200.06" Note="TM到PMC门阀开"/>
+    <DO_ITEM Index="20" Name="DO_TM-PMC-CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
+    <DO_ITEM Index="21" Name="DO_TM_V_HS" Device=""   Addr="w200.08" Note="TM腔快抽真空"/>
+    <DO_ITEM Index="22" Name="DO_TM_V_LS" Device=""   Addr="w200.09" Note="TM腔慢抽真空"/>
+    <DO_ITEM Index="23" Name="DO_TM_B_HS" Device=""   Addr="w200.10" Note="TM腔快破真空"/>
+    <DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""   Addr="w200.11" Note="TM腔慢破真空"/>
+    <DO_ITEM Index="25" Name="DO_VCE_V_HS" Device=""  Addr="w200.12" Note="VCE腔快抽真空"/>
+    <DO_ITEM Index="26" Name="DO_VCE_V_LS" Device=""  Addr="w200.13" Note="VCE腔慢抽真空" />
+    <DO_ITEM Index="27" Name="DO_VCE_B_HS" Device=""  Addr="w200.14" Note="VCE腔快破真空"/>
+    <DO_ITEM Index="28" Name="DO_VCE_B_LS" Device=""  Addr="w200.15" Note="VCE腔慢破真空"/>
+    <DO_ITEM Index="29" Name="DO_V_220V" Device=""    Addr="w201.00" Note="220V线圈"/>
+    <DO_ITEM Index="30" Name="DO_TM_C1" Device=""     Addr="w201.01" Note="系统允许断电"/>
+    <DO_ITEM Index="31" Name="DO_TM_C2" Device=""     Addr="w201.02" Note="备用"/>
+  </Dig_Out>
+  <Ana_Out>
+    <AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="4000" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
+    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="4000"  Device="" Addr="d201" Note=""/>
+    <AO_ITEM Index="2" Name="" BufferOffset=""  />
+    <AO_ITEM Index="3" Name="" BufferOffset="" />
+    <AO_ITEM Index="4" Name="" BufferOffset="" />
+    <AO_ITEM Index="5" Name="" BufferOffset=""  />
+    <AO_ITEM Index="6" Name="" BufferOffset="" />
+    <AO_ITEM Index="7" Name="" BufferOffset=""  />
+    <AO_ITEM Index="8" Name="" BufferOffset=""/>
+    <AO_ITEM Index="9" Name="" BufferOffset="" />
+    <AO_ITEM Index="10" Name="" BufferOffset="" />
+    <AO_ITEM Index="11" Name="" BufferOffset=""  />
+    <AO_ITEM Index="12" Name="" BufferOffset="" />
+    <AO_ITEM Index="13" Name="" BufferOffset="" />
+    <AO_ITEM Index="14" Name="" BufferOffset="" />
+    <AO_ITEM Index="15" Name="" BufferOffset="" />
+    <AO_ITEM Index="16" Name="" BufferOffset="" />
+    <AO_ITEM Index="17" Name="" BufferOffset="" />
+    <AO_ITEM Index="18" Name="" BufferOffset="" />
+    <AO_ITEM Index="19" Name="" BufferOffset="" />
+    <AO_ITEM Index="20" Name="" BufferOffset="" />
+    <AO_ITEM Index="21" Name="" />
+    <AO_ITEM Index="22" Name="" />
+    <AO_ITEM Index="23" Name="" />
+    <AO_ITEM Index="24" Name="" />
+    <AO_ITEM Index="25" Name="" />
+    <AO_ITEM Index="26" Name="" />
+    <AO_ITEM Index="27" Name="" />
+    <AO_ITEM Index="28" Name="" />
+    <AO_ITEM Index="29" Name="" />
+    <AO_ITEM Index="30" Name="" />
+    <AO_ITEM Index="31" Name="" />
+    <AO_ITEM Index="32" Name="" />
+    <AO_ITEM Index="33" Name="" />
+    <AO_ITEM Index="34" Name="" />
+    <AO_ITEM Index="35" Name="" />
+    <AO_ITEM Index="36" Name="" />
+    <AO_ITEM Index="37" Name="" />
+    <AO_ITEM Index="38" Name="" />
+    <AO_ITEM Index="39" Name="" />
+    <AO_ITEM Index="40" Name="" />
+    <AO_ITEM Index="41" Name="" />
+    <AO_ITEM Index="42" Name="" />
+    <AO_ITEM Index="43" Name="" />
+    <AO_ITEM Index="44" Name="" />
+    <AO_ITEM Index="45" Name="" />
+    <AO_ITEM Index="46" Name="" />
+    <AO_ITEM Index="47" Name="" />
+    <AO_ITEM Index="48" Name="" />
+    <AO_ITEM Index="49" Name="" />
+  </Ana_Out>
+  <Ana_In>
+    <AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="2" Device="" Addr="D100" />
+    <AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
+    <AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
+    <AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
+    <AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
+    <AI_ITEM Index="5" Name=""/>
+    <AI_ITEM Index="6" Name="" />
+    <AI_ITEM Index="7" Name=""/>
+    <AI_ITEM Index="8" Name=""/>
+    <AI_ITEM Index="9" Name=""/>
+    <AI_ITEM Index="10" Name="" />
+    <AI_ITEM Index="11" Name=""/>
+    <AI_ITEM Index="12" Name=""/>
+    <AI_ITEM Index="13" Name=""/>
+    <AI_ITEM Index="14" Name=""/>
+    <AI_ITEM Index="15" Name=""/>
+    <AI_ITEM Index="16" Name=""/>
+    <AI_ITEM Index="17" Name=""/>
+    <AI_ITEM Index="18" Name=""/>
+    <AI_ITEM Index="19" Name=""/>
+    <AI_ITEM Index="20" Name=""/>
+    <AI_ITEM Index="21" Name="" />
+    <AI_ITEM Index="22" Name=""/>
+    <AI_ITEM Index="23" Name=""/>
+    <AI_ITEM Index="24" Name=""/>
+    <AI_ITEM Index="25" Name=""/>
+    <AI_ITEM Index="26" Name="" />
+    <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="35" Name="" />
+    <AI_ITEM Index="36" Name="" />
+    <AI_ITEM Index="37" Name="" />
+    <AI_ITEM Index="38" Name="" />
+    <AI_ITEM Index="39" Name="" />
+    <AI_ITEM Index="40" Name="" />
+    <AI_ITEM Index="41" Name="" />
+    <AI_ITEM Index="42" Name="" />
+    <AI_ITEM Index="43" Name="" />
+    <AI_ITEM Index="44" Name="" />
+    <AI_ITEM Index="45" Name="" />
+    <AI_ITEM Index="46" Name="" />
+    <AI_ITEM Index="47" Name="" />
+    <AI_ITEM Index="48" Name="" />
+    <AI_ITEM Index="49" Name="" />
+  </Ana_In>
+</IO_DEFINE>

+ 311 - 266
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -10,6 +10,7 @@ using Venus_Simulator.Devices;
 using System.Threading;
 using Venus_Core;
 using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
+using System.Diagnostics.Eventing.Reader;
 
 namespace Venus_Simulator.Instances
 {
@@ -34,7 +35,7 @@ namespace Venus_Simulator.Instances
 
         private Dictionary<ModuleName, DeviceSimulator> _MockDevices = new Dictionary<ModuleName, DeviceSimulator>();
 
-        private Dictionary<ModuleName,JetChamber> jetChambers = new Dictionary<ModuleName,JetChamber>();
+        private Dictionary<ModuleName, JetChamber> jetChambers = new Dictionary<ModuleName, JetChamber>();
         public SimulatorSystem()
         {
             //_MockDevices.Add(ModuleName.PMB, new SkyPumpMock());
@@ -56,12 +57,12 @@ namespace Venus_Simulator.Instances
 
         public void Initialize()
         {
-    
-                SetDefaultValue(ModuleName.PMA, SimulatorJetChamber.CurrentPMAChamber);
-                SetDefaultValue(ModuleName.PMB, SimulatorJetChamber.CurrentPMBChamber);
-                SetDefaultValue(ModuleName.PMC, SimulatorJetChamber.CurrentPMCChamber);
-                SetDefaultValue(ModuleName.PMD, SimulatorJetChamber.CurrentPMDChamber);
-                SetTMDefaultValue();
+
+            SetDefaultValue(ModuleName.PMA, SimulatorJetChamber.CurrentPMAChamber);
+            SetDefaultValue(ModuleName.PMB, SimulatorJetChamber.CurrentPMBChamber);
+            SetDefaultValue(ModuleName.PMC, SimulatorJetChamber.CurrentPMCChamber);
+            SetDefaultValue(ModuleName.PMD, SimulatorJetChamber.CurrentPMDChamber);
+            SetTMDefaultValue();
 
 
 
@@ -70,7 +71,7 @@ namespace Venus_Simulator.Instances
             _thread = new PeriodicJob(500, OnMonitor, nameof(SimulatorSystem), true);
         }
 
-        private void SetDefaultValue(ModuleName mod,JetChamber jetChamber)
+        private void SetDefaultValue(ModuleName mod, JetChamber jetChamber)
         {
 
             switch (jetChamber)
@@ -200,7 +201,7 @@ namespace Venus_Simulator.Instances
                     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_GASLINE_TC_Deviation_out_of_range"].Value = false;
@@ -244,7 +245,7 @@ namespace Venus_Simulator.Instances
                     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;
-     
+
 
                     //// pressure
                     //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
@@ -263,7 +264,7 @@ namespace Venus_Simulator.Instances
                     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);
@@ -329,7 +330,7 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_Gas_Box_Pressure_Switch"].Value = true;
                     IO.DI[$"{mod}.DI_Source_RF_Water_Flow_Switch"].Value = true;
                     IO.DI[$"{mod}.DI_S_Valve_OT_Switch_Alarm"].Value = false;
-                    IO.DI[$"{mod}.DI_Foreline_OT_Switch_Alarm"].Value = false;         
+                    IO.DI[$"{mod}.DI_Foreline_OT_Switch_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_Arm_Not_Extend_to_PM"].Value = true;
                     IO.DI[$"{mod}.DI_EFEM_Door_Colse"].Value = true;
                     IO.DI[$"{mod}.DI_ESC_Inner_Coolant_Flow_SW"].Value = true;
@@ -383,12 +384,12 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_Slit_Door_Open_POS"].Value = false;
                     IO.DI[$"{mod}.DI_Slit_Door_Close_POS"].Value = true;
                     IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = true;
-                                     
 
-                    
+
+
                     IO.DI[$"{mod}.DI_CHB_H-HT_Control_TC_Broken_Alarm"].Value = false;
 
-                    
+
                     IO.DI[$"{mod}.DI_CHB_H-HT_Heater_On_FB"].Value = false;
                     IO.DI[$"{mod}.DI_CHB_H-HT_OT_Switch_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_PN2_Pressure_Switch"].Value = true;
@@ -411,7 +412,7 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_Lid_Down_Limit_Pos_SW"].Value = true;
                     IO.DI[$"{mod}.DI_Gas_Box_Pressure_Switch"].Value = true;
                     IO.DI[$"{mod}.DI_TM_Safety_Door_Colse"].Value = true;
-                    
+
                     IO.DI[$"{mod}.DI_Arm_Not_Extend_to_PM"].Value = true;
                     IO.DI[$"{mod}.DI_Source_RF_Water_Flow_Switch"].Value = true;
                     //// pressure
@@ -424,7 +425,7 @@ namespace Venus_Simulator.Instances
 
                     SetAiValue($"{mod}.AI_S_Valve_Control_TC_Temp", 28);
 
-                   
+
 
                     SetAiValue($"{mod}.AI_CHB_H-HT_Control_TC_Temp", 28);
 
@@ -438,72 +439,72 @@ namespace Venus_Simulator.Instances
                     SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
                     break;
             }
-               
+
         }
         private void SetTMDefaultValue()
         {
             ModuleName mod = ModuleName.TM;
             if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
-            {                         
-            IO.DI[$"{mod}.DI_TM_Power_On"].Value = true;
-            IO.DI[$"{mod}.DI_TM_In_Safety"].Value = true;
-            IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMA"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMB"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMC"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMD"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_LLA"].Value = true;
-            IO.DI[$"{mod}.DI_TM_RB_Not_Extend_LLB"].Value = true;
-            IO.DI[$"{mod}.DI_EFEM_RB_Not_Extend_LLA"].Value = true;
-            IO.DI[$"{mod}.DI_EFEM_RB_Not_Extend_LLB"].Value = true;
-            IO.DI[$"{mod}.DI_EFEM_Side_Door_Closed"].Value = true;
-            IO.DI[$"{mod}.DI_TM_CHB_PCW_Flow_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_LLA_PCW_Flow_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_PCW_Flow_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_TM_CHB_Door_Closed"].Value = true;
-
-            IO.DI[$"{mod}.DI_LLA_Lid_Door_Closed"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_Lid_Door_Closed"].Value = true;
-
-            IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = false;
-            IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = true;
-            IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = false;
-            IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = false;
-            IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = false;
-            IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = true;
-                                                                                             
-            IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_Vaccum_Pressure_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_N2_Pressure_Switch"].Value = true;
-
-            IO.DI[$"{mod}.DI_TM_Chamber_VAC_Gauge_Alarm"].Value = true;
-            IO.DI[$"{mod}.DI_TM_Foreline_VAC_Gauge_Alarm"].Value = true;
-            IO.DI[$"{mod}.DI_LLA_Chamber_VAC_Gauge_Alarm"].Value = true;
-            IO.DI[$"{mod}.DI_LLA_Foreline_VAC_Gauge_Alarm"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_Chamber_VAC_Gauge_Alarm"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_Foreline_VAC_Gauge_Alarm"].Value = true;
-
-            IO.DI[$"{mod}.DI_TM_ATM_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_LLA_ATM_Switch"].Value = true;
-            IO.DI[$"{mod}.DI_LLB_ATM_Switch"].Value = true;
-
-
-            // 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);
-
-
-            SetAiValue($"{mod}.AI_TM_CHB_Pressure", 760000);
-            SetAiValue($"{mod}.AI_TM_Foreline_Pressure", 5001);
-            SetAiValue($"{mod}.AI_LLA_CHB_Pressure", 5002);
-            SetAiValue($"{mod}.AI_LLA_LLB_Foreline_Pressure", 5003);
-            SetAiValue($"{mod}.AI_LLB_CHB_Pressure", 5004);
+            {
+                IO.DI[$"{mod}.DI_TM_Power_On"].Value = true;
+                IO.DI[$"{mod}.DI_TM_In_Safety"].Value = true;
+                IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMA"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMB"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMC"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_PMD"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_LLA"].Value = true;
+                IO.DI[$"{mod}.DI_TM_RB_Not_Extend_LLB"].Value = true;
+                IO.DI[$"{mod}.DI_EFEM_RB_Not_Extend_LLA"].Value = true;
+                IO.DI[$"{mod}.DI_EFEM_RB_Not_Extend_LLB"].Value = true;
+                IO.DI[$"{mod}.DI_EFEM_Side_Door_Closed"].Value = true;
+                IO.DI[$"{mod}.DI_TM_CHB_PCW_Flow_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_LLA_PCW_Flow_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_PCW_Flow_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_TM_CHB_Door_Closed"].Value = true;
+
+                IO.DI[$"{mod}.DI_LLA_Lid_Door_Closed"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_Lid_Door_Closed"].Value = true;
+
+                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = false;
+                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = true;
+                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = false;
+                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = false;
+                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = false;
+                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = true;
+
+                IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_Vaccum_Pressure_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_N2_Pressure_Switch"].Value = true;
+
+                IO.DI[$"{mod}.DI_TM_Chamber_VAC_Gauge_Alarm"].Value = true;
+                IO.DI[$"{mod}.DI_TM_Foreline_VAC_Gauge_Alarm"].Value = true;
+                IO.DI[$"{mod}.DI_LLA_Chamber_VAC_Gauge_Alarm"].Value = true;
+                IO.DI[$"{mod}.DI_LLA_Foreline_VAC_Gauge_Alarm"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_Chamber_VAC_Gauge_Alarm"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_Foreline_VAC_Gauge_Alarm"].Value = true;
+
+                IO.DI[$"{mod}.DI_TM_ATM_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_LLA_ATM_Switch"].Value = true;
+                IO.DI[$"{mod}.DI_LLB_ATM_Switch"].Value = true;
+
+
+                // 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);
+
+
+                SetAiValue($"{mod}.AI_TM_CHB_Pressure", 760000);
+                SetAiValue($"{mod}.AI_TM_Foreline_Pressure", 5001);
+                SetAiValue($"{mod}.AI_LLA_CHB_Pressure", 5002);
+                SetAiValue($"{mod}.AI_LLA_LLB_Foreline_Pressure", 5003);
+                SetAiValue($"{mod}.AI_LLB_CHB_Pressure", 5004);
             }
             else
             {
@@ -516,10 +517,10 @@ namespace Venus_Simulator.Instances
                 IO.DI[$"{mod}.DI_TM_DI9"].Value = true;
                 IO.DI[$"{mod}.DI_TM_DI10"].Value = true;
                 IO.DI[$"{mod}.DI_SYS_C1"].Value = true;
-                IO.DI[$"{mod}.DI_SYS_C2"].Value = true;
-                IO.DI[$"{mod}.DI_SYS_C3"].Value = true;
-                IO.DI[$"{mod}.DI_SYS_C4"].Value = true;
-                IO.DI[$"{mod}.DI_TSYS_C5"].Value = true;
+                IO.DI[$"{mod}.DI_SYS_C2"].Value = false;
+                IO.DI[$"{mod}.DI_SYS_C3"].Value = false;
+                IO.DI[$"{mod}.DI_SYS_C4"].Value = false;
+                IO.DI[$"{mod}.DI_TSYS_C5"].Value = false;
                 IO.DI[$"{mod}.DI_TM_N2_1"].Value = true;
                 IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
                 IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
@@ -535,11 +536,11 @@ namespace Venus_Simulator.Instances
                 IO.DI[$"{mod}.DI_PMB_RB_RET"].Value = true;
                 IO.DI[$"{mod}.DI_PMC_RB_RET"].Value = true;
 
-                SetAiValue($"{mod}.AI_MFC_Flow_Setpoint", 4000);
-                SetAiValue($"{mod}.VCE_Vacuum_Gauge", 4000);
-                SetAiValue($"{mod}.VCE_Pipeline_Vacuum_Gauge", 4000);
-                SetAiValue($"{mod}.TM_Pipeline_Vacuum_Gauge", 4000);
-                SetAiValue($"{mod}.TM_Vacuum_Gauge", 4000);
+                SetAiValue($"{mod}.AI_MFC_Flow_Setpoint", 3000);
+                SetAiValue($"{mod}.VCE_Vacuum_Gauge", 3000);
+                SetAiValue($"{mod}.VCE_Pipeline_Vacuum_Gauge", 3000);
+                SetAiValue($"{mod}.TM_Pipeline_Vacuum_Gauge", 3000);
+                SetAiValue($"{mod}.TM_Vacuum_Gauge", 3000);
             }
 
         }
@@ -600,6 +601,8 @@ namespace Venus_Simulator.Instances
                 MonitorMFPressure();
 
 
+
+
             }
             catch (Exception e)
             {
@@ -610,17 +613,21 @@ namespace Venus_Simulator.Instances
 
         private void ChangeTime(ModuleName mod)
         {
-            // Heartbeat with PLC
-            SetAiValue($"{mod}.AI_Heartbeat_FB", GetAoValue($"{mod}.AO_Heartbeat"));
-
-            SetAiValue($"{mod}.AI_Year", DateTime.Now.Year);
-            SetAiValue($"{mod}.AI_Month", DateTime.Now.Month);
-            SetAiValue($"{mod}.AI_Day", DateTime.Now.Day);
-            SetAiValue($"{mod}.AI_Time", DateTime.Now.Hour);
-            SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
-            SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
+            if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
+            {
+                // Heartbeat with PLC
+                SetAiValue($"{mod}.AI_Heartbeat_FB", GetAoValue($"{mod}.AO_Heartbeat"));
+
+                SetAiValue($"{mod}.AI_Year", DateTime.Now.Year);
+                SetAiValue($"{mod}.AI_Month", DateTime.Now.Month);
+                SetAiValue($"{mod}.AI_Day", DateTime.Now.Day);
+                SetAiValue($"{mod}.AI_Time", DateTime.Now.Hour);
+                SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
+                SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
+            }
+
         }
-       
+
         void MonitorSlitDoor(ModuleName mod)
         {
             // slit door open
@@ -641,61 +648,86 @@ namespace Venus_Simulator.Instances
         void MonitorMFSlitDoor()
         {
             ModuleName mod = ModuleName.TM;
-
-            // LLA T door open
-            if (IO.DO[$"{mod}.DO_LLA_Slit_Door_T_Open"].Value)
+            if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
             {
-                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = true;
-                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = false;
-            }
+                // LLA T door open
+                if (IO.DO[$"{mod}.DO_LLA_Slit_Door_T_Open"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = false;
+                }
 
-            // LLB T door open
-            if (IO.DO[$"{mod}.DO_LLB_Slit_Door_T_Open"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = true;
-                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = false;
-            }
+                // LLB T door open
+                if (IO.DO[$"{mod}.DO_LLB_Slit_Door_T_Open"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = false;
+                }
 
-            // LLA E door open
-            if (IO.DO[$"{mod}.DO_LLA_Slit_Door_E_Open"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = true;
-                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = false;
-            }
+                // LLA E door open
+                if (IO.DO[$"{mod}.DO_LLA_Slit_Door_E_Open"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = false;
+                }
 
-            // LLB E door open
-            if (IO.DO[$"{mod}.DO_LLB_Slit_Door_E_Open"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = true;
-                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = false;
-            }
+                // LLB E door open
+                if (IO.DO[$"{mod}.DO_LLB_Slit_Door_E_Open"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = false;
+                }
 
-            // LLA T door close
-            if (IO.DO[$"{mod}.DO_LLA_Slit_Door_T_Close"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = false;
-                IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = true;
-            }
+                // LLA T door close
+                if (IO.DO[$"{mod}.DO_LLA_Slit_Door_T_Close"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLA_T_Slit_Door_open_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_LLA_T_Slit_Door_close_Position"].Value = true;
+                }
 
-            // LLB T door close
-            if (IO.DO[$"{mod}.DO_LLB_Slit_Door_T_Close"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = false;
-                IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = true;
-            }
+                // LLB T door close
+                if (IO.DO[$"{mod}.DO_LLB_Slit_Door_T_Close"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLB_T_Slit_Door_open_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_LLB_T_Slit_Door_close_Position"].Value = true;
+                }
 
-            // LLA E door close
-            if (IO.DO[$"{mod}.DO_LLA_Slit_Door_E_Close"].Value)
-            {
-                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = false;
-                IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = true;
-            }
+                // LLA E door close
+                if (IO.DO[$"{mod}.DO_LLA_Slit_Door_E_Close"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLA_E_Slit_Door_open_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_LLA_E_Slit_Door_close_Position"].Value = true;
+                }
 
-            // LLB E door close
-            if (IO.DO[$"{mod}.DO_LLB_Slit_Door_E_Close"].Value)
+                // LLB E door close
+                if (IO.DO[$"{mod}.DO_LLB_Slit_Door_E_Close"].Value)
+                {
+                    IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = true;
+                }
+            }
+            else if (SimulatorJetTM.CurrentTM == JetTMType.VenusSE)
             {
-                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = false;
-                IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = true;
+                // VCE T door open
+                if (IO.DO[$"{mod}.DO_VCE_TM_OP"].Value)
+                {
+                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
+                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = false;
+                }
+
+                // VCE T door Close
+                if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
+                {
+                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
+                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
+                }
+
+                // VCE T door Close
+                if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
+                {
+                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
+                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
+                }
             }
         }
 
@@ -710,7 +742,7 @@ namespace Venus_Simulator.Instances
         }
         void MonitorLid(ModuleName mod)
         {
-            
+
             // lift pin up
             if (IO.DO[$"{mod}.DO_Lid_Up"].Value != IO.DO[$"{mod}.DO_Lid_Down"].Value)
             {
@@ -758,7 +790,7 @@ namespace Venus_Simulator.Instances
         void MonitorPressure(ModuleName mod)
         {
             string sAI_Foreline = "AI_Foreline_Pressure_760t";
-           
+
 
 
             // Loadlock pressure
@@ -890,20 +922,20 @@ namespace Venus_Simulator.Instances
             //
             if (vent_vlv.Value)
             {
-                    float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
-                    float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
-                    if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
-                    {
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
-                        //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
-                    }
-                    else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
-                    {
-                        getAiValue_ProcessPressure = getAiValue_ChamberPressure;
-                        SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
-                        SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
-                    }
-                    else
+                float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
+                float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
+                if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
+                {
+                    SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
+                    //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
+                }
+                else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
+                {
+                    getAiValue_ProcessPressure = getAiValue_ChamberPressure;
+                    SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
+                    SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
+                }
+                else
                 {
                     SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
                 }
@@ -1038,7 +1070,7 @@ namespace Venus_Simulator.Instances
 
 
 
-          
+
 
             if (SkyPumpMockPMA._simPumpStatus == SkyPumpMockPMA.SimPumpStatus.Open || EdwardsPumpMockPMA._simPumpStatus == EdwardsPumpMockPMA.SimEdwardsPumpStatus.Open)
             {
@@ -1159,7 +1191,7 @@ namespace Venus_Simulator.Instances
 
 
             // Loadlock Pumping Valve
-          
+
 
             // 压力值越界,复位
             float chamber_pressure1 = GetAiValue($"{mod}.{sAI_ChamberPressure}");
@@ -1366,162 +1398,172 @@ namespace Venus_Simulator.Instances
         }
         void MonitorMFPressure()
         {
+            if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
+            {
+                string LLA_AI_ChamberPressure = "AI_LLA_CHB_Pressure";
+                string LLB_AI_ChamberPressure = "AI_LLB_CHB_Pressure";
+                string TM_AI_ChamberPressure = "AI_TM_CHB_Pressure";
 
-            string LLA_AI_ChamberPressure = "AI_LLA_CHB_Pressure";
-            string LLB_AI_ChamberPressure = "AI_LLB_CHB_Pressure";
-            string TM_AI_ChamberPressure  = "AI_TM_CHB_Pressure";
 
+                ModuleName mod = ModuleName.TM;
 
-            ModuleName mod = ModuleName.TM;
+                DOAccessor LLA_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_LLA"];
+                DOAccessor LLA_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_LLA"];
 
-            DOAccessor LLA_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_LLA"];
-            DOAccessor LLA_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_LLA"];
+                DOAccessor LLB_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_LLB"];
+                DOAccessor LLB_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_LLB"];
 
-            DOAccessor LLB_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_LLB"];
-            DOAccessor LLB_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_LLB"];
+                DOAccessor TM_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_TM"];
+                DOAccessor TM_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_TM"];
 
-            DOAccessor TM_fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve_TM"];
-            DOAccessor TM_soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve_TM"];
+                DOAccessor LLA_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_LLA"];
+                DOAccessor LLA_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_LLA"];
 
-            DOAccessor LLA_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_LLA"];
-            DOAccessor LLA_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_LLA"];
+                DOAccessor LLB_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_LLB"];
+                DOAccessor LLB_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_LLB"];
 
-            DOAccessor LLB_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_LLB"];
-            DOAccessor LLB_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_LLB"];
+                DOAccessor TM_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_TM"];
+                DOAccessor TM_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_TM"];
 
-            DOAccessor TM_fast_Vent_vlv = IO.DO[$"{mod}.DO_Vent_Valve_TM"];
-            DOAccessor TM_soft_Vent_vlv = IO.DO[$"{mod}.DO_Purge_Valve_TM"];
+                float getAiValue_LLA_ChamberPressure = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}");
+                float getAiValue_LLB_ChamberPressure = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}");
+                float getAiValue_TM_ChamberPressure = GetAiValue($"{mod}.{TM_AI_ChamberPressure}");
 
-            float getAiValue_LLA_ChamberPressure = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}");
-            float getAiValue_LLB_ChamberPressure = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}");
-            float getAiValue_TM_ChamberPressure = GetAiValue($"{mod}.{TM_AI_ChamberPressure}");
 
 
+                if (LLA_fast_pump_vlv.Value || LLA_soft_pump_vlv.Value)
+                {
+                    if (getAiValue_LLA_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") - 30000);
+                    }
+                    else if (getAiValue_LLA_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") - 1500);
+                    }
+                }
 
-            if (LLA_fast_pump_vlv.Value || LLA_soft_pump_vlv.Value)
-            {
-                if ( getAiValue_LLA_ChamberPressure > 10000)
+                if (LLB_fast_pump_vlv.Value || LLB_soft_pump_vlv.Value)
                 {
-                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") - 30000);
+                    if (getAiValue_LLB_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") - 30000);
+                    }
+                    else if (getAiValue_LLB_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") - 1500);
+                    }
                 }
-                else if (getAiValue_LLA_ChamberPressure <= 10000)
-                {                   
-                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") - 1500);
-                }              
-            }
 
-            if (LLB_fast_pump_vlv.Value || LLB_soft_pump_vlv.Value)
-            {
-                if (getAiValue_LLB_ChamberPressure > 10000)
+                if (TM_fast_pump_vlv.Value || TM_soft_pump_vlv.Value)
                 {
-                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") - 30000);
+                    if (getAiValue_TM_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") - 30000);
+                    }
+                    else if (getAiValue_TM_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") - 1500);
+                    }
                 }
-                else if (getAiValue_LLB_ChamberPressure <= 10000)
+
+
+                if (LLA_fast_Vent_vlv.Value || LLA_soft_Vent_vlv.Value)
                 {
-                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") - 1500);
+                    if (getAiValue_LLA_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") + 30000);
+                    }
+                    else if (getAiValue_LLA_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") + 1500);
+                    }
                 }
-            }
 
-            if (TM_fast_pump_vlv.Value || TM_soft_pump_vlv.Value)
-            {
-                if (getAiValue_TM_ChamberPressure > 10000)
+                if (LLB_fast_Vent_vlv.Value || LLB_soft_Vent_vlv.Value)
                 {
-                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") - 30000);
+                    if (getAiValue_LLB_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") + 30000);
+                    }
+                    else if (getAiValue_LLB_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") + 1500);
+                    }
                 }
-                else if (getAiValue_TM_ChamberPressure <= 10000)
+
+
+                if (TM_fast_Vent_vlv.Value || TM_soft_Vent_vlv.Value)
                 {
-                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") - 1500);
+                    if (getAiValue_TM_ChamberPressure > 10000)
+                    {
+                        SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") + 30000);
+                    }
+                    else if (getAiValue_TM_ChamberPressure <= 10000)
+                    {
+                        SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") + 1500);
+                    }
                 }
-            }
 
+                getAiValue_LLA_ChamberPressure = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}");
 
-            if (LLA_fast_Vent_vlv.Value || LLA_soft_Vent_vlv.Value)
-            {
-                if (getAiValue_LLA_ChamberPressure > 10000)
+                if (getAiValue_LLA_ChamberPressure > ATM_PRESSURE)
                 {
-                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") + 30000);
+                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", ATM_PRESSURE);
                 }
-                else if (getAiValue_LLA_ChamberPressure <= 10000)
+                else if (getAiValue_LLA_ChamberPressure < 20)
                 {
-                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") + 1500);
+                    SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", 20);
                 }
-            }
 
-            if (LLB_fast_Vent_vlv.Value || LLB_soft_Vent_vlv.Value)
-            {
-                if (getAiValue_LLB_ChamberPressure > 10000)
+                getAiValue_LLB_ChamberPressure = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}");
+
+                if (getAiValue_LLB_ChamberPressure > ATM_PRESSURE)
                 {
-                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") + 30000);
+                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", ATM_PRESSURE);
                 }
-                else if (getAiValue_LLB_ChamberPressure <= 10000)
+                else if (getAiValue_LLB_ChamberPressure < 20)
                 {
-                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") + 1500);
+                    SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", 20);
                 }
-            }
 
+                getAiValue_TM_ChamberPressure = GetAiValue($"{mod}.{TM_AI_ChamberPressure}");
 
-            if (TM_fast_Vent_vlv.Value || TM_soft_Vent_vlv.Value)
-            {
-                if (getAiValue_TM_ChamberPressure > 10000)
+                if (getAiValue_TM_ChamberPressure > ATM_PRESSURE)
                 {
-                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") + 30000);
+                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", ATM_PRESSURE);
                 }
-                else if (getAiValue_TM_ChamberPressure <= 10000)
+                else if (getAiValue_TM_ChamberPressure < 20)
                 {
-                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", GetAiValue($"{mod}.{TM_AI_ChamberPressure}") + 1500);
+                    SetAiValue($"{mod}.{TM_AI_ChamberPressure}", 20);
                 }
-            }
 
-            getAiValue_LLA_ChamberPressure = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}");
+                // ATM switch
+                IO.DI[$"{mod}.DI_TM_ATM_Switch"].Value = GetAiValue($"{mod}.{TM_AI_ChamberPressure}") > ATM_THRESHOLD;
 
-            if (getAiValue_LLA_ChamberPressure > ATM_PRESSURE)
-            {
-                SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", ATM_PRESSURE);
-            }
-            else if (getAiValue_LLA_ChamberPressure < 20)
-            {
-                SetAiValue($"{mod}.{LLA_AI_ChamberPressure}", 20);
-            }
+                // VAC switch
+                IO.DI[$"{mod}.DI_TM_VAC_Switch"].Value = GetAiValue($"{mod}.{TM_AI_ChamberPressure}") < VAC_SW_PRESSURE;
 
-            getAiValue_LLB_ChamberPressure = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}");
+                // ATM switch
+                IO.DI[$"{mod}.DI_LLA_ATM_Switch"].Value = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") > ATM_THRESHOLD;
 
-            if (getAiValue_LLB_ChamberPressure > ATM_PRESSURE)
-            {
-                SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", ATM_PRESSURE);
-            }
-            else if (getAiValue_LLB_ChamberPressure < 20)
-            {
-                SetAiValue($"{mod}.{LLB_AI_ChamberPressure}", 20);
-            }
+                // VAC switch
+                IO.DI[$"{mod}.DI_LLA_VAC_Switch"].Value = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") < VAC_SW_PRESSURE;
 
-            getAiValue_TM_ChamberPressure = GetAiValue($"{mod}.{TM_AI_ChamberPressure}");
+                // ATM switch
+                IO.DI[$"{mod}.DI_LLB_ATM_Switch"].Value = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") > ATM_THRESHOLD;
 
-            if (getAiValue_TM_ChamberPressure > ATM_PRESSURE)
-            {
-                SetAiValue($"{mod}.{TM_AI_ChamberPressure}", ATM_PRESSURE);
+                // VAC switch
+                IO.DI[$"{mod}.DI_LLB_VAC_Switch"].Value = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") < VAC_SW_PRESSURE;
             }
-            else if (getAiValue_TM_ChamberPressure < 20)
+            else if (SimulatorJetTM.CurrentTM == JetTMType.VenusSE)
             {
-                SetAiValue($"{mod}.{TM_AI_ChamberPressure}", 20);
-            }
-
-            // ATM switch
-            IO.DI[$"{mod}.DI_TM_ATM_Switch"].Value = GetAiValue($"{mod}.{TM_AI_ChamberPressure}") > ATM_THRESHOLD;
-
-            // VAC switch
-            IO.DI[$"{mod}.DI_TM_VAC_Switch"].Value = GetAiValue($"{mod}.{TM_AI_ChamberPressure}") < VAC_SW_PRESSURE;
+                ModuleName mod = ModuleName.TM;
 
-            // ATM switch
-            IO.DI[$"{mod}.DI_LLA_ATM_Switch"].Value = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") > ATM_THRESHOLD;
-
-            // VAC switch
-            IO.DI[$"{mod}.DI_LLA_VAC_Switch"].Value = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}") < VAC_SW_PRESSURE;
-
-            // ATM switch
-            IO.DI[$"{mod}.DI_LLB_ATM_Switch"].Value = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") > ATM_THRESHOLD;
-
-            // VAC switch
-            IO.DI[$"{mod}.DI_LLB_VAC_Switch"].Value = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}") < VAC_SW_PRESSURE;
+                //float getAiValue_LLA_ChamberPressure = GetAiValue($"{mod}.{LLA_AI_ChamberPressure}");
+                //float getAiValue_LLB_ChamberPressure = GetAiValue($"{mod}.{LLB_AI_ChamberPressure}");
+                //float getAiValue_TM_ChamberPressure = GetAiValue($"{mod}.{TM_AI_ChamberPressure}");
+            }
         }
 
         void SetAiValue(string name, float value)
@@ -1719,5 +1761,8 @@ namespace Venus_Simulator.Instances
 
             //}
         }
+
+
+
     }
 }

+ 1 - 1
Venus/Venus_Simulator/JetsiuTM.cs

@@ -9,6 +9,6 @@ namespace Venus_Simulator
 {
     public class SimulatorJetTM
     {
-        public static JetTMType CurrentTM = JetTMType.Venus;
+        public static JetTMType CurrentTM = JetTMType.None;
     }
 }

+ 9 - 1
Venus/Venus_Simulator/Views/SimulatorIoTMView.xaml.cs

@@ -7,6 +7,7 @@ using System.Windows.Data;
 using Aitex.Common.Util;
 using Aitex.Core.UI.MVVM;
 using MECF.Framework.Common.IOCore;
+using Venus_Core;
 using Venus_Simulator.Instances;
 
 namespace Venus_Simulator.Views
@@ -16,10 +17,17 @@ namespace Venus_Simulator.Views
     /// </summary>
     public partial class SimulatorIoTMView : UserControl
     {
+        
         public SimulatorIoTMView()
         {
             InitializeComponent();
-            DataContext = new IoViewModel(6831, "TM.PLC", PathManager.GetCfgDir() + $"_ioDefine{SimulatorJetTM.CurrentTM}_MF.xml", "TM");
+            int port = 6831;
+            if (SimulatorJetTM.CurrentTM==JetTMType.VenusSE)
+            {
+                port = 6832;
+            }
+ 
+            DataContext = new IoViewModel(port, "TM.PLC", PathManager.GetCfgDir() + $"_ioDefine{SimulatorJetTM.CurrentTM}_MF.xml", "TM");
             
             this.IsVisibleChanged += IOView_IsVisibleChanged;
         }