Browse Source

1. 修复低压下load不抢泵,且气压有上浮的问题
2. 增加TM PM Online控压下自动pump的功能
3. 增加run货模式下,一侧跑片完成后VCE自动Unload的流程
4. 去除原先越界报警的Alarm提示,原因是现cassette在位信号采用IO
5. 优化调度算法,主要包括增加cooling中缓存片的功能,增加
6. 取消每次Pin动作触发reset信号,导致的无法正常Home的问题

zhouhr 1 month ago
parent
commit
e7250ef836

+ 13 - 1
Mars/EfemDualRT/Equipments/Systems/EfemDualEquipment.cs

@@ -31,7 +31,9 @@ using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Rorze;
 using MECF.Framework.RT.ModuleLibrary.LLModules;
 using MECF.Framework.RT.ModuleLibrary.PMModules;
 using MECF.Framework.RT.ModuleLibrary.SystemModules;
+using MECF.Framework.RT.ModuleLibrary.VceModules;
 using SecsGem.Core.Application;
+using System;
 using System.Collections.Generic;
 
 namespace EfemDualRT.Equipments.Systems
@@ -99,6 +101,7 @@ namespace EfemDualRT.Equipments.Systems
                 case "TM":
                     Modules[ModuleHelper.Converter(obj.Source)]?.PostMsg(msg, obj.Id, obj.Description);
                     break;
+                case "TMRobot":
                 case "System":
                     Modules[ModuleName.TM]?.PostMsg(msg, obj.Id, obj.Description);
                     break;
@@ -110,7 +113,7 @@ namespace EfemDualRT.Equipments.Systems
 
             EV.PostInfoLog("System", $"VCEDualAutoTransfer now");
 
-            _auto = new VCEDualAutoTransfer(this);
+            _auto = new VCEDualAutoTransfer(this, ActionAfterJobDone);
 
             EV.PostInfoLog("System", $"VceDualManualTransfer now");
 
@@ -130,6 +133,15 @@ namespace EfemDualRT.Equipments.Systems
 
         }
 
+        private void ActionAfterJobDone(ModuleName target)
+        {
+            if (ModuleHelper.IsVCE(target))
+            {
+                OP.DoOperation($"{target}.SetOffline");
+                Modules[target].PostMsg(VceMSG.SafeUnload);
+            }
+        }
+
         protected override void InitDevices()
         {
 

File diff suppressed because it is too large
+ 483 - 298
Mars/EfemDualSchedulerLib/VCEDualAutoTransfer.cs


+ 2 - 0
Mars/EfemDualSimulator/Views/Simu_HongHuVTMRobotView.xaml.cs

@@ -261,6 +261,8 @@ namespace EfemDualSimulator.Views
             {2,3},
             {3,4},
             {4,5},
+            {10,6},
+            {11,6},
             {12,6},
             {13,8},
         };

+ 1 - 1
Mars/JetMainframe/Devices/HongHuTM.cs

@@ -585,7 +585,7 @@ namespace JetMainframe.Devices
                 case ModuleName.VCEB:
                     return _RightVCESoftPumpValve.TurnValve(isOpen, out reason);
                 default:
-                    reason = $"{mod} Fast Pump valve is not exist!";
+                    reason = $"{mod} soft Pump valve is not exist!";
                     return false;
             }
         }

+ 1 - 1
Mars/JetMainframe/Devices/HongHuVCE.cs

@@ -580,7 +580,7 @@ namespace JetMainframe.Devices
             }
             catch (Exception ex)
             {
-                EV.PostAlarmLog(_moduleName.ToString(), $"解析cassette状态非法,{ex.Message}");
+                //EV.PostAlarmLog(_moduleName.ToString(), $"解析cassette状态非法,{ex.Message}");
             }
         }
 

+ 1 - 5
Mars/JetMainframe/TMs/TM/MFPumpRoutine.cs

@@ -92,11 +92,7 @@ namespace JetMainframe.TMs.TM
 
         private bool WaitPump()
         {
-            if (!IsPressureReady())
-            {
-                return _TM.TryGetPump(_module);
-            }
-            return true;
+            return _TM.TryGetPump(_module);
         }
 
         private bool OpenSoftPump()

+ 34 - 28
Mars/JetMainframe/TMs/TM/TMEntity.cs

@@ -790,18 +790,33 @@ namespace JetMainframe.TMs.TM
                     }
                     else 
                     {
-                        if (!_tm.CheckFastPumpValveIsOpen(ModuleName.TM))
+                        if (_tm.GetModulePressure(ModuleName.TM) > SC.GetValue<double>("TM.PumpCrossingPressure"))
                         {
-                            if (!_delay_pump.IsRunning)
+                            if (!_tm.CheckSoftPumpValveIsOpen(ModuleName.TM))
                             {
-                                _delay_pump.Restart();
+                                _tm.SetSlowPumpValve(ModuleName.TM, true, out _);
+                                firstonffline = true;
                             }
-                            if (_delay_pump.ElapsedMilliseconds >= 1000)
+                        }
+                        else
+                        {
+                            if (_tm.CheckSoftPumpValveIsOpen(ModuleName.TM))
                             {
-                                _tm.SetFastPumpValve(ModuleName.TM, true, out _);
-                                _delay_pump.Stop();
-                                firstonffline = true;
-                                _delay_pump.Stop();
+                                _tm.SetSlowPumpValve(ModuleName.TM, false, out _);
+                            }
+
+                            if (!_tm.CheckFastPumpValveIsOpen(ModuleName.TM))
+                            {
+                                if (!_delay_pump.IsRunning)
+                                {
+                                    _delay_pump.Restart();
+                                }
+                                if (_delay_pump.ElapsedMilliseconds >= 1000)
+                                {
+                                    _tm.SetFastPumpValve(ModuleName.TM, true, out _);
+                                    _delay_pump.Stop();
+                                    firstonffline = true;
+                                }
                             }
                         }
                     }
@@ -815,9 +830,10 @@ namespace JetMainframe.TMs.TM
                     }
                     else
                     {
+                        if (_tm.CheckSoftPumpValveIsOpen(ModuleName.TM))
+                            _tm.SetSlowPumpValve(ModuleName.TM, false, out _);
                         if (_tm.CheckFastPumpValveIsOpen(ModuleName.TM))
                             _tm.SetFastPumpValve(ModuleName.TM, false, out _);
-                        //firstonffline = true;
                     }
                 }
                 
@@ -834,10 +850,15 @@ namespace JetMainframe.TMs.TM
                 {
                     if (firstonffline)
                     {
-                        _tm.SetFastPumpValve(ModuleName.TM, false, out _);
+                        if (_tm.CheckFastPumpValveIsOpen(ModuleName.TM))
+                            _tm.SetFastPumpValve(ModuleName.TM, false, out _);
+                        if (_tm.CheckSoftPumpValveIsOpen(ModuleName.TM))
+                            _tm.SetSlowPumpValve(ModuleName.TM, false, out _);
 
                         if (SC.GetValue<bool>("TM.PressureControl.ControlWriteMode"))
                             SC.SetItemValue("TM.PressureControl.ControlWriteMode", true);
+                        if(_delay_pump.IsRunning)
+                            _delay_pump.Stop();
                         firstonffline = false;
                     }
                 }
@@ -846,28 +867,13 @@ namespace JetMainframe.TMs.TM
                 {
                     if(_tm.CheckFastPumpValveIsOpen(ModuleName.TM))
                         _tm.SetFastPumpValve(ModuleName.TM, false, out _);
+                    if (_tm.CheckSoftPumpValveIsOpen(ModuleName.TM))
+                        _tm.SetSlowPumpValve(ModuleName.TM, false, out _);
                     InitClosePump = false;
                 }
 
             }
-
-            //if (IsOnline && _tm.PumpUseState == PumpState.Idle)
-            //{
-            //    // control pressure not start
-            //    if (SC.GetValue<bool>("TM.PressureControl.ControlWriteMode"))
-            //    {
-            //        //start control Pressure
-            //        SC.SetItemValue("TM.PressureControl.ControlWriteMode", false);
-            //    }
-            //}
-            //else
-            //{
-            //    if (!SC.GetValue<bool>("TM.PressureControl.ControlWriteMode"))
-            //    {
-            //        //end control Pressure
-            //        SC.SetItemValue("TM.PressureControl.ControlWriteMode", true);
-            //    }
-            //}
+            
 
             return true;
         }