|
@@ -2134,9 +2134,10 @@ namespace Venus_RT.Modules
|
|
|
}
|
|
|
|
|
|
|
|
|
- var atmWaferCount = _lstWaferTasks.Count(wt => ModuleHelper.IsPm(wt.destMod) && (ModuleHelper.IsLoadPort(wt.currentMod) || ModuleHelper.IsAligner(wt.currentMod) || ModuleHelper.IsEFEMRobot(wt.currentMod)));
|
|
|
+ var atmWaferCount = _lstWaferTasks.Count(wt => ModuleHelper.IsPm(wt.destMod) && (ModuleHelper.IsLoadPort(wt.currentMod) || ModuleHelper.IsAligner(wt.currentMod) || ModuleHelper.IsEFEMRobot(wt.currentMod) || ModuleHelper.IsLoadLock(wt.currentMod)));
|
|
|
if (atmWaferCount < 2)
|
|
|
{
|
|
|
+ var busyPMs = oderedPMs.Where(pv => pv.Value == 1 && _dictModuleTask[pv.Key].HasWafer).OrderBy(pv => _dictModuleTask[pv.Key].TimeToReady);
|
|
|
foreach (var runningJob in runningJobs)
|
|
|
{
|
|
|
foreach (var wafer in runningJob.LotWafers)
|
|
@@ -2144,9 +2145,9 @@ namespace Venus_RT.Modules
|
|
|
if (wafer.IsEmpty || wafer.ProcessJob == null)
|
|
|
continue;
|
|
|
|
|
|
- if (wafer.ProcessJob.Sequence.PMs.Contains(oderedPMs.First().Key) && wafer.NextSequenceStep == 0 && !_lstWaferTasks.Exists(task => task.sourceMod == (ModuleName)wafer.OriginStation && task.sourceSlot == wafer.OriginSlot))
|
|
|
+ if (wafer.ProcessJob.Sequence.PMs.Contains(busyPMs.First().Key) && wafer.NextSequenceStep == 0 && !_lstWaferTasks.Exists(task => task.sourceMod == (ModuleName)wafer.OriginStation && task.sourceSlot == wafer.OriginSlot))
|
|
|
{
|
|
|
- CreateWaferTasks(wafer, oderedPMs.First().Key);
|
|
|
+ CreateWaferTasks(wafer, busyPMs.First().Key);
|
|
|
return;
|
|
|
}
|
|
|
}
|