|
@@ -1352,6 +1352,9 @@ namespace Venus_RT.Modules
|
|
|
if (ModuleHelper.IsLoadPort(mod.Key))
|
|
|
continue;
|
|
|
|
|
|
+ if (!mod.Value.Scheduler.IsInclude)
|
|
|
+ continue;
|
|
|
+
|
|
|
if (!mod.Value.Scheduler.IsIdle)
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_ROUTER, mod.Key, $"{mod.Key} is not ready for return wafer.");
|
|
@@ -1389,7 +1392,7 @@ namespace Venus_RT.Modules
|
|
|
int systemWaferCount = 0;
|
|
|
foreach (var mod in _dictModuleTask)
|
|
|
{
|
|
|
- if (ModuleHelper.IsLoadPort(mod.Key))
|
|
|
+ if (ModuleHelper.IsLoadPort(mod.Key) || !mod.Value.Scheduler.IsInclude)
|
|
|
continue;
|
|
|
|
|
|
int nSlotNumber = ModuleHelper.IsLoadLock(mod.Key) ? (mod.Key == ModuleName.LLA ? _LLASlotNumber : _LLBSlotNumber) : (ModuleHelper.IsTMRobot(mod.Key) || ModuleHelper.IsEFEMRobot(mod.Key) ? 2 : 1);
|
|
@@ -4139,7 +4142,7 @@ namespace Venus_RT.Modules
|
|
|
if (_tmRobotStatus != RState.End)
|
|
|
return;
|
|
|
var hands = GetTMFreeHand();
|
|
|
- var lls = _dictModuleTask.Where(mod => ModuleHelper.IsLoadLock(mod.Key) && !IsLLReservedByEFEM(mod.Key) && mod.Value.Scheduler.IsIdle && GetLLWaferExistance(mod.Key).emptySlots.Count > 0).OrderByDescending(mod => GetLLReadyInOutSlots(mod.Key).emptySlot.Count);
|
|
|
+ var lls = _dictModuleTask.Where(mod => ModuleHelper.IsLoadLock(mod.Key) && !IsLLReservedByEFEM(mod.Key) && mod.Value.Scheduler.IsIdle && mod.Value.Scheduler.IsInclude && GetLLWaferExistance(mod.Key).emptySlots.Count > 0).OrderByDescending(mod => GetLLReadyInOutSlots(mod.Key).emptySlot.Count);
|
|
|
if(lls.Count() > 0)
|
|
|
{
|
|
|
// return robot wafers
|
|
@@ -4164,7 +4167,7 @@ namespace Venus_RT.Modules
|
|
|
|
|
|
// return PM wafers
|
|
|
var PickActions = new List<MoveItem>();
|
|
|
- var hasWaferPMs = _dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && mod.Value.Scheduler.IsIdle && WaferManager.Instance.CheckHasWafer(mod.Key, 0));
|
|
|
+ var hasWaferPMs = _dictModuleTask.Where(mod => ModuleHelper.IsPm(mod.Key) && mod.Value.Scheduler.IsIdle && mod.Value.Scheduler.IsInclude && WaferManager.Instance.CheckHasWafer(mod.Key, 0));
|
|
|
foreach(var pm in hasWaferPMs)
|
|
|
{
|
|
|
if (moveCount < hands.Count && moveCount < emptySlots.Count)
|