Selaa lähdekoodia

VenusSE TM PM Simulator Update

Intern01 1 vuosi sitten
vanhempi
commit
dfc9174ac8

+ 0 - 1
Venus/Framework/Common/Device/ModuleName.cs

@@ -127,7 +127,6 @@ namespace MECF.Framework.Common.Equipment
         //buffers
         [EnumMember]
         Buffer,
-
         [EnumMember]
         Cooling1,
 

+ 12 - 1
Venus/Framework/Common/IOCore/IoProviderManager.cs

@@ -270,7 +270,18 @@ namespace MECF.Framework.RT.Core.IoProviders
 
                     if (mapModule == "TM")
                     {
-                        mapFile ="TM"+"\\"+ element.GetAttribute("map_file").Trim();
+                        JetTMType jetTMType= (JetTMType)SC.GetValue<int>($"{mapModule}.TMType");
+                        switch (jetTMType)
+                        {
+                            case JetTMType.VenusSE:
+                                mapFile = "TM" + "\\"+"_ioDefineVenusSE_MF.xml";
+                                break;
+                            case JetTMType.Venus:
+                                mapFile ="TM"+"\\"+ element.GetAttribute("map_file").Trim();
+                                break;
+
+                        }
+                        //mapFile ="TM"+"\\"+ element.GetAttribute("map_file").Trim();
                     }
                     else
                     {

+ 1 - 1
Venus/Framework/UICore/E95Template/BottomView.xaml

@@ -102,7 +102,7 @@
     </UserControl.Resources>
     <Grid x:Name="gridContent" Background="#33a7e4">
         <!--<Button x:Name="btnBackward" Visibility="Hidden" Tag="Backward" VerticalAlignment="Center" Style="{StaticResource NavUpButton}" Click="btn_Click"  Margin="82,0,0,0" />-->
-        <Button x:Name="btnExit"  Tag="Exit" Content="{DynamicResource GlobalLableButtonExit}" VerticalAlignment="Center"   Style="{StaticResource exitButton}" Click="btn_Click" Margin="0,0,166,10" />
+        <Button x:Name="btnExit"  Tag="Exit" Content="{DynamicResource GlobalLableButtonExit}" VerticalAlignment="Center"   Style="{StaticResource exitButton}" Click="btn_Click" Margin="0,0,66,10" />
         <!--<Image Width="34" Height="37" HorizontalAlignment="Left"  Source="/MECF.Framework.Common;component/Resources/Main/下一个.png" Margin="82,0,0,10" />-->
         <!--<Image Width="34" Height="37"  HorizontalAlignment="Right" Source="/MECF.Framework.Common;component/Resources/Main/下一个.png" Margin="0,0,82,10" />-->
         <!--<Button x:Name="btnForward" Visibility="Hidden" Tag="Forward" VerticalAlignment="Center"  Style="{StaticResource NavBackButton}" Click="btn_Click" Margin="0,0,82,0"/>-->

+ 15 - 0
Venus/Venus_Core/TM.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Venus_Core
+{
+    public enum JetTMType
+    {
+        Venus,
+        VenusSE,
+        None
+    }
+}

+ 1 - 0
Venus/Venus_Core/Venus_Core.csproj

@@ -74,6 +74,7 @@
     <Compile Include="RtState.cs" />
     <Compile Include="SCValue.cs" />
     <Compile Include="SerializeHelper.cs" />
+    <Compile Include="TM.cs" />
     <Compile Include="ValveType.cs" />
     <Compile Include="VATPerformanceResult.cs" />
     <Compile Include="Kepler2300Device.cs" />

+ 22 - 0
Venus/Venus_RT/Config/IoProviderConfig.xml

@@ -114,6 +114,28 @@
 			<Block type="ao" offset="0" size="128" value_type=""></Block>
 		</Blocks>
 	</IoProvider>
+  
+  <!--<IoProvider load_condition="0" module="TMSE" name="PLC" map_module="TMSE" map_file="_ioDefineVenusSE_MF.xml" class="MECF.Framework.RT.Core.IoProviders.MCProtocolPlc" assembly="MECF.Framework.RT.Core">
+    <Parameter ip="127.0.0.1" port="6832" network_id="1" station_id="1"></Parameter>
+    <Blocks>
+      <Block type="di" offset="0" size="640" value_type=""></Block>
+      <Block type="do" offset="0" size="640" value_type=""></Block>
+      <Block type="ai" offset="0" size="640" value_type=""></Block>
+      <Block type="ao" offset="0" size="640" value_type=""></Block>
+    </Blocks>
+  </IoProvider>
+
 
+  <IoProvider load_condition="1" module="TMSE" name="PLC" map_module="TMSE" map_file="_ioDefineVenusSE_MF.xml"  class="Venus_RT.Devices.FinsPlc" assembly="Venus_RT">
+    <Parameter  ip="192.168.10.211" port="9600"
+					diBlockType="WR" doBlockType="WR" aiBlockType="D" aoBlockType="D"
+					diStartPosition="20" doStartPosition="0" aiStartPosition="2000" aoStartPosition="1000" ></Parameter>
+    <Blocks>
+      <Block type="di" offset="0" size="128" value_type=""></Block>
+      <Block type="do" offset="0" size="128" value_type=""></Block>
+      <Block type="ai" offset="0" size="128" value_type=""></Block>
+      <Block type="ao" offset="0" size="128" value_type=""></Block>
+    </Blocks>
+  </IoProvider>-->
 
 </IoProviders>

+ 1 - 0
Venus/Venus_RT/Config/System.sccfg

@@ -106,6 +106,7 @@
 
 	<!--TM-->
 	<configs name="TM" nameView="TM">
+    <config default="0" name="TMType"  nameView="TM Type" description="0=>Venus,1=>VenusSE," max="1" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
 		<config default="30" name="HomeTimeout" nameView="Home Timeout" description="TM初始化超时" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="60" name="MotionTimeout" nameView="Motion Timeout" description="motion time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="127.0.0.1:1102" name="IPAddress" nameView="IP Address" description="TM Robot IP、端口设置;default 10.0.0.100:13000" max="" min="" paramter="" tag="" unit="" type="String" />

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


+ 0 - 14
Venus/Venus_RT/Config/TM/TMInterlock.xml

@@ -68,8 +68,6 @@
 	</Action>
 
 	<Action do="DO_LLA_Slit_Door_E_Open"					value="true" tip="LLA Slit Door/I Open"	tip.zh-CN="" tip.en-US="DO-11" >
-		<Limit di="DI_TM_RB_Not_Extend_LLA"			value="true" tip="TM RB Not Extend LLA"		tip.zh-CN="" tip.en-US="DI-8" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLA"			value="true" tip="EFEM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-11" />
 		<Limit di="DI_EFEM_Side_Door_Closed"				value="true" tip="EFEM Side Panel Closed"			tip.zh-CN="" tip.en-US="DI-13" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLA_T_Slit_Door_close_Position"	value="true" tip="LLA TM Side Door Closed"			tip.zh-CN="" tip.en-US="DI-25" />
@@ -78,8 +76,6 @@
 	</Action>
 
 	<Action do="DO_LLA_Slit_Door_E_Close"				value="true" tip="LLA Slit Door/I Close"	tip.zh-CN="" tip.en-US="DO-12" >
-		<Limit di="DI_TM_RB_Not_Extend_LLA"			value="true" tip="TM RB Not Extend LLA"		tip.zh-CN="" tip.en-US="DI-8" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLA"			value="true" tip="EFEM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-11" />
 		<Limit di="DI_EFEM_Side_Door_Closed"				value="true" tip="EFEM Side Panel Closed"			tip.zh-CN="" tip.en-US="DI-13" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLA_Lid_Door_Closed"				value="true" tip="LLA Lid Closed"					tip.zh-CN="" tip.en-US="DI-26" />
@@ -88,8 +84,6 @@
 
 
 	<Action do="DO_LLA_Slit_Door_T_Open"					value="true" tip="Loadlock A TM Side Door Open"		tip.zh-CN="" tip.en-US="DO-13" >
-		<Limit di="DI_TM_RB_Not_Extend_LLA"				value="true" tip="TM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-8" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLA"			value="true" tip="EFEM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-11" />
 		<Limit di="DI_TM_CHB_Door_Closed"	value="true" tip="TM CHB Lid Door Closed"			tip.zh-CN="" tip.en-US="DI-17" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLA_E_Slit_Door_close_Position"	value="true" tip="LLA EFEM Side Door Closed"		tip.zh-CN="" tip.en-US="DI-23" />
@@ -98,8 +92,6 @@
 
 
 	<Action do="DO_LLA_Slit_Door_T_Close"				value="true" tip="Loadlock A TM Side Door Close"	tip.zh-CN="" tip.en-US="DO-14" >
-		<Limit di="DI_TM_RB_Not_Extend_LLA"				value="true" tip="TM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-8" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLA"			value="true" tip="EFEM Robot Net Extend to LLA"		tip.zh-CN="" tip.en-US="DI-11" />
 		<Limit di="DI_TM_CHB_Door_Closed"	value="true" tip="TM CHB Lid Door Closed"			tip.zh-CN="" tip.en-US="DI-17" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLA_Lid_Door_Closed"				value="true" tip="LLA Lid Closed"					tip.zh-CN="" tip.en-US="DI-26" />
@@ -144,16 +136,12 @@
 	</Action>
 
 	<Action do="DO_LLB_Slit_Door_E_Close"					value="true" tip="LLB Slit Door/I Close"		tip.zh-CN="" tip.en-US="DO-22" >
-		<Limit di="DI_TM_RB_Not_Extend_LLB"			value="true" tip="TM RB Not Extend LLB"		tip.zh-CN="" tip.en-US="DI-09" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLB"				value="true" tip="EFEM RB Not Extend LLB"			tip.zh-CN="" tip.en-US="DI-12" />
 		<Limit di="DI_EFEM_Side_Door_Closed"				value="true" tip="EFEM Side Panel Closed"			tip.zh-CN="" tip.en-US="DI-13" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLB_Lid_Door_Closed"				value="true" tip="LLB Lid Closed"					tip.zh-CN="" tip.en-US="DI-31" />
 	</Action>
 
 	<Action do="DO_LLB_Slit_Door_T_Open"					value="true" tip="LLB Slit Door/O Open"		tip.zh-CN="" tip.en-US="DO-23" >
-		<Limit di="DI_TM_RB_Not_Extend_LLB"				value="true" tip="TM Robot Net Extend to LLB"		tip.zh-CN="" tip.en-US="DI-9" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLB"				value="true" tip="EFEM RB Not Extend LLB"			tip.zh-CN="" tip.en-US="DI-12" />
 		<Limit di="DI_TM_CHB_Door_Closed"	value="true" tip="TM CHB Lid Door Closed"			tip.zh-CN="" tip.en-US="DI-17" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLB_E_Slit_Door_close_Position"	value="true" tip="LLB EFEM Side Door Closed"		tip.zh-CN="" tip.en-US="DI-28" />
@@ -162,8 +150,6 @@
 
 
 	<Action do="DO_LLB_Slit_Door_T_Close"				value="true" tip="LLB Slit Door/O Close"	tip.zh-CN="" tip.en-US="DO-24" >
-		<Limit di="DI_TM_RB_Not_Extend_LLB"				value="true" tip="TM Robot Net Extend to LLB"		tip.zh-CN="" tip.en-US="DI-9" />
-		<Limit di="DI_EFEM_RB_Not_Extend_LLB"				value="true" tip="EFEM RB Not Extend LLB"			tip.zh-CN="" tip.en-US="DI-12" />
 		<Limit di="DI_TM_CHB_Door_Closed"	value="true" tip="TM CHB Lid Door Closed"			tip.zh-CN="" tip.en-US="DI-17" />
 		<Limit di="DI_CDA_Pressure_Switch"			value="true" tip="CDA Pressure Switch"		tip.zh-CN="" tip.en-US="DI-19" />
 		<Limit di="DI_LLB_Lid_Door_Closed"				value="true" tip="LLB Lid Closed"					tip.zh-CN="" tip.en-US="DI-31" />

+ 176 - 0
Venus/Venus_RT/Config/TM/_ioDefineVenusSE_MF.xml

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

+ 2 - 1
Venus/Venus_RT/Devices/DeviceManager.cs

@@ -41,7 +41,7 @@ namespace Venus_RT.Instances
             //        device_model_file = PathManager.GetCfgDir() + RtInstance.CurrentChamber.ToString() + "\\" + "DeviceModelKepler.xml.xml";
             //        break;
             //}
-          
+
             device_model_file_MF = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config\\","TM", RtInstance.DeviceModelFileName_MF);
         }
 
@@ -67,6 +67,7 @@ namespace Venus_RT.Instances
                 JetChamber jetChamber = (JetChamber)SC.GetValue<int>("PMD.ChamberType");
                 InitPM(ModuleName.PMD, jetChamber);
             }
+
             if (ModuleHelper.IsInstalled(ModuleName.TM))
                 InitTM(ModuleName.TM);
 

+ 1 - 1
Venus/Venus_RT/Instances/RtInstance.cs

@@ -30,7 +30,7 @@ namespace Venus_RT.Modules
         public const ushort ANALOG_TRANS_RANGE = 8000;
         public const string DeviceModelFileName = "DeviceModelVenus.xml";
         public const string DeviceModelFileName_MF = "DeviceModelVenus_MF.xml";
-
+        public const string DeviceModelFileName_SE = "DeviceModelVenusSE_MF.xml";
         private ImageSource _trayIcon;
         private IRtLoader _loader;
 

+ 24 - 3
Venus/Venus_RT/Modules/PMs/PMProcessRoutine.cs

@@ -33,10 +33,16 @@ namespace Venus_RT.Modules.PMs
         public string CleanRecipeName { get; set; }
         public RecipeHead ProcessRecipeHead { get; set; }
         public DateTime RecipeStartTime { get; private set; }
+        public DateTime RecipeEndTime { get; private set; }
         public string WaferId { get; set; }
         public string SlotID { get; set; }
         public string LotID { get; set; }
         public string FullRecipeName { get; set; }
+
+        string Guidall;
+
+        int Timeall;
+        private Stopwatch Processtime = new Stopwatch();
         private readonly PumpDownRoutine _pumpDownRoutine;
         private readonly ProcessHelper _processHelper;
         private bool _withWafer = true;
@@ -305,7 +311,7 @@ namespace Venus_RT.Modules.PMs
 
         public RState StartNewStep()
         {
-            ProcessDataRecorder.StepStart($"{Module}:{_currentRecipe.Header.Name}:{_currentRecipe.Steps[_currentStep].Description}", _currentRecipe.Steps[_currentStep].StepNo, "", _currentRecipe.Steps[_currentStep].Time);
+            ProcessDataRecorder.StepStart(Guidall, _currentRecipe.Steps[_currentStep].StepNo, $"{Module}:{_currentRecipe.Header.Name}:{_currentRecipe.Steps[_currentStep].Description}", _currentRecipe.Steps[_currentStep].Time);
             _stepTime.Restart();
             var state = _currentRecipe.Steps[_currentStep].Start();
             if (state != RState.Running)
@@ -336,6 +342,12 @@ namespace Venus_RT.Modules.PMs
                 _currentRecipe = _qeRecipes.Dequeue();
                 CurrentRunningRecipe = _currentRecipe.Header.Name;
 
+                if (Guidall == null)
+                {
+                    Guidall = Guid.NewGuid().ToString();
+                    RecipeStartTime = DateTime.Now;
+                    Processtime.Restart();
+                }
                 Notify($"Recipe:{CurrentRunningRecipe} start");
                 FaEvent.FaPostInfo(Module.ToString(), $"Recipe:{CurrentRunningRecipe} start");
 
@@ -372,7 +384,10 @@ namespace Venus_RT.Modules.PMs
                     LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
                     FullRecipeName = string.Format(@"{0}/{1}/{2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
                 }
+                Processtime.Stop();
+                RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
                 ProcessDataRecorder.RecordPrecess(Guid.NewGuid().ToString(), RecipeStartTime, DateTime.Now, FullRecipeName, "Fail", WaferId, _chamber.Name, LotID, SlotID);
+                Guidall = null;
                 UpdateWaferStatus(false);
                 Runner.Stop($"Recipe:{CurrentRunningRecipe}, Step:{_currentStep + 1} Failed");
                 FaEvent.FaPostAlarm(Module.ToString(), $"Recipe:{CurrentRunningRecipe}, Step:{_currentStep + 1} Failed");
@@ -446,7 +461,10 @@ namespace Venus_RT.Modules.PMs
                 LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
                 FullRecipeName = string.Format(@"{0}/{1}/{2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
             }
-            ProcessDataRecorder.RecordPrecess(Guid.NewGuid().ToString(), RecipeStartTime, DateTime.Now, FullRecipeName,"Success", WaferId, _chamber.Name, LotID, SlotID);
+            Processtime.Stop();
+            RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
+            ProcessDataRecorder.RecordPrecess(Guid.NewGuid().ToString(), RecipeStartTime, RecipeEndTime, FullRecipeName,"Success", WaferId, _chamber.Name, LotID, SlotID);
+            Guidall = null;
             return true;
         }
 
@@ -485,7 +503,10 @@ namespace Venus_RT.Modules.PMs
                 LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
                 FullRecipeName = string.Format(@"{0}/{1}/{2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
             }
-            ProcessDataRecorder.RecordPrecess(Guid.NewGuid().ToString(), RecipeStartTime, DateTime.Now, FullRecipeName, "Fail", WaferId, _chamber.Name, LotID, SlotID);
+            Processtime.Stop();
+            RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
+            ProcessDataRecorder.RecordPrecess(Guidall, RecipeStartTime, RecipeEndTime, FullRecipeName, "Fail", WaferId, _chamber.Name, LotID, SlotID);
+            Guidall = null;
             _chamber.GeneratorBiasPowerOn(false);
             _chamber.GeneratorPowerOn(false);
             _chamber.TurnPendulumValve(false);

+ 15 - 5
Venus/Venus_RT/Venus_RT.csproj

@@ -288,8 +288,12 @@
     <Content Include="Config\PM\Kepler2300\Kepler2300DeviceModel.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Resource Include="Config\PM\VenusSE\VenusSEIoDefine.xml" />
-    <Resource Include="Config\PM\VenusSE\VenusSEDeviceModel.xml" />
+    <Content Include="Config\PM\VenusSE\VenusSEIoDefine.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\PM\VenusSE\VenusSEDeviceModel.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Config\TM\DeviceModelVenus_MF.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
@@ -305,9 +309,15 @@
     <Content Include="Config\TM\TMInterlock.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Resource Include="Config\TM\VenusSE\_ioDefineVenus_MF.xml" />
-    <Resource Include="Config\TM\VenusSE\DeviceModelVenus_MF.xml" />
-    <Resource Include="Config\TM\VenusSE\TMInterlock.xml" />
+    <Content Include="Config\TM\VenusSE\_ioDefineVenus_MF.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\TM\VenusSE\DeviceModelVenus_MF.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\TM\VenusSE\TMInterlock.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Config\TM\_ioDefineVenus_MF.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>

+ 1 - 1
Venus/Venus_Simulator/App.xaml.cs

@@ -18,7 +18,7 @@ namespace Venus_Simulator
             SimulatorJetChamber.CurrentPMBChamber = (JetChamber)SystemConfig.Instance.GetValue<int>($"PMB.ChamberType");
             SimulatorJetChamber.CurrentPMCChamber = (JetChamber)SystemConfig.Instance.GetValue<int>($"PMC.ChamberType");
             SimulatorJetChamber.CurrentPMDChamber = (JetChamber)SystemConfig.Instance.GetValue<int>($"PMD.ChamberType");
-
+            SimulatorJetTM.CurrentTM = (JetTMType)SystemConfig.Instance.GetValue<int>($"TM.TMType");
 
 
             UiApplication.Instance.Initialize(new UiInstance());

+ 338 - 0
Venus/Venus_Simulator/Config/_ioDefineVenusSE.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_SE 20230905.xlsx生成-->
+	<!--生成时间:09/06/2023 10:44:54-->
+	<Dig_In>
+		<DI_ITEM Index="0"   Name="DI_Lid_Closed" Device="" Addr="w20.00" />
+		<DI_ITEM Index="1"   Name="DI_ATM_Switch" Device="ATM_SW" Addr="w20.01" />
+		<DI_ITEM Index="2"   Name="DI_PM_VAC_Switch" Device="" Addr="w20.02" />
+		<DI_ITEM Index="3"   Name="DI_Plate_Water_Flow_Switch" Device="" Addr="w20.03" />
+		<DI_ITEM Index="4"   Name="DI_Water_Leak_Sensor" Device="" Addr="w20.04" />
+		<DI_ITEM Index="5"   Name="DI_Lift_Pin_Up_Position" Device="" Addr="w20.05" />
+		<DI_ITEM Index="6"   Name="DI_Lift_Pin_Down_Position" Device="" Addr="w20.06" />
+		<DI_ITEM Index="7"   Name="DI_RF_HV_Interlock_OK" Device="Lid_VAC_Slit_Door_MATCH_INT_OK." Addr="w20.07" />
+		<DI_ITEM Index="8"   Name="" />
+		<DI_ITEM Index="9"   Name="DI_Turbo_Pump_Interlock" Device="Q7.12同步" Addr="w20.09" />
+		<DI_ITEM Index="10"  Name="DI_Slit_Door_Open_Position" Device="" Addr="w20.10" />
+		<DI_ITEM Index="11"  Name="DI_Slit_Door_Close_Position" Device="" Addr="w20.11" />
+		<DI_ITEM Index="12"  Name="DI_CDA_Pressure_Switch" Device="" Addr="w20.12" />
+		<DI_ITEM Index="13"  Name="DI_Coolant_Inlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.13" />
+		<DI_ITEM Index="14"  Name="DI_Coolant_Outlet_TC_Broken_Alarm" Device="TC模块信号" Addr="w20.14" />
+		<DI_ITEM Index="15"  Name="DI_Chamber_Pressure_10t_Gauge_Alarm" Device="VG_PPH_真空值比较" Addr="w20.15" />
+		<DI_ITEM Index="16"  Name="DI_GASLINE_TC_Deviation_out_of_range" Device="值比较" Addr="w21.00" />
+		<DI_ITEM Index="17"  Name="DI_GASLINE_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.01" />
+		<DI_ITEM Index="18"  Name="DI_GASLINE_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.02" />
+		<DI_ITEM Index="19"  Name="DI_GASLINE_Heater_On_FB" Device="Q7.10同步" Addr="w21.03" />
+		<DI_ITEM Index="20"  Name="" />
+		<DI_ITEM Index="21"  Name="DI_Valve_Control_TC_Broken_Alarm" Device="" Addr="w21.05" />
+		<DI_ITEM Index="22"  Name="" />
+		<DI_ITEM Index="23"  Name="DI_Valve_Heater_On_FB" Device="Q7.13同步" Addr="w21.07" />
+		<DI_ITEM Index="24"  Name="" />
+		<DI_ITEM Index="25"  Name="DI_Foreline_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.09" />
+		<DI_ITEM Index="26"  Name="" />
+		<DI_ITEM Index="27"  Name="DI_Foreline_Heater_On_FB" Device="Q7.14同步" Addr="w21.11" />
+		<DI_ITEM Index="28"  Name="DI_CHB_Wall_TC_Deviation_out_of_range" Device="值比较" Addr="w21.12" />
+		<DI_ITEM Index="29"  Name="DI_CHB_Wall_Control_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.13" />
+		<DI_ITEM Index="30"  Name="DI_CHB_Wall_Monitor_TC_Broken_Alarm" Device="TC模块信号" Addr="w21.14" />
+		<DI_ITEM Index="31"  Name="DI_CHB_Wall_Heater_On_FB" Device="Q7.15同步" Addr="w21.15" />
+		<DI_ITEM Index="32"  Name="DI_CHB_Wall_OT_Switch_Alarm" Device="" Addr="w22.00" />
+		<DI_ITEM Index="33"  Name=""/>
+		<DI_ITEM Index="34"  Name="DI_PN2_Pressure_Switch" Device="PGN2" Addr="w22.02" Note="Gas Box" />
+		<DI_ITEM Index="35"  Name="DI_MFC1_Pressure_Switch" Device="PG1" Addr="w22.03" Note="Gas Box" />
+		<DI_ITEM Index="36"  Name="DI_MFC2_Pressure_Switch" Device="PG2" Addr="w22.04" Note="Gas Box" />
+		<DI_ITEM Index="37"  Name="DI_MFC3_Pressure_Switch" Device="PG3" Addr="w22.05" Note="Gas Box" />
+		<DI_ITEM Index="38"  Name="DI_MFC4_Pressure_Switch" Device="PG4" Addr="w22.06" Note="Gas Box" />
+		<DI_ITEM Index="39"  Name="DI_MFC5_Pressure_Switch" Device="PG5" Addr="w22.07" Note="Gas Box" />
+		<DI_ITEM Index="40"  Name="DI_MFC6_Pressure_Switch" Device="PG6" Addr="w22.08" Note="Gas Box" />
+		<DI_ITEM Index="41"  Name="DI_MFC7_Pressure_Switch" Device="PG7" Addr="w22.09" Note="Gas Box" />
+		<DI_ITEM Index="42"  Name="DI_MFC8_Pressure_Switch" Device="PG8" Addr="w22.10" Note="Gas Box" />
+		<DI_ITEM Index="43"  Name="DI_He_Pressure_Switch" Device="PGHe" Addr="w22.11" Note="Gas Box" />
+		<DI_ITEM Index="44"  Name="" />
+		<DI_ITEM Index="45"  Name="" />
+		<DI_ITEM Index="46"  Name="" />
+		<DI_ITEM Index="47"  Name="" />
+		<DI_ITEM Index="48"  Name="" />
+		<DI_ITEM Index="49"  Name="" />
+		<DI_ITEM Index="50"  Name="" />
+		<DI_ITEM Index="51"  Name="DI_Gas_Box_Door_Switch" Device="" Addr="w23.03" />
+		<DI_ITEM Index="52"  Name="DI_Gas_Box_Pressure_Switch" Device="" Addr="w23.04" />
+		<DI_ITEM Index="53"  Name="DI_Turbo_Pump_Water_Flow_Switch" Device="" Addr="w23.05" />
+		<DI_ITEM Index="54"  Name="" />
+		<DI_ITEM Index="55"  Name="DI_SOURCE_RF_Water_Flow_Switch" Device="" Addr="w23.07" />
+		<DI_ITEM Index="56"  Name="" />
+		<DI_ITEM Index="57"  Name="" />
+		<DI_ITEM Index="58"  Name="" />
+		<DI_ITEM Index="59"  Name="DI_TM_Slit_Door_Closed" Device="" Addr="w23.11" />
+		<DI_ITEM Index="60"  Name="" />
+		<DI_ITEM Index="61"  Name="" />
+		<DI_ITEM Index="62"  Name="DI_Source_Match_interlock_ok" Device="" Addr="w23.14" />
+		<DI_ITEM Index="63"  Name="DI_Bias_Match_interlock_ok" Device="" Addr="w23.15" />
+		<DI_ITEM Index="64"  Name="" />
+		<DI_ITEM Index="65"  Name="" />
+		<DI_ITEM Index="66"  Name="DI_MFC9_Pressure_Switch" Device="PG9" Addr="w24.02" Note="Gas Box" />
+		<DI_ITEM Index="67"  Name="DI_MFC10_Pressure_Switch" Device="PG10" Addr="w24.03" Note="Gas Box" />
+		<DI_ITEM Index="68"  Name="DI_MFC11_Pressure_Switch" Device="PG11_SPARE_" Addr="w24.04" Note="Gas Box" />
+		<DI_ITEM Index="69"  Name="DI_MFC12_Pressure_Switch" Device="PG12" Addr="w24.05" Note="Gas Box" />
+		<DI_ITEM Index="70"  Name="" />
+		<DI_ITEM Index="71"  Name="" />
+		<DI_ITEM Index="72"  Name="" />
+		<DI_ITEM Index="73"  Name="" />
+		<DI_ITEM Index="74"  Name="" />
+		<DI_ITEM Index="75"  Name="" />
+		<DI_ITEM Index="76"  Name="" />
+		<DI_ITEM Index="77"  Name="" />
+		<DI_ITEM Index="78"  Name="" />
+		<DI_ITEM Index="79"  Name="" />
+		<DI_ITEM Index="80"  Name="" />
+		<DI_ITEM Index="81"  Name="" />
+		<DI_ITEM Index="82"  Name="" />
+		<DI_ITEM Index="83"  Name="" />
+		<DI_ITEM Index="84"  Name="" />
+		<DI_ITEM Index="85"  Name="" />
+		<DI_ITEM Index="86"  Name="" />
+		<DI_ITEM Index="87"  Name="" />
+		<DI_ITEM Index="88"  Name="" />
+		<DI_ITEM Index="89"  Name="" />
+		<DI_ITEM Index="90"  Name="" />
+		<DI_ITEM Index="91"  Name="" />
+		<DI_ITEM Index="92"  Name="" />
+		<DI_ITEM Index="93"  Name="" />
+		<DI_ITEM Index="94"  Name="" />
+		<DI_ITEM Index="95"  Name="" />
+		<DI_ITEM Index="96"  Name="" />
+		<DI_ITEM Index="97"  Name="" />
+		<DI_ITEM Index="98"  Name="" />
+		<DI_ITEM Index="99"  Name="" />
+		<DI_ITEM Index="100" Name="" />
+		<DI_ITEM Index="101" Name="" />
+		<DI_ITEM Index="102" Name="" />
+		<DI_ITEM Index="103" Name="" />
+		<DI_ITEM Index="104" Name="" />
+		<DI_ITEM Index="105" Name="" />
+		<DI_ITEM Index="106" Name="" />
+		<DI_ITEM Index="107" Name="" />
+		<DI_ITEM Index="108" Name="" />
+		<DI_ITEM Index="109" Name="" />
+		<DI_ITEM Index="110" Name="" />
+		<DI_ITEM Index="111" Name="" />
+	</Dig_In>
+	<Dig_Out>
+		<DO_ITEM Index="0" Name="DO_PVN21" Device="GPVN21" Addr="w0.00" Note="Gas Box" />
+		<DO_ITEM Index="1" Name="DO_PVN22" Device="GPVN22" Addr="w0.01" Note="Gas Box" />
+		<DO_ITEM Index="2" Name="DO_PV11" Device="GPV11" Addr="w0.02" Note="Gas Box" />
+		<DO_ITEM Index="3" Name="DO_PV12" Device="GPV12" Addr="w0.03" Note="Gas Box" />
+		<DO_ITEM Index="4" Name="DO_PV21" Device="GPV21" Addr="w0.04" Note="Gas Box" />
+		<DO_ITEM Index="5" Name="DO_PV22" Device="GPV22" Addr="w0.05" Note="Gas Box" />
+		<DO_ITEM Index="6" Name="DO_PV31" Device="GPV31" Addr="w0.06" Note="Gas Box" />
+		<DO_ITEM Index="7" Name="DO_PV32" Device="GPV32" Addr="w0.07" Note="Gas Box" />
+		<DO_ITEM Index="8" Name="DO_PV41" Device="GPV41" Addr="w0.08" Note="Gas Box" />
+		<DO_ITEM Index="9" Name="DO_PV42" Device="GPV42" Addr="w0.09" Note="Gas Box" />
+		<DO_ITEM Index="10" Name="DO_N2_Valve" Device="GPVN2" Addr="w0.10" Note="Gas Box" />
+		<DO_ITEM Index="11" Name="DO_MFC1_Valve" Device="GPV1" Addr="w0.11" Note="Gas Box" />
+		<DO_ITEM Index="12" Name="DO_MFC2_Valve" Device="GPV2" Addr="w0.12" Note="Gas Box" />
+		<DO_ITEM Index="13" Name="DO_MFC3_Valve" Device="GPV3" Addr="w0.13" Note="Gas Box" />
+		<DO_ITEM Index="14" Name="DO_MFC4_Valve" Device="GPV4" Addr="w0.14" Note="Gas Box" />
+		<DO_ITEM Index="15" Name="DO_MFC5_Valve" Device="GPV5" Addr="w0.15" Note="Gas Box" />
+		<DO_ITEM Index="16" Name="DO_MFC6_Valve" Device="GPV6" Addr="w1.00" Note="Gas Box" />
+		<DO_ITEM Index="17" Name="DO_MFC7_Valve" Device="GPV7" Addr="w1.01" Note="Gas Box" />
+		<DO_ITEM Index="18" Name="DO_MFC8_Valve" Device="GPV8" Addr="w1.02" Note="Gas Box" />
+		<DO_ITEM Index="19" Name="DO_PVHe1" Device="GPVHe1" Addr="w1.03" />
+		<DO_ITEM Index="20" Name="DO_PVHe2" Device="GPVHe2" Addr="w1.04" />
+		<DO_ITEM Index="21" Name="DO_Gas_Final_Valve" Device="PV1" Addr="w1.05" />
+		<DO_ITEM Index="22" Name="DO_Soft_Pumping_Valve" Device="PV2" Addr="w1.06" />
+		<DO_ITEM Index="23" Name="DO_Fast_Pumping_Valve" Device="PV3" Addr="w1.07" />
+		<DO_ITEM Index="24" Name=""/>
+		<DO_ITEM Index="25" Name=""/>
+		<DO_ITEM Index="26" Name="DO_Lift_Pin_Up" Device="PV5" Addr="w1.10" />
+		<DO_ITEM Index="27" Name="DO_Lift_Pin_Down" Device="PV5" Addr="w1.11" />
+		<DO_ITEM Index="28" Name="" />
+		<DO_ITEM Index="29" Name="DO_Turbo_Pump_Pumping_Valve" Device="PV6" Addr="w1.13" />
+		<DO_ITEM Index="30" Name="DO_Turbo_Pump_Purge_Valve" Device="PV7" Addr="w1.14" />
+		<DO_ITEM Index="31" Name="DO_Gauge_Valve" Device="PV8" Addr="w1.15" />
+		<DO_ITEM Index="32" Name="DO_Reset_Signal" Device="" Addr="w2.00" />
+		<DO_ITEM Index="33" Name="DO_Valve_Heater_On" Device="" Addr="w2.01" />
+		<DO_ITEM Index="34" Name="DO_Foreline_Heater_On" Device="" Addr="w2.02" />
+		<DO_ITEM Index="35" Name="DO_CHB_Wall_Heater_On" Device="" Addr="w2.03" />
+		<DO_ITEM Index="36" Name=""/>
+		<DO_ITEM Index="37" Name=""/>
+		<DO_ITEM Index="38" Name=""/>
+		<DO_ITEM Index="39" Name=""/>
+		<DO_ITEM Index="40" Name=""/>
+		<DO_ITEM Index="41" Name=""/>
+		<DO_ITEM Index="42" Name=""/>
+		<DO_ITEM Index="43" Name=""/>
+		<DO_ITEM Index="44" Name=""/>
+		<DO_ITEM Index="45" Name=""/>
+		<DO_ITEM Index="46" Name="DO_Gasline_Heater_On" Device="" Addr="w2.14" />
+		<DO_ITEM Index="47" Name="" />
+		<DO_ITEM Index="48" Name="DO_PVHe3" Device="GPVHe3" Addr="w3.00" />
+		<DO_ITEM Index="49" Name="DO_He_ISO" Device="PV9" Addr="w3.01" />
+		<DO_ITEM Index="50" Name="" />
+		<DO_ITEM Index="51" Name="" />
+		<DO_ITEM Index="52" Name="DO_MFC9_Valve" Device="GPV9" Addr="w3.04" />
+		<DO_ITEM Index="53" Name="DO_MFC10_Valve" Device="GPV10" Addr="w3.05" />
+		<DO_ITEM Index="54" Name="DO_MFC11_Valve" Device="GPV11" Addr="w3.06" />
+		<DO_ITEM Index="55" Name="DO_MFC12_Valve" Device="GPV12" Addr="w3.07" />
+		<DO_ITEM Index="56" Name="DO_Main_Purge_Valve" Device="GPVM" Addr="w3.08" />
+		<DO_ITEM Index="57" Name="DO_PV51" Device="GPV51" Addr="w3.09" />
+		<DO_ITEM Index="58" Name="DO_PV52" Device="GPV52" Addr="w3.10" />
+		<DO_ITEM Index="59" Name="DO_PV61" Device="GPV61" Addr="w3.11" />
+		<DO_ITEM Index="60" Name="DO_PV62" Device="GPV62" Addr="w3.12" />
+		<DO_ITEM Index="61" Name="DO_PV71" Device="GPV71" Addr="w3.13" />
+		<DO_ITEM Index="62" Name="DO_PV72" Device="GPV72" Addr="w3.14" />
+		<DO_ITEM Index="63" Name="DO_PV81" Device="GPV81" Addr="w3.15" />
+		<DO_ITEM Index="64" Name="DO_PV82" Device="GPV82" Addr="w4.00" />
+		<DO_ITEM Index="65" Name="DO_PV91" Device="GPV91" Addr="w4.01" />
+		<DO_ITEM Index="66" Name="DO_PV92" Device="GPV92" Addr="w4.02" />
+		<DO_ITEM Index="67" Name="DO_PVA1" Device="GPVA1" Addr="w4.03" />
+		<DO_ITEM Index="68" Name="DO_PVA2" Device="GPVA2" Addr="w4.04" />
+		<DO_ITEM Index="69" Name="DO_PVB1" Device="GPVB1" Addr="w4.05" />
+		<DO_ITEM Index="70" Name="DO_PVB2" Device="GPVB2" Addr="w4.06" />
+		<DO_ITEM Index="71" Name="DO_PVC1" Device="GPVC1" Addr="w4.07" />
+		<DO_ITEM Index="72" Name="DO_PVC2" Device="GPVC2" Addr="w4.08" />
+		<DO_ITEM Index="73" Name="" />
+		<DO_ITEM Index="74" Name="" />
+		<DO_ITEM Index="75" Name="" />
+		<DO_ITEM Index="76" Name="" />
+		<DO_ITEM Index="77" Name="" />
+		<DO_ITEM Index="78" Name="" />
+		<DO_ITEM Index="79" Name="" />
+		<DO_ITEM Index="80" Name="" />
+		<DO_ITEM Index="81" Name="" />
+		<DO_ITEM Index="82" Name="" />
+		<DO_ITEM Index="83" Name="" />
+		<DO_ITEM Index="84" Name="" />
+		<DO_ITEM Index="85" Name="" />
+		<DO_ITEM Index="86" Name="" />
+		<DO_ITEM Index="87" Name="" />
+		<DO_ITEM Index="88" Name="" />
+		<DO_ITEM Index="89" Name="" />
+		<DO_ITEM Index="90" Name="" />
+		<DO_ITEM Index="91" Name="" />
+		<DO_ITEM Index="92" Name="" />
+		<DO_ITEM Index="93" Name="" />
+		<DO_ITEM Index="94" Name="" />
+		<DO_ITEM Index="95" Name="" />
+		<DO_ITEM Index="96" Name="" />
+		<DO_ITEM Index="97" Name="" />
+		<DO_ITEM Index="98" Name="" />
+		<DO_ITEM Index="99" Name="" />
+		<DO_ITEM Index="100" Name="" />
+		<DO_ITEM Index="101" Name="" />
+		<DO_ITEM Index="102" Name="" />
+		<DO_ITEM Index="103" Name="" />
+		<DO_ITEM Index="104" Name="" />
+		<DO_ITEM Index="105" Name="" />
+		<DO_ITEM Index="106" Name="" />
+		<DO_ITEM Index="107" Name="" />
+		<DO_ITEM Index="108" Name="" />
+		<DO_ITEM Index="109" Name="" />
+		<DO_ITEM Index="110" Name="" />
+		<DO_ITEM Index="111" Name="" />
+	</Dig_Out>
+	<Ana_Out>
+		<AO_ITEM Index="0"  Name="AO_MFC1_Flow_Setpoint" Device="" Addr="d1000" Note="MFC" />
+		<AO_ITEM Index="1"  Name="AO_MFC2_Flow_Setpoint" Device="" Addr="d1002" Note="MFC" />
+		<AO_ITEM Index="2"  Name="AO_MFC3_Flow_Setpoint" Device="" Addr="d1004" Note="MFC" />
+		<AO_ITEM Index="3"  Name="AO_MFC4_Flow_Setpoint" Device="" Addr="d1006" Note="MFC" />
+		<AO_ITEM Index="4"  Name="AO_MFC5_Flow_Setpoint" Device="" Addr="d1008" Note="MFC" />
+		<AO_ITEM Index="5"  Name="AO_MFC6_Flow_Setpoint" Device="" Addr="d1010" Note="MFC" />
+		<AO_ITEM Index="6"  Name="AO_MFC7_Flow_Setpoint" Device="" Addr="d1012" Note="MFC" />
+		<AO_ITEM Index="7"  Name="AO_MFC8_Flow_Setpoint" Device="" Addr="d1014" Note="MFC" />
+		<AO_ITEM Index="8"  Name="AO_He_Pressure_Setpoint" Device="" Addr="d1016" Note="He MFC" />
+		<AO_ITEM Index="9"  Name=""/>
+		<AO_ITEM Index="10" Name="AO_Valve_Temperature_Setpoint" Device="" Addr="d1020" Note="阀门加热设定温度" />
+		<AO_ITEM Index="11" Name="AO_Valve_Temp_Limit_Setpoint" Device="" Addr="d1022" Note="Temp Limit" />
+		<AO_ITEM Index="12" Name="AO_Foreline_Temperature_Setpoint" Device="" Addr="d1024" Note="前级管道设定温度" />
+		<AO_ITEM Index="13" Name="AO_Foreline_Temp_Limit_Setpoint" Device="" Addr="d1026" Note="Temp Limit" />
+		<AO_ITEM Index="14" Name="AO_CHB_Wall_Temperature_Setpoint" Device="" Addr="d1028" Note="腔体壁设定温度" />
+		<AO_ITEM Index="15" Name="AO_CHB_Wall_Temp_Limit_Setpoint" Device="" Addr="d1030" Note="Temp Limit" />
+		<AO_ITEM Index="16" Name="AO_Heartbeat" Device="" Addr="d1032" Note="PC to PLC" />
+		<AO_ITEM Index="17" Name=""/>
+		<AO_ITEM Index="18" Name=""/>
+		<AO_ITEM Index="19" Name="" />
+		<AO_ITEM Index="20" Name="" />
+		<AO_ITEM Index="21" Name="" />
+		<AO_ITEM Index="22" Name="" />
+		<AO_ITEM Index="23" Name="" />
+		<AO_ITEM Index="24" Name="" />
+		<AO_ITEM Index="25" Name="AO_MFC9_Flow_Setpoint" Device="" Addr="d1050" Note="MFC" />
+		<AO_ITEM Index="26" Name="AO_MFC10_Flow_Setpoint" Device="" Addr="d1052" Note="MFC" />
+		<AO_ITEM Index="27" Name="" />
+		<AO_ITEM Index="28" Name="AO_MFC12_Flow_Setpoint" Device="" Addr="d1056" Note="MFC" />
+		<AO_ITEM Index="29" Name="" />
+		<AO_ITEM Index="30" Name="AO_GASLINE_Temperature_Setpoint" Device="" Addr="d1060" Note="GASLINE 加热设定温度" />
+		<AO_ITEM Index="31" Name="AO_GASLINE_Temp_Limit_Setpoint" Device="" Addr="d1062" Note="Temp Limit" />
+		<AO_ITEM Index="32" Name="" />
+		<AO_ITEM Index="33" Name="" />
+		<AO_ITEM Index="34" Name="" />
+		<AO_ITEM Index="35" Name="" />
+		<AO_ITEM Index="36" Name="" />
+		<AO_ITEM Index="37" Name="" />
+		<AO_ITEM Index="38" Name="" />
+		<AO_ITEM Index="39" Name="" />
+		<AO_ITEM Index="40" Name="" />
+		<AO_ITEM Index="41" Name="" />
+		<AO_ITEM Index="42" Name="" />
+		<AO_ITEM Index="43" Name="" />
+		<AO_ITEM Index="44" Name="" />
+		<AO_ITEM Index="45" Name="" />
+		<AO_ITEM Index="46" Name="" />
+		<AO_ITEM Index="47" Name="" />
+		<AO_ITEM Index="48" Name="" />
+		<AO_ITEM Index="49" Name="" />
+	</Ana_Out>
+	<Ana_In>
+		<AI_ITEM Index="0"  Name="AI_Chamber_Pressure_10t" Device="" Addr="d2000" Note="float" />
+		<AI_ITEM Index="1"  Name=""/>
+		<AI_ITEM Index="2"  Name="AI_Foreline_Pressure_10t" Device="" Addr="d2004" Note="float" />
+		<AI_ITEM Index="3"  Name="AI_He_Pressure_100t" Device="" Addr="d2006" Note="float" />
+		<AI_ITEM Index="4"  Name="AI_MFC1_Flow" Device="" Addr="d2008" Note="float" />
+		<AI_ITEM Index="5"  Name="AI_MFC2_Flow" Device="" Addr="d2010" Note="float" />
+		<AI_ITEM Index="6"  Name="AI_MFC3_Flow" Device="" Addr="d2012" Note="float" />
+		<AI_ITEM Index="7"  Name="AI_MFC4_Flow" Device="" Addr="d2014" Note="float" />
+		<AI_ITEM Index="8"  Name="AI_MFC5_Flow" Device="" Addr="d2016" Note="float" />
+		<AI_ITEM Index="9"  Name="AI_MFC6_Flow" Device="" Addr="d2018" Note="float" />
+		<AI_ITEM Index="10" Name="AI_MFC7_Flow" Device="" Addr="d2020" Note="float" />
+		<AI_ITEM Index="11" Name="AI_MFC8_Flow" Device="" Addr="d2022" Note="float" />
+		<AI_ITEM Index="12" Name="AI_He_Flow" Device="" Addr="d2024" Note="float" />
+		<AI_ITEM Index="13" />
+		<AI_ITEM Index="14" Name="AI_Valve_Control_TC_Temp" Device="" Addr="d2028" Note="float" />
+		<AI_ITEM Index="15" Name="AI_Gasline_Control_TC_Temp" Device="" Addr="d2030" Note="float" />
+		<AI_ITEM Index="16" Name="AI_Fline_Control_TC_Temp" Device="" Addr="d2032" Note="float" />
+		<AI_ITEM Index="17" Name="AI_Gasline_Monitor_TC_Temp" Device="" Addr="d2034" Note="float" />
+		<AI_ITEM Index="18" Name="AI_CHB_Wall_Control_TC_Temp" Device="" Addr="d2036" Note="float" />
+		<AI_ITEM Index="19" Name="AI_CHB_Wall_Monitor_TC_Temp" Device="" Addr="d2038" Note="float" />
+		<AI_ITEM Index="20" Name="AI_Coolant_Inlet_Temp" Device="" Addr="d2040" Note="float" />
+		<AI_ITEM Index="21" Name="AI_Coolant_Outlet_Temp" Device="" Addr="d2042" Note="float" />
+		<AI_ITEM Index="22" Name="AI_Heartbeat_FB" Device="" Addr="d2044" Note="float" />
+		<AI_ITEM Index="23" Name="AI_Second" Device="" Addr="d2046" Note="float" />
+		<AI_ITEM Index="24" Name="AI_Minute" Device="" Addr="d2048" Note="float" />
+		<AI_ITEM Index="25" Name="AI_Time" Device="" Addr="d2050" Note="float" />
+		<AI_ITEM Index="26" Name="AI_Day" Device="" Addr="d2052" Note="float" />
+		<AI_ITEM Index="27" Name="AI_Month" Device="" Addr="d2054" Note="float" />
+		<AI_ITEM Index="28" Name="AI_Year" Device="" Addr="d2056" Note="float" />
+		<AI_ITEM Index="29" Name="" />
+		<AI_ITEM Index="30" Name="" />
+		<AI_ITEM Index="31" Name="" />
+		<AI_ITEM Index="32" Name="" />
+		<AI_ITEM Index="33" Name="" />
+		<AI_ITEM Index="34" Name="" />
+		<AI_ITEM Index="35" Name="AI_MFC9Flow" Device="" Addr="d2070" Note="float" />
+		<AI_ITEM Index="36" Name="AI_MFC10Flow" Device="" Addr="d2072" Note="float" />
+		<AI_ITEM Index="37" Name="AI_MFC11Flow" Device="" Addr="d2074" Note="float" />
+		<AI_ITEM Index="38" Name="AI_MFC12Flow" Device="" Addr="d2076" Note="float" />
+		<AI_ITEM Index="39" Name="" />
+		<AI_ITEM Index="40" Name="AI_He_Pressure" Device="" Addr="d2080" Note="float" />
+		<AI_ITEM Index="41" Name="" />
+		<AI_ITEM Index="42" Name="" />
+		<AI_ITEM Index="43" Name="" />
+		<AI_ITEM Index="44" Name="" />
+		<AI_ITEM Index="45" Name="" />
+		<AI_ITEM Index="46" Name="" />
+		<AI_ITEM Index="47" Name="" />
+		<AI_ITEM Index="48" Name="" />
+		<AI_ITEM Index="49" Name="" />
+	</Ana_In>
+</IO_DEFINE>

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

@@ -61,9 +61,9 @@ namespace Venus_Simulator.Instances
                 SetDefaultValue(ModuleName.PMB, SimulatorJetChamber.CurrentPMBChamber);
                 SetDefaultValue(ModuleName.PMC, SimulatorJetChamber.CurrentPMCChamber);
                 SetDefaultValue(ModuleName.PMD, SimulatorJetChamber.CurrentPMDChamber);
-            SetTMDefaultValue();
-            
-          
+                SetTMDefaultValue();
+
+
 
             Singleton<DataManager>.Instance.Initialize(false);
 
@@ -178,7 +178,102 @@ namespace Venus_Simulator.Instances
                     SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
                     SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
                     break;
-               case JetChamber.Kepler2300:
+                case JetChamber.VenusSE:
+                    IO.DI[$"{mod}.DI_Lid_Closed"].Value = true;
+                    IO.DI[$"{mod}.DI_ATM_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = false;
+                    IO.DI[$"{mod}.DI_Plate_Water_Flow_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
+
+                    IO.DI[$"{mod}.DI_Lift_Pin_Up_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_Lift_Pin_Down_POS"].Value = true;
+                    //IO.DI[$"{mod}.DI_RF_Generator_Interlock"].Value = true;
+                    //IO.DI[$"{mod}.DI_Source_RF_Fan"].Value = true;
+                    IO.DI[$"{mod}.DI_Lift_Pin_Down_Position"].Value = true;
+
+                    IO.DI[$"{mod}.DI_RF_HV_Interlock_OK"].Value = true;
+                    IO.DI[$"{mod}.DI_Turbo_Pump_Interlock"].Value = false;
+                    IO.DI[$"{mod}.DI_Slit_Door_Open_Position"].Value = true;
+
+                    IO.DI[$"{mod}.DI_Slit_Door_Close_Position"].Value = false;
+                    IO.DI[$"{mod}.DI_CDA_Pressure_Switch"].Value = false;
+                    IO.DI[$"{mod}.DI_Coolant_Inlet_TC_Broken_Alarm"].Value = false;
+
+                    IO.DI[$"{mod}.DI_Coolant_Outlet_TC_Broken_Alarm"].Value = false;
+                  
+                    IO.DI[$"{mod}.DI_Chamber_Pressure_10t_Gauge_Alarm"].Value = false;
+
+                    IO.DI[$"{mod}.DI_GASLINE_TC_Deviation_out_of_range"].Value = false;
+                    IO.DI[$"{mod}.DI_GASLINE_Control_TC_Broken_Alarm"].Value = false;
+                    IO.DI[$"{mod}.DI_GASLINE_Monitor_TC_Broken_Alarm"].Value = false;
+                    IO.DI[$"{mod}.DI_GASLINE_Heater_On_FB"].Value = false;
+
+                    IO.DI[$"{mod}.DI_Valve_Control_TC_Broken_Alarm"].Value = false;
+                    IO.DI[$"{mod}.DI_Valve_Heater_On_FB"].Value = false;
+                    IO.DI[$"{mod}.DI_Foreline_Control_TC_Broken_Alarm"].Value = false;
+                    IO.DI[$"{mod}.DI_Foreline_Heater_On_FB"].Value = true;
+
+                    IO.DI[$"{mod}.DI_CHB_Wall_TC_Deviation_out_of_range"].Value = true;
+                    IO.DI[$"{mod}.DI_CHB_Wall_Control_TC_Broken_Alarm"].Value = true;
+                    IO.DI[$"{mod}.DI_CHB_Wall_Monitor_TC_Broken_Alarm"].Value = true;
+                    IO.DI[$"{mod}.DI_CHB_Wall_Heater_On_FB"].Value = true;
+                    IO.DI[$"{mod}.DI_CHB_Wall_OT_Switch_Alarm"].Value = true;
+                    IO.DI[$"{mod}.DI_PN2_Pressure_Switch"].Value = true;
+
+                    IO.DI[$"{mod}.DI_MFC1_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC2_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC3_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC4_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC5_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC6_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC7_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC8_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC9_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC10_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC11_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_MFC12_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_He_Pressure_SW"].Value = true;
+                    IO.DI[$"{mod}.DI_ESC_He_Pressure_100t_Gauge_Alarm"].Value = false;
+
+
+
+                    IO.DI[$"{mod}.DI_Gas_Box_Door_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_Gas_Box_Pressure_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_Turbo_Pump_Water_Flow_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_SOURCE_RF_Water_Flow_Switch"].Value = true;
+                    IO.DI[$"{mod}.DI_TM_Slit_Door_Closed"].Value = true;
+                    IO.DI[$"{mod}.DI_Source_Match_interlock_ok"].Value = true;
+                    IO.DI[$"{mod}.DI_Bias_Match_interlock_ok"].Value = true;
+     
+
+                    //// pressure
+                    //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
+                    SetAiValue($"{mod}.AI_Process_Pressure_100mt", 100);
+                    //SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ATM_PRESSURE);
+                    SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", PROCESS_GAUGE);
+
+                    SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
+
+                    //// Temperature
+
+                    SetAiValue($"{mod}.AI_Valve_Control_TC_Temp", 28);
+                    SetAiValue($"{mod}.AI_Valve_Monitor_TC_Temp", 27);
+                    SetAiValue($"{mod}.AI_Fline_Control_TC_Temp", 28);
+                    SetAiValue($"{mod}.AI_Fline_Monitor_TC_Temp", 27);
+                    SetAiValue($"{mod}.AI_CHB_Wall_Control_TC_Temp", 28);
+                    SetAiValue($"{mod}.AI_CHB_Wall_Monitor_TC_Temp", 27);
+                    SetAiValue($"{mod}.AI_Coolant_Inlet_Temp", 28);
+        
+
+                    // Datetime
+                    SetAiValue($"{mod}.AI_Year", DateTime.Today.Year);
+                    SetAiValue($"{mod}.AI_Month", DateTime.Today.Month);
+                    SetAiValue($"{mod}.AI_Day", DateTime.Today.Day);
+                    SetAiValue($"{mod}.AI_Time", DateTime.Now.Hour);
+                    SetAiValue($"{mod}.AI_Minute", DateTime.Now.Minute);
+                    SetAiValue($"{mod}.AI_Second", DateTime.Now.Second);
+                    break;
+                case JetChamber.Kepler2300:
                     // chamber
                     IO.DI[$"{mod}.DI_Lid_Closed"].Value = true;
                     IO.DI[$"{mod}.DI_ATM_Switch"].Value = true;
@@ -345,11 +440,11 @@ namespace Venus_Simulator.Instances
             }
                
         }
-
         private void SetTMDefaultValue()
         {
             ModuleName mod = ModuleName.TM;
-            
+            if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
+            {                         
             IO.DI[$"{mod}.DI_TM_Power_On"].Value = true;
             IO.DI[$"{mod}.DI_TM_In_Safety"].Value = true;
             IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
@@ -409,7 +504,43 @@ namespace Venus_Simulator.Instances
             SetAiValue($"{mod}.AI_LLA_CHB_Pressure", 5002);
             SetAiValue($"{mod}.AI_LLA_LLB_Foreline_Pressure", 5003);
             SetAiValue($"{mod}.AI_LLB_CHB_Pressure", 5004);
-
+            }
+            else
+            {
+                IO.DI[$"{mod}.DI_TM_DI1"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI2"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI3"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI5"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI7"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI8"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI9"].Value = true;
+                IO.DI[$"{mod}.DI_TM_DI10"].Value = true;
+                IO.DI[$"{mod}.DI_SYS_C1"].Value = true;
+                IO.DI[$"{mod}.DI_SYS_C2"].Value = true;
+                IO.DI[$"{mod}.DI_SYS_C3"].Value = true;
+                IO.DI[$"{mod}.DI_SYS_C4"].Value = true;
+                IO.DI[$"{mod}.DI_TSYS_C5"].Value = true;
+                IO.DI[$"{mod}.DI_TM_N2_1"].Value = true;
+                IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
+                IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMA_OPS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMA_CLS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMB_OPS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMB_CLS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMC_OPS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_PMC_CLS"].Value = true;
+                IO.DI[$"{mod}.DI_TM_HE"].Value = true;
+                IO.DI[$"{mod}.DI_VCE_RB_RET"].Value = true;
+                IO.DI[$"{mod}.DI_PMA_RB_RET"].Value = true;
+                IO.DI[$"{mod}.DI_PMB_RB_RET"].Value = true;
+                IO.DI[$"{mod}.DI_PMC_RB_RET"].Value = true;
+
+                SetAiValue($"{mod}.AI_MFC_Flow_Setpoint", 4000);
+                SetAiValue($"{mod}.VCE_Vacuum_Gauge", 4000);
+                SetAiValue($"{mod}.VCE_Pipeline_Vacuum_Gauge", 4000);
+                SetAiValue($"{mod}.TM_Pipeline_Vacuum_Gauge", 4000);
+                SetAiValue($"{mod}.TM_Vacuum_Gauge", 4000);
+            }
 
         }
 

+ 14 - 0
Venus/Venus_Simulator/JetsiuTM.cs

@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Venus_Core;
+
+namespace Venus_Simulator
+{
+    public class SimulatorJetTM
+    {
+        public static JetTMType CurrentTM = JetTMType.Venus;
+    }
+}

+ 7 - 4
Venus/Venus_Simulator/Venus_Simulator.csproj

@@ -106,6 +106,7 @@
     <Compile Include="Devices\TurboPumpMockPMA.cs" />
     <Compile Include="Instances\SystemConfig.cs" />
     <Compile Include="JetChamber.cs" />
+    <Compile Include="JetsiuTM.cs" />
     <Compile Include="Views\Converters\CassetteConverter.cs" />
     <Compile Include="Views\Converters\IoConvert.cs" />
     <Compile Include="Views\IoViewModelBase.cs" />
@@ -558,7 +559,12 @@
   </ItemGroup>
   <ItemGroup />
   <ItemGroup>
-    <Resource Include="Config\_ioDefineVenusSE_MF.xml" />
+    <Content Include="Config\_ioDefineVenus_MF.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\_ioDefineVenusSE_MF.xml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Config\_ioDefineKepler2200A.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
@@ -568,9 +574,6 @@
     <Content Include="Config\_ioDefineKepler2300.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Content Include="Config\_ioDefineVenus_MF.xml">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
   </ItemGroup>
   <ItemGroup>
     <Content Include="Config\_ioDefineVenus.xml">

+ 1 - 0
Venus/Venus_Simulator/Views/IoViewModelBase.cs

@@ -2,6 +2,7 @@
 using Aitex.Core.UI.MVVM;
 using Venus_Simulator.Instances;
 using MECF.Framework.Common.IOCore;
+using System;
 
 namespace Venus_Simulator.Views
 {

+ 2 - 2
Venus/Venus_Simulator/Views/SimulatorIoTMView.xaml.cs

@@ -19,8 +19,8 @@ namespace Venus_Simulator.Views
         public SimulatorIoTMView()
         {
             InitializeComponent();
-            DataContext = new IoViewModel(6831, "TM.PLC", PathManager.GetCfgDir() + "_ioDefineVenus_MF.xml", "TM");
-
+            DataContext = new IoViewModel(6831, "TM.PLC", PathManager.GetCfgDir() + $"_ioDefine{SimulatorJetTM.CurrentTM}_MF.xml", "TM");
+            
             this.IsVisibleChanged += IOView_IsVisibleChanged;
         }