|
@@ -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))
|
|
|
{
|