SchedulerLoadLock中增加Wafer Place以后的Purge标记。

This commit is contained in:
DESKTOP-GPE37UV\THINKAPD 2022-11-17 10:31:18 +08:00
parent 054542eb66
commit 6574353eb6
2 changed files with 16 additions and 19 deletions

View File

@ -1654,16 +1654,7 @@ namespace SicRT.Modules
return; return;
} }
// 如果Sequence的下一步是Load腔则进行吹扫 if (_load.HasPurgedAfterGrouped == false)
/*if (_load.CheckWaferNextStepIsThis(ModuleName.LoadLock, 0) && !_unload.IsInPumping && !_tmRobot.IsInPumping)
{
// Group以后执行吹扫动作
_load.Purge(_load.GetWaferPurgeCount(0), _load.GetWaferPumpDelayTime(0));
_load.GetWaferInfo(0).NextSequenceStep++;
return;
}*/
if (_load.HasPurged == false)
return; return;
// 有Wafer和石墨盘等待TM来取 // 有Wafer和石墨盘等待TM来取
@ -1993,7 +1984,7 @@ namespace SicRT.Modules
if (canPlace) if (canPlace)
{ {
// TMRobot向Load喂Tray时如果Wafer还未Purge先Purge // TMRobot向Load喂Tray时如果Wafer还未Purge先Purge
if (_load.HasPurged == false) if (_load.HasPurgedAfterGrouped == false)
{ {
if (_load.CheckWaferNextStepIsThis(ModuleName.LoadLock, 0) && !_unload.IsInPumping) if (_load.CheckWaferNextStepIsThis(ModuleName.LoadLock, 0) && !_unload.IsInPumping)
{ {
@ -2740,7 +2731,7 @@ namespace SicRT.Modules
return; return;
// 如果Tray从Cassette喂进来则等Wafer/Tray组合完毕后统一Purge // 如果Tray从Cassette喂进来则等Wafer/Tray组合完毕后统一Purge
if (_load.HasPurged == false && _load.HasWafer(0) && _load.HasTray(0) && _load.CheckWaferTrayGrouped()) if (_load.HasPurgedAfterGrouped == false && _load.HasWafer(0) && _load.HasTray(0) && _load.CheckWaferTrayGrouped())
{ {
if (_load.CheckWaferNextStepIsThis(ModuleName.LoadLock, 0) && !_unload.IsInPumping && !_tmRobot.IsInPumping) if (_load.CheckWaferNextStepIsThis(ModuleName.LoadLock, 0) && !_unload.IsInPumping && !_tmRobot.IsInPumping)
{ {

View File

@ -57,12 +57,17 @@ namespace SicRT.Scheduler
_task == TaskType.Pump || _task == TaskType.Purge || _task == TaskType.PrepareTransfer; _task == TaskType.Pump || _task == TaskType.Purge || _task == TaskType.PrepareTransfer;
/// <summary> /// <summary>
/// 是否已执行Purge. /// 是否执行放Wafer后TM放Tray前的Purge。
/// <para> 当Wafer从Cassette传入后是否Purge分两种情况</para> /// <para>如果Tray来自TMRobot放完Wafer马上Purge。</para>
/// <para> 1. 如果Tray来自Buffer则直接Purge</para> /// <para>如果Tray来自TrayCassette放完Tray以后统一Purge。</para>
/// <para> 2. 如果Tray来自Cassette等Tray放好后Purge</para>
/// </summary> /// </summary>
public bool HasPurged { get; private set; } public bool HasPurgedAfterWaferPlaced { get; private set; }
/// <summary>
/// 是否已执行组合后、TM取盘前的Purge.
/// <para>无论Tray来自TMRobot还是TrayRobotGroup以后一定要Purge。</para>
/// <para>Purge次数使用Sequence中的配置。</para>
public bool HasPurgedAfterGrouped { get; private set; }
#endregion #endregion
@ -152,7 +157,8 @@ namespace SicRT.Scheduler
{ {
lock (SyncRoot) lock (SyncRoot)
{ {
HasPurged = false; HasPurgedAfterWaferPlaced = false;
HasPurgedAfterGrouped = false;
} }
} }
@ -197,7 +203,7 @@ namespace SicRT.Scheduler
{ {
_task = TaskType.Purge; _task = TaskType.Purge;
LogTaskStart(_task, $"{Module} purge for new job"); LogTaskStart(_task, $"{Module} purge for new job");
HasPurged = true; HasPurgedAfterGrouped = true;
return true; return true;
} }