diff --git a/SicRT/Equipments/AutoTransfer.cs b/SicRT/Equipments/AutoTransfer.cs index 7ecf07ad..a7a4684f 100644 --- a/SicRT/Equipments/AutoTransfer.cs +++ b/SicRT/Equipments/AutoTransfer.cs @@ -3221,7 +3221,10 @@ namespace SicRT.Modules private bool CheckHasTrayAndNoWaferByModule(ModuleName moduleName, int slot,ModuleName pmModule) { var module = GetModule(moduleName); + if (module is null || !module.IsAvailable) + return false; + if((module.GetWaferInfo(slot).TrayOriginSlot % 2 == 0 && pmModule == ModuleName.PM1) || (module.GetWaferInfo(slot).TrayOriginSlot % 2 == 1 && pmModule == ModuleName.PM2)) { diff --git a/SicRT/Equipments/Schedulers/SchedulerModule.cs b/SicRT/Equipments/Schedulers/SchedulerModule.cs index 643c88eb..370d3712 100644 --- a/SicRT/Equipments/Schedulers/SchedulerModule.cs +++ b/SicRT/Equipments/Schedulers/SchedulerModule.cs @@ -2,6 +2,7 @@ using Aitex.Core.Common; using Aitex.Core.RT.Event; using Aitex.Core.Util; +using DocumentFormat.OpenXml.Wordprocessing; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Schedulers; using MECF.Framework.Common.SubstrateTrackings; @@ -280,6 +281,8 @@ namespace SicRT.Modules.Schedulers public bool HasTrayAndNotExceedProcessCount(int slot) { var wi = WaferManager.Instance.GetWafer(ModuleHelper.Converter(_module), slot); + if (wi is null) + return false; return wi.TrayState == WaferTrayStatus.Normal && wi.TrayProcessCount >0; } diff --git a/SicSimulator/Instances/SimulatorSystem.cs b/SicSimulator/Instances/SimulatorSystem.cs index c64b04f0..032a0a0e 100644 --- a/SicSimulator/Instances/SimulatorSystem.cs +++ b/SicSimulator/Instances/SimulatorSystem.cs @@ -90,9 +90,9 @@ namespace SicSimulator.Instances IO.DI["DI_BufferStationLidClosed"].Value = true; IO.DI["DI_UnloadStationLidClosed"].Value = true; - IO.DI["DI_WaferCassetLeftInch6"].Value = true; - IO.DI["DI_WaferCassetRightInch6"].Value = true; - IO.DI["DI_TrayCassetInch6"].Value = true; + IO.DI["DI_WaferCassetLeftInch8"].Value = true; + IO.DI["DI_WaferCassetRightInch8"].Value = true; + IO.DI["DI_TrayCassetInch8"].Value = true; IO.DI["DI_LdRotationBusy"].Value = false;