|
@@ -3,6 +3,7 @@ using Aitex.Core.RT.Device;
|
|
|
using Aitex.Core.RT.Device.Unit;
|
|
|
using Aitex.Core.RT.SCCore;
|
|
|
using Aitex.Core.RT.Log;
|
|
|
+using Aitex.Core.Util;
|
|
|
using MECF.Framework.Common.Device.Bases;
|
|
|
using MECF.Framework.Common.Equipment;
|
|
|
using System;
|
|
@@ -13,6 +14,7 @@ using Venus_RT.Devices.EPD;
|
|
|
using MECF.Framework.Common.SubstrateTrackings;
|
|
|
using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
|
|
|
using System.Threading.Tasks;
|
|
|
+using Venus_RT.Modules;
|
|
|
|
|
|
namespace Venus_RT.Devices
|
|
|
{
|
|
@@ -635,39 +637,37 @@ namespace Venus_RT.Devices
|
|
|
|
|
|
public override bool SetSlitDoor(bool open, out string reason)
|
|
|
{
|
|
|
- reason = string.Empty;
|
|
|
+ if (open)
|
|
|
+ {
|
|
|
+ if (Singleton<RouteManager>.Instance.IsATMMode)
|
|
|
+ {
|
|
|
+ if (!IsATM)
|
|
|
+ {
|
|
|
+ reason = $"{Module} is not ATM, can not open slit door";
|
|
|
+ LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!IsTMATM)
|
|
|
+ {
|
|
|
+ reason = $"LoadLock is not ATM, can not open slit door";
|
|
|
+ LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ double maxPressureDifference = SC.GetValue<double>("System.PMTMMaxPressureDifference");
|
|
|
+ if (Math.Abs(TMPressure - ChamberPressure) > maxPressureDifference)
|
|
|
+ {
|
|
|
+ reason = $"{Module} and TM pressure difference exceeds the max limit {maxPressureDifference}";
|
|
|
+ LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //if(open)
|
|
|
- //{
|
|
|
- // bool _isATMMode = SC.GetValue<bool>("System.IsATMMode");
|
|
|
- // if(_isATMMode)
|
|
|
- // {
|
|
|
- // if(!IsATM)
|
|
|
- // {
|
|
|
- // reason = $"{Module} is not ATM, can not open slit door";
|
|
|
- // LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
- // return false;
|
|
|
- // }
|
|
|
-
|
|
|
- // if(!IsATMLoadlock)
|
|
|
- // {
|
|
|
- // reason = $"LoadLock is not ATM, can not open slit door";
|
|
|
- // LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // double maxPressureDifference = SC.GetValue<double>("System.PMLLMaxPressureDifference");
|
|
|
- // if (Math.Abs(LoadlockPressure - ChamberPressure) > maxPressureDifference)
|
|
|
- // {
|
|
|
- // reason = $"{Module} and Loadlock pressure difference exceeds the max limit {maxPressureDifference}";
|
|
|
- // LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- //}
|
|
|
+ }
|
|
|
|
|
|
return _slitDoor.SetCylinder(open, out reason);
|
|
|
}
|