|
@@ -93,6 +93,7 @@ namespace Venus_RT.Modules
|
|
|
private readonly MFVentRoutine _ventingRoutine;
|
|
|
private readonly MFLeakCheckRoutine _leakCheckRoutine;
|
|
|
private readonly MFPurgeRoutine _purgeRoutine;
|
|
|
+ private bool _isATMMode;
|
|
|
public LLEntity(ModuleName module)
|
|
|
{
|
|
|
Module = module;
|
|
@@ -104,6 +105,8 @@ namespace Venus_RT.Modules
|
|
|
_leakCheckRoutine = new MFLeakCheckRoutine(_JetTM, Module);
|
|
|
_purgeRoutine = new MFPurgeRoutine(_JetTM, Module);
|
|
|
|
|
|
+ _isATMMode = SC.GetValue<bool>("System.IsATMMode");
|
|
|
+
|
|
|
var soltCount= SC.GetValue<int>($"{module.ToString()}.SlotNumber");
|
|
|
WaferManager.Instance.SubscribeLocation(Module, soltCount);
|
|
|
|
|
@@ -370,11 +373,27 @@ namespace Venus_RT.Modules
|
|
|
|
|
|
private bool FnStartPrepareTM(object[] param)
|
|
|
{
|
|
|
+ if (_isATMMode)
|
|
|
+ return true;
|
|
|
+
|
|
|
return _pumpingRoutine.Start() == RState.Running;
|
|
|
}
|
|
|
|
|
|
private bool FnPreparaTMTimeout(object[] param)
|
|
|
{
|
|
|
+ if(_isATMMode)
|
|
|
+ {
|
|
|
+ if (fsm.ElapsedTime > 10000)
|
|
|
+ {
|
|
|
+ LOG.Write(eEvent.ERR_TM, Module, $"Cannot transfer wafer as {Module} is not ATM.");
|
|
|
+ PostMsg(MSG.Error);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return _JetTM.IsModuleATM(Module);
|
|
|
+ }
|
|
|
+
|
|
|
RState ret = _pumpingRoutine.Monitor();
|
|
|
if (ret == RState.Failed || ret == RState.Timeout)
|
|
|
{
|
|
@@ -387,11 +406,26 @@ namespace Venus_RT.Modules
|
|
|
|
|
|
private bool FnStartPrepareEFEM(object[] param)
|
|
|
{
|
|
|
+ if (_isATMMode)
|
|
|
+ return true;
|
|
|
+
|
|
|
return _ventingRoutine.Start() == RState.Running;
|
|
|
}
|
|
|
|
|
|
private bool FnPrepareEFEMTimeout(object[] param)
|
|
|
{
|
|
|
+ if (_isATMMode)
|
|
|
+ {
|
|
|
+ if (fsm.ElapsedTime > 10000)
|
|
|
+ {
|
|
|
+ LOG.Write(eEvent.ERR_TM, Module, $"Cannot transfer wafer as {Module} is not ATM.");
|
|
|
+ PostMsg(MSG.Error);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ return _JetTM.IsModuleATM(Module);
|
|
|
+ }
|
|
|
+
|
|
|
RState ret = _ventingRoutine.Monitor();
|
|
|
if (ret == RState.Failed || ret == RState.Timeout)
|
|
|
{
|