|
@@ -2272,12 +2272,23 @@ namespace Venus_RT.Modules
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 有两片processed wafer 时且, 不需要align wafer 时, 不要预期
|
|
|
- if((atmWaferCount == 0 && (outLLWaferStatus.outSlot.Count() < 2 || _lstWaferTasks.Exists(wt => ModuleHelper.IsLoadPort(wt.currentMod) && !wt.IsAligned))) ||
|
|
|
- (atmWaferCount == 1 && inLLWaferStatus.emptySlot.Count == 2 && _efemRobotSingleArmOption == 0 && (outLLWaferStatus.outSlot.Count < 2 || _dictModuleTask[outLL].TimeToReady > 20)))
|
|
|
+ // need pass by aligner
|
|
|
+ if(_lstProcessJobs.Exists(pj => pj.State == EnumProcessJobState.Processing && IsSequenceNeedAlign(pj.Sequence)))
|
|
|
{
|
|
|
- if (ForwardATMWafers(inLL))
|
|
|
- return;
|
|
|
+ if (atmWaferCount == 0 || (atmWaferCount == 1 && inLLWaferStatus.emptySlot.Count == 2 && _efemRobotSingleArmOption == 0 && (outLLWaferStatus.outSlot.Count < 2)))
|
|
|
+ {
|
|
|
+ if (ForwardATMWafers(inLL))
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // don need pass by aligner
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (_lstWaferTasks.Count(wt => wt.currentMod == outLL || (wt.currentMod == ModuleName.TMRobot && ModuleHelper.IsLoadPort(wt.destMod))) == 0 && _lstWaferTasks.Count(wt => wt.currentMod == inLL || wt.currentMod == ModuleName.EfemRobot) < (_efemRobotSingleArmOption == 0 ? 2 : 1))
|
|
|
+ {
|
|
|
+ if (ForwardATMWafers(inLL))
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if((inLLWaferStatus.emptySlot.Count == 2 || (inLLWaferStatus.emptySlot.Count == 1 && _efemRobotSingleArmOption != 0) && _dictModuleTask[inLL].TimeToReady < 2))
|