1.进度更新
This commit is contained in:
parent
9af511a004
commit
08e2380624
|
@ -121,6 +121,12 @@ namespace SicModules.PMs.Routines
|
|||
|
||||
hasWafer = WaferManager.Instance.CheckHasWafer(Module, 0);
|
||||
|
||||
if (SC.GetValue<bool>("System.IsATMMode"))
|
||||
{
|
||||
_psuHeatEnable = false;
|
||||
_scrHeatEnable = false;
|
||||
}
|
||||
|
||||
Reset();
|
||||
|
||||
Notify("Start");
|
||||
|
|
|
@ -45,7 +45,8 @@ namespace SicModules.TMs.Routines
|
|||
private double _slowFastPumpSwitchPressure; //慢快抽切换压力
|
||||
private int _fastPumpTime;
|
||||
private int _slowPumpTimeout;
|
||||
private bool isAtmMode = false;
|
||||
private bool _isAtmMode = false;
|
||||
private double _atmPressureBase;
|
||||
|
||||
public TMPressureBalanceRoutine()
|
||||
{
|
||||
|
@ -81,19 +82,36 @@ namespace SicModules.TMs.Routines
|
|||
_fastPumpTime = SC.GetValue<int>("TM.Pump.FastPumpTimeout");
|
||||
_slowPumpTimeout = SC.GetValue<int>("TM.Pump.PumpSlowTimeout");
|
||||
|
||||
//_needPumpDown = !_tm.CheckVacuum();
|
||||
maxDifferent = SC.GetValue<double>("TM.PressureBalance.BalanceMaxDiffPressure");
|
||||
|
||||
isAtmMode = SC.GetValue<bool>("System.IsATMMode");
|
||||
_atmPressureBase = SC.GetValue<double>("TM.AtmPressureBase");
|
||||
|
||||
if ((Math.Abs(_tm.ChamberPressure - _balancePressure) < maxDifferent) && _balancePressure != 0)
|
||||
_isAtmMode = SC.GetValue<bool>("System.IsATMMode");
|
||||
|
||||
if(_isAtmMode)
|
||||
{
|
||||
return Result.DONE;
|
||||
if(_tm.ChamberPressure >= _atmPressureBase)
|
||||
{
|
||||
return Result.DONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
_needPumpDown = false;
|
||||
_needMfcVent = true;
|
||||
_balancePressure = _atmPressureBase;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((Math.Abs(_tm.ChamberPressure - _balancePressure) < maxDifferent) && _balancePressure != 0)
|
||||
{
|
||||
return Result.DONE;
|
||||
}
|
||||
|
||||
_needPumpDown = (_tm.ChamberPressure > _balancePressure) || _balancePressure == 0;
|
||||
_needPumpDown = (_tm.ChamberPressure > _balancePressure) || _balancePressure == 0;
|
||||
|
||||
_needMfcVent = _balancePressure > 10;
|
||||
_needMfcVent = _balancePressure > 10;
|
||||
}
|
||||
|
||||
Notify("Start");
|
||||
return Result.RUN;
|
||||
|
@ -104,11 +122,6 @@ namespace SicModules.TMs.Routines
|
|||
{
|
||||
try
|
||||
{
|
||||
if (SC.GetValue<bool>("System.IsATMMode"))
|
||||
{
|
||||
return Result.DONE;
|
||||
}
|
||||
|
||||
if (_needPumpDown)
|
||||
{
|
||||
if (_balancePressure < _slowFastPumpSwitchPressure)
|
||||
|
|
|
@ -217,11 +217,11 @@ namespace SicModules.TMs.Routines
|
|||
|
||||
if (isAtmMode)
|
||||
{
|
||||
if (_pmPT1.FeedBack < atmBase)
|
||||
{
|
||||
EV.PostWarningLog(Module, $"can not open slit valve, running in ATM mode, but {_paramTarget} not in ATM");
|
||||
return Result.FAIL;
|
||||
}
|
||||
//if (_pmPT1.FeedBack < atmBase)
|
||||
//{
|
||||
// EV.PostWarningLog(Module, $"can not open slit valve, running in ATM mode, but {_paramTarget} not in ATM");
|
||||
// return Result.FAIL;
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -286,9 +286,10 @@ namespace SicModules.TMs.Routines
|
|||
{
|
||||
TimeDelay((int)RoutineStep.Delay2, 1);
|
||||
ExecuteRoutine((int)RoutineStep.LLRoutine, _llVentTo);
|
||||
SetTmToLoadLockVent((int)RoutineStep.OpenTMToLLVent, true, _tm, _paramTarget, 5);
|
||||
}
|
||||
|
||||
SetTmToLoadLockVent((int)RoutineStep.OpenTMToLLVent, true, _tm, _paramTarget, 5);
|
||||
|
||||
TimeDelay((int)RoutineStep.Delay3, 1);
|
||||
CheckPressureCondition((int)RoutineStep.CheckPressureCondition, _tm, _paramTarget);
|
||||
}
|
||||
|
@ -308,9 +309,11 @@ namespace SicModules.TMs.Routines
|
|||
{
|
||||
TimeDelay((int)RoutineStep.Delay2, 1);
|
||||
ExecuteRoutine((int)RoutineStep.LLRoutine, _unLoadVentTo);
|
||||
SetTmToUnLoadVent((int)RoutineStep.OpenTMToLLVent, true, _tm, _paramTarget, 10);
|
||||
|
||||
}
|
||||
|
||||
SetTmToUnLoadVent((int)RoutineStep.OpenTMToLLVent, true, _tm, _paramTarget, 10);
|
||||
|
||||
TimeDelay((int)RoutineStep.Delay3, 1);
|
||||
CheckPressureCondition((int)RoutineStep.CheckPressureCondition, _tm, _paramTarget);
|
||||
}
|
||||
|
@ -326,19 +329,18 @@ namespace SicModules.TMs.Routines
|
|||
|
||||
WaitPVTempratureBelowSet((int)RoutineStep.WaitPVTempBelowSet, 600);
|
||||
|
||||
ExecuteRoutine((int)RoutineStep.ChamberBalance, _balanceRoutine);
|
||||
SetPmToTmV70((int)RoutineStep.OpenTMToPMV70, true, _tm, _paramTarget, 5);
|
||||
|
||||
if (_needPressureBalance && !_isAtmMode)
|
||||
{
|
||||
ExecuteRoutine((int)RoutineStep.ChamberBalance, _balanceRoutine);
|
||||
|
||||
SetTmMfc((int)RoutineStep.SetTmMfc, _tmMfcFlow);
|
||||
SetPmToTmV70((int)RoutineStep.OpenTMToPMV70, true, _tm, _paramTarget, 5);
|
||||
SetSlowVentValve((int)RoutineStep.SetV77, _tm, _paramIsOpen, _timeout);
|
||||
TimeDelay((int)RoutineStep.Delay1, _tmV77DelayTime); //5秒可配置
|
||||
}
|
||||
CheckPressureCondition((int)RoutineStep.CheckPressureCondition, _tm, _paramTarget);
|
||||
}
|
||||
|
||||
|
||||
SetSlitValve((int)RoutineStep.SetSlitValve, TMDevice, _paramTarget, _paramIsOpen, _timeout);
|
||||
if (!_paramIsOpen)
|
||||
{
|
||||
|
@ -355,13 +357,16 @@ namespace SicModules.TMs.Routines
|
|||
|
||||
if (!_paramIsOpen)
|
||||
{
|
||||
if(_isATMMode)
|
||||
{
|
||||
_pmPostTrasferNeedEnableHeat = false;
|
||||
}
|
||||
SetPostTransfer((int)RoutineStep.SetPostTransfer, _pmPostTrasferNeedEnableHeat);
|
||||
TimeDelay((int)RoutineStep.Delay4, 2);
|
||||
}
|
||||
}
|
||||
else if(_isBuffer)
|
||||
{
|
||||
//CheckPressureCondition((int)RoutineStep.CheckPressureCondition, _tm, _paramTarget);
|
||||
SetSlitValve((int)RoutineStep.SetSlitValve, TMDevice, _paramTarget, _paramIsOpen, _timeout);
|
||||
}
|
||||
|
||||
|
@ -713,8 +718,8 @@ namespace SicModules.TMs.Routines
|
|||
return true;
|
||||
}, () =>
|
||||
{
|
||||
string pm1Status = DATA.Poll($"{_targetModule}.Status") == null ? "" : DATA.Poll($"{_targetModule}.Status").ToString();
|
||||
return pm1Status == "ProcessIdle" || pm1Status == "Idle";
|
||||
string pmStatus = DATA.Poll($"{_targetModule}.Status") == null ? "" : DATA.Poll($"{_targetModule}.Status").ToString();
|
||||
return pmStatus == "ProcessIdle" || pmStatus == "Idle";
|
||||
|
||||
}, timeout * 1000);
|
||||
|
||||
|
|
|
@ -442,7 +442,7 @@ namespace SicModules.UnLoads
|
|||
|
||||
private bool FsmStartPrepareTransfer(object[] param)
|
||||
{
|
||||
Result ret = StartRoutine(_prepareTransferRoutine);
|
||||
Result ret = StartRoutine(_prepareTransferRoutine,param);
|
||||
if (ret == Result.FAIL || ret == Result.DONE)
|
||||
return false;
|
||||
return ret == Result.RUN;
|
||||
|
|
|
@ -18,9 +18,9 @@ namespace SicRT.Scheduler
|
|||
{
|
||||
get
|
||||
{
|
||||
if (Singleton<EquipmentManager>.Instance.IsAutoMode)
|
||||
if (SC.GetValue<bool>("System.IsATMMode"))
|
||||
{
|
||||
return _pm.IsProcessIdle && _pm.IsOnline && CheckTaskDone();
|
||||
return (_pm.IsProcessIdle || _pm.IsIdle) && _pm.IsOnline && CheckTaskDone();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -91,7 +91,7 @@ namespace SicRT.Scheduler
|
|||
|
||||
if (SC.GetValue<bool>("System.IsATMMode"))
|
||||
{
|
||||
_timer.Start(5000);
|
||||
_timer.Start(3000);
|
||||
|
||||
_entityTaskToken = (int)FSM_MSG.TIMER;
|
||||
|
||||
|
|
Loading…
Reference in New Issue