Bladeren bron

Merge branch 'master' of http://git.jetplasma-oa.com/JetPlasma/Venus

sangwq 1 jaar geleden
bovenliggende
commit
9134848f7f

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

@@ -119,7 +119,7 @@ namespace MECF.Framework.Common.Equipment
         //transfer modules
         [EnumMember]
         TM,
-
+        TMSE,
         // TM robot
         [EnumMember]
         TMRobot,

+ 10 - 7
Venus/Framework/Common/IOCore/IOManager.cs

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

+ 2 - 13
Venus/Framework/Common/IOCore/IoProviderManager.cs

@@ -268,20 +268,9 @@ namespace MECF.Framework.RT.Core.IoProviders
                     string mapModule = element.GetAttribute("map_module").Trim();
                     string mapFile="";
 
-                    if (mapModule == "TM")
+                    if (mapModule == "TM"|| mapModule == "TMSE")
                     {
-                        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();
+                        mapFile ="TM"+"\\"+ element.GetAttribute("map_file").Trim();
                     }
                     else
                     {

+ 2 - 2
Venus/Venus_RT/Config/IoProviderConfig.xml

@@ -115,7 +115,7 @@
 		</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">
+  <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>
@@ -136,6 +136,6 @@
       <Block type="ai" offset="0" size="128" value_type=""></Block>
       <Block type="ao" offset="0" size="128" value_type=""></Block>
     </Blocks>
-  </IoProvider>-->
+  </IoProvider>
 
 </IoProviders>

+ 175 - 170
Venus/Venus_RT/Config/TM/_ioDefineVenusSE_MF.xml

@@ -1,181 +1,186 @@
 <?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="w0.00" Note="System CDA Pressure ok" />
-		<DI_ITEM Index="1" Name="DI_TM_DI2" Device="" Addr="w0.01" Note="System N2 Pressure ok"/>
-		<DI_ITEM Index="2" Name="DI_TM_DI3" Device="" Addr="w0.02" Note="VCE SLIT DOOR OPEN ENABLE" />
-		<DI_ITEM Index="3" Name="DI_TM_DI5" Device="" Addr="w0.03" Note="PMA SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="4" Name="DI_TM_DI7" Device="" Addr="w0.04" Note="PMB SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="5" Name="DI_TM_DI9" Device="" Addr="w0.05" Note="PMC SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="6" Name="DI_TM_DI4" Device="" Addr="w0.06" Note="TM RB EXTEND VCE  ENABLE" />
-		<DI_ITEM Index="7" Name="DI_TM_DI6" Device="" Addr="w0.07" Note="TM RB EXTEND PMA  ENABLE" />
-		<DI_ITEM Index="8" Name="DI_TM_DI8" Device="" Addr="w0.08" Note="TM RB EXTEND PMB  ENABLE" />
-		<DI_ITEM Index="9" Name="DI_TM_DI10" Device="" Addr="w0.09" Note="TM RB EXTEND PMC  ENABLE" />
-		<DI_ITEM Index="10" Name="DI_SYS_C1" Device="" Addr="w0.10" Note="AC RACK FAN OK" />
-		<DI_ITEM Index="11" Name="DI_SYS_C2" Device="" Addr="w0.11" Note="AC RACK Smoke Detector out1" />
-		<DI_ITEM Index="12" Name="DI_SYS_C3" Device="" Addr="w0.12" Note="AC RACK Smoke Detector out2" />
-		<DI_ITEM Index="13" Name="DI_SYS_C4" Device="" Addr="w0.13" Note="Factory Smoke Detector Out" />
-		<DI_ITEM Index="14" Name="DI_TSYS_C5" Device="" Addr="w0.14" Note="Abnormal exhaust gas treatment" />
-		<DI_ITEM Index="15" Name="DI_TM_N2_1" Device="" Addr="w0.15" Note="TM N2气压表1" />
-		<DI_ITEM Index="16" Name="DI_VCE_TM_OPS" Device="" Addr="w1.00" Note="VCE到TM门阀开信号" />
-		<DI_ITEM Index="17" Name="DI_VCE_TM_CLS" Device="" Addr="w1.01" Note="VCE到TM门阀关信号" />
-		<DI_ITEM Index="18" Name="DI_TM_PMA_OPS" Device="" Addr="w1.02" Note="TM到PMA门阀开信号" />
-		<DI_ITEM Index="19" Name="DI_TM_PMA_CLS" Device="" Addr="w1.03" Note="TM到PMA门阀关信号" />
-		<DI_ITEM Index="20" Name="DI_TM_PMB_OPS" Device="" Addr="w1.04" Note="TM到PMB门阀开信号" />
+  <Dig_In>
+    <DI_ITEM Index="0" Name="DI_TM_DI1" Device="" Addr="w0.00" Note="System CDA Pressure ok" />
+    <DI_ITEM Index="1" Name="DI_TM_DI2" Device="" Addr="w0.01" Note="System N2 Pressure ok"/>
+    <DI_ITEM Index="2" Name="DI_TM_DI3" Device="" Addr="w0.02" Note="VCE SLIT DOOR OPEN ENABLE" />
+    <DI_ITEM Index="3" Name="DI_TM_DI5" Device="" Addr="w0.03" Note="PMA SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="4" Name="DI_TM_DI7" Device="" Addr="w0.04" Note="PMB SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="5" Name="DI_TM_DI9" Device="" Addr="w0.05" Note="PMC SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="6" Name="DI_TM_DI4" Device="" Addr="w0.06" Note="TM RB EXTEND VCE  ENABLE" />
+    <DI_ITEM Index="7" Name="DI_TM_DI6" Device="" Addr="w0.07" Note="TM RB EXTEND PMA  ENABLE" />
+    <DI_ITEM Index="8" Name="DI_TM_DI8" Device="" Addr="w0.08" Note="TM RB EXTEND PMB  ENABLE" />
+    <DI_ITEM Index="9" Name="DI_TM_DI10" Device="" Addr="w0.09" Note="TM RB EXTEND PMC  ENABLE" />
+    <DI_ITEM Index="10" Name="DI_SYS_C1" Device="" Addr="w0.10" Note="AC RACK FAN OK" />
+    <DI_ITEM Index="11" Name="DI_SYS_C2" Device="" Addr="w0.11" Note="AC RACK Smoke Detector out1" />
+    <DI_ITEM Index="12" Name="DI_SYS_C3" Device="" Addr="w0.12" Note="AC RACK Smoke Detector out2" />
+    <DI_ITEM Index="13" Name="DI_SYS_C4" Device="" Addr="w0.13" Note="Factory Smoke Detector Out" />
+    <DI_ITEM Index="14" Name="DI_TSYS_C5" Device="" Addr="w0.14" Note="Abnormal exhaust gas treatment" />
+    <DI_ITEM Index="15" Name="DI_TM_N2_1" Device="" Addr="w0.15" Note="TM N2气压表1" />
+    <DI_ITEM Index="16" Name="DI_VCE_TM_OPS" Device="" Addr="w1.00" Note="VCE到TM门阀开信号" />
+    <DI_ITEM Index="17" Name="DI_VCE_TM_CLS" Device="" Addr="w1.01" Note="VCE到TM门阀关信号" />
+    <DI_ITEM Index="18" Name="DI_TM_PMA_OPS" Device="" Addr="w1.02" Note="TM到PMA门阀开信号" />
+    <DI_ITEM Index="19" Name="DI_TM_PMA_CLS" Device="" Addr="w1.03" Note="TM到PMA门阀关信号" />
+    <DI_ITEM Index="20" Name="DI_TM_PMB_OPS" Device="" Addr="w1.04" Note="TM到PMB门阀开信号" />
     <DI_ITEM Index="21" Name="DI_TM_PMB_CLS" Device="" Addr="w1.05" Note="TM到PMB门阀关信号" />
-		<DI_ITEM Index="22" Name="DI_TM_N2_2" Device="" Addr="w1.06" Note="TM N2气压表2" />
-		<DI_ITEM Index="23" Name="DI_TM_CDA" Device="" Addr="w1.07" Note="TM CDA气压表" />    
-		<DI_ITEM Index="24" Name="DI_TM_HE" Device="" Addr="w1.08" Note="TM He气压表" />
-		<DI_ITEM Index="25" Name="DI_TM_LEAK" Device="" Addr="w1.09" Note="漏液检测器" />
-		<DI_ITEM Index="26" Name="DI_TM_DI11" Device="" Addr="w1.10" Note="PMD SLIT DOOR OPEN  ENABLE" />
-		<DI_ITEM Index="27" Name="DI_TM_DI12" Device="" Addr="w1.11" Note="TM RB EXTEND PMD  ENABLE" />
-		<DI_ITEM Index="28" Name="DI_VCE_RB_RET" Device="" Addr="w1.12" Note="ROBOT TO VCE RETRACT" />
-		<DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="w1.13" Note="ROBOT TO PMA RETRACT" />
-		<DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="w1.14" Note="ROBOT TO PMB RETRACT" />
-		<DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMC RETRACT" />
-    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMD RETRACT" />
+    <DI_ITEM Index="22" Name="DI_TM_N2_2" Device="" Addr="w1.06" Note="TM N2气压表2" />
+    <DI_ITEM Index="23" Name="DI_TM_CDA" Device="" Addr="w1.07" Note="TM CDA气压表" />
+    <DI_ITEM Index="24" Name="DI_TM_HE" Device="" Addr="w1.08" Note="TM He气压表" />
+    <DI_ITEM Index="25" Name="DI_TM_LEAK" Device="" Addr="w1.09" Note="漏液检测器" />
+    <DI_ITEM Index="26" Name="DI_TM_DI11" Device="" Addr="w1.10" Note="PMD SLIT DOOR OPEN  ENABLE" />
+    <DI_ITEM Index="27" Name="DI_TM_DI12" Device="" Addr="w1.11" Note="TM RB EXTEND PMD  ENABLE" />
+    <DI_ITEM Index="28" Name="DI_VCE_RB_RET" Device="" Addr="w1.12" Note="ROBOT TO VCE RETRACT" />
+    <DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="w1.13" Note="ROBOT TO PMA RETRACT" />
+    <DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="w1.14" Note="ROBOT TO PMB RETRACT" />
+    <DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMC RETRACT" />
+    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w2.00" Note="ROBOT TO PMD RETRACT" />
     <DI_ITEM Index="33" Name="DI_TM_PMC_OPS" Device="" Addr="w2.01" Note="TM到PMC门阀开信号" />
     <DI_ITEM Index="34" Name="DI_TM_PMC_CLS" Device="" Addr="w2.02" Note="TM到PMC门阀关信号" />
     <DI_ITEM Index="35" Name="DI_TM_PMD_OPS" Device="" Addr="w2.03" Note="TM到PMD门阀开信号" />
     <DI_ITEM Index="36" Name="DI_TM_PMD_CLS" Device="" Addr="w2.04" Note="TM到PMD门阀关信号" />
-	</Dig_In>
-	<Dig_Out>
-		<DO_ITEM Index="0" Name="" Device="" Addr="" />
-		<DO_ITEM Index="1" Name="" Device="" Addr="" />
-		<DO_ITEM Index="2" Name="" Device="" Addr="" />
-		<DO_ITEM Index="3" Name="" Device="" Addr="" />
+  </Dig_In>
+  <Dig_Out>
+    <DO_ITEM Index="0" Name="" Device="" Addr="" />
+    <DO_ITEM Index="1" Name="" Device="" Addr="" />
+    <DO_ITEM Index="2" Name="" Device="" Addr="" />
+    <DO_ITEM Index="3" Name="" Device="" Addr="" />
     <DO_ITEM Index="4" Name="" Device="" Addr="" />
     <DO_ITEM Index="5" Name="" Device="" Addr="" />
-		<DO_ITEM Index="6" Name="" Device="" Addr="" />
-		<DO_ITEM Index="7" Name="" Device="" Addr="" />
-		<DO_ITEM Index="8" Name="" Device="" Addr="" />
-		<DO_ITEM Index="9" Name="" Device="" Addr="" />
-		<DO_ITEM Index="10" Name="" Device="" Addr="" />
-		<DO_ITEM Index="11" Name="TM-PMD-OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
-		<DO_ITEM Index="12" Name="TM-PMD-CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
-		<DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="w200.00" Note="VCE到TM门阀开" />
-		<DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="w200.01" Note="VCE到TM门阀关" />
-		<DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="w200.02" Note="TM到PMA门阀开"/>
-		<DO_ITEM Index="16" Name="DO_TM_PMA_CL" Device="" Addr="w200.03" Note="TM到PMA门阀关"/>
-		<DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="w200.04" Note="TM到PMB门阀开"/>
-		<DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="w200.05" Note="TM到PMB门阀关"/>
-		<DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="w200.06" Note="TM到PMC门阀开"/>
-		<DO_ITEM Index="20" Name="DO_TM-PMC-CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
-		<DO_ITEM Index="21" Name="DO_TM_V_HS" Device=""   Addr="w200.08" Note="TM腔快抽真空"/>
-		<DO_ITEM Index="22" Name="DO_TM_V_LS" Device=""   Addr="w200.09" Note="TM腔慢抽真空"/>
-		<DO_ITEM Index="23" Name="DO_TM_B_HS" Device=""   Addr="w200.10" Note="TM腔快破真空"/>
-		<DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""   Addr="w200.11" Note="TM腔慢破真空"/>
-		<DO_ITEM Index="25" Name="DO_VCE_V_HS" Device=""  Addr="w200.12" Note="VCE腔快抽真空"/>
-		<DO_ITEM Index="26" Name="DO_VCE_V_LS" Device=""  Addr="w200.13" Note="VCE腔慢抽真空" />
-		<DO_ITEM Index="27" Name="DO_VCE_B_HS" Device=""  Addr="w200.14" Note="VCE腔快破真空"/>
-		<DO_ITEM Index="28" Name="DO_VCE_B_LS" Device=""  Addr="w200.15" Note="VCE腔慢破真空"/>
-		<DO_ITEM Index="29" Name="DO_V_220V" Device=""    Addr="w201.00" Note="220V线圈"/>
-		<DO_ITEM Index="30" Name="DO_TM_C1" Device=""     Addr="w201.01" Note="系统允许断电"/>
-		<DO_ITEM Index="31" Name="DO_TM_C2" Device=""     Addr="w201.02" Note="备用"/>
-	</Dig_Out>
-	<Ana_Out>
-		<AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="4000" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
-    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="4000"  Device="" Addr="d201" Note=""/>
-		<AO_ITEM Index="2" Name="" BufferOffset=""  />
-		<AO_ITEM Index="3" Name="" BufferOffset="" />
-		<AO_ITEM Index="4" Name="" BufferOffset="" />
-		<AO_ITEM Index="5" Name="" BufferOffset=""  />
-		<AO_ITEM Index="6" Name="" BufferOffset="" />
-		<AO_ITEM Index="7" Name="" BufferOffset=""  />
-		<AO_ITEM Index="8" Name="" BufferOffset=""/>
-		<AO_ITEM Index="9" Name="" BufferOffset="" />
-		<AO_ITEM Index="10" Name="" BufferOffset="" />
-		<AO_ITEM Index="11" Name="" BufferOffset=""  />
-		<AO_ITEM Index="12" Name="" BufferOffset="" />
-		<AO_ITEM Index="13" Name="" BufferOffset="" />
-		<AO_ITEM Index="14" Name="" BufferOffset="" />
-		<AO_ITEM Index="15" Name="" BufferOffset="" />
-		<AO_ITEM Index="16" Name="" BufferOffset="" />
-		<AO_ITEM Index="17" Name="" BufferOffset="" />
-		<AO_ITEM Index="18" Name="" BufferOffset="" />
-		<AO_ITEM Index="19" Name="" BufferOffset="" />
-		<AO_ITEM Index="20" Name="" BufferOffset="" />
-		<AO_ITEM Index="21" Name="" />
-		<AO_ITEM Index="22" Name="" />
-		<AO_ITEM Index="23" Name="" />
-		<AO_ITEM Index="24" Name="" />
-		<AO_ITEM Index="25" Name="" />
-		<AO_ITEM Index="26" Name="" />
-		<AO_ITEM Index="27" Name="" />
-		<AO_ITEM Index="28" Name="" />
-		<AO_ITEM Index="29" Name="" />
-		<AO_ITEM Index="30" Name="" />
-		<AO_ITEM Index="31" Name="" />
-		<AO_ITEM Index="32" Name="" />
-		<AO_ITEM Index="33" Name="" />
-		<AO_ITEM Index="34" Name="" />
-		<AO_ITEM Index="35" Name="" />
-		<AO_ITEM Index="36" Name="" />
-		<AO_ITEM Index="37" Name="" />
-		<AO_ITEM Index="38" Name="" />
-		<AO_ITEM Index="39" Name="" />
-		<AO_ITEM Index="40" Name="" />
-		<AO_ITEM Index="41" Name="" />
-		<AO_ITEM Index="42" Name="" />
-		<AO_ITEM Index="43" Name="" />
-		<AO_ITEM Index="44" Name="" />
-		<AO_ITEM Index="45" Name="" />
-		<AO_ITEM Index="46" Name="" />
-		<AO_ITEM Index="47" Name="" />
-		<AO_ITEM Index="48" Name="" />
-		<AO_ITEM Index="49" Name="" />
-	</Ana_Out>
-	<Ana_In>
-		<AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="2" Device="" Addr="D100" />
-		<AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
-		<AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
-		<AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
-		<AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
-		<AI_ITEM Index="5" Name=""/>
-		<AI_ITEM Index="6" Name="" />
-		<AI_ITEM Index="7" Name=""/>
-		<AI_ITEM Index="8" Name=""/>
-		<AI_ITEM Index="9" Name=""/>
-		<AI_ITEM Index="10" Name="" />
-		<AI_ITEM Index="11" Name=""/>
-		<AI_ITEM Index="12" Name=""/>
-		<AI_ITEM Index="13" Name=""/>
-		<AI_ITEM Index="14" Name=""/>
-		<AI_ITEM Index="15" Name=""/>
-		<AI_ITEM Index="16" Name=""/>
-		<AI_ITEM Index="17" Name=""/>
-		<AI_ITEM Index="18" Name=""/>
-		<AI_ITEM Index="19" Name=""/>
-		<AI_ITEM Index="20" Name=""/>
-		<AI_ITEM Index="21" Name="" />
-		<AI_ITEM Index="22" Name=""/>
-		<AI_ITEM Index="23" Name=""/>
-		<AI_ITEM Index="24" Name=""/>
-		<AI_ITEM Index="25" Name=""/>
-		<AI_ITEM Index="26" Name="" />
-		<AI_ITEM Index="27" Name="" />
-		<AI_ITEM Index="28" Name="" />
-		<AI_ITEM Index="29" Name="" />
-		<AI_ITEM Index="30" Name="" />
-		<AI_ITEM Index="31" Name="" />
-		<AI_ITEM Index="32" Name="" />
-		<AI_ITEM Index="33" Name="" />
-		<AI_ITEM Index="34" Name="" />
-		<AI_ITEM Index="35" Name="" />
-		<AI_ITEM Index="36" Name="" />
-		<AI_ITEM Index="37" Name="" />
-		<AI_ITEM Index="38" Name="" />
-		<AI_ITEM Index="39" Name="" />
-		<AI_ITEM Index="40" Name="" />
-		<AI_ITEM Index="41" Name="" />
-		<AI_ITEM Index="42" Name="" />
-		<AI_ITEM Index="43" Name="" />
-		<AI_ITEM Index="44" Name="" />
-		<AI_ITEM Index="45" Name="" />
-		<AI_ITEM Index="46" Name="" />
-		<AI_ITEM Index="47" Name="" />
-		<AI_ITEM Index="48" Name="" />
-		<AI_ITEM Index="49" Name="" />
-	</Ana_In>
+    <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="DO_TM_PMD_OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
+    <DO_ITEM Index="12" Name="DO_TM_PMD_CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
+    <DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="w200.00" Note="VCE到TM门阀开" />
+    <DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="w200.01" Note="VCE到TM门阀关" />
+    <DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="w200.02" Note="TM到PMA门阀开"/>
+    <DO_ITEM Index="16" Name="DO_TM_PMA_CL" Device="" Addr="w200.03" Note="TM到PMA门阀关"/>
+    <DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="w200.04" Note="TM到PMB门阀开"/>
+    <DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="w200.05" Note="TM到PMB门阀关"/>
+    <DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="w200.06" Note="TM到PMC门阀开"/>
+    <DO_ITEM Index="20" Name="DO_TM_PMC_CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
+    <DO_ITEM Index="21" Name="DO_TM_V_HS" Device="" Addr="w200.08" Note="TM腔快抽真空"/>
+    <DO_ITEM Index="22" Name="DO_TM_V_LS" Device="" Addr="w200.09" Note="TM腔慢抽真空"/>
+    <DO_ITEM Index="23" Name="DO_TM_B_HS" Device="" Addr="w200.10" Note="TM腔快破真空"/>
+    <DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""  Addr="w200.11" Note="TM腔慢破真空"/>
+    <DO_ITEM Index="25" Name="DO_VCE_V_HS" Device="" Addr="w200.12" Note="VCE腔快抽真空"/>
+    <DO_ITEM Index="26" Name="DO_VCE_V_LS" Device="" Addr="w200.13" Note="VCE腔慢抽真空" />
+    <DO_ITEM Index="27" Name="DO_VCE_B_HS" Device="" Addr="w200.14" Note="VCE腔快破真空"/>
+    <DO_ITEM Index="28" Name="DO_VCE_B_LS" Device="" Addr="w200.15" Note="VCE腔慢破真空"/>
+    <DO_ITEM Index="29" Name="DO_V_220V" Device="" Addr="w201.00" Note="220V线圈"/>
+    <DO_ITEM Index="30" Name="DO_TM_C1" Device=""  Addr="w201.01" Note="系统允许断电"/>
+    <DO_ITEM Index="31" Name="DO_TM_C2" Device=""  Addr="w201.02" Note="备用"/>
+    <DO_ITEM Index="32" Name="" Device="" Addr="" />
+    <DO_ITEM Index="33" Name="" Device="" Addr="" />
+    <DO_ITEM Index="34" Name="" Device="" Addr="" />
+    <DO_ITEM Index="35" Name="" Device="" Addr="" />
+    <DO_ITEM Index="36" Name="" Device="" Addr="" />
+  </Dig_Out>
+  <Ana_Out>
+    <AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="0" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
+    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="1"  Device="" Addr="d201" Note="TM"/>
+    <AO_ITEM Index="2" Name="" BufferOffset=""  />
+    <AO_ITEM Index="3" Name="" BufferOffset="" />
+    <AO_ITEM Index="4" Name="" BufferOffset="" />
+    <AO_ITEM Index="5" Name="" BufferOffset=""  />
+    <AO_ITEM Index="6" Name="" BufferOffset="" />
+    <AO_ITEM Index="7" Name="" BufferOffset=""  />
+    <AO_ITEM Index="8" Name="" BufferOffset=""/>
+    <AO_ITEM Index="9" Name="" BufferOffset="" />
+    <AO_ITEM Index="10" Name="" BufferOffset="" />
+    <AO_ITEM Index="11" Name="" BufferOffset=""  />
+    <AO_ITEM Index="12" Name="" BufferOffset="" />
+    <AO_ITEM Index="13" Name="" BufferOffset="" />
+    <AO_ITEM Index="14" Name="" BufferOffset="" />
+    <AO_ITEM Index="15" Name="" BufferOffset="" />
+    <AO_ITEM Index="16" Name="" BufferOffset="" />
+    <AO_ITEM Index="17" Name="" BufferOffset="" />
+    <AO_ITEM Index="18" Name="" BufferOffset="" />
+    <AO_ITEM Index="19" Name="" BufferOffset="" />
+    <AO_ITEM Index="20" Name="" BufferOffset="" />
+    <AO_ITEM Index="21" Name="" />
+    <AO_ITEM Index="22" Name="" />
+    <AO_ITEM Index="23" Name="" />
+    <AO_ITEM Index="24" Name="" />
+    <AO_ITEM Index="25" Name="" />
+    <AO_ITEM Index="26" Name="" />
+    <AO_ITEM Index="27" Name="" />
+    <AO_ITEM Index="28" Name="" />
+    <AO_ITEM Index="29" Name="" />
+    <AO_ITEM Index="30" Name="" />
+    <AO_ITEM Index="31" Name="" />
+    <AO_ITEM Index="32" Name="" />
+    <AO_ITEM Index="33" Name="" />
+    <AO_ITEM Index="34" Name="" />
+    <AO_ITEM Index="35" Name="" />
+    <AO_ITEM Index="36" Name="" />
+    <AO_ITEM Index="37" Name="" />
+    <AO_ITEM Index="38" Name="" />
+    <AO_ITEM Index="39" Name="" />
+    <AO_ITEM Index="40" Name="" />
+    <AO_ITEM Index="41" Name="" />
+    <AO_ITEM Index="42" Name="" />
+    <AO_ITEM Index="43" Name="" />
+    <AO_ITEM Index="44" Name="" />
+    <AO_ITEM Index="45" Name="" />
+    <AO_ITEM Index="46" Name="" />
+    <AO_ITEM Index="47" Name="" />
+    <AO_ITEM Index="48" Name="" />
+    <AO_ITEM Index="49" Name="" />
+  </Ana_Out>
+  <Ana_In>
+    <AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="2" Device="" Addr="D100" />
+    <AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
+    <AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
+    <AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
+    <AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
+    <AI_ITEM Index="5" Name=""/>
+    <AI_ITEM Index="6" Name="" />
+    <AI_ITEM Index="7" Name=""/>
+    <AI_ITEM Index="8" Name=""/>
+    <AI_ITEM Index="9" Name=""/>
+    <AI_ITEM Index="10" Name="" />
+    <AI_ITEM Index="11" Name=""/>
+    <AI_ITEM Index="12" Name=""/>
+    <AI_ITEM Index="13" Name=""/>
+    <AI_ITEM Index="14" Name=""/>
+    <AI_ITEM Index="15" Name=""/>
+    <AI_ITEM Index="16" Name=""/>
+    <AI_ITEM Index="17" Name=""/>
+    <AI_ITEM Index="18" Name=""/>
+    <AI_ITEM Index="19" Name=""/>
+    <AI_ITEM Index="20" Name=""/>
+    <AI_ITEM Index="21" Name="" />
+    <AI_ITEM Index="22" Name=""/>
+    <AI_ITEM Index="23" Name=""/>
+    <AI_ITEM Index="24" Name=""/>
+    <AI_ITEM Index="25" Name=""/>
+    <AI_ITEM Index="26" Name="" />
+    <AI_ITEM Index="27" Name="" />
+    <AI_ITEM Index="28" Name="" />
+    <AI_ITEM Index="29" Name="" />
+    <AI_ITEM Index="30" Name="" />
+    <AI_ITEM Index="31" Name="" />
+    <AI_ITEM Index="32" Name="" />
+    <AI_ITEM Index="33" Name="" />
+    <AI_ITEM Index="34" Name="" />
+    <AI_ITEM Index="35" Name="" />
+    <AI_ITEM Index="36" Name="" />
+    <AI_ITEM Index="37" Name="" />
+    <AI_ITEM Index="38" Name="" />
+    <AI_ITEM Index="39" Name="" />
+    <AI_ITEM Index="40" Name="" />
+    <AI_ITEM Index="41" Name="" />
+    <AI_ITEM Index="42" Name="" />
+    <AI_ITEM Index="43" Name="" />
+    <AI_ITEM Index="44" Name="" />
+    <AI_ITEM Index="45" Name="" />
+    <AI_ITEM Index="46" Name="" />
+    <AI_ITEM Index="47" Name="" />
+    <AI_ITEM Index="48" Name="" />
+    <AI_ITEM Index="49" Name="" />
+  </Ana_In>
 </IO_DEFINE>

+ 5 - 0
Venus/Venus_Simulator/Config/UILayout.xml

@@ -85,4 +85,9 @@
 		<SubView Id="SkyPumpLL" Name="SkyPumpLL" ViewClass="Venus_Simulator.Views.SimuSkyPumpLLView" Assembly="Venus_Simulator"/>
 	</Navigation>
 
+  <Navigation Id="TMSE" Name="TMSE">
+    <SubView Id="ioTMSE" Name="IO-TMSE" ViewClass="Venus_Simulator.Views.SimulatorIoTMSEView" Assembly="Venus_Simulator"/>
+    <!--<SubView Id="TM" Name="TM" ViewClass="Venus_Simulator.Views.Simu_TMSEView" Assembly="Venus_Simulator" />-->
+  </Navigation>
+
 </MECFUI>

+ 26 - 21
Venus/Venus_Simulator/Config/_ioDefineVenusSE_MF.xml

@@ -34,7 +34,7 @@
     <DI_ITEM Index="29" Name="DI_PMA_RB_RET" Device="" Addr="w1.13" Note="ROBOT TO PMA RETRACT" />
     <DI_ITEM Index="30" Name="DI_PMB_RB_RET" Device="" Addr="w1.14" Note="ROBOT TO PMB RETRACT" />
     <DI_ITEM Index="31" Name="DI_PMC_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMC RETRACT" />
-    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w1.15" Note="ROBOT TO PMD RETRACT" />
+    <DI_ITEM Index="32" Name="DI_PMD_RB_RET" Device="" Addr="w2.00" Note="ROBOT TO PMD RETRACT" />
     <DI_ITEM Index="33" Name="DI_TM_PMC_OPS" Device="" Addr="w2.01" Note="TM到PMC门阀开信号" />
     <DI_ITEM Index="34" Name="DI_TM_PMC_CLS" Device="" Addr="w2.02" Note="TM到PMC门阀关信号" />
     <DI_ITEM Index="35" Name="DI_TM_PMD_OPS" Device="" Addr="w2.03" Note="TM到PMD门阀开信号" />
@@ -52,8 +52,8 @@
     <DO_ITEM Index="8" Name="" Device="" Addr="" />
     <DO_ITEM Index="9" Name="" Device="" Addr="" />
     <DO_ITEM Index="10" Name="" Device="" Addr="" />
-    <DO_ITEM Index="11" Name="TM-PMD-OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
-    <DO_ITEM Index="12" Name="TM-PMD-CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
+    <DO_ITEM Index="11" Name="DO_TM_PMD_OP" Device="" Addr="w199.14" Note="TM到PMD门阀开"/>
+    <DO_ITEM Index="12" Name="DO_TM_PMD_CL" Device="" Addr="w199.15" Note="TM到PMD门阀关" />
     <DO_ITEM Index="13" Name="DO_VCE_TM_OP" Device="" Addr="w200.00" Note="VCE到TM门阀开" />
     <DO_ITEM Index="14" Name="DO_VCE_TM_CL" Device="" Addr="w200.01" Note="VCE到TM门阀关" />
     <DO_ITEM Index="15" Name="DO_TM_PMA_OP" Device="" Addr="w200.02" Note="TM到PMA门阀开"/>
@@ -61,22 +61,27 @@
     <DO_ITEM Index="17" Name="DO_TM_PMB_OP" Device="" Addr="w200.04" Note="TM到PMB门阀开"/>
     <DO_ITEM Index="18" Name="DO_TM_PMB_CL" Device="" Addr="w200.05" Note="TM到PMB门阀关"/>
     <DO_ITEM Index="19" Name="DO_TM_PMC_OP" Device="" Addr="w200.06" Note="TM到PMC门阀开"/>
-    <DO_ITEM Index="20" Name="DO_TM-PMC-CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
-    <DO_ITEM Index="21" Name="DO_TM_V_HS" Device=""   Addr="w200.08" Note="TM腔快抽真空"/>
-    <DO_ITEM Index="22" Name="DO_TM_V_LS" Device=""   Addr="w200.09" Note="TM腔慢抽真空"/>
-    <DO_ITEM Index="23" Name="DO_TM_B_HS" Device=""   Addr="w200.10" Note="TM腔快破真空"/>
-    <DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""   Addr="w200.11" Note="TM腔慢破真空"/>
-    <DO_ITEM Index="25" Name="DO_VCE_V_HS" Device=""  Addr="w200.12" Note="VCE腔快抽真空"/>
-    <DO_ITEM Index="26" Name="DO_VCE_V_LS" Device=""  Addr="w200.13" Note="VCE腔慢抽真空" />
-    <DO_ITEM Index="27" Name="DO_VCE_B_HS" Device=""  Addr="w200.14" Note="VCE腔快破真空"/>
-    <DO_ITEM Index="28" Name="DO_VCE_B_LS" Device=""  Addr="w200.15" Note="VCE腔慢破真空"/>
-    <DO_ITEM Index="29" Name="DO_V_220V" Device=""    Addr="w201.00" Note="220V线圈"/>
-    <DO_ITEM Index="30" Name="DO_TM_C1" Device=""     Addr="w201.01" Note="系统允许断电"/>
-    <DO_ITEM Index="31" Name="DO_TM_C2" Device=""     Addr="w201.02" Note="备用"/>
+    <DO_ITEM Index="20" Name="DO_TM_PMC_CL" Device="" Addr="w200.07" Note="TM到PMC门阀关"/>
+    <DO_ITEM Index="21" Name="DO_TM_V_HS" Device="" Addr="w200.08" Note="TM腔快抽真空"/>
+    <DO_ITEM Index="22" Name="DO_TM_V_LS" Device="" Addr="w200.09" Note="TM腔慢抽真空"/>
+    <DO_ITEM Index="23" Name="DO_TM_B_HS" Device="" Addr="w200.10" Note="TM腔快破真空"/>
+    <DO_ITEM Index="24" Name="DO_TM_B_LS" Device=""  Addr="w200.11" Note="TM腔慢破真空"/>
+    <DO_ITEM Index="25" Name="DO_VCE_V_HS" Device="" Addr="w200.12" Note="VCE腔快抽真空"/>
+    <DO_ITEM Index="26" Name="DO_VCE_V_LS" Device="" Addr="w200.13" Note="VCE腔慢抽真空" />
+    <DO_ITEM Index="27" Name="DO_VCE_B_HS" Device="" Addr="w200.14" Note="VCE腔快破真空"/>
+    <DO_ITEM Index="28" Name="DO_VCE_B_LS" Device="" Addr="w200.15" Note="VCE腔慢破真空"/>
+    <DO_ITEM Index="29" Name="DO_V_220V" Device="" Addr="w201.00" Note="220V线圈"/>
+    <DO_ITEM Index="30" Name="DO_TM_C1" Device=""  Addr="w201.01" Note="系统允许断电"/>
+    <DO_ITEM Index="31" Name="DO_TM_C2" Device=""  Addr="w201.02" Note="备用"/>
+    <DO_ITEM Index="32" Name="" Device="" Addr="" />
+    <DO_ITEM Index="33" Name="" Device="" Addr="" />
+    <DO_ITEM Index="34" Name="" Device="" Addr="" />
+    <DO_ITEM Index="35" Name="" Device="" Addr="" />
+    <DO_ITEM Index="36" Name="" Device="" Addr="" />
   </Dig_Out>
   <Ana_Out>
-    <AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="4000" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
-    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="4000"  Device="" Addr="d201" Note=""/>
+    <AO_ITEM Index="0" Name="AO_MFC_Flow_Setpoint" BufferOffset="0" Device="" Addr="d200"  Note="MFC Flow Setpoint" />
+    <AO_ITEM Index="1" Name="AO_TM_Vacuum_Gauge" BufferOffset="1"  Device="" Addr="d201" Note="TM"/>
     <AO_ITEM Index="2" Name="" BufferOffset=""  />
     <AO_ITEM Index="3" Name="" BufferOffset="" />
     <AO_ITEM Index="4" Name="" BufferOffset="" />
@@ -127,11 +132,11 @@
     <AO_ITEM Index="49" Name="" />
   </Ana_Out>
   <Ana_In>
-    <AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="2" Device="" Addr="D100" />
-    <AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D101" />
+    <AI_ITEM Index="0" Name="AI_MFC_Flow_Setpoint"  BufferOffset="0" Device="" Addr="D100" />
+    <AI_ITEM Index="1" Name="VCE_Vacuum_Gauge"  BufferOffset="1" Device="" Addr="D101" />
     <AI_ITEM Index="2" Name="TM_Vacuum_Gauge"  BufferOffset="2" Device="" Addr="D102"/>
-    <AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="10" Device="" Addr="D103"/>
-    <AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="22" Device="" Addr="D104"/>
+    <AI_ITEM Index="3" Name="VCE_Pipeline_Vacuum_Gauge"  BufferOffset="3" Device="" Addr="D103"/>
+    <AI_ITEM Index="4" Name="TM_Pipeline_Vacuum_Gauge"  BufferOffset="4" Device="" Addr="D104"/>
     <AI_ITEM Index="5" Name=""/>
     <AI_ITEM Index="6" Name="" />
     <AI_ITEM Index="7" Name=""/>

+ 71 - 64
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -63,6 +63,8 @@ namespace Venus_Simulator.Instances
             SetDefaultValue(ModuleName.PMC, SimulatorJetChamber.CurrentPMCChamber);
             SetDefaultValue(ModuleName.PMD, SimulatorJetChamber.CurrentPMDChamber);
             SetTMDefaultValue();
+            SetSETMDefaultValue();
+
 
 
 
@@ -444,8 +446,7 @@ 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;
@@ -505,47 +506,51 @@ 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 = false;
-                IO.DI[$"{mod}.DI_SYS_C3"].Value = false;
-                IO.DI[$"{mod}.DI_SYS_C4"].Value = false;
-                IO.DI[$"{mod}.DI_TSYS_C5"].Value = false;
-                IO.DI[$"{mod}.DI_TM_N2_1"].Value = true;
-                IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
-                IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
-                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", 3000);
-                SetAiValue($"{mod}.VCE_Vacuum_Gauge", 3000);
-                SetAiValue($"{mod}.VCE_Pipeline_Vacuum_Gauge", 3000);
-                SetAiValue($"{mod}.TM_Pipeline_Vacuum_Gauge", 3000);
-                SetAiValue($"{mod}.TM_Vacuum_Gauge", 3000);
-            }
+
+
+            
 
         }
+        private void SetSETMDefaultValue()
+        {
+            ModuleName mod = ModuleName.TMSE;
+
+            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 = false;
+            IO.DI[$"{mod}.DI_SYS_C3"].Value = false;
+            IO.DI[$"{mod}.DI_SYS_C4"].Value = false;
+            IO.DI[$"{mod}.DI_TSYS_C5"].Value = false;
+            IO.DI[$"{mod}.DI_TM_N2_1"].Value = true;
+            IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
+            IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
+            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", 3000);
+            SetAiValue($"{mod}.VCE_Vacuum_Gauge", 3000);
+            SetAiValue($"{mod}.VCE_Pipeline_Vacuum_Gauge", 3000);
+            SetAiValue($"{mod}.TM_Pipeline_Vacuum_Gauge", 3000);
+            SetAiValue($"{mod}.TM_Vacuum_Gauge", 3000);
+        }
 
-        private bool OnMonitor()
+            private bool OnMonitor()
         {
             try
             {
@@ -598,7 +603,7 @@ namespace Venus_Simulator.Instances
                 ChangeTime(ModuleName.TM);
 
                 MonitorMFSlitDoor();
-                MonitorMFPressure();
+                MonitorSEMFSlitDoor();
 
 
 
@@ -648,8 +653,6 @@ namespace Venus_Simulator.Instances
         void MonitorMFSlitDoor()
         {
             ModuleName mod = ModuleName.TM;
-            if (SimulatorJetTM.CurrentTM == JetTMType.Venus)
-            {
                 // LLA T door open
                 if (IO.DO[$"{mod}.DO_LLA_Slit_Door_T_Open"].Value)
                 {
@@ -705,33 +708,37 @@ namespace Venus_Simulator.Instances
                     IO.DI[$"{mod}.DI_LLB_E_Slit_Door_open_Position"].Value = false;
                     IO.DI[$"{mod}.DI_LLB_E_Slit_Door_close_Position"].Value = true;
                 }
-            }
-            else if (SimulatorJetTM.CurrentTM == JetTMType.VenusSE)
+
+
+            
+        }
+        void MonitorSEMFSlitDoor()
+        {
+            ModuleName mod = ModuleName.TMSE;
+            // VCE T door open
+            if (IO.DO[$"{mod}.DO_VCE_TM_OP"].Value)
             {
-                // VCE T door open
-                if (IO.DO[$"{mod}.DO_VCE_TM_OP"].Value)
-                {
-                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
-                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = false;
-                }
+                IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = true;
+                IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = false;
+            }
 
-                // VCE T door Close
-                if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
-                {
-                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
-                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
-                }
+            // VCE T door Close
+            if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
+            {
+                IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
+                IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
+            }
 
-                // VCE T door Close
-                if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
-                {
-                    IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
-                    IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
-                }
+            // VCE T door Close
+            if (IO.DO[$"{mod}.DO_VCE_TM_CL"].Value)
+            {
+                IO.DI[$"{mod}.DI_VCE_TM_OPS"].Value = false;
+                IO.DI[$"{mod}.DI_VCE_TM_CLS"].Value = true;
             }
         }
 
-        void MonitorPin(ModuleName mod)
+
+            void MonitorPin(ModuleName mod)
         {
             // lift pin up
             if (IO.DO[$"{mod}.DO_Lift_Pin_Up"].Value != IO.DO[$"{mod}.DO_Lift_Pin_Down"].Value)

+ 7 - 0
Venus/Venus_Simulator/Venus_Simulator.csproj

@@ -193,6 +193,9 @@
     <Compile Include="Views\SimulatorIo2View.xaml.cs">
       <DependentUpon>SimulatorIo2View.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Views\SimulatorIoTMSEView.xaml.cs">
+      <DependentUpon>SimulatorIoTMSEView.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Views\SimulatorIoTMView.xaml.cs">
       <DependentUpon>SimulatorIoTMView.xaml</DependentUpon>
     </Compile>
@@ -460,6 +463,10 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
+    <Page Include="Views\SimulatorIoTMSEView.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="Views\SimulatorIoTMView.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>

+ 241 - 0
Venus/Venus_Simulator/Views/SimulatorIoTMSEView.xaml

@@ -0,0 +1,241 @@
+<UserControl x:Class="Venus_Simulator.Views.SimulatorIoTMSEView"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"
+             xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"  
+             xmlns:views="clr-namespace:Venus_Simulator.Views"
+             xmlns:toolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
+             mc:Ignorable="d" 
+             d:DesignHeight="450" d:DesignWidth="1900">
+    <UserControl.Resources>
+        <views:BoolBackgroundConverter x:Key="BoolBackgroundConverter"/>
+
+        <SolidColorBrush x:Key="DataGrid_Cell_BD" Color="Gray"/>
+
+
+        <Style x:Key="Lamp-Button" TargetType="{x:Type views:IoButton}">
+            <Setter Property="Width" Value="16"/>
+            <Setter Property="Height" Value="16"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type views:IoButton}">
+                        <Grid>
+                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" RecognizesAccessKey="True" Content=""/>
+
+                            <Ellipse     Stroke="Gray" StrokeThickness="2"  
+                                         Fill="DarkGray"  />
+                            <Ellipse x:Name="Highlight"   Stroke="Gray" StrokeThickness="2"   
+                                     Fill="Lime"  />
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsChecked" Value="True">
+                                <Setter Property="Visibility" TargetName="Highlight" Value="Visible"/>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="False">
+                                <Setter Property="Visibility" TargetName="Highlight" Value="Collapsed"/>
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="False">
+                                <Setter Property="Opacity" TargetName="Highlight" Value="1"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+    </UserControl.Resources>
+    <Grid ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Visible"  >
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="480"/>
+            <ColumnDefinition Width="480"/>
+            <ColumnDefinition Width="500"/>
+            <ColumnDefinition Width="480"/>
+        </Grid.ColumnDefinitions>
+
+        <TabControl Grid.Column="0" Margin="20,0,0,0" >
+            <TabItem Header="DI">
+                <ListView ItemsSource="{Binding Path=DIs}" 
+                          Grid.Column="2" 
+                          AlternationCount="2"
+                          VerticalAlignment="Top"
+                          FontSize="12"
+                          Name="DIListView">
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn Width="30"
+                                        Header="Index"
+                                        DisplayMemberBinding="{Binding Path=Index}" />
+
+                            <GridViewColumn Width="250"
+                                        Header="Name"
+                                        DisplayMemberBinding="{Binding Path=Name}"  />
+
+                            <GridViewColumn Width="70"
+                                        Header="Address"
+                                        DisplayMemberBinding="{Binding Path=Address}"  />
+
+                            <GridViewColumn Width="50" Header="Status">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid Width="35">
+                                            <views:IoButton HorizontalAlignment="Center"
+                                                            ON="{Binding Path=BoolValue}"  Style="{StaticResource Lamp-Button}"  IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
+                                         >
+                                            </views:IoButton>
+                                        </Grid>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                            <GridViewColumn Width="50" Header="Hold">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" ></CheckBox>
+
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+
+
+
+                        </GridView>
+                    </ListView.View>
+                </ListView>
+            </TabItem>
+        </TabControl>
+        <TabControl Grid.Column="1" Margin="20,0,0,0">
+            <TabItem Header="DO">
+                <ListView ItemsSource="{Binding Path=DOs}" 
+                          Grid.Column="3" 
+                          AlternationCount="2"
+                          VerticalAlignment="Top"
+                          FontSize="12"
+                          Name="DOListView">
+
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn Width="30"
+                                        Header="Index"
+                                        DisplayMemberBinding="{Binding Path=Index}" />
+
+                            <GridViewColumn Width="250"
+                                        Header="Name"
+                                        DisplayMemberBinding="{Binding Path=Name}"  />
+
+                            <GridViewColumn Width="70"
+                                        Header="Address"
+                                        DisplayMemberBinding="{Binding Path=Address}"  />
+
+                            <GridViewColumn Width="50" Header="Status">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate >
+                                        <Grid Width="35">
+                                            <views:IoButton HorizontalAlignment="Center"
+                                                            ON="{Binding Path=BoolValue}"  Style="{StaticResource Lamp-Button}"  IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
+                                            </views:IoButton>
+                                        </Grid>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                            <GridViewColumn Width="50" Header="Hold">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" ></CheckBox>
+
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                </ListView>
+            </TabItem>
+        </TabControl>
+
+        <TabControl Grid.Column="2" Margin="15,0,0,0">
+            <TabItem Header="AI">
+                <ListView ItemsSource="{Binding Path=AIs}"
+                          AlternationCount="2"
+                          Name="AIListView"
+                          FontSize="12"
+                          VerticalAlignment="Top" >
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn Width="30"
+                                        Header="Index"
+                                        DisplayMemberBinding="{Binding Path=Index}" />
+
+                            <GridViewColumn Width="250"
+                                        Header="Name"
+                                        DisplayMemberBinding="{Binding Path=Name}"  />
+
+                            <GridViewColumn Width="70"
+                                        Header="Address"
+                                        DisplayMemberBinding="{Binding Path=Address}"  />
+                            <GridViewColumn Width="80" Header="Value">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate >
+                                        <toolkit:IntegerUpDown Text="{Binding Path=ShortValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="60"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                            <GridViewColumn Width="50" Header="Hold">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" ></CheckBox>
+
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                </ListView>
+            </TabItem>
+
+        </TabControl>
+        <TabControl Grid.Column="3" Margin="20,0,0,0">
+
+            <TabItem Header="AO">
+                <ListView ItemsSource="{Binding Path=AOs}"
+                          Grid.Column="1" 
+                          AlternationCount="2"
+                          FontSize="12"
+                          VerticalAlignment="Top"
+                          Name="AOListView">
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn Width="50"
+                                        Header="Index"
+                                        DisplayMemberBinding="{Binding Path=Index}" />
+
+                            <GridViewColumn Width="250"
+                                        Header="Name"
+                                        DisplayMemberBinding="{Binding Path=Name}"  />
+
+                            <GridViewColumn Width="70"
+                                        Header="Address"
+                                        DisplayMemberBinding="{Binding Path=Address}"  />
+ 
+                            <GridViewColumn Width="80" Header="Value">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate >
+                                        <toolkit:IntegerUpDown Text="{Binding Path=ShortValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="60"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                            <GridViewColumn Width="50" Header="Hold">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" ></CheckBox>
+
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                </ListView>
+            </TabItem>
+        </TabControl>
+
+    </Grid>
+</UserControl>

+ 39 - 0
Venus/Venus_Simulator/Views/SimulatorIoTMSEView.xaml.cs

@@ -0,0 +1,39 @@
+using System;
+using System.Collections.ObjectModel;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using Aitex.Common.Util;
+using Aitex.Core.UI.MVVM;
+using MECF.Framework.Common.IOCore;
+using Venus_Core;
+using Venus_Simulator.Instances;
+
+namespace Venus_Simulator.Views
+{
+    /// <summary>
+    /// IoView.xaml 的交互逻辑
+    /// </summary>
+    public partial class SimulatorIoTMSEView : UserControl
+    {
+        
+        public SimulatorIoTMSEView()
+        {
+            InitializeComponent();
+ 
+            DataContext = new IoViewModel(6832, "TMSE.PLC", PathManager.GetCfgDir() + $"_ioDefineVenusSE_MF.xml", "TMSE");
+            
+            this.IsVisibleChanged += IOView_IsVisibleChanged;
+        }
+
+        private void IOView_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
+        {
+            if (this.DataContext == null)
+            {
+            }
+            (DataContext as TimerViewModelBase).EnableTimer(IsVisible);
+        }
+
+    }
+}

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

@@ -21,13 +21,13 @@ namespace Venus_Simulator.Views
         public SimulatorIoTMView()
         {
             InitializeComponent();
-            int port = 6831;
-            if (SimulatorJetTM.CurrentTM==JetTMType.VenusSE)
-            {
-                port = 6832;
-            }
+
+            //if (SimulatorJetTM.CurrentTM==JetTMType.VenusSE)
+            //{
+            //    port = 6831;
+            //}
  
-            DataContext = new IoViewModel(port, "TM.PLC", PathManager.GetCfgDir() + $"_ioDefine{SimulatorJetTM.CurrentTM}_MF.xml", "TM");
+            DataContext = new IoViewModel(6831, "TM.PLC", PathManager.GetCfgDir() + $"_ioDefineVenus_MF.xml", "TM");
             
             this.IsVisibleChanged += IOView_IsVisibleChanged;
         }