1.进度更新

This commit is contained in:
HCL 2024-03-28 13:24:05 +08:00
parent 9af511a004
commit 08e2380624
5 changed files with 54 additions and 30 deletions

View File

@ -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");

View File

@ -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)

View File

@ -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);

View File

@ -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;

View File

@ -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;