修正AbortJob后新的Job无法启动的问题。
AutoTransfer的Clear和Reset函数新增对WaferRobot和TrayRobot的处理。
This commit is contained in:
parent
129bb47366
commit
ec50fc1b16
|
@ -189,9 +189,14 @@ namespace SicRT.Modules
|
|||
_buffer.ResetTask();
|
||||
_cassetteBL.ResetTask();
|
||||
|
||||
_waferRobot.ResetTask();
|
||||
_trayRobot.ResetTask();
|
||||
|
||||
_lstControlJobs.Clear();
|
||||
_lstProcessJobs.Clear();
|
||||
_bufferWaferInfo.Clear();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void ResetTask()
|
||||
|
@ -227,6 +232,12 @@ namespace SicRT.Modules
|
|||
cass.ResetTask();
|
||||
}
|
||||
}
|
||||
|
||||
if(!_waferRobot.IsOnline)
|
||||
_waferRobot.ResetTask();
|
||||
|
||||
if(!_trayRobot.IsOnline)
|
||||
_trayRobot.ResetTask();
|
||||
}
|
||||
|
||||
public void GetConfig()
|
||||
|
@ -1002,6 +1013,8 @@ namespace SicRT.Modules
|
|||
|
||||
_dbCallback.LotFinished(cj);
|
||||
JobDataRecorder.EndCJ(cj.InnerId.ToString(), aborted_cj, unprocessed_cj);
|
||||
|
||||
Clear();
|
||||
}
|
||||
|
||||
public void ResumeJob(string jobName)
|
||||
|
@ -1822,6 +1835,12 @@ namespace SicRT.Modules
|
|||
{
|
||||
if (_unload.CheckWaferTraySeparated())
|
||||
{
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果Sequence下一步是UnLoad,并且W&T已冷却和分离
|
||||
if (!_unload.CheckPurgedBeforeTrayPicking()
|
||||
&& !_load.IsInPumping)
|
||||
|
@ -1832,10 +1851,20 @@ namespace SicRT.Modules
|
|||
return;
|
||||
}
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果Tray拿走以前还没Purge,先Purge,在让TMRobot取Tray
|
||||
if (!_unload.CheckPurgedBeforeTrayPicking())
|
||||
return;
|
||||
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_unload.IsReadyForPick(ModuleName.TMRobot, 0)
|
||||
&& !_load.IsInPumping)
|
||||
{
|
||||
|
@ -1849,6 +1878,13 @@ namespace SicRT.Modules
|
|||
{
|
||||
if (_unload.CheckWaferTraySeparated() )
|
||||
{
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// 如果取Wafer前还未Purge,先Purge
|
||||
if (!_unload.CheckPurgedBeforeWaferPicking() &&
|
||||
_unload.CheckWaferNextStepIsThis(ModuleName.UnLoad, 0)
|
||||
|
@ -1861,6 +1897,11 @@ namespace SicRT.Modules
|
|||
return;
|
||||
}
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_unload.CheckPurgedBeforeWaferPicking()
|
||||
&& !_unload.IsReadyForPick(ModuleName.WaferRobot, 0)
|
||||
&& !_load.IsInPumping)
|
||||
|
@ -1874,6 +1915,11 @@ namespace SicRT.Modules
|
|||
}
|
||||
else // 如果UnLoad里啥也没有,则准备好下次TMRobot喂 W&T
|
||||
{
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果Wafer取完后还没有Purge,先Purge
|
||||
if (!_unload.CheckPurgedAfterWaferPicked() && !_load.IsInPumping)
|
||||
{
|
||||
|
@ -1882,11 +1928,21 @@ namespace SicRT.Modules
|
|||
|
||||
_unload.PurgeAfterWaferPicked(cycle, pumpDelay);
|
||||
}
|
||||
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果Wafer取完后还没有Purge,则终止后去操作。
|
||||
if (!_unload.CheckPurgedAfterWaferPicked())
|
||||
return;
|
||||
|
||||
|
||||
if (!_unload.IsAvailable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_unload.IsReadyForPlace(ModuleName.TMRobot, 0)
|
||||
&& !_load.IsInPumping)
|
||||
{
|
||||
|
|
|
@ -800,7 +800,7 @@ namespace SicRT.Equipments.Systems
|
|||
{
|
||||
EV.ClearAlarmEvent();
|
||||
|
||||
if (FsmState == (int)RtState.AutoRunning)
|
||||
if (FsmState == (int)RtState.AutoRunning || FsmState == (int)RtState.AutoIdle)
|
||||
{
|
||||
_auto.ResetTask();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue