重新整理Routine和仿真
This commit is contained in:
parent
9588fe0121
commit
a11d2b154d
@ -807,6 +807,8 @@ namespace SicModules.PMs
|
||||
//ProcessIdle
|
||||
Transition(STATE.ProcessIdle, MSG.SelectRecipe, FsmSelectRecipe, STATE.ProcessIdle);
|
||||
Transition(STATE.ProcessIdle, MSG.RunRecipe, FsmStartPreProcess, STATE.PreProcess);
|
||||
//Transition(STATE.ProcessIdle, MSG.ProcessAbort, FsmStartProcessAbort, STATE.ProcessAborting);
|
||||
//Transition(STATE.ProcessIdle, MSG.Abort, FsmStartProcessAbort, STATE.ProcessAborting);
|
||||
|
||||
//PreProcess
|
||||
Transition(STATE.PreProcess, FSM_MSG.TIMER, FsmMonitorTask, STATE.PreProcess);
|
||||
@ -1514,7 +1516,7 @@ namespace SicModules.PMs
|
||||
_pmInterLock.SetPMPreProcessRunning(false, out reason);
|
||||
_pmInterLock.SetPMPostProcessRunning(false, out reason);
|
||||
|
||||
if (FsmState.Equals((int)STATE.Process))
|
||||
if (FsmState.Equals((int)STATE.Process) || FsmState.Equals((int)STATE.PreProcess) || FsmState.Equals((int)STATE.PostProcess) )
|
||||
{
|
||||
PostMsg(MSG.ProcessAbort);
|
||||
return false;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -122,7 +122,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
return Result.FAIL;
|
||||
}
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
return Result.FAIL;
|
||||
|
||||
@ -55,6 +55,8 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
SetTC2Ratio1,
|
||||
CloseTC2,
|
||||
WaitRotation1,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
@ -149,6 +151,9 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
@ -169,13 +174,14 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 5);
|
||||
|
||||
//M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 5);
|
||||
|
||||
//所有PC设定为默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
@ -187,7 +193,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V72,关闭V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置蝶阀Enable
|
||||
|
||||
@ -186,7 +186,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
return Result.FAIL;
|
||||
}
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
return Result.FAIL;
|
||||
|
||||
@ -446,8 +446,11 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
|
||||
_stepTimer2.Start(int.MaxValue);
|
||||
|
||||
Notify(
|
||||
$"Running step {_currentStepNumber + 1} : {PmDevice.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName}");
|
||||
Notify($"Running step {_currentStepNumber + 1} : {PmDevice.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName}");
|
||||
|
||||
GemManager.Instance?.TriggerEvent($"{Module}RecipeStepStart", new string[] { $"{Module}.SelectedRecipeName", $"{Module}.RecipeStepNumber",$"{Module}.RecipeStepName" },
|
||||
new object[] { PmDevice.RecipeRunningInfo.RecipeName, _currentStepNumber + 1,
|
||||
PmDevice.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName });
|
||||
|
||||
if (PmDevice.RecipeRunningInfo.RecipeStepList[_currentStepNumber].IsDummyStep)
|
||||
{
|
||||
@ -685,9 +688,12 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
|
||||
case RecipeRunningState.StepCompleted:
|
||||
{
|
||||
//放在前面,stepnumber后面会被更新
|
||||
//放在前面,stepnumber后面会被更新
|
||||
GemManager.Instance?.TriggerEvent($"{Module}RecipeStepComplete",
|
||||
new string[] { $"{Module}.SelectedRecipeName", $"{Module}.RecipeStepNumber", $"{Module}.RecipeStepName" },
|
||||
new object[] { PmDevice.RecipeRunningInfo.RecipeName, _currentStepNumber + 1,PmDevice.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName });
|
||||
|
||||
_stepTimer2.Stop();
|
||||
_stepTimer2.Stop();
|
||||
|
||||
_dbCallback.RecipeStepEnd(PmDevice.RecipeRunningInfo.InnerId.ToString(),
|
||||
_currentStepNumber, _fdc.DataList);
|
||||
|
||||
@ -142,15 +142,15 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
recipeStep.GrowthRate = Convert.ToDouble(dic["GrowthRate"]);
|
||||
recipeStep.EndBy = EnumEndByCondition.ByTime;
|
||||
|
||||
if (dic.TryGetValue("Loop", out var loopStr))
|
||||
{
|
||||
recipeStep.IsLoopStartStep = System.Text.RegularExpressions.Regex.Match(loopStr, @"Loop\x20\d+\s*$").Success;
|
||||
recipeStep.IsLoopEndStep = System.Text.RegularExpressions.Regex.Match(loopStr, @"Loop End$").Success;
|
||||
if (recipeStep.IsLoopStartStep)
|
||||
recipeStep.LoopCount = Convert.ToInt32(loopStr.Replace("Loop", string.Empty));
|
||||
else
|
||||
recipeStep.LoopCount = 0;
|
||||
}
|
||||
//if (dic.TryGetValue("Loop", out var loopStr))
|
||||
//{
|
||||
// recipeStep.IsLoopStartStep = System.Text.RegularExpressions.Regex.Match(loopStr, @"Loop\x20\d+\s*$").Success;
|
||||
// recipeStep.IsLoopEndStep = System.Text.RegularExpressions.Regex.Match(loopStr, @"Loop End$").Success;
|
||||
// if (recipeStep.IsLoopStartStep)
|
||||
// recipeStep.LoopCount = Convert.ToInt32(loopStr.Replace("Loop", string.Empty));
|
||||
// else
|
||||
// recipeStep.LoopCount = 0;
|
||||
//}
|
||||
|
||||
//if (recipeData.Count >= 2)
|
||||
//{
|
||||
@ -165,6 +165,9 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
// }
|
||||
//}
|
||||
|
||||
foreach (var key in dic.Keys)
|
||||
recipeStep.RecipeCommands.Add(key, dic[key]);
|
||||
|
||||
#region Remove
|
||||
|
||||
//dic.Remove("StepNo");
|
||||
@ -225,7 +228,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
//{
|
||||
// dic.Remove("Mfc30.Ramp");
|
||||
//}
|
||||
dic.Remove("HCLSourSplitRatio");
|
||||
|
||||
dic.Remove("SHTotalFlow");
|
||||
dic.Remove("SHTotalFlowSplitRatio");
|
||||
//dic.Remove("SiSourTotalFlow");
|
||||
@ -243,6 +246,9 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
dic.Remove("SHOutterFlow");
|
||||
//dic.Remove("GRPurgeHCI");
|
||||
//dic.Remove("TotalVentFlow");
|
||||
|
||||
if (dic.ContainsKey("Loop"))
|
||||
dic.Remove("Loop");
|
||||
#endregion
|
||||
|
||||
foreach (var key in dic.Keys)
|
||||
|
||||
@ -43,7 +43,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
Leavel10= 1150,
|
||||
}
|
||||
|
||||
public List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
|
||||
public List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
|
||||
protected PressureLevel GetPressure(double pressure)
|
||||
{
|
||||
@ -121,7 +121,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
|
||||
public virtual void Abort()
|
||||
{
|
||||
_pm.SetMfcToDefaultByGroup(MfcGroupName.M27toM45);
|
||||
_pm.SetMfcToDefaultByGroup(MfcGroupName.M27toM40);
|
||||
}
|
||||
|
||||
protected void PreparePump(int id, PMModuleBase pm, int timeout)
|
||||
@ -532,10 +532,10 @@ namespace SicModules.PMs.Routines.Base
|
||||
{
|
||||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
Notify($"Set {Module} rotation");
|
||||
//Notify($"Set {Module} rotation");
|
||||
if (!_pm.SetRotationServo(checkSpeed, 0))
|
||||
{
|
||||
Stop($"Set {Module} rotation error");
|
||||
//Stop($"Set {Module} rotation error");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -928,7 +928,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
{
|
||||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
_v72IsOpen = _pm.CheckIOValueByGroup(IoGroupName.V72, true) && _pm.CheckIOValueByGroup(IoGroupName.V888990, true) && _pm.PT1.FeedBack >= pressure;
|
||||
_v72IsOpen = _pm.CheckIOValueByGroup(IoGroupName.VentPump, true) && _pm.CheckIOValueByGroup(IoGroupName.V888990, true) && _pm.PT1.FeedBack >= pressure;
|
||||
return true;
|
||||
});
|
||||
|
||||
@ -1299,7 +1299,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
Notify($"Set MFC28,29,31,40 to pressureLevel [{cIntLv - 50},{cIntLv + 50})");
|
||||
}
|
||||
_lastPressureLevel = level;
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M27To3540To42, Convert.ToDouble((int)level));
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M28293140, Convert.ToDouble((int)level));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1839,14 +1839,14 @@ namespace SicModules.PMs.Routines.Base
|
||||
|
||||
if (!_setMfc291519to38Flag && currentPressureUpOrDown == PressureUpOrDown.Dowing && _IoThrottle.PressureFeedback < 20)
|
||||
{
|
||||
Notify($"Set M2toM40 value to 0 ");
|
||||
_pm.SetMfcByGroup(MfcGroupName.M2toM45, 0, 2);
|
||||
Notify($"Set M2toM42 value to 0 ");
|
||||
_pm.SetMfcByGroup(MfcGroupName.M2toM42, 0, 2);
|
||||
_setMfc291519to38Flag = true;
|
||||
}
|
||||
else if (!_setMfc291519to38Flag && currentPressureUpOrDown == PressureUpOrDown.Uping && _IoThrottle.PressureFeedback < 20)
|
||||
{
|
||||
Notify($"Set M2toM40 value to default");
|
||||
_pm.SetMfcToDefaultByGroupRamp(MfcGroupName.M2toM45, 2);
|
||||
Notify($"Set M2toM42 value to default");
|
||||
_pm.SetMfcToDefaultByGroupRamp(MfcGroupName.M2toM42, 2);
|
||||
_setMfc291519to38Flag = true;
|
||||
}
|
||||
|
||||
|
||||
@ -31,6 +31,7 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
SetGroupJ_1,
|
||||
@ -49,7 +50,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM2toM45,
|
||||
SetM291519to26,
|
||||
|
||||
OpenFinal2,
|
||||
SetMfcFinal2,
|
||||
@ -121,9 +122,8 @@ namespace SicModules.PMs.Routines
|
||||
SetTVEnable_2,
|
||||
SetTVPressMode,
|
||||
SetTv1,
|
||||
SetM2toM45_Ramp0,
|
||||
SetM2toM45_Ramp01,
|
||||
SetV30,
|
||||
SetM2toM40,
|
||||
SetM18,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
@ -135,16 +135,21 @@ namespace SicModules.PMs.Routines
|
||||
SetTVPositionMax_1,
|
||||
SetTVPressMode1,
|
||||
SetTVPressMode2,
|
||||
SetM2TOM45Default,
|
||||
SetM2toM45_1,
|
||||
SetMfc2to45Default,
|
||||
SetM2TOM40Default,
|
||||
SetM2toM40_1,
|
||||
SetMfc2to40Default,
|
||||
SetM18Default,
|
||||
SetM18_1,
|
||||
SetM18_2,
|
||||
|
||||
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetV68,
|
||||
SetM35M36M37M38,
|
||||
SetM32M35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
WaitPmPressureUp1,
|
||||
@ -263,25 +268,26 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -296,12 +302,6 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -309,13 +309,20 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M45 3s ramp到default值。
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 3);
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
|
||||
//7 打开EPV2
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
@ -328,11 +335,13 @@ namespace SicModules.PMs.Routines
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||
|
||||
//8 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45_Ramp0, MfcGroupName.M2toM45, 0, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
||||
|
||||
//9 等待腔体压力Pump到设定值
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pumpTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
@ -340,44 +349,39 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//10 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//11 打开V87、V88、V89、V90、V91、V97
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//12 打开V65 V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||
|
||||
//13 M35\M36\M37\M38 ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M36M37M38, MfcGroupName.M35M36M37M38, 3);
|
||||
|
||||
//14 打开V93、V95;打开V94等待3S,打开V96
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
//打开V92,V93和V95,再打开V94,在打开V96
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM45Default, MfcGroupName.M2toM45, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
|
||||
//关闭EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
@ -388,23 +392,24 @@ namespace SicModules.PMs.Routines
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45_1, MfcGroupName.M2toM45, 0, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pumpTimeout);
|
||||
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
//M2-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc2to45Default, MfcGroupName.M2toM45, 3);
|
||||
//M27-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc2to40Default, MfcGroupName.M2toM42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ_1, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V72,关闭V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose_1, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose_1, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置蝶阀为压力模式
|
||||
@ -414,8 +419,6 @@ namespace SicModules.PMs.Routines
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp2, _IoThrottle, _throttleFinalPressure);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||
|
||||
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
||||
@ -7,6 +7,7 @@ using Aitex.Core.RT.Event;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.Common.Fsm;
|
||||
using SicModules.PMs.Routines.Base;
|
||||
|
||||
namespace SicModules.PMs.Routines
|
||||
@ -18,6 +19,7 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
SetM7Or10,
|
||||
SetM8Or11,
|
||||
SetM21,
|
||||
OpenV73,
|
||||
StartLoop,
|
||||
OpenGroup1,
|
||||
@ -154,11 +156,12 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭K阀组
|
||||
//关闭K阀组
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueTimeout);
|
||||
|
||||
//2 设定M7,M8 80%,PC2设定Max
|
||||
//设定M7,M8 80%,PC2设定Max
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM7Or10, mfc7Or10, 80);
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM21, 21, 80);
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM8Or11, mfc8Or11, 80);
|
||||
|
||||
//打开V73
|
||||
|
||||
@ -52,7 +52,8 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM2toM45Default_1,
|
||||
SetM291519to26,
|
||||
SetM17M18,
|
||||
|
||||
OpenFinal2,
|
||||
CloseFinal2,
|
||||
@ -61,22 +62,21 @@ namespace SicModules.PMs.Routines
|
||||
SetEPV1,
|
||||
SetEPV2,
|
||||
SetTvMode,
|
||||
SetTVEnable_1,
|
||||
SetTVEnable_2,
|
||||
SetTVEnable_3,
|
||||
SetTVEnable,
|
||||
SetTVPressMode,
|
||||
SetTv1,
|
||||
WaitTv1,
|
||||
SetM2toM45,
|
||||
SetM2toM40,
|
||||
SetM18,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMode_1,
|
||||
SetTVPositionMax,
|
||||
SetTVPositionMax_1,
|
||||
SetTVPressMode_1,
|
||||
SetTVPressMode_2,
|
||||
SetTVPressMode_3,
|
||||
SetM2toM45Default_2,
|
||||
SetTVPressMode1,
|
||||
SetM2TOM40Default,
|
||||
SetM2toM40_1,
|
||||
SetM18Default,
|
||||
SetM18_1,
|
||||
|
||||
SetTvOpen,
|
||||
SetTvModeToPress,
|
||||
@ -100,7 +100,7 @@ namespace SicModules.PMs.Routines
|
||||
CloseFinanl1,
|
||||
CloseFinanl2,
|
||||
CloseEPV2,
|
||||
SetTVCloseMode_2,
|
||||
SetTVCloseMode2,
|
||||
CLoseTvvvv,
|
||||
SetEPVVV2,
|
||||
CLoseEPV1,
|
||||
@ -142,7 +142,6 @@ namespace SicModules.PMs.Routines
|
||||
CloseV69,
|
||||
CloseV70,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
@ -158,12 +157,15 @@ namespace SicModules.PMs.Routines
|
||||
CloseM32M35M37,
|
||||
CloseM36,
|
||||
CloseM38,
|
||||
SetV103,
|
||||
SetV105,
|
||||
CloseGasIn1,
|
||||
|
||||
SetTVCloseMode1,
|
||||
CLoseTV1,
|
||||
SetEPV2_1,
|
||||
SetEPV2_2,
|
||||
SetTVEnable_2,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
@ -236,7 +238,6 @@ namespace SicModules.PMs.Routines
|
||||
Module = module.ToString();
|
||||
Name = "Leak Check";
|
||||
|
||||
|
||||
_IoThrottle = DEVICE.GetDevice<IoThrottleValve2>($"{Module}.TV");
|
||||
}
|
||||
|
||||
@ -299,24 +300,26 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -335,52 +338,57 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//7 设置M2,M9,M15,M19-M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45Default_1, MfcGroupName.M2toM45, 3);
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM42, 3);//组改变,.M2toM26改变为->M2toM42,防止MFC不在正常状态
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 3);
|
||||
|
||||
//8 打开A阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//9 打开EPV2
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
||||
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
|
||||
//10 伺服压力设定值到0mbar
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
|
||||
//11 等待腔体压力Pump到设定值
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pressureMinTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45Default_2, MfcGroupName.M2toM45, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
@ -389,36 +397,37 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _pmPressureMaxDiff, _pressureMaxTimeout);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _pressureMaxTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
||||
////设置蝶阀Enable
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode_3, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM45, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pmPressureMaxDiff, _pressureMinTimeout);
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pressureMinTimeout);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
////依次关闭Final1
|
||||
//SetIoValueByGroup((int)RoutineStep.CloseGasIn1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
//Delay((int)RoutineStep.TimeDelay13, 5);
|
||||
//依次关闭Final1
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGasIn1, IoGroupName.GasIn1, false, _IoValueOpenCloseTimeout);
|
||||
Delay((int)RoutineStep.TimeDelay13, 5);
|
||||
|
||||
////关闭M32,M35,M36,M37,M38
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM32M35M37, MfcGroupName.M35M37, 0, 5);
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM36, MfcGroupName.M36, 0, 5);
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM38, MfcGroupName.M38, 0, 5);
|
||||
//关闭M32,M35,M36,M37,M38
|
||||
SetMfcByGroup((int)RoutineStep.CloseM32M35M37, MfcGroupName.M32M35M37, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.CloseM36, MfcGroupName.M36, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.CloseM38, MfcGroupName.M38, 0, 5);
|
||||
|
||||
//Delay((int)RoutineStep.TimeDelay14, 5);
|
||||
Delay((int)RoutineStep.TimeDelay14, 5);
|
||||
|
||||
//关闭Final1阀
|
||||
SetIoValueByGroup((int)RoutineStep.CloseFinanl1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
@ -430,7 +439,7 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay15, _paramContinuePumpTime);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode_2, _IoThrottle, 8);
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTvvvv, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay16, 1);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPVVV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -279,6 +279,15 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
pc7FeedBack.Add(PmDevice.Pressure7.FeedBack);
|
||||
}
|
||||
else if (ioName == "Pressure8")
|
||||
{
|
||||
pc8FeedBack.Add(PmDevice.Pressure8.FeedBack);
|
||||
}
|
||||
else if (ioName == "Pressure9")
|
||||
{
|
||||
pc9FeedBack.Add(PmDevice.Pressure9.FeedBack);
|
||||
}
|
||||
|
||||
return ElapsedTime>=10;
|
||||
},
|
||||
timeout * 1000);
|
||||
|
||||
@ -19,14 +19,15 @@ namespace SicModules.PMs.Routines
|
||||
SetPSURatio,
|
||||
SetSCRRatio,
|
||||
SetRotation,
|
||||
SetM2toM45,
|
||||
SetM2toM40,
|
||||
SetM17M18,
|
||||
SetM1to16,
|
||||
SetM5M21,
|
||||
SetPC,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV68,
|
||||
SetV65,
|
||||
SetGroupA,
|
||||
SetGroupB,
|
||||
SetGroupC,
|
||||
SetGroupE,
|
||||
@ -35,20 +36,21 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
SetGroupD,
|
||||
SetGroupG,
|
||||
|
||||
VentPumpClose,
|
||||
SetGroupV25,
|
||||
|
||||
SetV34,
|
||||
SetV100,
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
}
|
||||
|
||||
private int _heatTimeOut = 5;
|
||||
|
||||
private int _mfc1to16RampTime = 30;
|
||||
private int _mfc2to45RampTime = 30;
|
||||
|
||||
private int _IoValueOpenCloseTimeout = 10;
|
||||
private int _mfc2to40RampTime = 30;
|
||||
|
||||
private int _IoValueOpenCloseTimeout = 10;
|
||||
|
||||
private int _routineTimeOut = 10;
|
||||
|
||||
private Stopwatch _swTimer = new Stopwatch();
|
||||
@ -63,7 +65,7 @@ namespace SicModules.PMs.Routines
|
||||
Reset();
|
||||
|
||||
_mfc1to16RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC1to16RampTime");
|
||||
_mfc2to45RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC19to40RampTime");
|
||||
_mfc2to40RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC19to40RampTime");
|
||||
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.ProcessIdle.RoutineTimeOut");
|
||||
|
||||
@ -79,7 +81,7 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//1 停止加热
|
||||
//停止加热
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
|
||||
//设置模式为Power
|
||||
@ -93,47 +95,53 @@ namespace SicModules.PMs.Routines
|
||||
//停止旋转
|
||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation, 0);
|
||||
|
||||
//2 M2、M9、M15、M19-M45 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, _mfc2to45RampTime);
|
||||
//M2、M9、M15、M19-M40 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, _mfc2to40RampTime);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, _mfc2to40RampTime);
|
||||
|
||||
//3 M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
//M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, _mfc1to16RampTime);
|
||||
//M5 M2130s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM5M21, MfcGroupName.M5M21, _mfc1to16RampTime);
|
||||
|
||||
//所有PC设定为默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//等待MFC等流量
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to45RampTime, _mfc1to16RampTime));
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to40RampTime, _mfc1to16RampTime));
|
||||
|
||||
//4 打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
//打开V32
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV32, IoGroupName.V32, true);
|
||||
|
||||
|
||||
//4 打开A
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35、V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupB, IoGroupName.B, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupC, IoGroupName.C, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupE, IoGroupName.E, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupF, IoGroupName.F, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupH, IoGroupName.H, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupK, IoGroupName.K, false);
|
||||
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV34, IoGroupName.V34, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV100, IoGroupName.V100, false);
|
||||
|
||||
//打开D/G 阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupD, IoGroupName.D, true);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupG, IoGroupName.G, true);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroupNoWait((int)RoutineStep.SetV65, IoGroupName.V65, true);
|
||||
|
||||
//打开V68
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV68, IoGroupName.GasIn1, true);
|
||||
|
||||
////关闭V72,打开V25
|
||||
//SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 2);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupV25, IoGroupName.V25, true);
|
||||
}
|
||||
|
||||
catch (RoutineBreakException)
|
||||
|
||||
@ -18,7 +18,7 @@ namespace SicModules.PMs.Routines
|
||||
HeatEnable,
|
||||
VentPumpClose,
|
||||
ArSupply,
|
||||
SetGroupA,
|
||||
|
||||
SetGroupB,
|
||||
SetGroupC,
|
||||
SetGroupE,
|
||||
@ -30,8 +30,10 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupJ,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM18,
|
||||
SetM2to40,
|
||||
SetM2to40_1,
|
||||
MfcAll,
|
||||
@ -74,11 +76,13 @@ namespace SicModules.PMs.Routines
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV87V97,
|
||||
SetV65,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMax,
|
||||
|
||||
@ -141,7 +145,6 @@ namespace SicModules.PMs.Routines
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.RoutineTimeOut");
|
||||
_pumpTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
|
||||
|
||||
if (!_pmIoInterLock.SetPMPumpRoutineRunning(true, out string reason))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not Pump,{reason}");
|
||||
@ -167,11 +170,13 @@ namespace SicModules.PMs.Routines
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -196,15 +201,16 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM45, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM42, 3);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//8 打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.OpenGasIn1, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
@ -226,7 +232,10 @@ namespace SicModules.PMs.Routines
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM45, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
//关闭V87 V97
|
||||
SetIoValueByGroup((int)RoutineStep.SetV87V97, IoGroupName.V87V97, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _pumpTimeOut);
|
||||
|
||||
@ -33,6 +33,7 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
CloseGroupJ,
|
||||
@ -51,8 +52,8 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM2toM26M43M44M45,
|
||||
SetM2M9M15_M19toM26,
|
||||
SetM291519to26,
|
||||
SetM291519to26_1,
|
||||
|
||||
OpenFinal2,
|
||||
IsOpenFinal1,
|
||||
@ -115,26 +116,31 @@ namespace SicModules.PMs.Routines
|
||||
SetPressUpOrDown2,
|
||||
SetMfc28to40Special,
|
||||
WaitPmPressureUp,
|
||||
SetMfc27to45Default,
|
||||
SetMfc27to40Default,
|
||||
|
||||
SetV75,
|
||||
SetV76,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV65,
|
||||
SetV751,
|
||||
SetV761,
|
||||
SetM2toM45,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetM2toM40,
|
||||
SetM2toM40_1,
|
||||
SetM2TOM40Default,
|
||||
SetM18,
|
||||
SetM18_1,
|
||||
SetM18_2,
|
||||
SetM18Default,
|
||||
|
||||
SetV93V95,
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM35M36M37M38,
|
||||
SetM32M35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
SetM36_1,
|
||||
@ -201,7 +207,6 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _heatTimeOut = 5; //Heat关闭等待Di反馈超时时间
|
||||
@ -287,24 +292,26 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -319,9 +326,6 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -329,16 +333,20 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26M43M44M45, MfcGroupName.M2toM45, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
|
||||
//7 打开EPV2
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
@ -351,11 +359,12 @@ namespace SicModules.PMs.Routines
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
//8 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
||||
|
||||
//9 等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _pumpTimeout);
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _throttleTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
@ -364,70 +373,83 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//10 Final2阀对应的MFC 3s Ramp到Default值
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//11 打开Final2阀
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//12 打开 V65 V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||
|
||||
//13 M35 36 37 38 MFC 3s ramp 到default
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M36M37M38, MfcGroupName.M35M36M37M38, 3);
|
||||
|
||||
|
||||
//14 14.打开V93、V95;打开V94等待3S,打开V96
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
//打开V92,V93和V95,再打开V94,在打开V96
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM45, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//等待压力大于等于设定值(可配置)
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
||||
|
||||
////设置蝶阀为压力模式
|
||||
//SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
////使用动态流量伺服到300mbar
|
||||
//SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
//SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp, _IoThrottle, _ventBasePressure);
|
||||
//WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _pmPressureMaxDiff, _pressureMaxTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM45, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pumpBasePressure, _pumpTimeout);
|
||||
|
||||
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
////蝶阀设置为位置模式,开度设置为最大
|
||||
//SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode_1, _IoThrottle, _throttleTimeout);
|
||||
//SetThrottleSetPositionNoWait((int)RoutineStep.SetTVPositionMax_1, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//TimeDelay((int)RoutineStep.TimeDelay9, _pressureMinDelay);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
//M2,M9,M15,M19-M26 3s ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2M9M15_M19toM26, MfcGroupName.M2M9M15_M19toM26, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26_1, MfcGroupName.M2toM26, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
||||
|
||||
//M27-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc27to45Default, MfcGroupName.M27toM45, 3);
|
||||
//M27-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc27to40Default, MfcGroupName.M27toM40, 3);
|
||||
|
||||
//打开J阀门
|
||||
//SetIoValueByGroup((int)RoutineStep.CloseGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
//关闭J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭先关蝶阀,再EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
||||
|
||||
@ -16,7 +16,7 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
RotationEnable,
|
||||
HeatEnable,
|
||||
V72,
|
||||
VentPumpClose,
|
||||
ArSupply,
|
||||
|
||||
SetGroupA,
|
||||
@ -33,7 +33,8 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM2toM45,
|
||||
SetM17M18,
|
||||
SetM2toM40,
|
||||
SetPC,
|
||||
SetM291519to38,
|
||||
SetGroupJ,
|
||||
@ -53,7 +54,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM2toM26M43M44M45,
|
||||
SetM291519to26,
|
||||
|
||||
OpenFinal2,
|
||||
SetMfcFinal2,
|
||||
@ -75,17 +76,18 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetGroupV25,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
SetV93V95,
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM35M37,
|
||||
SetM32M35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
|
||||
@ -162,24 +164,26 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.V72, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -198,43 +202,46 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 5s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 5);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 3);
|
||||
|
||||
//7 关闭蝶阀
|
||||
//关闭蝶阀
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
||||
|
||||
//关闭EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//8 打开A 组阀
|
||||
//打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
//M35、M37依次设定3S ramp 到default值 ; 等待3S。
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 M43-M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26M43M44M45, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
|
||||
//开V94,V96需等到腔体压力大于950
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 950, _waitPMPressureUpTimeout);
|
||||
@ -252,7 +259,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp, _ventBasePressure, _waitPMPressureUpTimeout);
|
||||
|
||||
//设置M28,M29,M31,M40 3s ramp 到default 值
|
||||
//SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M27To3540To42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M28293140, 3);
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
||||
@ -26,7 +26,8 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
|
||||
SetM1to16,
|
||||
SetM2toM45,
|
||||
SetM2toM40,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM19to38,
|
||||
@ -57,13 +58,14 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetGroupV25,
|
||||
SetV65,
|
||||
CloseV68,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
CloseM32M35M37,
|
||||
CloseM36,
|
||||
@ -119,23 +121,25 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, 0, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -160,16 +164,17 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 5s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 5);
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0, 5);
|
||||
|
||||
//7 关闭Final1阀
|
||||
//关闭Final1阀
|
||||
SetIoValueByGroup((int)RoutineStep.CloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭Final2
|
||||
|
||||
@ -3,11 +3,11 @@ using System.Diagnostics;
|
||||
using Aitex.Core.RT.Device;
|
||||
using Aitex.Core.RT.Device.Devices;
|
||||
using Aitex.Core.RT.Event;
|
||||
using Aitex.Core.RT.Log;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using SicModules.PMs.Routines.Base;
|
||||
using static Aitex.Core.RT.Device.PmDevices.DicMode;
|
||||
|
||||
namespace SicModules.PMs.Routines
|
||||
{
|
||||
@ -38,6 +38,7 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
SetM2toM40,
|
||||
@ -53,7 +54,7 @@ namespace SicModules.PMs.Routines
|
||||
SetGasIn1, //V68
|
||||
OpenFinal1, //V91-96
|
||||
SetMfcFinal1, //M32-38
|
||||
SetM2toM26,
|
||||
SetM291519to26,
|
||||
|
||||
SetTVCloseMode,
|
||||
SetTvPositionToZero,
|
||||
@ -84,11 +85,12 @@ namespace SicModules.PMs.Routines
|
||||
SetV25,
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV65,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
SetEPV1,
|
||||
SetEPV2,
|
||||
@ -128,11 +130,11 @@ namespace SicModules.PMs.Routines
|
||||
CheckEpv2Open,
|
||||
CheckEpv1Open,
|
||||
|
||||
SetV93V95,
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM35M37,
|
||||
SetM32M35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
WaitPmPressureUp1,
|
||||
@ -165,7 +167,6 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||
@ -205,16 +206,24 @@ namespace SicModules.PMs.Routines
|
||||
_IoThrottle = DEVICE.GetDevice<IoThrottleValve2>($"{Module}.TV");
|
||||
_pmInterLock = DEVICE.GetDevice<IoInterLock>($"{Module}.PMInterLock");
|
||||
|
||||
if (!PmDevice.CheckSlitValveClose())
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run ProcessIdle, {Module} SlitValve Opened");
|
||||
return Result.FAIL;
|
||||
}
|
||||
//if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
//{
|
||||
// EV.PostAlarmLog(Module, $"can not run ProcessIdle, {reason}");
|
||||
// return Result.FAIL;
|
||||
//}
|
||||
|
||||
if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
/*
|
||||
* 2025-07-16
|
||||
* 执行ProcessIdle Routine需禁用MFC报警;报警只在保持ProcessIdle状态时生效。
|
||||
* 这个DO原本用来指示正在执行Routine,现在改为指示PM维持在ProcessIdle状态。
|
||||
* 只有维持在ProcessIdle状态时,才会启用MFC报警监测。
|
||||
*
|
||||
* PM状态机ProcessIdle状态进入和退出时分别设置DOProcessIdleRunning为true和false,因此进入当前Routine时,
|
||||
* DOProcessIdleRunning有可能为1,需要强制设置为0;当前Routine执行完毕后再将这个DO设置为1,表示已进入ProcessIdle状态。
|
||||
*/
|
||||
if (!_pmInterLock.SetPMProcessIdleRunning(false, out var reason))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run ProcessIdle, {reason}");
|
||||
return Result.FAIL;
|
||||
LOG.Error($"Failed to set DOProcessIdle to false due to {reason}");
|
||||
}
|
||||
|
||||
if (!PmDevice.CheckHeadHeaterEnable(true))
|
||||
@ -256,7 +265,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
|
||||
_scrHeatEnable = SC.GetValue<bool>($"PM.{Module}.ProcessIdle.SCRHeaterEnable");
|
||||
_scrHeatMode = (int)SC.GetValue<int>($"PM.{Module}.ProcessIdle.SCRHeaterMode");
|
||||
_scrHeatMode = SC.GetValue<int>($"PM.{Module}.ProcessIdle.SCRHeaterMode");
|
||||
_scrL1Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRUpperRatio");
|
||||
_scrL2Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRMiddleRatio");
|
||||
_scrL3Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRLowerRatio");
|
||||
@ -279,20 +288,22 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
//旋转停止
|
||||
//SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//3 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -314,62 +325,59 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//5 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//6 M2、M9、M15、M19-M40、M41-M45 5s ramp到default值
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 0, 5);
|
||||
////M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
//SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
||||
|
||||
//7 打开EPV2
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
//8 打开Final2阀
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//9 Final2阀对应的MFC 3s Ramp到Default值
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//10 打开V93(ChamberPurge.Final)、V95(ConfinementRing.Final);等待3S
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
//11 M35、M37依次设定3S ramp 到default值 ; 等待3S
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//12 打开V94(RotationUpPurge.Final)、M36设定5S ramp 到default值;等待3S
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 5);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 3);
|
||||
|
||||
//打开V96(HeaterWF.Final); M38依次设定5S ramp 到default值
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 5);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
|
||||
//13 打开J Valves
|
||||
//打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 M43、M44、M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
||||
|
||||
//14 设置蝶阀为压力模式
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
|
||||
//伺服压力设定值到1050mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTV, _IoThrottle, 1050);
|
||||
|
||||
//15 打开V72
|
||||
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
//打开V72
|
||||
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
|
||||
//关闭V25
|
||||
@ -381,7 +389,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
//16 转速Enable,加热Enable, 电流功率可配置
|
||||
//转速Enable,加热Enable, 电流功率可配置
|
||||
EnableRotation((int)RoutineStep.EnableRotation, 5);
|
||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation1, _rotationSpeed);
|
||||
|
||||
@ -418,7 +426,7 @@ namespace SicModules.PMs.Routines
|
||||
SetSCREnable((int)RoutineStep.CloseTC2, false, 5);
|
||||
}
|
||||
|
||||
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed * 3);
|
||||
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed / 2);
|
||||
}
|
||||
|
||||
catch (RoutineBreakException)
|
||||
@ -430,7 +438,13 @@ namespace SicModules.PMs.Routines
|
||||
return Result.FAIL;
|
||||
}
|
||||
|
||||
_pmInterLock.SetPMProcessIdleRunning(false, out string reason);
|
||||
// _pmInterLock.SetPMProcessIdleRunning(false, out string reason);
|
||||
if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
{
|
||||
LOG.Error($"Failed to set DOProcessIdle to true due to {reason}");
|
||||
}
|
||||
|
||||
|
||||
Notify($"Finished ! Elapsed time: {(int)(_swTimer.ElapsedMilliseconds / 1000)} s");
|
||||
_swTimer.Stop();
|
||||
|
||||
|
||||
@ -30,8 +30,10 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupJ,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM18,
|
||||
SetM2to40,
|
||||
SetM2to40_1,
|
||||
MfcAll,
|
||||
@ -65,7 +67,6 @@ namespace SicModules.PMs.Routines
|
||||
SetTvOpen,
|
||||
SetTvModeToPress,
|
||||
SetTVto1050,
|
||||
SetGroupA,
|
||||
OpenGasIn1,
|
||||
SetV65,
|
||||
CloseGasIn1,
|
||||
@ -76,11 +77,12 @@ namespace SicModules.PMs.Routines
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV97V87,
|
||||
SetV87V97,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMax,
|
||||
|
||||
@ -116,11 +118,9 @@ namespace SicModules.PMs.Routines
|
||||
private double _pmPressureMaxDiff; //蝶阀与目标压力的差值范围(认为调整到位了)
|
||||
private int _throttleTimeout; //蝶阀调整到指定压力的超时时间
|
||||
|
||||
private int _pumpTimeout;
|
||||
|
||||
private double _vacPumpBasePressure;
|
||||
private int _routineTimeOut;
|
||||
//private int _EPV2OpenDelayTime = 9;
|
||||
private int _pumpTimeOut;
|
||||
|
||||
private Stopwatch _swTimer = new Stopwatch();
|
||||
public PMVacIdleRoutine(ModuleName module, PMModule pm1) : base(module, pm1)
|
||||
@ -143,8 +143,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
_vacPumpBasePressure = SC.GetValue<double>($"PM.{Module}.Pump.PumpBasePressure");
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.RoutineTimeOut");
|
||||
|
||||
_pumpTimeout = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
_pumpTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
|
||||
if (!_pmIoInterLock.SetPMVacIdleRountingRunning(true, out var reason))
|
||||
{
|
||||
@ -163,24 +162,26 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//1 关闭V76,打开V75
|
||||
//关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//2 旋转停止,加热停止
|
||||
//旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//4 打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//5 打开V35,打开V36
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -199,17 +200,18 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//7 M2、M9、M15、M19-M40 、M41-M45 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM45, 3);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM42, 3);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//8 打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.OpenGasIn1, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
@ -217,7 +219,7 @@ namespace SicModules.PMs.Routines
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//9 打开EPV2
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 3);
|
||||
|
||||
@ -227,16 +229,17 @@ namespace SicModules.PMs.Routines
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
|
||||
//伺服到0mbar
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _vacPumpBasePressure);
|
||||
|
||||
//10 M2、M9、M15、M19-M45 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV97V87, IoGroupName.V97V87, false, _IoValueOpenCloseTimeout);
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM42, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
//关闭V87 V97
|
||||
SetIoValueByGroup((int)RoutineStep.SetV87V97, IoGroupName.V87V97, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _vacPumpBasePressure, _pumpTimeout);
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _vacPumpBasePressure, _pumpTimeOut);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||
|
||||
@ -33,6 +33,7 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetM2toM40,
|
||||
SetPC,
|
||||
SetM291519to38,
|
||||
@ -75,17 +76,18 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetGroupV25,
|
||||
|
||||
SetV93V95,
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM35M37,
|
||||
SetM32M35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
|
||||
@ -110,7 +112,6 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
@ -172,11 +173,13 @@ namespace SicModules.PMs.Routines
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -201,12 +204,13 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 3);
|
||||
|
||||
//关闭蝶阀
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
@ -219,25 +223,28 @@ namespace SicModules.PMs.Routines
|
||||
//打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
|
||||
//开V94,V96需等到腔体压力大于950
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 950, _waitPMPressureUpTimeout);
|
||||
@ -255,7 +262,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp, _ventBasePressure, _waitPMPressureUpTimeout); //等待反应腔压力大于1000
|
||||
|
||||
//设置M28,M29,M31,M40 3s ramp 到default 值
|
||||
//SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M27To3540To42, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M28293140, 3);
|
||||
|
||||
_pmIoInterLock.SetPMVentRoutineRunning(false, out _);
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@ namespace SicModules.PMs.Routines.Recipe
|
||||
// EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
// return Result.FAIL;
|
||||
//}
|
||||
//if (!PMDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
//if (!PMDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
//{
|
||||
// EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
// return Result.FAIL;
|
||||
|
||||
@ -413,6 +413,7 @@ namespace SicSimulator.Instances
|
||||
new Tuple<string, string>("AI_M15","AO_M15"),
|
||||
new Tuple<string, string>("AI_M16","AO_M16"),
|
||||
new Tuple<string, string>("AI_M17","AO_M17"),
|
||||
new Tuple<string, string>("AI_M18","AO_M18"),
|
||||
new Tuple<string, string>("AI_M19","AO_M19"),
|
||||
new Tuple<string, string>("AI_M20","AO_M20"),
|
||||
new Tuple<string, string>("AI_M22","AO_M22"),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user