Browse Source

solve errors in TMRobot Action&& update Serial ports in simulator

Intern01 1 year ago
parent
commit
261ef38430

+ 12 - 5
Venus/Venus_RT/Config/System.sccfg

@@ -205,6 +205,13 @@
 		<config default="300" name="LeakCheckWaitTime" description="Leak Check Wait Time" max="7200" min="0" paramter="" tag="" unit="second" type="Integer" />
 		<config default="30" name="LeakRate" description="Leak Rate" max="756000" min="0" paramter="" tag="" unit="mTorrPerMin" type="Double" />
 		<config default="4" name="SlotNumber" nameView="Slot number"  description="槽位个数" max="60" min="1" paramter="" tag="" unit="" type="Integer" />
+    <configs name="DryPump" nameView="Dry Pump" >
+      <config default="1" name="MFG" nameView="MFG" description="厂商, 1:Sky; 2:Edwards" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+      <config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+      <config default="COM26" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
+      <config default="1000" name="ChamberForelinePressureThreshold" nameView="Chamber Foreline Pressure Threshold" description="" max="10000" min="0" paramter="" tag="" unit="mtorr" type="Double" />
+      <config default="20" name="ChamberForelinePressureTimeout" nameView="Chamber Foreline Pressure Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
+    </configs>
 	</configs>
 
 	<!--PMA-->
@@ -1155,10 +1162,10 @@
 			<config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
 		</configs>
 		<configs name="ElectrostaticVoltageSource" nameView="Electrostatic Voltage Source">
-			<config default="COM48" name="Port" nameView="Port" description="serial port name of ElectrostaticVoltageSource" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="COM82" name="Port" nameView="Port" description="serial port name of ElectrostaticVoltageSource" max="" min="" paramter="" tag="" unit="" type="String" />
 		</configs>
 		<configs name="TurboPump" nameView="Turbo Pump">
-			<config default="COM2" name="Port" nameView="Port" description="serial port name of TurboPump" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="COM8" name="Port" nameView="Port" description="serial port name of TurboPump" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="500" name="ChamberForelinePressureThreshold" nameView="Chamber Foreline Pressure Threshold" description="" max="10000" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 			<config default="30" name="ChamberForelinePressureTimeout" nameView="Chamber Foreline Pressure Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		</configs>
@@ -1793,7 +1800,7 @@
     <configs name="Rf" nameView="Source RF" >
       <config default="1" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
       <config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-      <config default="COM41" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
+      <config default="COM50" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
       <config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="RF IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
       <config default="500" name="PowerAlarmRange" nameView="Power Alarm Range" description="" max="1000" min="0" paramter="" tag="" unit="" type="Double" />
       <config default="10" name="PowerAlarmTime" nameView="Power Alarm Time" description="" max="10" min="0" paramter="" tag="" unit="" type="Double" />
@@ -2127,7 +2134,7 @@
       <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
     <configs name="ElectrostaticVoltageSource" nameView="Electrostatic Voltage Source">
-      <config default="COM53" name="Port" nameView="Port" description="serial port name of ElectrostaticVoltageSource" max="" min="" paramter="" tag="" unit="" type="String" />
+      <config default="COM56" name="Port" nameView="Port" description="serial port name of ElectrostaticVoltageSource" max="" min="" paramter="" tag="" unit="" type="String" />
     </configs>
     <configs name="TurboPump" nameView="Turbo Pump">
       <config default="COM5" name="Port" nameView="Port" description="serial port name of TurboPump" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -2135,7 +2142,7 @@
       <config default="30" name="ChamberForelinePressureTimeout" nameView="Chamber Foreline Pressure Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
     </configs>
     <configs name="PendulumValve" nameView="Pendulum Valve">
-      <config default="COM57" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
+      <config default="COM80" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
       <config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="100000" min="0" paramter="" tag="" unit="mtorr" type="Integer" />
     </configs>
 

+ 1 - 1
Venus/Venus_RT/Devices/AdTecRF.cs

@@ -830,7 +830,7 @@ namespace Venus_RT.Devices
         public override void SetMatchPosition(float c1, float c2, out string reason)
         {
 
-            LOG.Write(eEvent.WARN_RF, Module, $"AdTec Match error [{c1}, {c2}]");
+            //LOG.Write(eEvent.WARN_RF, Module, $"AdTec Match error [{c1}, {c2}]");
 
             base.SetMatchPosition(c1, c2, out reason);
 

+ 1 - 0
Venus/Venus_RT/Devices/EFEM/JetEfem.cs

@@ -799,6 +799,7 @@ namespace Venus_RT.Devices.EFEM
                         {
                             _LPMs[0].OnHomed();
                             _LPMs[1].OnHomed();
+                            _LPMs[2].OnHomed();
                         }
                         else if(ModuleHelper.IsLoadPort(_currentMsg.Port))
                         {

+ 49 - 1
Venus/Venus_RT/Devices/TM/JetTM.cs

@@ -21,6 +21,7 @@ using Aitex.Core.RT.OperationCenter;
 using MECF.Framework.Common.SubstrateTrackings;
 
 using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;
+using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadLocks;
 using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
 
 namespace Venus_RT.Devices
@@ -637,9 +638,52 @@ namespace Venus_RT.Devices
 
             return true;
         }
+        private bool CheckRobotNotExtendSensor(ModuleName ll, bool open, bool bTMDoor, out string reason)
+        {
+            string action = open ? "Open" : "Close";
+            string doorName = bTMDoor ? "TM" : "EFEM";
+            if (ll == ModuleName.LLA)
+            {
+                if (!_TMRobotNotExtendLLA.Value)
+                {
+                    reason = $"TM Robot Not Extend to {ll} is false, can not {action} {doorName} slit door";
+                    LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                    return false;
+                }
+
+                if (!_EfemRobotNotExtendLLA.Value)
+                {
+                    reason = $"EFEM Robot Not Extend to {ll} is false, can not {action} {doorName} slit door";
+                    LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                    return false;
+                }
+            }
+            else
+            {
+                if (!_TMRobotNotExtendLLB.Value)
+                {
+                    reason = $"TM Robot Not Extend to {ll} is false, can not {action} {doorName} slit door";
+                    LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                    return false;
+                }
 
+                if (!_EfemRobotNotExtendLLB.Value)
+                {
+                    reason = $"EFEM Robot Not Extend to {ll} is false, can not {action} {doorName} slit door";
+                    LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                    return false;
+                }
+            }
+
+            reason = "";
+            return true;
+        }
         public bool TurnMFSlitDoor(ModuleName loadlock, bool open, out string reason)
         {
+            if (!CheckRobotNotExtendSensor(loadlock, open, true, out reason))
+
+                return false;
+
             if (open)
             {
                 if (_isATMMode)
@@ -694,7 +738,11 @@ namespace Venus_RT.Devices
 
         public bool TurnEFEMSlitDoor(ModuleName loadlock, bool open, out string reason)
         {
-            if(open && !IsModuleATM(loadlock))
+            if (!CheckRobotNotExtendSensor(loadlock, open, false, out reason))
+
+                return false;
+
+            if (open && !IsModuleATM(loadlock))
             {
                 reason = $"{loadlock} is not ATM, can not open EFEM side slit door";
                 LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);

+ 6 - 3
Venus/Venus_RT/Devices/TM/SIASUNRobot.cs

@@ -46,7 +46,7 @@ namespace Venus_RT.Devices
         private readonly int _checkLoadStation = 1;
         private RobotMoveInfo _robotMoveInfo = new RobotMoveInfo();
 
-        private string Hand2Arm(Hand hand) => hand == Hand.Blade1 ? "A" : "B";
+        private string Hand2Arm(Hand hand) => hand == Hand.Blade1 ? "B" : "A";
 
         private readonly Regex _rex_check_load = new Regex(@"LOAD\s+(A|B)\s+(\w+)\s*");
         private readonly Regex _rex_error_code = new Regex(@"_ERR\s+(\d+)\s*");
@@ -227,13 +227,15 @@ namespace Venus_RT.Devices
                 case OPStep.PlaceExtent:
                 case OPStep.PlaceRetract:
                     {
-                        if (RevMsg.Trim() == "_RDY")
+                        if (RevMsg.Trim() == "_RDY" || ( RevMsg.Contains("_RDY") && !RevMsg.Contains("_ERR")))
                         {
                             _currentOP = OPStep.Idle;
                             _status = RState.End;
                         }
                         else
+                        {
                             ReportWrongMsg(RevMsg);
+                        }   
 
                         if (_currentOP != OPStep.PickExtend && _currentOP != OPStep.PlaceExtent)
                             SetRobotMovingInfo(RobotAction.None, Hand.Both, ModuleName.TMRobot);
@@ -278,7 +280,8 @@ namespace Venus_RT.Devices
                     }
                     break;
                 default:
-                    ReportWrongMsg(RevMsg);
+                    if (!RevMsg.Contains("_EVENT"))
+                        ReportWrongMsg(RevMsg);
                     break;
             }
         }

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

@@ -39,6 +39,7 @@
 	  <SubView Id="AdTecMatchPMB" Name="AdTecMatchPMB" ViewClass="Venus_Simulator.Views.SimuAdTecMatchPMBView" Assembly="Venus_Simulator" />
     <SubView Id="TurboPumpPMB" Name="Turbo Pump" ViewClass="Venus_Simulator.Views.SimuTurboPumpPMBView" Assembly="Venus_Simulator" />
     <SubView Id="PendulumValvePMA" Name="Pendulum Valve" ViewClass="Venus_Simulator.Views.SimuPendulumPMBView" Assembly="Venus_Simulator" />
+    <SubView Id="ESCHVPMA" Name="ESC HV Pump" ViewClass="Venus_Simulator.Views.simuESCHVPMBView" Assembly="Venus_Simulator" />
 	  <SubView Id="SMCChillerPMB" Name="SMCChillerPMB" ViewClass="Venus_Simulator.Views.SimuSMCChillerPMBView" Assembly="Venus_Simulator" />
 	  <SubView Id="SMCChillerGridPMB" Name="Grid Chiller" ViewClass="Venus_Simulator.Views.SimuSMCChillerGridPMBView" Assembly="Venus_Simulator" />
 
@@ -53,6 +54,7 @@
     <SubView Id="AdTecMatchPMC" Name="AdTecMatchPMC" ViewClass="Venus_Simulator.Views.SimuAdTecMatchPMCView" Assembly="Venus_Simulator" />
     <SubView Id="TurboPumpPMC" Name="Turbo Pump" ViewClass="Venus_Simulator.Views.SimuTurboPumpPMCView" Assembly="Venus_Simulator" />
     <SubView Id="PendulumValvePMC" Name="Pendulum Valve" ViewClass="Venus_Simulator.Views.SimuPendulumPMCView" Assembly="Venus_Simulator" />
+    <SubView Id="ESCHVPMA" Name="ESC HV Pump" ViewClass="Venus_Simulator.Views.simuESCHVPMCView" Assembly="Venus_Simulator" />
     <SubView Id="SMCChillerPMC" Name="SMCChillerPMC" ViewClass="Venus_Simulator.Views.SimuSMCChillerPMCView" Assembly="Venus_Simulator" />
     <SubView Id="SMCChillerGridPMC" Name="Grid Chiller" ViewClass="Venus_Simulator.Views.SimuSMCChillerGridPMCView" Assembly="Venus_Simulator"/>
   </Navigation>
@@ -65,6 +67,7 @@
     <SubView Id="AdTecRFGPMD" Name="AdTecRFGPMD" ViewClass="Venus_Simulator.Views.SimuAdTecGeneratorPMDView" Assembly="Venus_Simulator"/>
     <SubView Id="AdTecMatchPMD" Name="AdTecMatchPMD" ViewClass="Venus_Simulator.Views.SimuAdTecMatchPMDView" Assembly="Venus_Simulator" />
     <SubView Id="TurboPumpPMD" Name="Turbo Pump" ViewClass="Venus_Simulator.Views.SimuTurboPumpPMDView" Assembly="Venus_Simulator" />
+    <SubView Id="ESCHVPMA" Name="ESC HV Pump" ViewClass="Venus_Simulator.Views.simuESCHVPMDView" Assembly="Venus_Simulator" />
     <SubView Id="PendulumValvePMD" Name="Pendulum Valve" ViewClass="Venus_Simulator.Views.SimuPendulumPMDView" Assembly="Venus_Simulator" />
     <SubView Id="SMCChillerPMD" Name="SMCChillerPMD" ViewClass="Venus_Simulator.Views.SimuSMCChillerPMDView" Assembly="Venus_Simulator" />
     <SubView Id="SMCChillerGridPMD" Name="Grid Chiller" ViewClass="Venus_Simulator.Views.SimuSMCChillerGridPMDView" Assembly="Venus_Simulator"/>

+ 1 - 1
Venus/Venus_Simulator/Devices/AdTecGeneratorMockPMD.cs

@@ -17,7 +17,7 @@ namespace Venus_Simulator.Devices
         public static GeneratorStatus _simGeneratorStatus;
         private const string EOF = "\r";
         private const char MSG_DELIMITER = '_';
-        private const string MOCKUP_PORT = "COM42";
+        private const string MOCKUP_PORT = "COM49";
 
     
         public AdTecGeneratorMockPMD() : base(MOCKUP_PORT, -1, EOF, MSG_DELIMITER)

+ 1 - 1
Venus/Venus_Simulator/Devices/ESCHVMockPMB.cs

@@ -16,7 +16,7 @@ namespace Venus_Simulator.Devices
 
         private const string EOF = "\r";
         private const char MSG_DELIMITER = '_';
-        private const string MOCKUP_PORT = "COM47";
+        private const string MOCKUP_PORT = "COM81";
         private int _voltage = 120;
         private int _current_limit = 20;
         private int _up_ramp_time = 0;

+ 1 - 1
Venus/Venus_Simulator/Devices/ESCHVMockPMD.cs

@@ -16,7 +16,7 @@ namespace Venus_Simulator.Devices
 
         private const string EOF = "\r";
         private const char MSG_DELIMITER = '_';
-        private const string MOCKUP_PORT = "COM54";
+        private const string MOCKUP_PORT = "COM55";
         private int _voltage = 120;
         private int _current_limit = 20;
         private int _up_ramp_time = 0;

+ 1 - 1
Venus/Venus_Simulator/Devices/PendulumValveMockPMD.cs

@@ -15,7 +15,7 @@ namespace Venus_Simulator.Devices
 
         private const string EOF = "\r";
         private const char MSG_DELIMITER = '_';
-        private const string MOCKUP_PORT = "COM58";
+        private const string MOCKUP_PORT = "COM79";
         private int _pressure = 120;
         private int _position = 500;
         private bool _bHold = false;

+ 1 - 1
Venus/Venus_Simulator/Devices/TurboPumpMockPMB.cs

@@ -40,7 +40,7 @@ namespace Venus_Simulator.Devices
 
         private const string EOF = "\r";
         private const char MSG_DELIMITER = '_';
-        private const string MOCKUP_PORT = "COM1";
+        private const string MOCKUP_PORT = "COM7";
 
         private int _speed = 200;
         private int _temperature = 80;

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

@@ -23,9 +23,9 @@ namespace Venus_Simulator.Views
             get { return "AIRSYS Chiller PMB simulator"; }
         }
 
-        public MockAIRSYSChillerViewModelPMB() : base("AIRSYSChillerPMBSimulator")
+        public MockAIRSYSChillerViewModelPMB() : base("AIRSYSCh illerPMBSimulator")
         {
-            Init(new AIRSYSChillerMock("COM49"));
+            Init(new AIRSYSChillerMock("COM98"));
         }
     }
 }

+ 3 - 3
Venus/Venus_Simulator/Views/SimuPendulumValvePMDView.xaml.cs

@@ -18,12 +18,12 @@ namespace Venus_Simulator.Views
     {
         public string Title
         {
-            get { return "Pendulum Valve PMB simulator"; }
+            get { return "Pendulum Valve PMD simulator"; }
         }
 
-        public MockPendulumViewModelPMD() : base("PendulumPMBSimulator")
+        public MockPendulumViewModelPMD() : base("PendulumPMDSimulator")
         {
-            Init(new PendulumValveMockPMB());
+            Init(new PendulumValveMockPMD());
         }
     }
 }

+ 1 - 1
Venus/Venus_Simulator/Views/SimuSMCChillerGridPMBView.xaml.cs

@@ -25,7 +25,7 @@ namespace Venus_Simulator.Views
 
         public MockSMCChillerGridViewModelPMB() : base("SkyPumpPMBSimulator")
         {
-            Init(new SMCChillerMock("COM55"));
+            Init(new SMCChillerMock("COM45"));
         }
     }
 }