添加M41-M45配置
修改Routine
This commit is contained in:
parent
a28609dec3
commit
cac67d78d9
@ -192,7 +192,12 @@
|
||||
<IoMfc id="Mfc36" display="Mfc36" schematicId="Mfc36" unit="sccm" aiActMode="AI_M36ActMode" aoSetMode="AO_M36CtrlMode" aiFlow="AI_M36" aoFlow="AO_M36" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC36Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm136 MFC36 Offline[DI-386]" />
|
||||
<IoMfc id="Mfc37" display="Mfc37" schematicId="Mfc37" unit="sccm" aiActMode="AI_M37ActMode" aoSetMode="AO_M37CtrlMode" aiFlow="AI_M37" aoFlow="AO_M37" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC37Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm137 MFC37 Offline[DI-387]" />
|
||||
<IoMfc id="Mfc38" display="Mfc38" schematicId="Mfc38" unit="sccm" aiActMode="AI_M38ActMode" aoSetMode="AO_M38CtrlMode" aiFlow="AI_M38" aoFlow="AO_M38" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC38Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm138 MFC38 Offline[DI-388]" />
|
||||
<IoMfc id="Mfc40" display="Mfc40" schematicId="Mfc40" unit="sccm" aiActMode="AI_M40ActMode" aoSetMode="AO_M40CtrlMode" aiFlow="AI_M40" aoFlow="AO_M40" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="" />
|
||||
<IoMfc id="Mfc40" display="Mfc40" schematicId="Mfc40" unit="sccm" aiActMode="AI_M40ActMode" aoSetMode="AO_M40CtrlMode" aiFlow="AI_M40" aoFlow="AO_M40" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC40Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="" />
|
||||
<IoMfc id="Mfc41" display="Mfc41" schematicId="Mfc41" unit="sccm" aiActMode="AI_M41ActMode" aoSetMode="AO_M41CtrlMode" aiFlow="AI_M41" aoFlow="AO_M41" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC41Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm141 MFC41 Offline[DI-391]" />
|
||||
<IoMfc id="Mfc42" display="Mfc42" schematicId="Mfc42" unit="sccm" aiActMode="AI_M42ActMode" aoSetMode="AO_M42CtrlMode" aiFlow="AI_M42" aoFlow="AO_M42" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC42Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm142 MFC42 Offline[DI-392]" />
|
||||
<IoMfc id="Mfc43" display="Mfc43" schematicId="Mfc43" unit="sccm" aiActMode="AI_M43ActMode" aoSetMode="AO_M43CtrlMode" aiFlow="AI_M43" aoFlow="AO_M43" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC43Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm143 MFC43 Offline[DI-393]" />
|
||||
<IoMfc id="Mfc44" display="Mfc44" schematicId="Mfc44" unit="sccm" aiActMode="AI_M44ActMode" aoSetMode="AO_M44CtrlMode" aiFlow="AI_M44" aoFlow="AO_M44" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC44Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm144 MFC44 Offline[DI-394]" />
|
||||
<IoMfc id="Mfc45" display="Mfc45" schematicId="Mfc45" unit="sccm" aiActMode="AI_M45ActMode" aoSetMode="AO_M45CtrlMode" aiFlow="AI_M45" aoFlow="AO_M45" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC45Offline" maskDOProcessIdle="DO_ProcessIdleRunning" maskDOPreProcess="DO_PreprocessRunning" maskDOPostProcess="DO_PostProcessRunning" maskDOProcess="DO_ProcessRunning" AlarmText="Alarm145 MFC45 Offline[DI-395]" />
|
||||
</IoMfcs>
|
||||
<IoPressureMeters classType="Aitex.Core.RT.Device.Devices.IoPressure" assembly="MECF.Framework.RT.EquipmentLibrary">
|
||||
<IoPressureMeter id="Pressure1" display="PC1" schematicId="Pressure1" scBasePath="PM.{module}.PC" unit="mbar" aioType="float" aiOpenDegree="AI_PC1Valve" aiActMode="AI_PC1ActMode" aoSetMode="AO_PC1CtrlMode" aiValue="AI_PressCtrl1" aoValue="AO_PressCtrl1" formatString="0.0" diAlarm="DI_PC01Offline" AlarmText="Alarm141 PC1 Offline[DI-391]" />
|
||||
|
||||
@ -692,6 +692,17 @@
|
||||
<AI_ITEM Index="275" Name="AI_PSU3SimVoltage" BufferOffset="94" Addr="94" Description="" />
|
||||
<AI_ITEM Index="276" Name="AI_PSU3SimArms" BufferOffset="95" Addr="95" Description="" />
|
||||
<AI_ITEM Index="277" Name="AI_PSU3Alarm" BufferOffset="96" Addr="96" Description="" />
|
||||
<AO_ITEM Index="281" Name="AO_M41" BufferOffset="97" Addr="97" Description="" />
|
||||
<AO_ITEM Index="282" Name="AO_M42" BufferOffset="98" Addr="98" Description="" />
|
||||
<AO_ITEM Index="283" Name="AO_M43" BufferOffset="99" Addr="99" Description="" />
|
||||
<AO_ITEM Index="284" Name="AO_M44" BufferOffset="100" Addr="100" Description="" />
|
||||
<AO_ITEM Index="285" Name="AO_M45" BufferOffset="101" Addr="101" Description="" />
|
||||
|
||||
<AO_ITEM Index="301" Name="AO_M41CtrlMode" BufferOffset="102" Addr="102" Description="" />
|
||||
<AO_ITEM Index="302" Name="AO_M42CtrlMode" BufferOffset="103" Addr="103" Description="" />
|
||||
<AO_ITEM Index="303" Name="AO_M43CtrlMode" BufferOffset="104" Addr="104" Description="" />
|
||||
<AO_ITEM Index="304" Name="AO_M44CtrlMode" BufferOffset="105" Addr="105" Description="" />
|
||||
<AO_ITEM Index="305" Name="AO_M45CtrlMode" BufferOffset="106" Addr="106" Description="" />
|
||||
</Block>
|
||||
</Ana_In>
|
||||
<Ana_Out>
|
||||
@ -926,6 +937,17 @@
|
||||
<AO_ITEM Index="272" Name="AO_PSU3Reset" BufferOffset="91" Addr="91" Description="" />
|
||||
<AO_ITEM Index="273" Name="AO_PSU3ArmLimited" BufferOffset="92" Addr="92" Description="" />
|
||||
<AO_ITEM Index="280" Name="AO_PSU3Constant" BufferOffset="99" Addr="99" Description="" />
|
||||
<AO_ITEM Index="281" Name="AO_M41" BufferOffset="100" Addr="100" Description="" />
|
||||
<AO_ITEM Index="282" Name="AO_M42" BufferOffset="101" Addr="101" Description="" />
|
||||
<AO_ITEM Index="283" Name="AO_M43" BufferOffset="102" Addr="102" Description="" />
|
||||
<AO_ITEM Index="284" Name="AO_M44" BufferOffset="103" Addr="103" Description="" />
|
||||
<AO_ITEM Index="285" Name="AO_M45" BufferOffset="104" Addr="104" Description="" />
|
||||
|
||||
<AO_ITEM Index="301" Name="AO_M41CtrlMode" BufferOffset="105" Addr="105" Description="" />
|
||||
<AO_ITEM Index="302" Name="AO_M42CtrlMode" BufferOffset="106" Addr="106" Description="" />
|
||||
<AO_ITEM Index="303" Name="AO_M43CtrlMode" BufferOffset="107" Addr="107" Description="" />
|
||||
<AO_ITEM Index="304" Name="AO_M44CtrlMode" BufferOffset="108" Addr="108" Description="" />
|
||||
<AO_ITEM Index="305" Name="AO_M45CtrlMode" BufferOffset="109" Addr="109" Description="" />
|
||||
</Block>
|
||||
</Ana_Out>
|
||||
</IO_DEFINE>
|
||||
File diff suppressed because it is too large
Load Diff
@ -122,7 +122,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
return Result.FAIL;
|
||||
}
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
return Result.FAIL;
|
||||
|
||||
@ -55,8 +55,6 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
SetTC2Ratio1,
|
||||
CloseTC2,
|
||||
WaitRotation1,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
@ -151,9 +149,6 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
@ -174,14 +169,13 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 5);
|
||||
|
||||
//M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 5);
|
||||
|
||||
//所有PC设定为默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
@ -193,7 +187,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V72,关闭V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置蝶阀Enable
|
||||
|
||||
@ -186,7 +186,7 @@ namespace SicModules.PMs.RecipeExecutions
|
||||
EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
return Result.FAIL;
|
||||
}
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
if (!PmDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
return Result.FAIL;
|
||||
|
||||
@ -121,7 +121,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
|
||||
public virtual void Abort()
|
||||
{
|
||||
_pm.SetMfcToDefaultByGroup(MfcGroupName.M27toM40);
|
||||
_pm.SetMfcToDefaultByGroup(MfcGroupName.M27toM45);
|
||||
}
|
||||
|
||||
protected void PreparePump(int id, PMModuleBase pm, int timeout)
|
||||
@ -532,10 +532,10 @@ namespace SicModules.PMs.Routines.Base
|
||||
{
|
||||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
//Notify($"Set {Module} rotation");
|
||||
Notify($"Set {Module} rotation");
|
||||
if (!_pm.SetRotationServo(checkSpeed, 0))
|
||||
{
|
||||
//Stop($"Set {Module} rotation error");
|
||||
Stop($"Set {Module} rotation error");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -928,7 +928,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
{
|
||||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
_v72IsOpen = _pm.CheckIOValueByGroup(IoGroupName.VentPump, true) && _pm.CheckIOValueByGroup(IoGroupName.V888990, true) && _pm.PT1.FeedBack >= pressure;
|
||||
_v72IsOpen = _pm.CheckIOValueByGroup(IoGroupName.V72, true) && _pm.CheckIOValueByGroup(IoGroupName.V888990, true) && _pm.PT1.FeedBack >= pressure;
|
||||
return true;
|
||||
});
|
||||
|
||||
@ -1299,7 +1299,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
Notify($"Set MFC28,29,31,40 to pressureLevel [{cIntLv - 50},{cIntLv + 50})");
|
||||
}
|
||||
_lastPressureLevel = level;
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M28293140, Convert.ToDouble((int)level));
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M27To3540To42, Convert.ToDouble((int)level));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1840,13 +1840,13 @@ namespace SicModules.PMs.Routines.Base
|
||||
if (!_setMfc291519to38Flag && currentPressureUpOrDown == PressureUpOrDown.Dowing && _IoThrottle.PressureFeedback < 20)
|
||||
{
|
||||
Notify($"Set M2toM40 value to 0 ");
|
||||
_pm.SetMfcByGroup(MfcGroupName.M2toM40, 0, 2);
|
||||
_pm.SetMfcByGroup(MfcGroupName.M2toM45, 0, 2);
|
||||
_setMfc291519to38Flag = true;
|
||||
}
|
||||
else if (!_setMfc291519to38Flag && currentPressureUpOrDown == PressureUpOrDown.Uping && _IoThrottle.PressureFeedback < 20)
|
||||
{
|
||||
Notify($"Set M2toM40 value to default");
|
||||
_pm.SetMfcToDefaultByGroupRamp(MfcGroupName.M2toM40, 2);
|
||||
_pm.SetMfcToDefaultByGroupRamp(MfcGroupName.M2toM45, 2);
|
||||
_setMfc291519to38Flag = true;
|
||||
}
|
||||
|
||||
|
||||
@ -31,7 +31,6 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
SetGroupJ_1,
|
||||
@ -50,7 +49,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM291519to26,
|
||||
SetM2toM45,
|
||||
|
||||
OpenFinal2,
|
||||
SetMfcFinal2,
|
||||
@ -122,8 +121,9 @@ namespace SicModules.PMs.Routines
|
||||
SetTVEnable_2,
|
||||
SetTVPressMode,
|
||||
SetTv1,
|
||||
SetM2toM40,
|
||||
SetM18,
|
||||
SetM2toM45_Ramp0,
|
||||
SetM2toM45_Ramp01,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
@ -135,21 +135,16 @@ namespace SicModules.PMs.Routines
|
||||
SetTVPositionMax_1,
|
||||
SetTVPressMode1,
|
||||
SetTVPressMode2,
|
||||
SetM2TOM40Default,
|
||||
SetM2toM40_1,
|
||||
SetMfc2to40Default,
|
||||
SetM18Default,
|
||||
SetM18_1,
|
||||
SetM18_2,
|
||||
SetM2TOM45Default,
|
||||
SetM2toM45_1,
|
||||
SetMfc2to45Default,
|
||||
|
||||
|
||||
SetV92V93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetV68,
|
||||
SetM32M35M37,
|
||||
SetM35M36M37M38,
|
||||
SetM36,
|
||||
SetM38,
|
||||
WaitPmPressureUp1,
|
||||
@ -185,6 +180,10 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout = 20; //旋转停止超时
|
||||
private int _heatTimeOut = 5; //Heat关闭等待Di反馈超时时间
|
||||
@ -268,26 +267,25 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -302,6 +300,12 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -309,20 +313,13 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
//M2、M9、M15、M19-M45 3s ramp到default值。
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//打开EPV2
|
||||
//7 打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
@ -335,13 +332,11 @@ namespace SicModules.PMs.Routines
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
||||
//8 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45_Ramp0, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
//9 等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pumpTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
@ -349,39 +344,44 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
//10 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//11 打开V87、V88、V89、V90、V91、V97
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//12 打开V65 V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||
|
||||
//打开V92,V93和V95,再打开V94,在打开V96
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
//13 M35\M36\M37\M38 ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M36M37M38, MfcGroupName.M35M36M37M38, 3);
|
||||
|
||||
//14 打开V93、V95;打开V94等待3S,打开V96
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM45Default, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
@ -392,24 +392,23 @@ namespace SicModules.PMs.Routines
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45_1, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pumpTimeout);
|
||||
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
//M27-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc2to40Default, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
||||
//M2-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc2to45Default, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ_1, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V72,关闭V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose_1, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose_1, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置蝶阀为压力模式
|
||||
@ -419,6 +418,8 @@ namespace SicModules.PMs.Routines
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp2, _IoThrottle, _throttleFinalPressure);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||
|
||||
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
||||
@ -7,7 +7,6 @@ using Aitex.Core.RT.Event;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.Common.Fsm;
|
||||
using SicModules.PMs.Routines.Base;
|
||||
|
||||
namespace SicModules.PMs.Routines
|
||||
@ -19,7 +18,6 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
SetM7Or10,
|
||||
SetM8Or11,
|
||||
SetM21,
|
||||
OpenV73,
|
||||
StartLoop,
|
||||
OpenGroup1,
|
||||
@ -156,12 +154,11 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//关闭K阀组
|
||||
//1 关闭K阀组
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueTimeout);
|
||||
|
||||
//设定M7,M8 80%,PC2设定Max
|
||||
//2 设定M7,M8 80%,PC2设定Max
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM7Or10, mfc7Or10, 80);
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM21, 21, 80);
|
||||
SetMfcValueByPercent((int)RoutineStep.SetM8Or11, mfc8Or11, 80);
|
||||
|
||||
//打开V73
|
||||
|
||||
@ -52,8 +52,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM291519to26,
|
||||
SetM17M18,
|
||||
SetM2toM45Default_1,
|
||||
|
||||
OpenFinal2,
|
||||
CloseFinal2,
|
||||
@ -62,21 +61,22 @@ namespace SicModules.PMs.Routines
|
||||
SetEPV1,
|
||||
SetEPV2,
|
||||
SetTvMode,
|
||||
SetTVEnable,
|
||||
SetTVEnable_1,
|
||||
SetTVEnable_2,
|
||||
SetTVEnable_3,
|
||||
SetTVPressMode,
|
||||
SetTv1,
|
||||
WaitTv1,
|
||||
SetM2toM40,
|
||||
SetM18,
|
||||
SetM2toM45,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMode_1,
|
||||
SetTVPositionMax,
|
||||
SetTVPositionMax_1,
|
||||
SetTVPressMode1,
|
||||
SetM2TOM40Default,
|
||||
SetTVPressMode_1,
|
||||
SetTVPressMode_2,
|
||||
SetTVPressMode_3,
|
||||
SetM2toM45Default_2,
|
||||
SetM2toM40_1,
|
||||
SetM18Default,
|
||||
SetM18_1,
|
||||
|
||||
SetTvOpen,
|
||||
SetTvModeToPress,
|
||||
@ -100,7 +100,7 @@ namespace SicModules.PMs.Routines
|
||||
CloseFinanl1,
|
||||
CloseFinanl2,
|
||||
CloseEPV2,
|
||||
SetTVCloseMode2,
|
||||
SetTVCloseMode_2,
|
||||
CLoseTvvvv,
|
||||
SetEPVVV2,
|
||||
CLoseEPV1,
|
||||
@ -142,6 +142,7 @@ namespace SicModules.PMs.Routines
|
||||
CloseV69,
|
||||
CloseV70,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
@ -157,15 +158,12 @@ namespace SicModules.PMs.Routines
|
||||
CloseM32M35M37,
|
||||
CloseM36,
|
||||
CloseM38,
|
||||
SetV103,
|
||||
SetV105,
|
||||
CloseGasIn1,
|
||||
|
||||
SetTVCloseMode1,
|
||||
CLoseTV1,
|
||||
SetEPV2_1,
|
||||
SetEPV2_2,
|
||||
SetTVEnable_2,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
@ -200,6 +198,9 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _heatTimeOut = 5; //Heat关闭等待Di反馈超时时间
|
||||
@ -238,6 +239,7 @@ namespace SicModules.PMs.Routines
|
||||
Module = module.ToString();
|
||||
Name = "Leak Check";
|
||||
|
||||
|
||||
_IoThrottle = DEVICE.GetDevice<IoThrottleValve2>($"{Module}.TV");
|
||||
}
|
||||
|
||||
@ -300,26 +302,24 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -338,57 +338,52 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM40, 3);//组改变,.M2toM26改变为->M2toM40,防止MFC不在正常状态
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 3);
|
||||
//7 设置M2,M9,M15,M19-M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45Default_1, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//8 打开A阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开EPV2
|
||||
//9 打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
||||
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode_1, _IoThrottle, 5);
|
||||
|
||||
//伺服压力设定值到0mbar
|
||||
//10 伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
//11 等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pressureMinTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
||||
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45Default_2, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
@ -397,37 +392,36 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _pressureMaxTimeout);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _pmPressureMaxDiff, _pressureMaxTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
||||
//设置蝶阀Enable
|
||||
////设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode_3, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pressureMinTimeout);
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pmPressureMaxDiff, _pressureMinTimeout);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
//依次关闭Final1
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGasIn1, IoGroupName.GasIn1, false, _IoValueOpenCloseTimeout);
|
||||
Delay((int)RoutineStep.TimeDelay13, 5);
|
||||
////依次关闭Final1
|
||||
//SetIoValueByGroup((int)RoutineStep.CloseGasIn1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
//Delay((int)RoutineStep.TimeDelay13, 5);
|
||||
|
||||
//关闭M32,M35,M36,M37,M38
|
||||
SetMfcByGroup((int)RoutineStep.CloseM32M35M37, MfcGroupName.M32M35M37, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.CloseM36, MfcGroupName.M36, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.CloseM38, MfcGroupName.M38, 0, 5);
|
||||
////关闭M32,M35,M36,M37,M38
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM32M35M37, MfcGroupName.M35M37, 0, 5);
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM36, MfcGroupName.M36, 0, 5);
|
||||
//SetMfcByGroup((int)RoutineStep.CloseM38, MfcGroupName.M38, 0, 5);
|
||||
|
||||
Delay((int)RoutineStep.TimeDelay14, 5);
|
||||
//Delay((int)RoutineStep.TimeDelay14, 5);
|
||||
|
||||
//关闭Final1阀
|
||||
SetIoValueByGroup((int)RoutineStep.CloseFinanl1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
@ -439,7 +433,7 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay15, _paramContinuePumpTime);
|
||||
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode_2, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTvvvv, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay16, 1);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPVVV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -279,15 +279,6 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
pc7FeedBack.Add(PmDevice.Pressure7.FeedBack);
|
||||
}
|
||||
else if (ioName == "Pressure8")
|
||||
{
|
||||
pc8FeedBack.Add(PmDevice.Pressure8.FeedBack);
|
||||
}
|
||||
else if (ioName == "Pressure9")
|
||||
{
|
||||
pc9FeedBack.Add(PmDevice.Pressure9.FeedBack);
|
||||
}
|
||||
|
||||
return ElapsedTime>=10;
|
||||
},
|
||||
timeout * 1000);
|
||||
|
||||
@ -19,15 +19,14 @@ namespace SicModules.PMs.Routines
|
||||
SetPSURatio,
|
||||
SetSCRRatio,
|
||||
SetRotation,
|
||||
SetM2toM40,
|
||||
SetM17M18,
|
||||
SetM2toM45,
|
||||
SetM1to16,
|
||||
SetM5M21,
|
||||
SetPC,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV68,
|
||||
SetV65,
|
||||
SetGroupA,
|
||||
SetGroupB,
|
||||
SetGroupC,
|
||||
SetGroupE,
|
||||
@ -36,21 +35,22 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
SetGroupD,
|
||||
SetGroupG,
|
||||
|
||||
VentPumpClose,
|
||||
SetGroupV25,
|
||||
SetV34,
|
||||
SetV100,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
}
|
||||
|
||||
private int _heatTimeOut = 5;
|
||||
|
||||
private int _mfc1to16RampTime = 30;
|
||||
private int _mfc2to40RampTime = 30;
|
||||
private int _mfc2to45RampTime = 30;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _IoValueOpenCloseTimeout = 10;
|
||||
|
||||
private int _IoValueOpenCloseTimeout = 10;
|
||||
|
||||
private int _routineTimeOut = 10;
|
||||
|
||||
private Stopwatch _swTimer = new Stopwatch();
|
||||
@ -65,7 +65,7 @@ namespace SicModules.PMs.Routines
|
||||
Reset();
|
||||
|
||||
_mfc1to16RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC1to16RampTime");
|
||||
_mfc2to40RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC19to40RampTime");
|
||||
_mfc2to45RampTime = SC.GetValue<int>($"PM.{Module}.ProcessIdle.MFC19to40RampTime");
|
||||
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.ProcessIdle.RoutineTimeOut");
|
||||
|
||||
@ -81,7 +81,7 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//停止加热
|
||||
//1 停止加热
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
|
||||
//设置模式为Power
|
||||
@ -95,53 +95,47 @@ namespace SicModules.PMs.Routines
|
||||
//停止旋转
|
||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation, 0);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, _mfc2to40RampTime);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, _mfc2to40RampTime);
|
||||
//2 M2、M9、M15、M19-M45 MFC 30s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, _mfc2to45RampTime);
|
||||
|
||||
//M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
//3 M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, _mfc1to16RampTime);
|
||||
//M5 M2130s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM5M21, MfcGroupName.M5M21, _mfc1to16RampTime);
|
||||
|
||||
//所有PC设定为默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//等待MFC等流量
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to40RampTime, _mfc1to16RampTime));
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to45RampTime, _mfc1to16RampTime));
|
||||
|
||||
//打开V32
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV32, IoGroupName.V32, true);
|
||||
//4 打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true);
|
||||
|
||||
//4 打开A
|
||||
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 阀门
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupB, IoGroupName.B, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupC, IoGroupName.C, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupE, IoGroupName.E, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupF, IoGroupName.F, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupH, IoGroupName.H, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupK, IoGroupName.K, false);
|
||||
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV34, IoGroupName.V34, false);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV100, IoGroupName.V100, false);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开D/G 阀门
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupD, IoGroupName.D, true);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupG, IoGroupName.G, true);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroupNoWait((int)RoutineStep.SetV65, IoGroupName.V65, true);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV68, IoGroupName.GasIn1, true);
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 2);
|
||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupV25, IoGroupName.V25, true);
|
||||
////关闭V72,打开V25
|
||||
//SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
//SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
}
|
||||
|
||||
catch (RoutineBreakException)
|
||||
|
||||
@ -18,7 +18,7 @@ namespace SicModules.PMs.Routines
|
||||
HeatEnable,
|
||||
VentPumpClose,
|
||||
ArSupply,
|
||||
|
||||
SetGroupA,
|
||||
SetGroupB,
|
||||
SetGroupC,
|
||||
SetGroupE,
|
||||
@ -30,10 +30,8 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupJ,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM18,
|
||||
SetM2to40,
|
||||
SetM2to40_1,
|
||||
MfcAll,
|
||||
@ -76,13 +74,11 @@ namespace SicModules.PMs.Routines
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV87V97,
|
||||
SetV65,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMax,
|
||||
|
||||
@ -110,6 +106,8 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||
@ -145,6 +143,7 @@ namespace SicModules.PMs.Routines
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.RoutineTimeOut");
|
||||
_pumpTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
|
||||
|
||||
if (!_pmIoInterLock.SetPMPumpRoutineRunning(true, out string reason))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not Pump,{reason}");
|
||||
@ -170,13 +169,11 @@ namespace SicModules.PMs.Routines
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -201,16 +198,15 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.OpenGasIn1, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//8 打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
@ -232,10 +228,7 @@ namespace SicModules.PMs.Routines
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
//关闭V87 V97
|
||||
SetIoValueByGroup((int)RoutineStep.SetV87V97, IoGroupName.V87V97, false, _IoValueOpenCloseTimeout);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _pumpTimeOut);
|
||||
|
||||
@ -33,7 +33,6 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
CloseGroupJ,
|
||||
@ -52,8 +51,8 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM291519to26,
|
||||
SetM291519to26_1,
|
||||
SetM2toM26M43M44M45,
|
||||
SetM2M9M15_M19toM26,
|
||||
|
||||
OpenFinal2,
|
||||
IsOpenFinal1,
|
||||
@ -116,31 +115,26 @@ namespace SicModules.PMs.Routines
|
||||
SetPressUpOrDown2,
|
||||
SetMfc28to40Special,
|
||||
WaitPmPressureUp,
|
||||
SetMfc27to40Default,
|
||||
SetMfc27to45Default,
|
||||
|
||||
SetV75,
|
||||
SetV76,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV65,
|
||||
SetV751,
|
||||
SetV761,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetM2toM40,
|
||||
SetM2toM45,
|
||||
SetM2toM40_1,
|
||||
SetM2TOM40Default,
|
||||
SetM18,
|
||||
SetM18_1,
|
||||
SetM18_2,
|
||||
SetM18Default,
|
||||
|
||||
SetV92V93V95,
|
||||
SetV93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM32M35M37,
|
||||
SetM35M36M37M38,
|
||||
SetM36,
|
||||
SetM38,
|
||||
SetM36_1,
|
||||
@ -207,6 +201,9 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _heatTimeOut = 5; //Heat关闭等待Di反馈超时时间
|
||||
@ -292,26 +289,24 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -326,6 +321,9 @@ namespace SicModules.PMs.Routines
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -333,20 +331,16 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26M43M44M45, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//打开EPV2
|
||||
//7 打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
@ -359,12 +353,11 @@ namespace SicModules.PMs.Routines
|
||||
//伺服压力设定值到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
||||
//8 M2、M9、M15、M19-M45 MFC 3s ramp 到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _throttleTimeout);
|
||||
//9 等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _pumpTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
@ -373,83 +366,70 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
//10 Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//打开Final2阀
|
||||
//11 打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//12 打开 V65 V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||
|
||||
//打开V92,V93和V95,再打开V94,在打开V96
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||
//13 M35 36 37 38 MFC 3s ramp 到default
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M36M37M38, MfcGroupName.M35M36M37M38, 3);
|
||||
|
||||
|
||||
//14 14.打开V93、V95;打开V94等待3S,打开V96
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
||||
|
||||
//M2、M9、M15、M19-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM45, 3);
|
||||
//先关蝶阀,再关闭EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//等待压力大于等于设定值(可配置)
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
||||
|
||||
////设置蝶阀为压力模式
|
||||
//SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
////使用动态流量伺服到300mbar
|
||||
//SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
||||
//SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp, _IoThrottle, _ventBasePressure);
|
||||
//WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _pmPressureMaxDiff, _pressureMaxTimeout);
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
||||
|
||||
//打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
//伺服到0mbar
|
||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pumpBasePressure, _pumpTimeout);
|
||||
|
||||
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
////蝶阀设置为位置模式,开度设置为最大
|
||||
//SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode_1, _IoThrottle, _throttleTimeout);
|
||||
//SetThrottleSetPositionNoWait((int)RoutineStep.SetTVPositionMax_1, _IoThrottle, 100, _throttleTimeout);
|
||||
|
||||
//TimeDelay((int)RoutineStep.TimeDelay9, _pressureMinDelay);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
//M2,M9,M15,M19-M26 3s ramp 到0
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26_1, MfcGroupName.M2toM26, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2M9M15_M19toM26, MfcGroupName.M2M9M15_M19toM26, 3);
|
||||
|
||||
//M27-M40 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc27to40Default, MfcGroupName.M27toM40, 3);
|
||||
//M27-M45 MFC 3s ramp 到 default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc27to45Default, MfcGroupName.M27toM45, 3);
|
||||
|
||||
//关闭J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.CloseGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
//打开J阀门
|
||||
//SetIoValueByGroup((int)RoutineStep.CloseGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭先关蝶阀,再EPV2
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
||||
|
||||
@ -16,7 +16,7 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
RotationEnable,
|
||||
HeatEnable,
|
||||
VentPumpClose,
|
||||
V72,
|
||||
ArSupply,
|
||||
|
||||
SetGroupA,
|
||||
@ -33,8 +33,7 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetM2toM40,
|
||||
SetM2toM45,
|
||||
SetPC,
|
||||
SetM291519to38,
|
||||
SetGroupJ,
|
||||
@ -54,7 +53,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetGasIn2,
|
||||
SetGroupJOpen,
|
||||
SetM291519to26,
|
||||
SetM2toM26M43M44M45,
|
||||
|
||||
OpenFinal2,
|
||||
SetMfcFinal2,
|
||||
@ -76,18 +75,17 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetGroupV25,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
SetV92V93V95,
|
||||
SetV93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM32M35M37,
|
||||
SetM35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
|
||||
@ -112,6 +110,8 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
@ -164,26 +164,24 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.V72, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//4 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -202,46 +200,43 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 3);
|
||||
//M2、M9、M15、M19-M45 MFC 5s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 5);
|
||||
|
||||
//关闭蝶阀
|
||||
//7 关闭蝶阀
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
||||
|
||||
//关闭EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开A 组阀
|
||||
//8 打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
//M35、M37依次设定3S ramp 到default值 ; 等待3S。
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
//设置M2,M9,M15,M19-M26 M43-M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26M43M44M45, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
|
||||
//开V94,V96需等到腔体压力大于950
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 950, _waitPMPressureUpTimeout);
|
||||
@ -259,7 +254,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp, _ventBasePressure, _waitPMPressureUpTimeout);
|
||||
|
||||
//设置M28,M29,M31,M40 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M28293140, 3);
|
||||
//SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M27To3540To42, 3);
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
||||
@ -26,8 +26,7 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupK,
|
||||
|
||||
SetM1to16,
|
||||
SetM2toM40,
|
||||
SetM17M18,
|
||||
SetM2toM45,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM19to38,
|
||||
@ -58,14 +57,13 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetGroupV25,
|
||||
SetV65,
|
||||
CloseV68,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
CloseM32M35M37,
|
||||
CloseM36,
|
||||
@ -93,6 +91,8 @@ namespace SicModules.PMs.Routines
|
||||
private PMModule _pm1Module;
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
|
||||
private List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCloseTimeout = 20; //旋转停止超时
|
||||
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||
private int _heatTimeOut = 5; //Heat关闭等待Di反馈超时时间
|
||||
@ -121,25 +121,23 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
//CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, 0, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, 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.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -164,17 +162,16 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 5s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 0, 5);
|
||||
SetMfcByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0, 5);
|
||||
//M2、M9、M15、M19-M45 MFC 5s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM45, MfcGroupName.M2toM45, 0, 5);
|
||||
|
||||
//关闭Final1阀
|
||||
//7 关闭Final1阀
|
||||
SetIoValueByGroup((int)RoutineStep.CloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭Final2
|
||||
|
||||
@ -3,11 +3,11 @@ using System.Diagnostics;
|
||||
using Aitex.Core.RT.Device;
|
||||
using Aitex.Core.RT.Device.Devices;
|
||||
using Aitex.Core.RT.Event;
|
||||
using Aitex.Core.RT.Log;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using SicModules.PMs.Routines.Base;
|
||||
using static Aitex.Core.RT.Device.PmDevices.DicMode;
|
||||
|
||||
namespace SicModules.PMs.Routines
|
||||
{
|
||||
@ -38,7 +38,6 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupJ,
|
||||
SetM2toM40,
|
||||
@ -54,7 +53,7 @@ namespace SicModules.PMs.Routines
|
||||
SetGasIn1, //V68
|
||||
OpenFinal1, //V91-96
|
||||
SetMfcFinal1, //M32-38
|
||||
SetM291519to26,
|
||||
SetM2toM26,
|
||||
|
||||
SetTVCloseMode,
|
||||
SetTvPositionToZero,
|
||||
@ -85,12 +84,11 @@ namespace SicModules.PMs.Routines
|
||||
SetV25,
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV65,
|
||||
SetV103,
|
||||
SetV105,
|
||||
|
||||
SetEPV1,
|
||||
SetEPV2,
|
||||
@ -130,11 +128,11 @@ namespace SicModules.PMs.Routines
|
||||
CheckEpv2Open,
|
||||
CheckEpv1Open,
|
||||
|
||||
SetV92V93V95,
|
||||
SetV93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM32M35M37,
|
||||
SetM35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
WaitPmPressureUp1,
|
||||
@ -167,6 +165,8 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||
@ -206,24 +206,16 @@ namespace SicModules.PMs.Routines
|
||||
_IoThrottle = DEVICE.GetDevice<IoThrottleValve2>($"{Module}.TV");
|
||||
_pmInterLock = DEVICE.GetDevice<IoInterLock>($"{Module}.PMInterLock");
|
||||
|
||||
//if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
//{
|
||||
// EV.PostAlarmLog(Module, $"can not run ProcessIdle, {reason}");
|
||||
// return Result.FAIL;
|
||||
//}
|
||||
|
||||
/*
|
||||
* 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))
|
||||
if (!PmDevice.CheckSlitValveClose())
|
||||
{
|
||||
LOG.Error($"Failed to set DOProcessIdle to false due to {reason}");
|
||||
EV.PostAlarmLog(Module, $"can not run ProcessIdle, {Module} SlitValve Opened");
|
||||
return Result.FAIL;
|
||||
}
|
||||
|
||||
if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
{
|
||||
EV.PostAlarmLog(Module, $"can not run ProcessIdle, {reason}");
|
||||
return Result.FAIL;
|
||||
}
|
||||
|
||||
if (!PmDevice.CheckHeadHeaterEnable(true))
|
||||
@ -265,7 +257,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
|
||||
_scrHeatEnable = SC.GetValue<bool>($"PM.{Module}.ProcessIdle.SCRHeaterEnable");
|
||||
_scrHeatMode = SC.GetValue<int>($"PM.{Module}.ProcessIdle.SCRHeaterMode");
|
||||
_scrHeatMode = (int)SC.GetValue<int>($"PM.{Module}.ProcessIdle.SCRHeaterMode");
|
||||
_scrL1Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRUpperRatio");
|
||||
_scrL2Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRMiddleRatio");
|
||||
_scrL3Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRLowerRatio");
|
||||
@ -288,22 +280,20 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止
|
||||
//SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
//2 旋转停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//3 打开V30,打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//4 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -325,59 +315,62 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//5 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
////M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
||||
//SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 0, 5);
|
||||
//6 M2、M9、M15、M19-M40、M41-M45 5s ramp到default值
|
||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 0, 5);
|
||||
|
||||
//打开EPV2
|
||||
//7 打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||
|
||||
//打开Final2阀
|
||||
//8 打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
//9 Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
//10 打开V93(ChamberPurge.Final)、V95(ConfinementRing.Final);等待3S
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
//11 M35、M37依次设定3S ramp 到default值 ; 等待3S
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//12 打开V94(RotationUpPurge.Final)、M36设定5S ramp 到default值;等待3S
|
||||
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 5);
|
||||
TimeDelay((int)RoutineStep.TimeDelay3, 3);
|
||||
|
||||
//打开V96(HeaterWF.Final); M38依次设定5S ramp 到default值
|
||||
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 5);
|
||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||
|
||||
//打开J Valves
|
||||
//13 打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
//设置M2,M9,M15,M19-M26 M43、M44、M45 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM26, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
|
||||
//设置蝶阀Enable
|
||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
||||
|
||||
//设置蝶阀为压力模式
|
||||
//14 设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
|
||||
//伺服压力设定值到1050mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTV, _IoThrottle, 1050);
|
||||
|
||||
//打开V72
|
||||
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||
//15 打开V72
|
||||
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.V72, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||
|
||||
//关闭V25
|
||||
@ -389,7 +382,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||
|
||||
//转速Enable,加热Enable, 电流功率可配置
|
||||
//16 转速Enable,加热Enable, 电流功率可配置
|
||||
EnableRotation((int)RoutineStep.EnableRotation, 5);
|
||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation1, _rotationSpeed);
|
||||
|
||||
@ -426,7 +419,7 @@ namespace SicModules.PMs.Routines
|
||||
SetSCREnable((int)RoutineStep.CloseTC2, false, 5);
|
||||
}
|
||||
|
||||
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed / 2);
|
||||
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed * 3);
|
||||
}
|
||||
|
||||
catch (RoutineBreakException)
|
||||
@ -438,13 +431,7 @@ namespace SicModules.PMs.Routines
|
||||
return Result.FAIL;
|
||||
}
|
||||
|
||||
// _pmInterLock.SetPMProcessIdleRunning(false, out string reason);
|
||||
if (!_pmInterLock.SetPMProcessIdleRunning(true, out string reason))
|
||||
{
|
||||
LOG.Error($"Failed to set DOProcessIdle to true due to {reason}");
|
||||
}
|
||||
|
||||
|
||||
_pmInterLock.SetPMProcessIdleRunning(false, out string reason);
|
||||
Notify($"Finished ! Elapsed time: {(int)(_swTimer.ElapsedMilliseconds / 1000)} s");
|
||||
_swTimer.Stop();
|
||||
|
||||
|
||||
@ -30,10 +30,8 @@ namespace SicModules.PMs.Routines
|
||||
SetGroupJ,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetPC,
|
||||
SetGroupI, //V87-96
|
||||
SetM18,
|
||||
SetM2to40,
|
||||
SetM2to40_1,
|
||||
MfcAll,
|
||||
@ -67,6 +65,7 @@ namespace SicModules.PMs.Routines
|
||||
SetTvOpen,
|
||||
SetTvModeToPress,
|
||||
SetTVto1050,
|
||||
SetGroupA,
|
||||
OpenGasIn1,
|
||||
SetV65,
|
||||
CloseGasIn1,
|
||||
@ -77,12 +76,11 @@ namespace SicModules.PMs.Routines
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetGroupV25,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV87V97,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetV97V87,
|
||||
SetTVPositionMode,
|
||||
SetTVPositionMax,
|
||||
|
||||
@ -110,6 +108,8 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||
@ -118,9 +118,11 @@ namespace SicModules.PMs.Routines
|
||||
private double _pmPressureMaxDiff; //蝶阀与目标压力的差值范围(认为调整到位了)
|
||||
private int _throttleTimeout; //蝶阀调整到指定压力的超时时间
|
||||
|
||||
private int _pumpTimeout;
|
||||
|
||||
private double _vacPumpBasePressure;
|
||||
private int _routineTimeOut;
|
||||
private int _pumpTimeOut;
|
||||
//private int _EPV2OpenDelayTime = 9;
|
||||
|
||||
private Stopwatch _swTimer = new Stopwatch();
|
||||
public PMVacIdleRoutine(ModuleName module, PMModule pm1) : base(module, pm1)
|
||||
@ -143,7 +145,8 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
_vacPumpBasePressure = SC.GetValue<double>($"PM.{Module}.Pump.PumpBasePressure");
|
||||
_routineTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.RoutineTimeOut");
|
||||
_pumpTimeOut = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
|
||||
_pumpTimeout = SC.GetValue<int>($"PM.{Module}.Pump.PumpTimeOut");
|
||||
|
||||
if (!_pmIoInterLock.SetPMVacIdleRountingRunning(true, out var reason))
|
||||
{
|
||||
@ -162,26 +165,24 @@ namespace SicModules.PMs.Routines
|
||||
{
|
||||
CheckRoutineTimeOut();
|
||||
|
||||
//关闭V76,打开V75
|
||||
//1 关闭V76,打开V75
|
||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//旋转停止,加热停止
|
||||
//2 旋转停止,加热停止
|
||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
//3 关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
//4 打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V35,打开V36
|
||||
//5 打开V35,打开V36
|
||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//关闭B/C/E/F/H/K 阀门
|
||||
@ -200,18 +201,17 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
//6 M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM40, 3);
|
||||
//7 M2、M9、M15、M19-M40 、M41-M45 MFC 3s ramp 到 default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2to40_1, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.OpenGasIn1, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//8 打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J阀门
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
@ -219,7 +219,7 @@ namespace SicModules.PMs.Routines
|
||||
////打开V65
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开EPV2
|
||||
//9 打开EPV2
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay5, 3);
|
||||
|
||||
@ -229,17 +229,16 @@ namespace SicModules.PMs.Routines
|
||||
//设置蝶阀为压力模式
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||
|
||||
//伺服压力设定值到0mbar
|
||||
//伺服到0mbar
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _vacPumpBasePressure);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM40, 0, 3);
|
||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
||||
//关闭V87 V97
|
||||
SetIoValueByGroup((int)RoutineStep.SetV87V97, IoGroupName.V87V97, false, _IoValueOpenCloseTimeout);
|
||||
//10 M2、M9、M15、M19-M45 MFC 3s ramp到0
|
||||
SetMfcByGroup((int)RoutineStep.SetM2to40, MfcGroupName.M2toM45, 0, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV97V87, IoGroupName.V97V87, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//等待腔体压力Pump到设定值
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _vacPumpBasePressure, _pumpTimeOut);
|
||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _vacPumpBasePressure, _pumpTimeout);
|
||||
|
||||
//蝶阀设置为位置模式,开度设置为最大
|
||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||
|
||||
@ -33,7 +33,6 @@ namespace SicModules.PMs.Routines
|
||||
SetPCMode,
|
||||
|
||||
SetM1to16,
|
||||
SetM17M18,
|
||||
SetM2toM40,
|
||||
SetPC,
|
||||
SetM291519to38,
|
||||
@ -76,18 +75,17 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetV76,
|
||||
SetV75,
|
||||
SetV30,
|
||||
SetV31,
|
||||
SetV32,
|
||||
SetV35V36,
|
||||
SetV103,
|
||||
SetV105,
|
||||
SetGroupV25,
|
||||
|
||||
SetV92V93V95,
|
||||
SetV93V95,
|
||||
SetV94,
|
||||
SetV96,
|
||||
SetV68,
|
||||
SetM32M35M37,
|
||||
SetM35M37,
|
||||
SetM36,
|
||||
SetM38,
|
||||
|
||||
@ -112,6 +110,7 @@ namespace SicModules.PMs.Routines
|
||||
private IoThrottleValve2 _IoThrottle;
|
||||
private IoInterLock _pmIoInterLock;
|
||||
|
||||
List<int> _lstPcList = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值
|
||||
private int _rotationCloseTimeout; //旋转停止超时
|
||||
@ -173,13 +172,11 @@ namespace SicModules.PMs.Routines
|
||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||
|
||||
//关闭V72,打开V25
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.V72, false, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||
//打开V103,关闭V105
|
||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开V31,打开V32
|
||||
SetIoValueByGroup((int)RoutineStep.SetV30, IoGroupName.V30, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
@ -204,13 +201,12 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//M1-M16设定为default值(M2、M9、M15除外)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||
|
||||
//设置所有PC到默认值
|
||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||
|
||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到默认值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM40, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM45, 3);
|
||||
|
||||
//关闭蝶阀
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
@ -223,28 +219,25 @@ namespace SicModules.PMs.Routines
|
||||
//打开A 组阀
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
//打开Final2阀
|
||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//Final2阀对应的MFC 3s Ramp到Default值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.SetV93V95, IoGroupName.V93V95, true, _IoValueOpenCloseTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM35M37, MfcGroupName.M35M37, 3);
|
||||
|
||||
//打开V68
|
||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||
//SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.V68, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//打开J Valves
|
||||
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26M43M44M45, 3);
|
||||
|
||||
//开V94,V96需等到腔体压力大于950
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 950, _waitPMPressureUpTimeout);
|
||||
@ -262,7 +255,7 @@ namespace SicModules.PMs.Routines
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp, _ventBasePressure, _waitPMPressureUpTimeout); //等待反应腔压力大于1000
|
||||
|
||||
//设置M28,M29,M31,M40 3s ramp 到default 值
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M28293140, 3);
|
||||
//SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M27To3540To42, 3);
|
||||
|
||||
_pmIoInterLock.SetPMVentRoutineRunning(false, out _);
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@ namespace SicModules.PMs.Routines.Recipe
|
||||
// EV.PostAlarmLog(Module, $"can not run process,K valves is not closed!");
|
||||
// return Result.FAIL;
|
||||
//}
|
||||
//if (!PMDevice.CheckIOValueByGroup(IoGroupName.VentPump, true))
|
||||
//if (!PMDevice.CheckIOValueByGroup(IoGroupName.V72, true))
|
||||
//{
|
||||
// EV.PostAlarmLog(Module, $"can not run process,V72 is not open!");
|
||||
// return Result.FAIL;
|
||||
|
||||
@ -40,8 +40,8 @@
|
||||
<Block type="do" index="0" size="256" value_type="" variable="GVL_IO.PM1_DO_G"></Block>
|
||||
<Block type="ai" index="0" size="181" value_type="float" variable="GVL_IO.PM1_AI_G"></Block>
|
||||
<Block type="ao" index="0" size="181" value_type="float" variable="GVL_IO.PM1_AO_G"></Block>
|
||||
<Block type="ai" index="1" size="100" value_type="float" variable="GVL_IO.PM1_AI_G_2"></Block>
|
||||
<Block type="ao" index="1" size="100" value_type="float" variable="GVL_IO.PM1_AO_G_2"></Block>
|
||||
<Block type="ai" index="1" size="140" value_type="float" variable="GVL_IO.PM1_AI_G_2"></Block>
|
||||
<Block type="ao" index="1" size="140" value_type="float" variable="GVL_IO.PM1_AO_G_2"></Block>
|
||||
</Blocks>
|
||||
</IoProvider>
|
||||
|
||||
@ -53,8 +53,8 @@
|
||||
<Block type="do" index="0" size="256" value_type="" variable="GVL_IO.PM2_DO_G"></Block>
|
||||
<Block type="ai" index="0" size="181" value_type="float" variable="GVL_IO.PM2_AI_G"></Block>
|
||||
<Block type="ao" index="0" size="181" value_type="float" variable="GVL_IO.PM2_AO_G"></Block>
|
||||
<Block type="ai" index="1" size="100" value_type="float" variable="GVL_IO.PM2_AI_G_2"></Block>
|
||||
<Block type="ao" index="1" size="100" value_type="float" variable="GVL_IO.PM2_AO_G_2"></Block>
|
||||
<Block type="ai" index="1" size="140" value_type="float" variable="GVL_IO.PM2_AI_G_2"></Block>
|
||||
<Block type="ao" index="1" size="140" value_type="float" variable="GVL_IO.PM2_AO_G_2"></Block>
|
||||
</Blocks>
|
||||
</IoProvider>
|
||||
|
||||
@ -83,8 +83,8 @@
|
||||
<Block type="do" index="0" size="256" value_type="" variable="DB100.DBB152"></Block>
|
||||
<Block type="ai" index="0" size="181" value_type="float" variable="DB100.DBD184"></Block>
|
||||
<Block type="ao" index="0" size="181" value_type="float" variable="DB100.DBD908"></Block>
|
||||
<Block type="ai" index="1" size="100" value_type="float" variable="DB100.DBD1632"></Block>
|
||||
<Block type="ao" index="1" size="100" value_type="float" variable="DB100.DBD2032"></Block>
|
||||
<Block type="ai" index="1" size="140" value_type="float" variable="DB100.DBD1632"></Block>
|
||||
<Block type="ao" index="1" size="140" value_type="float" variable="DB100.DBD2032"></Block>
|
||||
</Blocks>
|
||||
</IoProvider>
|
||||
|
||||
@ -95,8 +95,8 @@
|
||||
<Block type="do" index="0" size="256" value_type="" variable="DB100.DBB152"></Block>
|
||||
<Block type="ai" index="0" size="181" value_type="float" variable="DB100.DBD184"></Block>
|
||||
<Block type="ao" index="0" size="181" value_type="float" variable="DB100.DBD908"></Block>
|
||||
<Block type="ai" index="1" size="100" value_type="float" variable="DB100.DBD1632"></Block>
|
||||
<Block type="ao" index="1" size="100" value_type="float" variable="DB100.DBD2032"></Block>
|
||||
<Block type="ai" index="1" size="140" value_type="float" variable="DB100.DBD1632"></Block>
|
||||
<Block type="ao" index="1" size="140" value_type="float" variable="DB100.DBD2032"></Block>
|
||||
</Blocks>
|
||||
</IoProvider>
|
||||
|
||||
|
||||
@ -686,6 +686,17 @@
|
||||
<AI_ITEM Index="275" Name="AI_PSU3SimVoltage" BufferOffset="94" Addr="94" Description="" />
|
||||
<AI_ITEM Index="276" Name="AI_PSU3SimArms" BufferOffset="95" Addr="95" Description="" />
|
||||
<AI_ITEM Index="277" Name="AI_PSU3Alarm" BufferOffset="96" Addr="96" Description="" />
|
||||
<AO_ITEM Index="281" Name="AO_M41" BufferOffset="97" Addr="97" Description="" />
|
||||
<AO_ITEM Index="282" Name="AO_M42" BufferOffset="98" Addr="98" Description="" />
|
||||
<AO_ITEM Index="283" Name="AO_M43" BufferOffset="99" Addr="99" Description="" />
|
||||
<AO_ITEM Index="284" Name="AO_M44" BufferOffset="100" Addr="100" Description="" />
|
||||
<AO_ITEM Index="285" Name="AO_M45" BufferOffset="101" Addr="101" Description="" />
|
||||
|
||||
<AO_ITEM Index="301" Name="AO_M41CtrlMode" BufferOffset="102" Addr="102" Description="" />
|
||||
<AO_ITEM Index="302" Name="AO_M42CtrlMode" BufferOffset="103" Addr="103" Description="" />
|
||||
<AO_ITEM Index="303" Name="AO_M43CtrlMode" BufferOffset="104" Addr="104" Description="" />
|
||||
<AO_ITEM Index="304" Name="AO_M44CtrlMode" BufferOffset="105" Addr="105" Description="" />
|
||||
<AO_ITEM Index="305" Name="AO_M45CtrlMode" BufferOffset="106" Addr="106" Description="" />
|
||||
</Block>
|
||||
</Ana_In>
|
||||
<Ana_Out>
|
||||
@ -915,6 +926,17 @@
|
||||
<AO_ITEM Index="272" Name="AO_PSU3Reset" BufferOffset="91" Addr="91" Description="" />
|
||||
<AO_ITEM Index="273" Name="AO_PSU3ArmLimited" BufferOffset="92" Addr="92" Description="" />
|
||||
<AO_ITEM Index="280" Name="AO_PSU3Constant" BufferOffset="99" Addr="99" Description="" />
|
||||
<AO_ITEM Index="281" Name="AO_M41" BufferOffset="100" Addr="100" Description="" />
|
||||
<AO_ITEM Index="282" Name="AO_M42" BufferOffset="101" Addr="101" Description="" />
|
||||
<AO_ITEM Index="283" Name="AO_M43" BufferOffset="102" Addr="102" Description="" />
|
||||
<AO_ITEM Index="284" Name="AO_M44" BufferOffset="103" Addr="103" Description="" />
|
||||
<AO_ITEM Index="285" Name="AO_M45" BufferOffset="104" Addr="104" Description="" />
|
||||
|
||||
<AO_ITEM Index="301" Name="AO_M41CtrlMode" BufferOffset="105" Addr="105" Description="" />
|
||||
<AO_ITEM Index="302" Name="AO_M42CtrlMode" BufferOffset="106" Addr="106" Description="" />
|
||||
<AO_ITEM Index="303" Name="AO_M43CtrlMode" BufferOffset="107" Addr="107" Description="" />
|
||||
<AO_ITEM Index="304" Name="AO_M44CtrlMode" BufferOffset="108" Addr="108" Description="" />
|
||||
<AO_ITEM Index="305" Name="AO_M45CtrlMode" BufferOffset="109" Addr="109" Description="" />
|
||||
</Block>
|
||||
</Ana_Out>
|
||||
</IO_DEFINE>
|
||||
@ -433,6 +433,13 @@ namespace SicSimulator.Instances
|
||||
new Tuple<string, string>("AI_M37","AO_M37"),
|
||||
new Tuple<string, string>("AI_M38","AO_M38"),
|
||||
|
||||
new Tuple<string, string>("AI_M40","AO_M40"),
|
||||
new Tuple<string, string>("AI_M41","AO_M41"),
|
||||
new Tuple<string, string>("AI_M42","AO_M42"),
|
||||
new Tuple<string, string>("AI_M43","AO_M43"),
|
||||
new Tuple<string, string>("AI_M44","AO_M44"),
|
||||
new Tuple<string, string>("AI_M45","AO_M45"),
|
||||
|
||||
new Tuple<string, string>("AI_PressCtrl1","AO_PressCtrl1"),
|
||||
new Tuple<string, string>("AI_PressCtrl2","AO_PressCtrl2"),
|
||||
new Tuple<string, string>("AI_PressCtrl3","AO_PressCtrl3"),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user