Browse Source

Enhance Venus routing algorithm for clean task.

sangwq 9 months ago
parent
commit
a81c73cdbf
1 changed files with 9 additions and 4 deletions
  1. 9 4
      Venus/Venus_RT/Modules/VenusDispatcher.cs

+ 9 - 4
Venus/Venus_RT/Modules/VenusDispatcher.cs

@@ -383,6 +383,11 @@ namespace Venus_RT.Modules
             return Status == ModuleStatus.Idle && (_runingWaferTask.Key == Guid.Empty || _runingWaferTask.Value.Count == 0) && _pendingWaferTasks.Count == 0;
         }
 
+        public bool IsRecipeJobDone(RecipeJobType job)
+        {
+            return (_runingWaferTask.Key == Guid.Empty || !_runingWaferTask.Value.ToList().Exists(kv => kv.Key == job)) && (_pendingWaferTasks.Count == 0 || !_pendingWaferTasks.ToList().Exists(kv => kv.Value.Count > 0 && kv.Value.ToList().Exists(kvv => kvv.Key == job)));
+        }
+
         public override void ResetTask()
         {
             base.ResetTask();
@@ -1867,8 +1872,8 @@ namespace Venus_RT.Modules
             var pms = GetWaitPreCleanPMsByCtrlJob(cj);
             foreach (var pm in pms)
             {
-                var pmTask = _dictModuleTask[pm] as PMTask;
-                if (pmTask.Scheduler.IsOnline && !pmTask.IsPreJobCleanDone())
+                var pmTask = _dictModuleTask[pm] as VenusPMTask;
+                if (pmTask.Scheduler.IsOnline && !pmTask.IsRecipeJobDone(VenusPMTask.RecipeJobType.PreClean))
                     return false;
             }
 
@@ -1880,8 +1885,8 @@ namespace Venus_RT.Modules
             var pms = GetWaitPreCleanPMsByCtrlJob(cj);
             foreach (var pm in pms)
             {
-                var pmTask = _dictModuleTask[pm] as PMTask;
-                if (pmTask.Scheduler.IsOnline && !pmTask.IsPostJobCleanDone())
+                var pmTask = _dictModuleTask[pm] as VenusPMTask;
+                if (pmTask.Scheduler.IsOnline && !pmTask.IsRecipeJobDone(VenusPMTask.RecipeJobType.PostClean))
                     return false;
             }