瀏覽代碼

fixed the blocking bug while return wafers.

sangwq 6 月之前
父節點
當前提交
e12c5e5a93
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      Venus/Venus_RT/Modules/SystemDispatcher.cs

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

@@ -1673,7 +1673,7 @@ namespace Venus_RT.Modules
             if (systemWaferCount == 0)
                 return RState.End;
 
-            if(_qeWaitCoolingLLs.Count > 0 && _dictModuleTask[_qeWaitCoolingLLs.First()].IsIdle) 
+            if(_qeWaitCoolingLLs.Count > 0 && _dictModuleTask[_qeWaitCoolingLLs.First()].Scheduler.IsIdle && !IsLLReservedByEFEM(_qeWaitCoolingLLs.First()) && !IsLLReservedByTM(_qeWaitCoolingLLs.First())) 
             {
                 if ((_dictModuleTask[_qeWaitCoolingLLs.First()] as LoadlockTask).Cooling())
                 {
@@ -4912,7 +4912,7 @@ namespace Venus_RT.Modules
 
                     var nextModule = nextActions.First().Module;
 
-                    if (ModuleHelper.IsLoadLock(nextModule) && !_dictModuleTask[nextModule].IsIdle && _dictModuleTask[nextModule].Status != ModuleStatus.StartCooling)
+                    if (ModuleHelper.IsLoadLock(nextModule) && !_dictModuleTask[nextModule].Scheduler.IsIdle)
                         return;
 
                     _curEfemAction = _efemSchdActions.Dequeue();
@@ -4940,7 +4940,7 @@ namespace Venus_RT.Modules
 
                     var nextModule = nextActions.First().Module;
 
-                    if (ModuleHelper.IsLoadLock(nextModule) && !_dictModuleTask[nextModule].IsIdle)
+                    if (ModuleHelper.IsLoadLock(nextModule) && !_dictModuleTask[nextModule].Scheduler.IsIdle)
                         return;
 
                     var llActions = _curTmAction.Find(ac => ModuleHelper.IsLoadLock(ac.DestinationModule));