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