Browse Source

Manual return PM wafer function while error happen.

sangwq 10 months ago
parent
commit
1f85177a1a
1 changed files with 3 additions and 4 deletions
  1. 3 4
      Venus/Venus_RT/Modules/SystemDispatcher.cs

+ 3 - 4
Venus/Venus_RT/Modules/SystemDispatcher.cs

@@ -3252,7 +3252,7 @@ namespace Venus_RT.Modules
         private bool ManaulReturnPMWafer()
         {
             var mReturnWafer = _qeReturnWafers.Peek();
-            if (ModuleHelper.IsPm((ModuleName)mReturnWafer.Station))
+            if (ModuleHelper.IsPm((ModuleName)mReturnWafer.Station) && _lstWaferTasks.Count(wt => ModuleHelper.IsTMRobot(wt.currentMod)) == 0)
             {
                 var hands = GetTMValidFreeHands(_lstWaferTasks.Where(wt => ModuleHelper.IsTMRobot(wt.currentMod)).ToList(), new List<MoveItem>());
                 var waferTask = _lstWaferTasks.Find(wt => wt.currentMod == (ModuleName)mReturnWafer.Station && wt.waferId == mReturnWafer.InnerId);
@@ -3263,7 +3263,6 @@ namespace Venus_RT.Modules
                     if (outLL.Count() > 0)
                     {
                         var slot = GetLLReadyInOutSlots(outLL.First().Key).emptySlot.First();
-                        waferTask.RouteTo(outLL.First().Key, slot);
                         _tmSchdActions.Enqueue(new List<MoveItem> { new MoveItem(waferTask.currentMod, 0, ModuleName.TMRobot, (int)hands.First(), hands.First()) });
                         _tmSchdActions.Enqueue(new List<MoveItem> { new MoveItem(ModuleName.TMRobot, (int)hands.First(), outLL.First().Key, slot, hands.First()) });
                         _qeReturnWafers.Dequeue();
@@ -3330,7 +3329,7 @@ namespace Venus_RT.Modules
                     {
                         if(_specialRoutingPattern == SpecialRoutingPattern.LongTimeRecipe && freeHands.Count == 2)
                         {
-                             if(_dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && !mod.Value.HasWafer).Count() == 0)
+                             if(_dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && !mod.Value.HasWafer && mod.Value.Scheduler.IsOnline).Count() == 0)
                             {
                                 var readyOutPMs = _dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && mod.Value.HasWafer && mod.Value.TimeToReady < 25).OrderBy(mod => mod.Value.TimeToReady).ToList();
                                 if(readyOutPMs.Count > 0 && inLLModule.ReayForTMInTime(5) && _lstWaferTasks.Exists(wt => wt.currentMod == inLL && readyOutPMs.Exists(kv => kv.Key == wt.destMod)))
@@ -3415,7 +3414,7 @@ namespace Venus_RT.Modules
                     {
                         if (_specialRoutingPattern == SpecialRoutingPattern.LongTimeRecipe && _tmRobotSingleArmOption == 0)
                         {
-                            if(_dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && !mod.Value.HasWafer).Count() == 0)
+                            if(_dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && !mod.Value.HasWafer && mod.Value.Scheduler.IsOnline).Count() == 0)
                             {
                                 if (ModuleHelper.IsLoadPort(robotWafers[0].destMod))
                                 {