From ec50fc1b16c15b37a41bad29397c579d322d26e8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GPE37UV\\THINKAPD" Date: Fri, 23 Dec 2022 17:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3AbortJob=E5=90=8E=E6=96=B0?= =?UTF-8?q?=E7=9A=84Job=E6=97=A0=E6=B3=95=E5=90=AF=E5=8A=A8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82=20AutoTransfer=E7=9A=84Clear?= =?UTF-8?q?=E5=92=8CReset=E5=87=BD=E6=95=B0=E6=96=B0=E5=A2=9E=E5=AF=B9Wafe?= =?UTF-8?q?rRobot=E5=92=8CTrayRobot=E7=9A=84=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SicRT/Equipments/AutoTransfer.cs | 62 +++++++++++++++++++- SicRT/Equipments/Systems/EquipmentManager.cs | 2 +- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/SicRT/Equipments/AutoTransfer.cs b/SicRT/Equipments/AutoTransfer.cs index 5e56607..466ecf1 100644 --- a/SicRT/Equipments/AutoTransfer.cs +++ b/SicRT/Equipments/AutoTransfer.cs @@ -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) { diff --git a/SicRT/Equipments/Systems/EquipmentManager.cs b/SicRT/Equipments/Systems/EquipmentManager.cs index 0c990c3..51dbf16 100644 --- a/SicRT/Equipments/Systems/EquipmentManager.cs +++ b/SicRT/Equipments/Systems/EquipmentManager.cs @@ -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(); }