Browse Source

Add VenusDE PM UI, Viewmodel, Simulator

hecl 1 year ago
parent
commit
d18b2c8e6a

+ 1 - 1
Venus/Framework/Common/IOCore/IOManager.cs

@@ -63,7 +63,7 @@ namespace MECF.Framework.Common.IOCore
                     var InterlockPMConfigFile = PathManager.GetCfgDir() + "PM" + "\\" + jetChamber.ToString() + "\\" + $"{jetChamber.ToString()}Interlock.xml";
                     if (!InterlockManager.Instance.Initialize(pmName, InterlockPMConfigFile, _doMap, _diMap, out reason))
                     {
-                        throw new Exception(string.Format($"{pmName} interlock define file found error: \r\n {0}", reason));
+                        throw new Exception(string.Format($"{pmName} interlock define file found error: \r\n {reason}"));
                     }
                 }
             }

+ 3 - 0
Venus/Framework/Common/IOCore/IoProviderManager.cs

@@ -295,6 +295,9 @@ namespace MECF.Framework.RT.Core.IoProviders
                             case JetChamber.VenusSE:
                                 mapFile = "PM" + "\\" + "VenusSE" + "\\" + "VenusSEIoDefine.xml";
                                 break;
+                            case JetChamber.VenusDE:
+                                mapFile = "PM" + "\\" + "VenusDE" + "\\" + "VenusDEIoDefine.xml";
+                                break;
 
                         }
                     }

File diff suppressed because it is too large
+ 1951 - 0
Venus/Venus_MainPages/ViewModels/OverVenusDEViewModel.cs


File diff suppressed because it is too large
+ 1597 - 0
Venus/Venus_MainPages/Views/OverVenusDEView.xaml


+ 34 - 0
Venus/Venus_MainPages/Views/OverVenusDEView.xaml.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Venus_MainPages.ViewModels;
+
+namespace Venus_MainPages.Views
+{
+    /// <summary>
+    /// OverVenusSEView.xaml 的交互逻辑
+    /// </summary>
+    public partial class OverVenusDEView : UserControl
+    {
+        public OverVenusDEView()
+        {
+            InitializeComponent();
+        }
+        public void Init(string systemName)
+        {
+            (this.DataContext as OverVenusDEViewModel).ModuleName = systemName;
+            (this.DataContext as OverVenusDEViewModel).addDataKeys();
+        }
+    }
+}

+ 292 - 0
Venus/Venus_RT/Config/PM/VenusDE/VenusDEDeviceModel.xml

@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<DeviceModelDefine type="VenusDE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<!--阀体-->
+	<IoValves>
+		<IoValve id="ValvePVN21" display="PVN21 Valve" schematicId="PVN21" unit="" isNc="true"
+	        isDefaultOpen="false" diOpen="" doOpen="DO_PVN21" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVN22" display="PVN22 Valve" schematicId="PVN22" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PVN22" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV11" display="PV11 Valve" schematicId="PV11" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV11" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV12" display="PV12 Valve" schematicId="PV12" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV12" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV21" display="PV21 Valve" schematicId="PV21" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV21" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV22" display="PV22 Valve" schematicId="PV22" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV22" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV31" display="PV31 Valve" schematicId="PV31" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV31" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV32" display="PV32 Valve" schematicId="PV32" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV32" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV41" display="PV41 Valve" schematicId="PV41" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV41" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV42" display="PV42 Valve" schematicId="PV42" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV42" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV51" display="PV51 Valve" schematicId="PV51" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PV51" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV52" display="PV52 Valve" schematicId="PV52" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV52" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV61" display="PV61 Valve" schematicId="PV61" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PV61" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV62" display="PV62 Valve" schematicId="PV62" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV62" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV71" display="PV71 Valve" schematicId="PV71" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PV71" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV72" display="PV72 Valve" schematicId="PV72" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV72" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV81" display="PV81 Valve" schematicId="PV81" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PV81" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV82" display="PV82 Valve" schematicId="PV82" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV82" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV91" display="PV91 Valve" schematicId="PV91" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PV91" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV92" display="PV92 Valve" schematicId="PV92" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV92" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVA1" display="PVA1 Valve" schematicId="PVA1" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PVA1" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVA2" display="PVA2 Valve" schematicId="PVA2" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PVA2" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVB1" display="PVB1 Valve" schematicId="PVB1" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PVB1" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVB2" display="PVB2 Valve" schematicId="PVB2" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PVB2" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVC1" display="PVC1 Valve" schematicId="PVC1" unit="" isNc="true"
+		isDefaultOpen="false" diOpen="" doOpen="DO_PVC1" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVC2" display="PVC2 Valve" schematicId="PVC2" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PVC2" diCloseSensor="" diOpenSensor="" />
+
+		<IoValve id="ValveN2" display="N2 valve" schematicId=""
+				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_N2_Valve" diCloseSensor="" diOpenSensor="" />
+
+		<IoValve id="ValveGasFinal" display="Gas Final valve" schematicId=""
+				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Gas_Final_Valve"
+				diCloseSensor="" diOpenSensor="" />
+		<!--<IoValve id="ValveSoftPump" display="Soft Pump valve" schematicId=""
+				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Soft_Pumping_Valve"
+				diCloseSensor="" diOpenSensor="" />-->
+
+		<IoValve id="ValveFastPump" display="FastPump valve" schematicId=""
+			unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Fast_Pumping_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveTurboPumpPumping" display="Turbo Pump Pumping valve" schematicId=""
+			  unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Turbo_Pump_Pumping_Valve"
+			  diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveTurboPumpPurge" display="Turbo Pump Purge valve" schematicId=""
+				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Turbo_Pump_Purge_Valve"
+				diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveGuage" display="Guage valve" schematicId=""
+				unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_Guage_Valve"
+				diCloseSensor="" diOpenSensor="" />
+
+		<IoValve id="ValveMfc1" display="MFC1 Valve" schematicId="PV1" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC1_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc2" display="MFC2 Valve" schematicId="PV2" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC2_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc3" display="MFC3 Valve" schematicId="PV3" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC3_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc4" display="MFC4 Valve" schematicId="PV4" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC4_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc5" display="MFC5 Valve" schematicId="PV5" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC5_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc6" display="MFC6 Valve" schematicId="PV6" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC6_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc7" display="MFC7 Valve" schematicId="PV7" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC7_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc8" display="MFC8 Valve" schematicId="PV8" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC8_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc9" display="MFC9 Valve" schematicId="PV9" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC9_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc10" display="MFC10 Valve" schematicId="PV10" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC10_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc11" display="MFC11 Valve" schematicId="PV11" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC11_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveMfc12" display="MFC12 Valve" schematicId="PV12" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_MFC12_Valve" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVHe1" display="PVHe1 valve" schematicId=""
+				  unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_PVHe1"
+				  diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVHe2" display="PVHe2 valve" schematicId=""
+				  unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_PVHe2"
+				  diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePVHe3" display="PVHe3 valve" schematicId=""
+				  unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_PVHe3"
+				  diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValveHeISO" display="He ISO valve" schematicId=""
+				  unit="" isNc="true" isDefaultOpen="false" diOpen="" doOpen="DO_He_ISO"
+				  diCloseSensor="" diOpenSensor="" />
+	</IoValves>
+	<IoMfcs assembly="Venus_RT" classType="Venus_RT.Devices.IODevices.IoMfc">
+		<IoMfc id="MfcGas1" display="Gas1" schematicId="MFC1" unit="sccm"
+			   aiFlow="AI_MFC1_Flow" aoFlow="AO_MFC1_Flow_Setpoint" diOffline="" aoRange=""
+			   diPressureAlarm="DI_MFC1_Pressure_Switch"/>
+		<IoMfc id="MfcGas2" display="Gas2" schematicId="MFC2" unit="sccm"
+			   aiFlow="AI_MFC2_Flow" aoFlow="AO_MFC2_Flow_Setpoint" diOffline="" aoRange=""
+			   diPressureAlarm="DI_MFC2_Pressure_Switch"/>
+		<IoMfc id="MfcGas3" display="Gas3" schematicId="MFC3" unit="sccm"
+			   aiFlow="AI_MFC3_Flow" aoFlow="AO_MFC3_Flow_Setpoint" diOffline="" aoRange=""
+			   diPressureAlarm="DI_MFC3_Pressure_Switch"/>
+		<IoMfc id="MfcGas4" display="Gas4" schematicId="MFC4" unit="sccm"
+			  aiFlow="AI_MFC4_Flow" aoFlow="AO_MFC4_Flow_Setpoint" diOffline="" aoRange=""
+			  diPressureAlarm="DI_MFC4_Pressure_Switch"/>
+		<IoMfc id="MfcGas5" display="Gas5" schematicId="MFC5" unit="sccm"
+			   aiFlow="AI_MFC5_Flow" aoFlow="AO_MFC5_Flow_Setpoint" diOffline="" aoRange=""
+			   diPressureAlarm="DI_MFC5_Pressure_Switch"/>
+		<IoMfc id="MfcGas6" display="Gas6" schematicId="MFC6" unit="sccm"
+			aiFlow="AI_MFC6_Flow" aoFlow="AO_MFC6_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC6_Pressure_Switch"/>
+		<IoMfc id="MfcGas7" display="Gas7" schematicId="MFC7" unit="sccm"
+			aiFlow="AI_MFC7_Flow" aoFlow="AO_MFC7_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC7_Pressure_Switch"/>
+		<IoMfc id="MfcGas8" display="Gas8" schematicId="MFC8" unit="sccm"
+			aiFlow="AI_MFC8_Flow" aoFlow="AO_MFC8_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC8_Pressure_Switch"/>
+		<IoMfc id="MfcGas9" display="Gas9" schematicId="MFC9" unit="sccm"
+			aiFlow="AI_MFC9_Flow" aoFlow="AO_MFC9_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC9_Pressure_Switch"/>
+		<IoMfc id="MfcGas10" display="Gas10" schematicId="MFC10" unit="sccm"
+			aiFlow="AI_MFC10_Flow" aoFlow="AO_MFC10_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC10_Pressure_Switch"/>
+		<IoMfc id="MfcGas11" display="Gas11" schematicId="MFC11" unit="sccm"
+			aiFlow="AI_MFC11_Flow" aoFlow="AO_MFC11_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC11_Pressure_Switch"/>
+		<IoMfc id="MfcGas12" display="Gas12" schematicId="MFC12" unit="sccm"
+			aiFlow="AI_MFC12_Flow" aoFlow="AO_MFC12_Flow_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_MFC12_Pressure_Switch"/>
+		<IoMfc id="MfcN2" display="N2" schematicId="N2" unit="sccm"
+			aiFlow="" aoFlow="" diOffline="" aoRange=""
+			diPressureAlarm="DI_PN2_Pressure_Switch"/>
+		<IoMfc id="MfcHe" display="He" schematicId="He" unit="sccm"
+			aiFlow="AI_He_Flow" aoFlow="AO_ESC_He_Pressure_Setpoint" diOffline="" aoRange=""
+			diPressureAlarm="DI_ESC_He_Pressure_100t_Gauge_Alarm"/>
+	</IoMfcs>
+	<IoGasSticks assembly="Venus_RT" classType="Venus_RT.Devices.IoGasStick">
+		<IoGasStick id="GasStick1" display="" mfc ="MfcGas1" downvalve="ValveMfc1" />
+		<IoGasStick id="GasStick2" display="" mfc ="MfcGas2" downvalve="ValveMfc2" />
+		<IoGasStick id="GasStick3" display="" mfc ="MfcGas3" downvalve="ValveMfc3" />
+		<IoGasStick id="GasStick4" display="" mfc ="MfcGas4" downvalve="ValveMfc4" />
+		<IoGasStick id="GasStick5" display="" mfc ="MfcGas5" downvalve="ValveMfc5" />
+		<IoGasStick id="GasStick6" display="" mfc ="MfcGas6" downvalve="ValveMfc6" />
+		<IoGasStick id="GasStick7" display="" mfc ="MfcGas7" downvalve="ValveMfc7" />
+		<IoGasStick id="GasStick8" display="" mfc ="MfcGas8" downvalve="ValveMfc8" />
+		<IoGasStick id="GasStick9" display="" mfc ="MfcGas9" downvalve="ValveMfc9" />
+		<IoGasStick id="GasStick10" display="" mfc ="MfcGas10" downvalve="ValveMfc10" />
+		<IoGasStick id="GasStick11" display="" mfc ="MfcGas11" downvalve="ValveMfc11" />
+		<IoGasStick id="GasStick12" display="" mfc ="MfcGas12" downvalve="ValveMfc12" />
+		<IoGasStick id="GasStickN2" display="" mfc ="MfcN2" downvalve="ValveTurboPumpPurge" />
+	</IoGasSticks>
+
+	<IoBacksideHes assembly="Venus_RT" classType="Venus_RT.Devices.IoBacksideHe">
+		<IoBacksideHe id="BacksideHelium" display="" mfc="MfcHe" downvalve="ValvePVHe1" upvalve="ValveHeISO" up2valve="ValvePVHe3" aoControlMode="" aoPressureSP="AO_ESC_He_Pressure_Setpoint" />
+	</IoBacksideHes>
+
+	<IoSensors>
+		<IoSensor id="SensorATMSwitch" display="ATM Switch"  schematicId="" unit="" di="DI_ATM_Switch" isLowAsNormal="" textOutTrigValue="true" infoText="" warningText="" alarmText="" />
+		<IoSensor id="SensorPMLidClosed" display="PM Lid Closed"  schematicId="" unit="" di="DI_Lid_Closed" isLowAsNormal="" textOutTrigValue="false"
+				  infoText="" warningText="" alarmText="" />
+		<IoSensor id="SensorVacSwitch" display="VAC Switch"  schematicId="" unit="" di="DI_PM_VAC_Switch" isLowAsNormal="" textOutTrigValue="true"
+				  infoText="" warningText="" alarmText="" />
+		<!--<IoSensor id="SensorWaterFlowOk" display="Water Flow OK"  schematicId="" unit="" di="DI_PCW_Flow_SW" isLowAsNormal="" textOutTrigValue="false"
+				  infoText="" warningText="sensor water flow abnormal" alarmText="" />-->
+		<IoSensor id="SensorWaterLeakOk" display="Water Leak Ok"  schematicId="" unit="" di="DI_Water_Leak_Sensor" isLowAsNormal="" textOutTrigValue="false"
+				  infoText="" warningText="Sensor water leak" alarmText="" />
+		<IoSensor id="SensorCDAPressureOk" display="CDA pressure OK"  schematicId="" unit="" di="DI_CDA_Pressure_Switch" isLowAsNormal="" textOutTrigValue="false"
+				  infoText="" warningText="Sensor CDA pressure abnormal" alarmText="" />
+		<IoSensor id="N2PressureOk" display="N2 Pressure OK"  schematicId="" unit="" di="DI_PN2_Pressure_Switch" isLowAsNormal="" textOutTrigValue="false"
+			   infoText="" warningText="N2 Pressure Alarm" alarmText="" />
+		<IoSensor id="GeneratorInterlock" display="RFG hardware interlock"  schematicId="" unit="" di="DI_RF_HV_Interlock_OK" isLowAsNormal="" textOutTrigValue="false" infoText="Generator interlock" warningText="" alarmText="" />
+		<IoSensor id="SensorSourceRFFan" display="Source RF Water Flow Switch"  schematicId="" unit="" di="DI_SOURCE_RF_Water_Flow_Switch" isLowAsNormal="" textOutTrigValue="true" infoText="Source RF Water Flow" warningText="" alarmText="Source RF Water Flow Error" />
+		<IoSensor id="SensorSlitDoorClosed" display="Slit Door Closed"  schematicId="" unit="" di="DI_TM_Slit_Door_Closed" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />
+		<IoSensor id="TurboPumpInterlock" display="Turbo Pump Interlock"  schematicId="" unit="" di="DI_Turbo_Pump_Interlock" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />
+		<IoSensor id="GasBoxDoorSW" display="Gas Box Door SW"  schematicId="" unit="" di="DI_Gas_Box_Door_Switch" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />
+		<IoSensor id="GasBoxPressureSW" display="Gas Box Pressure SW"  schematicId="" unit="" di="DI_Gas_Box_Pressure_Switch" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="Gas Box Pressure Alarm" />
+		<IoSensor id="CoolantInletTCBrokenAlarm" display="Coolant Inlet TC Broken Alarm"  schematicId="" unit="" di="DI_Coolant_Inlet_TC_Broken_Alarm" isLowAsNormal="" textOutTrigValue="true" infoText="" warningText="" alarmText="Coolant Inlet TC Broken Alarm" />
+		<IoSensor id="CoolantOutletTCBrokenAlarm" display="Coolant Outlet TC Broken Alarm"  schematicId="" unit="" di="DI_Coolant_Outlet_TC_Broken_Alarm" isLowAsNormal="" textOutTrigValue="true" infoText="" warningText="" alarmText="Coolant Outlet TC Broken Alarm" />
+		<IoSensor id="CHBWallOTSWAlarm" display="CHB Wall OT SW Alarm"  schematicId="" unit="" di="DI_CHB_Wall_OT_Switch_Alarm" isLowAsNormal="" textOutTrigValue="true" infoText="" warningText="" alarmText="CHB Wall OT SW Alarm" />
+
+		<IoSensor id="TurboPumpWaterFlowSwitch" display="Turbo Pump Water Flow Switch"  schematicId="" unit="" di="DI_Turbo_Pump_Water_Flow_Switch" isLowAsNormal="" textOutTrigValue="true"
+				  infoText="" warningText="" alarmText="" />
+	</IoSensors>
+	<IoPressureMeters assembly="Venus_RT" classType="Venus_RT.Devices.IODevices.IoPressureMeter">
+		<IoPressureMeter id="ProcessGauge" display="Process Pressure" schematicId="" unit="mTorr"
+						    aiValue="AI_Process_Pressure_100mt" diGaugeFail="DI_Process_Pressure_100mt_Gauge_Alarm" scPrecision="" scOffset=""/>
+		<IoPressureMeter id="PressureGauge" display="Chamber Pressure" schematicId="" unit="mTorr"
+						    aiValue="AI_Chamber_Pressure_10t"
+						    diGaugeFail="DI_Chamber_Pressure_10t_Gauge_Alarm"
+						    scPrecision="ChamberPressureGaugePrecision"
+						    scOffset=""/>
+		<IoPressureMeter id="ForelineGauge" display="Foreline Pressure" schematicId="" unit="mTorr"
+						    aiValue="AI_Foreline_Pressure_10t" diGaugeFail="DI_Foreline_Pressure_10t_Gauge_Alarm" scPrecision="" scOffset=""/>
+		<IoPressureMeter id="ESCHeGauge" display="ESC He Pressure" schematicId="" unit="mTorr"
+						    aiValue="AI_He_Pressure_100t" diGaugeFail="DI_ESC_He_Pressure_100t_Gauge_Alarm" scPrecision="" scOffset=""/>
+		<IoPressureMeter id="ProcessPressureHigh" display="ProcessPressureHigh" schematicId="" unit="mTorr"
+						    aiValue="AI_Chamber_Pressure_10t" diGaugeFail="DI_Chamber_Pressure_10t_Gauge_Alarm" scPrecision="" scOffset=""/>
+		<IoPressureMeter id="ProcessPressureLow" display="ProcessPressureLow" schematicId="" unit="mTorr"
+						    aiValue="AI_Process_Pressure_100mt" diGaugeFail="DI_Process_Pressure_100mt_Gauge_Alarm" scPrecision="" scOffset=""/>
+	</IoPressureMeters>
+	<IoPressureControls assembly="Venus_RT" classType="Venus_RT.Devices.IoPressureControl">
+		<IoPressureControl id="PressureControl" display="PressureControl" schematicId="PressureControl" unit="mTorr"
+						   diLogicProcessGasFlowing=""
+						   scGasFlowPressureAlarmRange="GasFlowPressureAlarmRange"
+						   scGasFlowPressureAlarmTime="GasFlowPressureAlarmTime"
+						   scIsIndependentControl="IsIndependentControl"
+						   scIsBoostPumpInstalled="EnableBoosterPump"
+						   scTvInstalled="EnableThrottleValve"
+						   boost="" tv="ThrottleValve" drypump="MainPump"
+						   pressureMeter ="PressureGauge" processMeter="ProcessGauge" forelineMeter="ForelineGauge" loadlockMeter="" escHeGauge="ESCHeGauge" processPressureHigh="ProcessPressureHigh" processPressureLow="ProcessPressureLow"/>
+	</IoPressureControls>
+	<IoHeartbeats assembly="Venus_RT" classType=" Venus_RT.Devices.IODevices.IoHeartbeat">
+		<IoHeartbeat  id="Heartbeat" display="" schematicId="" unit="" ao="AO_Heartbeat" ai="AI_Heartbeat_FB" />
+	</IoHeartbeats>
+	<IoPlcDateTimes>
+		<IoPlcDateTime id="PlcDateTime" display="PlcDateTime" schematicId="" unit=""
+					  aiYear="AI_Year" aiMonth="AI_Month" aiDay="AI_Day" aiHour="AI_Time" aiMinute="AI_Minute" aiSecond="AI_Second" />
+	</IoPlcDateTimes>
+	<IoCylinders assembly="Venus_RT" classType="Venus_RT.Devices.IoCylinder">
+		<IoCylinder id="LiftPin" display="lifter Pin" schematicId="" unit="" doMotorRelay=""
+					doON="DO_Lift_Pin_Up" doOFF="DO_Lift_Pin_Down" diON="DI_Lift_Pin_Up_POS" diOFF="DI_Lift_Pin_Down_POS" />
+	</IoCylinders>
+
+	<IoLids assembly="Venus_RT" classType=" Venus_RT.Devices.IODevices.IoLid">
+		<IoLid id="Lid" display="Lid" schematicId="" unit="" doMotorRelay="" doON="" doOFF="" diON="" diOFF="DI_Lid_Closed" />
+	</IoLids>
+  <IoHeaters assembly="Venus_RT" classType="Venus_RT.Devices.IoHeater">
+    <IoHeater id="ValveHeater" display="Valve Heater" schematicId="" unit="℃"
+           doPowerOn="DO_Valve_Heater_On"
+           diDeviation="DI_Valve_TC_Deviation_out_of_range"
+           diPowerOnFeedback="DI_Valve_Heater_On_FB"
+           diControlTcBroken="DI_Valve_Control_TC_Broken_Alarm"
+           diMonitorTcBroken="DI_Valve_Monitor_TC_Broken_Alarm"
+           aoSetPoint="AO_Valve_Temperature_Setpoint"
+           aoSetPointLimit="AO_Valve_Temp_Limit_Setpoint"
+           aiFeedback="AI_Valve_Control_TC_Temp"
+           aiMonitor="AI_Valve_Monitor_TC_Temp"
+           scSetPointLimit="ValveHeaterSetPointLimit" />
+
+    <IoHeater id="ForelineHeater" display="Foreline Heater" schematicId="" unit="℃"
+         doPowerOn="DO_Foreline_Heater_On"
+         diDeviation="DI_Foreline_TC_Deviation_out_of_range"
+         diPowerOnFeedback="DI_Foreline_Heater_On_FB"
+         diControlTcBroken="DI_Foreline_Control_TC_Broken_Alarm"
+         diMonitorTcBroken="DI_Foreline_Monitor_TC_Broken_Alarm"
+         aoSetPoint="AO_Foreline_Temperature_Setpoint"
+         aoSetPointLimit="AO_Foreline_Temp_Limit_Setpoint"
+         aiFeedback="AI_Fline_Control_TC_Temp"
+         aiMonitor="AI_Fline_Monitor_TC_Temp"
+         scSetPointLimit="ForeLineHeaterSetPointLimit" />
+
+    <IoHeater id="WallHeater" display="Wall Heater" schematicId="" unit="℃"
+              doPowerOn="DO_CHB_Wall_Heater_On"
+
+              diDeviation="DI_CHB_Wall_TC_Deviation_out_of_range"
+              diPowerOnFeedback="DI_CHB_Wall_Heater_On_FB"
+              diControlTcBroken="DI_CHB_Wall_Control_TC_Broken_Alarm"
+              diMonitorTcBroken="DI_CHB_Wall_Monitor_TC_Broken_Alarm"
+
+              aoSetPoint="AO_CHB_Wall_Temperature_Setpoint"
+              aoSetPointLimit="AO_CHB_Wall_Temp_Limit_Setpoint"
+
+              aiFeedback="AI_CHB_Wall_Control_TC_Temp"
+              aiMonitor="AI_CHB_Wall_Monitor_TC_Temp"
+
+              scSetPointLimit="WallHeaterSetPointLimit" />
+  </IoHeaters>
+</DeviceModelDefine>

+ 386 - 0
Venus/Venus_RT/Config/PM/VenusDE/VenusDEInterlock.xml

@@ -0,0 +1,386 @@
+<?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">
+
+  <Action do="DO_Magnets_ON" value="true" tip="Magnets ON" tip.zh-CN=""  tip.en-US="DO-80" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Magnets_Coils_OT_Switch_Alarm"	value="true" tip="Magnets Coils OT Switch Alarm"	tip.zh-CN="" tip.en-US="DI-90" />
+  </Action>
+
+  <Action do="DO_Slit_Door_Open_Enable" value="true" tip="Magnets ON" tip.zh-CN=""  tip.en-US="DO-47" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+  </Action>
+  
+  <Action do="DO_PVN21" value="true" tip="PVN21" tip.zh-CN=""  tip.en-US="DO-0" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PVN22"  value="true" tip="PVN22" tip.zh-CN="" tip.en-US="DO-1" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV11" value="true" tip="PV11" tip.zh-CN="" tip.en-US="DO-2" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV12" value="true" tip="PV12" tip.zh-CN="" tip.en-US="DO-3" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV21" value="true" tip="PV21" tip.zh-CN="" tip.en-US="DO-4" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV22" value="true" tip="PV22" tip.zh-CN="" tip.en-US="DO-5" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV31" value="true" tip="PV31" tip.zh-CN="" tip.en-US="DO-6" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV32" value="true" tip="PV32" tip.zh-CN="" tip.en-US="DO-7" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV41" value="true" tip="PV41" tip.zh-CN="" tip.en-US="DO-8" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV42" value="true" tip="PV42" tip.zh-CN="" tip.en-US="DO-9" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV51" value="true" tip="PV51" tip.zh-CN="" tip.en-US="DO-57" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV52" value="true" tip="PV52" tip.zh-CN="" tip.en-US="DO-58" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV61" value="true" tip="PV61" tip.zh-CN="" tip.en-US="DO-59" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV62" value="true" tip="PV62" tip.zh-CN="" tip.en-US="DO-60" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV71" value="true" tip="PV71" tip.zh-CN="" tip.en-US="DO-61" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV72" value="true" tip="PV72" tip.zh-CN="" tip.en-US="DO-62" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV81" value="true" tip="PV81" tip.zh-CN="" tip.en-US="DO-63" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV82" value="true" tip="PV82" tip.zh-CN="" tip.en-US="DO-64" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV91" value="true" tip="PV91" tip.zh-CN="" tip.en-US="DO-65" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PV92" value="true" tip="PV92" tip.zh-CN="" tip.en-US="DO-66" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PVA1" value="true" tip="PVA1" tip.zh-CN="" tip.en-US="DO-67" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PVA2" value="true" tip="PVA2" tip.zh-CN=""	tip.en-US="DO-68" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PVB1" value="true" tip="PVB1" tip.zh-CN="" tip.en-US="DO-69" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_PVB2" value="true" tip="PVB2" tip.zh-CN="" tip.en-US="DO-70" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+
+  <Action do="DO_PVC1" value="true" tip="PVC1" tip.zh-CN="" tip.en-US="DO-71" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_N2_Valve" value="true" tip="N2 Valve" tip.zh-CN="" tip.en-US="DO-10" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+    <Limit do="DO_Fast_Pumping_Valve"	value="false" tip="Fast Pumping Valve"	tip.zh-CN="" tip.en-US="DO-23" />
+  </Action>
+
+  <Action do="DO_PVC2" value="true" tip="PVC2" tip.zh-CN="" tip.en-US="DO-72" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC1_Valve" value="true" tip="MFC1 Valve" tip.zh-CN="" tip.en-US="DO-11" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC2_Valve" value="true" tip="MFC2 Valve" tip.zh-CN="" tip.en-US="DO-12" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC3_Valve" value="true" tip="MFC3 Valve" tip.zh-CN="" tip.en-US="DO-13" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC4_Valve" value="true" tip="MFC4 Valve" tip.zh-CN="" tip.en-US="DO-14" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC5_Valve" value="true" tip="MFC5 Valve" tip.zh-CN="" tip.en-US="DO-15" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC6_Valve" value="true" tip="MFC6 Valve" tip.zh-CN="" tip.en-US="DO-16" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC7_Valve" value="true" tip="MFC7 Valve" tip.zh-CN="" tip.en-US="DO-17" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC8_Valve" value="true" tip="MFC8 Valve" tip.zh-CN="" tip.en-US="DO-18" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC9_Valve" value="true" tip="MFC9 Valve" tip.zh-CN="" tip.en-US="DO-52" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+
+  <Action do="DO_MFC10_Valve" value="true" tip="MFC10 Valve" tip.zh-CN="" tip.en-US="DO-53" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Gas_Box_Door_Switch"		value="true" tip="DI Gas Box Door SW"		tip.zh-CN="" tip.en-US="DI-51" />
+    <Limit di="DI_Gas_Box_Pressure_Switch"	value="true" tip="DI Gas Box Pressure SW"	tip.zh-CN="" tip.en-US="DI-52" />
+  </Action>
+  <Action do="DO_PVHe1" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-19" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_PVHe2" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-20" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_PVHe3" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-48" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_PVHe4" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-74" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_PVHe5" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-75" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+  
+  <Action do="DO_PVHe6" value="true" tip="PVHe1" tip.zh-CN="" tip.en-US="DO-76" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_Gas_Final_Valve" value="true" tip="Gas final valve" tip.zh-CN="" tip.en-US="DO-21" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_Fast_Pumping_Valve" value="true" tip="Fast Pumping Valve" tip.zh-CN="" tip.en-US="DO-21" >
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_Slit_Door_Open_Position"	value="true" tip="DI Slit Door Close POS"	tip.zh-CN="" tip.en-US="DI-11" />
+    <Limit di="DI_CDA_Pressure_Switch"			value="true" tip="DI CDA Pressure"			tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit do="DO_N2_Valve"			value="false" tip="N2 Valve"			tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+  
+  <Action do="DO_PM_Slit_Door_Open" value="true" tip="Slit Door Open" tip.zh-CN="" tip.en-US="DO-24" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="DI CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_TM_ROB_NOT_EXTEND_TO_PM"				value="true" tip="TM ARM NOT EXTEND TO PM"				tip.zh-CN="" tip.en-US="DI-58" />
+    <Limit di="DI_Lid_Closed"		value="true" tip="TM Slit Door Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+  </Action>
+
+  <Action do="DO_PM_Slit_Door_Close" value="true" tip="Slit Door Open" tip.zh-CN="" tip.en-US="DO-25" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="DI CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+    <Limit di="DI_Lid_Closed"		value="true" tip="DI Lid Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+    <Limit di="DI_TM_ROB_NOT_EXTEND_TO_PM"				value="true" tip="TM ARM NOT EXTEND TO PM"				tip.zh-CN="" tip.en-US="DI-58" />
+    <Limit di="DI_Lid_Closed"		value="true" tip="TM Slit Door Closed"			tip.zh-CN="" tip.en-US="DI-0" />
+  </Action>
+  
+  <Action do="DO_Lift_Pin_Up" value="true" tip="Lift Pin Up" tip.zh-CN="" tip.en-US="DO-26" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_Lift_Pin_Down" value="true" tip="Lift Pin Down" tip.zh-CN="" tip.en-US="DO-27" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_Turbo_Pump_Pumping_Valve" value="true" tip="Lift Pin Down" tip.zh-CN="" tip.en-US="DO-29" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+  
+  <Action do="DO_Turbo_Pump_Purge_Valve" value="true" tip="Turbo Pump Purge Valve" tip.zh-CN="" tip.en-US="DO-30" >
+    <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="DI CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
+  </Action>
+
+  <Action do="DO_Gauge_Valve" value="true" tip="Guage Valve" tip.zh-CN="" tip.en-US="DO-31" >
+    <Limit di="DI_PM_VAC_Switch"				value="true" tip="DI PM Vacuum SW"				tip.zh-CN="" tip.en-US="DI-2" />
+  </Action>
+</Interlock>

+ 338 - 0
Venus/Venus_RT/Config/PM/VenusDE/VenusDEIoDefine.xml

@@ -0,0 +1,338 @@
+<?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_DE 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_ESC_Coolant_Flow_SW" 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_Pos" Device="" Addr="w20.05" />
+    <DI_ITEM Index="6"   Name="DI_Lift_Pin_Down_Pos" 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="" 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_ESC_Coolant_Inlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.13" />
+    <DI_ITEM Index="14"  Name="DI_ESC_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_Process_Pressure_1t_Gauge_Alarm" Device="VG PPL" Addr="w21.00" />
+    <DI_ITEM Index="17"  Name="" />
+    <DI_ITEM Index="18"  Name="DI_Foreline_Pressure_10t_Gauge_Alarm" Device="TC模块信号" Addr="w21.02" />
+    <DI_ITEM Index="19"  Name="" />
+    <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="" Addr="w21.07" />
+    <DI_ITEM Index="24"  Name="DI_Foreline_TC_Deviation_out_of_range" Device="" Addr="w21.08"/>
+    <DI_ITEM Index="25"  Name="DI_Foreline_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.09" />
+    <DI_ITEM Index="26"  Name="DI_Foreline_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.10"/>
+    <DI_ITEM Index="27"  Name="DI_Foreline_Heater_On_FB" Device="Q7.14同步" Addr="w21.11" />
+    <DI_ITEM Index="28"  Name="" />
+    <DI_ITEM Index="29"  Name="" />
+    <DI_ITEM Index="30"  Name="" />
+    <DI_ITEM Index="31"  Name="" />
+    <DI_ITEM Index="32"  Name="" />
+    <DI_ITEM Index="33"  Name=""/>
+    <DI_ITEM Index="34"  Name="DI_N2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
+    <DI_ITEM Index="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_BIAS_RF_Water_Flow_Switch" Device="" Addr="w23.07" />
+    <DI_ITEM Index="56"  Name="DI_CHB_Coolant_Flow_SW" Device="" Addr="w23.08" />
+    <DI_ITEM Index="57"  Name="" />
+    <DI_ITEM Index="58"  Name="DI_TM_ROB_NOT_EXTEND_TO_PM" Device="" Addr="w23.10"/>
+    <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_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_CTRL_BOX_1#FAN_OK" Device="" Addr="w25.00" />
+    <DI_ITEM Index="81"  Name="DI_CTRL_BOX_2#FAN_OK" Device="" Addr="w25.01"/>
+    <DI_ITEM Index="82"  Name="DI_POWER_BOX_FAN_OK" Device="" Addr="w25.02"/>
+    <DI_ITEM Index="83"  Name="DI_MAGNET_BOX_FAN_OK" Device="" Addr="w25.03"/>
+    <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_Magnets_Coils_ON_FB" Device="" Addr="w25.09" />
+    <DI_ITEM Index="90"  Name="DI_Magnets_Coils_OT_Switch_Alarm" Device="" Addr="w25.10" />
+    <DI_ITEM Index="91"  Name="DI_Magnets_Driver1_Current_overload_alarm" Device="" Addr="w25.11" />
+    <DI_ITEM Index="92"  Name="DI_Magnets_Driver2_Current_overload_alarm" Device="" Addr="w25.12" />
+    <DI_ITEM Index="93"  Name="" />
+    <DI_ITEM Index="94"  Name="" />
+    <DI_ITEM Index="95"  Name="" />
+    <DI_ITEM Index="96"  Name="DI_CHB_Coolant_Inlet_TC_Broken_Alarm"  Device="" Addr="w26.00"/>
+    <DI_ITEM Index="97"  Name="DI_CHB_Coolant_Outlet_TC_Broken_Alarm"  Device="" Addr="w26.01"/>
+    <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_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
+    <DO_ITEM Index="24" Name="DO_PM_Slit_Door_Open" Device="PV4" Addr="w1.08"/>
+    <DO_ITEM Index="25" Name="DO_PM_Slit_Door_Close" Device="PV4" Addr="w1.09"/>
+    <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_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_ITEM Index="47" Name="DO_Slit_Door_Open_Enable" Device="" Addr="w2.15"/>
+    <DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
+    <DO_ITEM Index="49" Name="DO_He_ISO" Device="PV9" Addr="w3.01" />
+    <DO_ITEM Index="50" Name="" />
+    <DO_ITEM Index="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_PVHe4" Device="" Addr="w4.10"/>
+    <DO_ITEM Index="75" Name="DO_PVHe5" Device="" Addr="w4.11"/>
+    <DO_ITEM Index="76" Name="DO_PVHe6" Device="" Addr="w4.12"/>
+    <DO_ITEM Index="77" Name="" />
+    <DO_ITEM Index="78" Name="" />
+    <DO_ITEM Index="79" Name="" />
+    <DO_ITEM Index="80" Name="DO_Magnets_ON" Device="" Addr="w5.00"/>
+    <DO_ITEM Index="81" Name="DO_Magnets_1A_coil_OFF" Device="" Addr="w5.01"/>
+    <DO_ITEM Index="82" Name="DO_Magnets_1B_coil_OFF" Device="" Addr="w5.02" />
+    <DO_ITEM Index="83" Name="DO_Magnets_2A_coil_OFF" Device="" Addr="w5.03" />
+    <DO_ITEM Index="84" Name="DO_Magnets_2B_coil_OFF" Device="" Addr="w5.04" />
+    <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_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_ITEM Index="15" Name="" />
+    <AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
+    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="18" Name=""/>
+    <AO_ITEM Index="19" Name="" />
+    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="21" Name="" />
+    <AO_ITEM Index="22" Name="" />
+    <AO_ITEM Index="23" Name="" />
+    <AO_ITEM Index="24" Name="" />
+    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
+    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
+    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" Device="" Addr="d1054" Note="MFC" />
+    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+    <AO_ITEM Index="29" Name="" />
+    <AO_ITEM Index="30" Name="" />
+    <AO_ITEM Index="31" Name="" />
+    <AO_ITEM Index="32" Name="" />
+    <AO_ITEM Index="33" Name="" />
+    <AO_ITEM Index="34" Name="" />
+    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" Device="" Addr="d1070" Note="MFC"/>
+    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" Device="" Addr="d1072" Note="MFC" />
+    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" Device="" Addr="d1074" Note="MFC" />
+    <AO_ITEM Index="38" Name="" />
+    <AO_ITEM Index="39" Name="" />
+    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" Device="" Addr="d1080" Note="MFC"/>
+    <AO_ITEM Index="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_Process_Pressure_1t" Device="" Addr="d2002" />
+    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
+    <AI_ITEM Index="3"  Name="" />
+    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
+    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
+    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
+    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
+    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
+    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
+    <AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
+    <AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
+    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" Device="" Addr="d2024" Note="float" />
+    <AI_ITEM Index="13" />
+    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
+    <AI_ITEM Index="15" Name="" />
+    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
+    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
+    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" Device="" Addr="d2036" Note="float" />
+    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" Device="" Addr="d2038" Note="float" />
+    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
+    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
+    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
+    <AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
+    <AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
+    <AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
+    <AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
+    <AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
+    <AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+    <AI_ITEM Index="29" Name="" />
+    <AI_ITEM Index="30" Name="" />
+    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" Device="" Addr="d2062" Note="float" />
+    <AI_ITEM Index="32" Name="" />
+    <AI_ITEM Index="33" Name="" />
+    <AI_ITEM Index="34" Name="" />
+    <AI_ITEM Index="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
+    <AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
+    <AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
+    <AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
+    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" Device="" Addr="d2078" Note="MFC He2"/>
+    <AI_ITEM Index="40" Name="AI_He_Pressure1" Device="" Addr="d2080" Note="float" />
+    <AI_ITEM Index="41" Name="AI_He_Pressure2" Device="" Addr="d2082" Note="float"  />
+    <AI_ITEM Index="42" Name="" />
+    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" Addr="d2086" Note="float"/>
+    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" Addr="d2088" Note="float" />
+    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" Addr="d2090" Note="float" />
+    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" Addr="d2092" Note="float" />
+    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" Addr="d2094" Note="float" />
+    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" Addr="d2096" Note="float" />
+    <AI_ITEM Index="49" Name="" />
+  </Ana_In>
+</IO_DEFINE>

+ 3 - 0
Venus/Venus_RT/Devices/DeviceManager.cs

@@ -262,6 +262,9 @@ namespace Venus_RT.Instances
                 case JetChamber.VenusSE:
                     AddCustomDevice(new JetVenusSEPM(mod));
                     break;
+                case JetChamber.VenusDE:
+                    //AddCustomDevice(new JetVenusSEPM(mod));
+                    break;
             }
 
         }

+ 9 - 0
Venus/Venus_RT/Venus_RT.csproj

@@ -331,6 +331,15 @@
     <Content Include="Config\PM\Kepler2300\Kepler2300DeviceModel.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <Content Include="Config\PM\VenusDE\VenusDEDeviceModel.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\PM\VenusDE\VenusDEInterlock.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\PM\VenusDE\VenusDEIoDefine.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Config\PM\VenusSE\VenusSEIoDefine.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>

+ 338 - 0
Venus/Venus_Simulator/Config/_ioDefineVenusDE.xml

@@ -0,0 +1,338 @@
+<?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_DE 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_ESC_Coolant_Flow_SW" 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_Pos" Device="" Addr="w20.05" />
+    <DI_ITEM Index="6"   Name="DI_Lift_Pin_Down_Pos" 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="" 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_ESC_Coolant_Inlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.13" />
+    <DI_ITEM Index="14"  Name="DI_ESC_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_Process_Pressure_1t_Gauge_Alarm" Device="VG PPL" Addr="w21.00" />
+    <DI_ITEM Index="17"  Name="" />
+    <DI_ITEM Index="18"  Name="DI_Foreline_Pressure_10t_Gauge_Alarm" Device="TC模块信号" Addr="w21.02" />
+    <DI_ITEM Index="19"  Name="" />
+    <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="" Addr="w21.07" />
+    <DI_ITEM Index="24"  Name="DI_Foreline_TC_Deviation_out_of_range" Device="" Addr="w21.08"/>
+    <DI_ITEM Index="25"  Name="DI_Foreline_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.09" />
+    <DI_ITEM Index="26"  Name="DI_Foreline_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.10"/>
+    <DI_ITEM Index="27"  Name="DI_Foreline_Heater_On_FB" Device="Q7.14同步" Addr="w21.11" />
+    <DI_ITEM Index="28"  Name="" />
+    <DI_ITEM Index="29"  Name="" />
+    <DI_ITEM Index="30"  Name="" />
+    <DI_ITEM Index="31"  Name="" />
+    <DI_ITEM Index="32"  Name="" />
+    <DI_ITEM Index="33"  Name=""/>
+    <DI_ITEM Index="34"  Name="DI_N2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
+    <DI_ITEM Index="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_BIAS_RF_Water_Flow_Switch" Device="" Addr="w23.07" />
+    <DI_ITEM Index="56"  Name="DI_CHB_Coolant_Flow_SW" Device="" Addr="w23.08" />
+    <DI_ITEM Index="57"  Name="" />
+    <DI_ITEM Index="58"  Name="DI_TM_ROB_NOT_EXTEND_TO_PM" Device="" Addr="w23.10"/>
+    <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_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_CTRL_BOX_1#FAN_OK" Device="" Addr="w25.00" />
+    <DI_ITEM Index="81"  Name="DI_CTRL_BOX_2#FAN_OK" Device="" Addr="w25.01"/>
+    <DI_ITEM Index="82"  Name="DI_POWER_BOX_FAN_OK" Device="" Addr="w25.02"/>
+    <DI_ITEM Index="83"  Name="DI_MAGNET_BOX_FAN_OK" Device="" Addr="w25.03"/>
+    <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_Magnets_Coils_ON_FB" Device="" Addr="w25.09" />
+    <DI_ITEM Index="90"  Name="DI_Magnets_Coils_OT_Switch_Alarm" Device="" Addr="w25.10" />
+    <DI_ITEM Index="91"  Name="DI_Magnets_Driver1_Current_overload_alarm" Device="" Addr="w25.11" />
+    <DI_ITEM Index="92"  Name="DI_Magnets_Driver2_Current_overload_alarm" Device="" Addr="w25.12" />
+    <DI_ITEM Index="93"  Name="" />
+    <DI_ITEM Index="94"  Name="" />
+    <DI_ITEM Index="95"  Name="" />
+    <DI_ITEM Index="96"  Name="DI_CHB_Coolant_Inlet_TC_Broken_Alarm"  Device="" Addr="w26.00"/>
+    <DI_ITEM Index="97"  Name="DI_CHB_Coolant_Outlet_TC_Broken_Alarm"  Device="" Addr="w26.01"/>
+    <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_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
+    <DO_ITEM Index="24" Name="DO_PM_Slit_Door_Open" Device="PV4" Addr="w1.08"/>
+    <DO_ITEM Index="25" Name="DO_PM_Slit_Door_Close" Device="PV4" Addr="w1.09"/>
+    <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_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_ITEM Index="47" Name="DO_Slit_Door_Open_Enable" Device="" Addr="w2.15"/>
+    <DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
+    <DO_ITEM Index="49" Name="DO_He_ISO" Device="PV9" Addr="w3.01" />
+    <DO_ITEM Index="50" Name="" />
+    <DO_ITEM Index="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_PVHe4" Device="" Addr="w4.10"/>
+    <DO_ITEM Index="75" Name="DO_PVHe5" Device="" Addr="w4.11"/>
+    <DO_ITEM Index="76" Name="DO_PVHe6" Device="" Addr="w4.12"/>
+    <DO_ITEM Index="77" Name="" />
+    <DO_ITEM Index="78" Name="" />
+    <DO_ITEM Index="79" Name="" />
+    <DO_ITEM Index="80" Name="DO_Magnets_ON" Device="" Addr="w5.00"/>
+    <DO_ITEM Index="81" Name="DO_Magnets_1A_coil_OFF" Device="" Addr="w5.01"/>
+    <DO_ITEM Index="82" Name="DO_Magnets_1B_coil_OFF" Device="" Addr="w5.02" />
+    <DO_ITEM Index="83" Name="DO_Magnets_2A_coil_OFF" Device="" Addr="w5.03" />
+    <DO_ITEM Index="84" Name="DO_Magnets_2B_coil_OFF" Device="" Addr="w5.04" />
+    <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_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_ITEM Index="15" Name="" />
+    <AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
+    <AO_ITEM Index="17" Name="AO_ESC_He_Pressure_Setpoint1" Device="" Addr="d1034" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="18" Name=""/>
+    <AO_ITEM Index="19" Name="" />
+    <AO_ITEM Index="20" Name="AO_ESC_He_Pressure_Setpoint2" Device="" Addr="d1040" Note="Torr,(1~50可控,0~50全量程)"/>
+    <AO_ITEM Index="21" Name="" />
+    <AO_ITEM Index="22" Name="" />
+    <AO_ITEM Index="23" Name="" />
+    <AO_ITEM Index="24" Name="" />
+    <AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
+    <AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
+    <AO_ITEM Index="27" Name="AO_MFC11_Flow_Setpoint" Device="" Addr="d1054" Note="MFC" />
+    <AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+    <AO_ITEM Index="29" Name="" />
+    <AO_ITEM Index="30" Name="" />
+    <AO_ITEM Index="31" Name="" />
+    <AO_ITEM Index="32" Name="" />
+    <AO_ITEM Index="33" Name="" />
+    <AO_ITEM Index="34" Name="" />
+    <AO_ITEM Index="35" Name="AO_Magnet_cycle_time" Device="" Addr="d1070" Note="MFC"/>
+    <AO_ITEM Index="36" Name="AO_Magnet_voltage_amplitude" Device="" Addr="d1072" Note="MFC" />
+    <AO_ITEM Index="37" Name="AO_Magnet_sine_wave_square_switch" Device="" Addr="d1074" Note="MFC" />
+    <AO_ITEM Index="38" Name="" />
+    <AO_ITEM Index="39" Name="" />
+    <AO_ITEM Index="40" Name="AO_Magnet_Driver_Current_Limit_Setpoint" Device="" Addr="d1080" Note="MFC"/>
+    <AO_ITEM Index="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_Process_Pressure_1t" Device="" Addr="d2002" />
+    <AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
+    <AI_ITEM Index="3"  Name="" />
+    <AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
+    <AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
+    <AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
+    <AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
+    <AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
+    <AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
+    <AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
+    <AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
+    <AI_ITEM Index="12" Name="AI_MFC_He1_Flow" Device="" Addr="d2024" Note="float" />
+    <AI_ITEM Index="13" />
+    <AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
+    <AI_ITEM Index="15" Name="" />
+    <AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
+    <AI_ITEM Index="17" Name="AI_Fline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
+    <AI_ITEM Index="18" Name="AI_CHB_Coolant_Inlet_Temp" Device="" Addr="d2036" Note="float" />
+    <AI_ITEM Index="19" Name="AI_CHB_Coolant_Outlet_Temp" Device="" Addr="d2038" Note="float" />
+    <AI_ITEM Index="20" Name="AI_ESC_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
+    <AI_ITEM Index="21" Name="AI_ESC_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
+    <AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
+    <AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
+    <AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
+    <AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
+    <AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
+    <AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
+    <AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+    <AI_ITEM Index="29" Name="" />
+    <AI_ITEM Index="30" Name="" />
+    <AI_ITEM Index="31" Name="AI_Chamber_Pressure_Virtual" Device="" Addr="d2062" Note="float" />
+    <AI_ITEM Index="32" Name="" />
+    <AI_ITEM Index="33" Name="" />
+    <AI_ITEM Index="34" Name="" />
+    <AI_ITEM Index="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
+    <AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
+    <AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
+    <AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
+    <AI_ITEM Index="39" Name="AI_MFC_He2_Flow" Device="" Addr="d2078" Note="MFC He2"/>
+    <AI_ITEM Index="40" Name="AI_He_Pressure1" Device="" Addr="d2080" Note="float" />
+    <AI_ITEM Index="41" Name="AI_He_Pressure2" Device="" Addr="d2082" Note="float"  />
+    <AI_ITEM Index="42" Name="" />
+    <AI_ITEM Index="43" Name="AI_Magnet_Driver_1_Phase_U_Current" Addr="d2086" Note="float"/>
+    <AI_ITEM Index="44" Name="AI_Magnet Driver_1_Phase_V_Current" Addr="d2088" Note="float" />
+    <AI_ITEM Index="45" Name="AI_Magnet Driver_1_Phase_W_Current" Addr="d2090" Note="float" />
+    <AI_ITEM Index="46" Name="AI_Magnet_Driver_2_Phase_U_Current" Addr="d2092" Note="float" />
+    <AI_ITEM Index="47" Name="AI_Magnet_Driver_2_Phase_V_Current" Addr="d2094" Note="float" />
+    <AI_ITEM Index="48" Name="AI_Magnet_Driver_2_Phase_W_Current" Addr="d2096" Note="float" />
+    <AI_ITEM Index="49" Name="" />
+  </Ana_In>
+</IO_DEFINE>

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

@@ -280,6 +280,117 @@ namespace Venus_Simulator.Instances
                     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_Slit_Door_Open_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_Slit_Door_Close_Position"].Value = true;
+                    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_N2_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;
@@ -620,6 +731,13 @@ namespace Venus_Simulator.Instances
                             //MonitorVenuSESlitDoor(item.Key);
                             MonitorSEPressure(item.Key);
                             MonitorSEGas(item.Key);
+                            ChangeTime(item.Key);
+                            break;
+                        case JetChamber.VenusDE:
+                            MonitorPin(item.Key);
+                            //MonitorVenuDESlitDoor(item.Key);
+                            MonitorDEPressure(item.Key);
+                            ChangeTime(item.Key);
                             break;
                     }
                 }
@@ -1305,6 +1423,139 @@ namespace Venus_Simulator.Instances
 
 
         }
+
+        void MonitorDEPressure(ModuleName mod)
+        {
+            string sAI_Foreline = "AI_Foreline_Pressure_10t";
+            string sAI_ChamberPressure = "AI_Chamber_Pressure_10t";
+            string sAI_ProcessPressure = "AI_Chamber_Pressure_Virtual";
+
+
+
+
+            // Foreline
+
+            if (SkyPumpMockPMA._simPumpStatus == SkyPumpMockPMA.SimPumpStatus.Open || EdwardsPumpMockPMA._simPumpStatus == EdwardsPumpMockPMA.SimEdwardsPumpStatus.Open)
+            {
+                SetAiValue($"{mod}.{sAI_Foreline}", GetAiValue($"{mod}.{sAI_Foreline}") - _rd.Next(500, 600));
+            }
+            else
+            {
+                SetAiValue($"{mod}.{sAI_Foreline}", GetAiValue($"{mod}.{sAI_Foreline}") + _rd.Next(500, 600));
+            }
+
+            // PLC 模拟量范围[0,4000], 电压[0, 10V], 压力[0, 760Torr]
+
+
+            // soft pump & fast pump
+            DOAccessor fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve"];
+            //DOAccessor soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve"];
+            DOAccessor turbo_pump_vlv = IO.DO[$"{mod}.DO_Turbo_Pump_Pumping_Valve"];
+
+            if (fast_pump_vlv.Value || turbo_pump_vlv.Value)
+            {
+                //任意泵打开
+                float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
+                float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
+                if (fast_pump_vlv.Value)
+                {//开双泵
+                    if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
+                    {
+                        float targetChamberPressure = getAiValue_ChamberPressure - 25000 > 0 ? getAiValue_ChamberPressure - 25000 : 0;
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
+                        //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
+                    }
+                    else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
+                    {
+                        float targetChamberPressure = getAiValue_ProcessPressure - 1300 > 0 ? getAiValue_ProcessPressure - 1300 : 0;
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
+                        SetAiValue($"{mod}.{sAI_ProcessPressure}", targetChamberPressure);
+                    }
+
+                }
+                else if (turbo_pump_vlv.Value)
+                {
+
+                    getAiValue_ProcessPressure = getAiValue_ChamberPressure;
+
+                    if ((getAiValue_ChamberPressure - 500) >= 0)
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", getAiValue_ChamberPressure - 500);
+                    else
+                        SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
+
+                    if ((getAiValue_ProcessPressure - 500) >= 0)
+                        SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 500);
+                    else
+                        SetAiValue($"{mod}.{sAI_ProcessPressure}", 0);
+
+                }
+            }
+
+            // fast vent & purge
+            DOAccessor vent_vlv = IO.DO[$"{mod}.DO_N2_Valve"];
+            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
+                {
+                    SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
+                }
+            }
+
+
+            // Loadlock Pumping Valve
+
+            // 压力值越界,复位
+            float chamber_pressure1 = GetAiValue($"{mod}.{sAI_ChamberPressure}");
+            if (chamber_pressure1 > ATM_PRESSURE)
+            {
+                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ATM_PRESSURE);
+            }
+            else if (chamber_pressure1 < 20)
+            {
+                SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 20);
+            }
+
+            float process_pressure1 = GetAiValue($"{mod}.{sAI_ProcessPressure}");
+            if (process_pressure1 > PROCESS_GAUGE)
+            {
+                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", PROCESS_GAUGE);
+            }
+            else if (process_pressure1 < 20)
+            {
+                SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", 20);
+            }
+
+            float foreline_pressure = GetAiValue($"{mod}.{sAI_Foreline}");
+            if (foreline_pressure > 10000)
+            {
+                SetAiValue($"{mod}.AI_Foreline_Pressure_10t", 10000);
+            }
+            else if (foreline_pressure < 150)
+            {
+                SetAiValue($"{mod}.AI_Foreline_Pressure_10t", 150);
+            }
+
+            // ATM switch
+            IO.DI[$"{mod}.DI_ATM_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") > ATM_THRESHOLD;
+
+            // VAC switch
+            IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < VAC_SW_PRESSURE;
+
+
+        }
         void MonitorPressure_Kepler(ModuleName mod)
         {
             string sAI_Foreline = "AI_Foreline_Pressure_10t";

+ 3 - 0
Venus/Venus_Simulator/Venus_Simulator.csproj

@@ -613,6 +613,9 @@
   </ItemGroup>
   <ItemGroup />
   <ItemGroup>
+    <Content Include="Config\_ioDefineVenusDE.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Config\_ioDefineVenusSE.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>