Merge branch 'develop' of http://112.124.35.216:65000/Sic-Software/MoS2 into develop
This commit is contained in:
commit
989c3a5580
@ -71,8 +71,9 @@ namespace SicModules.PMs
|
|||||||
{
|
{
|
||||||
Final1,
|
Final1,
|
||||||
Final2,
|
Final2,
|
||||||
M1to17,
|
M1toM17,
|
||||||
M18to40No303439,
|
M18toM40No303439,
|
||||||
|
M2M9M15M19_M26,
|
||||||
M1to16,
|
M1to16,
|
||||||
M5M21,
|
M5M21,
|
||||||
M17,
|
M17,
|
||||||
@ -93,7 +94,7 @@ namespace SicModules.PMs
|
|||||||
All,
|
All,
|
||||||
M32M35M37,
|
M32M35M37,
|
||||||
M38,
|
M38,
|
||||||
AllWithoutM28M29M31M40
|
AllWithoutM28M29M31M40,
|
||||||
};
|
};
|
||||||
|
|
||||||
public partial class PMModule
|
public partial class PMModule
|
||||||
@ -1031,7 +1032,7 @@ namespace SicModules.PMs
|
|||||||
}
|
}
|
||||||
else if (eGroupName == IoGroupName.Final1)
|
else if (eGroupName == IoGroupName.Final1)
|
||||||
{
|
{
|
||||||
lst = new List<string>() { "V92", "V93", "V94", "V95", "V96" };
|
lst = new List<string>() { "V93", "V94", "V95", "V96" };
|
||||||
}
|
}
|
||||||
else if (eGroupName == IoGroupName.Final1WithOutV94)
|
else if (eGroupName == IoGroupName.Final1WithOutV94)
|
||||||
{
|
{
|
||||||
@ -1157,14 +1158,18 @@ namespace SicModules.PMs
|
|||||||
{
|
{
|
||||||
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 30 };//新增 30
|
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 30 };//新增 30
|
||||||
}
|
}
|
||||||
else if (mGroupName == MfcGroupName.M1to17)
|
else if (mGroupName == MfcGroupName.M1toM17)
|
||||||
{
|
{
|
||||||
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17 };
|
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17 };
|
||||||
}
|
}
|
||||||
else if (mGroupName == MfcGroupName.M18to40No303439)
|
else if (mGroupName == MfcGroupName.M18toM40No303439)
|
||||||
{
|
{
|
||||||
lst = new List<int>() { 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32,33,35,36,37,38,40 };//无30 34 39
|
lst = new List<int>() { 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32,33,35,36,37,38,40 };//无30 34 39
|
||||||
}
|
}
|
||||||
|
else if (mGroupName == MfcGroupName.M2M9M15M19_M26)
|
||||||
|
{
|
||||||
|
lst = new List<int>() { 2, 9, 15, 19, 20, 21, 22, 23, 24, 25, 26};
|
||||||
|
}
|
||||||
else if (mGroupName == MfcGroupName.M5M21)
|
else if (mGroupName == MfcGroupName.M5M21)
|
||||||
{
|
{
|
||||||
lst = new List<int>() { 5,21 };
|
lst = new List<int>() { 5,21 };
|
||||||
|
|||||||
@ -1743,7 +1743,7 @@ namespace SicModules.PMs.Routines.Base
|
|||||||
},
|
},
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
//SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
||||||
return Math.Abs(_IoThrottle.PressureFeedback - pressure) <= _pmPressureMaxDiff;
|
return Math.Abs(_IoThrottle.PressureFeedback - pressure) <= _pmPressureMaxDiff;
|
||||||
},
|
},
|
||||||
timeout * 1000);
|
timeout * 1000);
|
||||||
@ -1772,7 +1772,7 @@ namespace SicModules.PMs.Routines.Base
|
|||||||
},
|
},
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
//SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
||||||
return _IoThrottle.PressureFeedback >= pressure;
|
return _IoThrottle.PressureFeedback >= pressure;
|
||||||
},
|
},
|
||||||
timeout * 1000);
|
timeout * 1000);
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
using System.Collections.Generic;
|
using Aitex.Core.RT.Device;
|
||||||
using System.Diagnostics;
|
|
||||||
using Aitex.Core.RT.Device;
|
|
||||||
using Aitex.Core.RT.Device.Devices;
|
using Aitex.Core.RT.Device.Devices;
|
||||||
using Aitex.Core.RT.Event;
|
using Aitex.Core.RT.Event;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using Aitex.Core.RT.SCCore;
|
using Aitex.Core.RT.SCCore;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
{
|
{
|
||||||
@ -30,7 +31,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetGroupG,
|
SetGroupG,
|
||||||
SetGroupK,
|
SetGroupK,
|
||||||
|
|
||||||
SetM1to16,
|
SetM1toM17,
|
||||||
SetM17M18,
|
SetM17M18,
|
||||||
SetPC,
|
SetPC,
|
||||||
SetGroupJ,
|
SetGroupJ,
|
||||||
@ -50,7 +51,7 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
SetGasIn2,
|
SetGasIn2,
|
||||||
SetGroupJOpen,
|
SetGroupJOpen,
|
||||||
SetM291519to26,
|
SetM18toM40,
|
||||||
|
|
||||||
OpenFinal2,
|
OpenFinal2,
|
||||||
SetMfcFinal2,
|
SetMfcFinal2,
|
||||||
@ -122,7 +123,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetTVEnable_2,
|
SetTVEnable_2,
|
||||||
SetTVPressMode,
|
SetTVPressMode,
|
||||||
SetTv1,
|
SetTv1,
|
||||||
SetM2toM40,
|
Set0M18toM40,
|
||||||
SetM18,
|
SetM18,
|
||||||
SetV31,
|
SetV31,
|
||||||
SetV32,
|
SetV32,
|
||||||
@ -142,7 +143,6 @@ namespace SicModules.PMs.Routines
|
|||||||
SetM18_1,
|
SetM18_1,
|
||||||
SetM18_2,
|
SetM18_2,
|
||||||
|
|
||||||
|
|
||||||
SetV92V93V95,
|
SetV92V93V95,
|
||||||
SetV94,
|
SetV94,
|
||||||
SetV96,
|
SetV96,
|
||||||
@ -178,6 +178,30 @@ namespace SicModules.PMs.Routines
|
|||||||
Notify2,
|
Notify2,
|
||||||
Notify3,
|
Notify3,
|
||||||
Notify4,
|
Notify4,
|
||||||
|
WaitPressUpTo950,
|
||||||
|
|
||||||
|
FirstWaitPressureUp,
|
||||||
|
FirstSetDefault_M18toM40,
|
||||||
|
FirstSet0_M18toM40,
|
||||||
|
FirstSetEPV2_1,
|
||||||
|
FirstSetEPV2_2,
|
||||||
|
FirstSetTv1,
|
||||||
|
|
||||||
|
LoopSetDefault_M18toM40,
|
||||||
|
LoopSetEPV2_1,
|
||||||
|
LoopWaitPressureUp,
|
||||||
|
LoopSetEPV2_2,
|
||||||
|
LoopSetTv1,
|
||||||
|
LoopSet0_M18toM40,
|
||||||
|
Loop2Set0_M18toM40,
|
||||||
|
LoopWaitTv1,
|
||||||
|
|
||||||
|
FinishSetM1toM17,
|
||||||
|
FinishSetM18toM40,
|
||||||
|
FinishVentPumpClose_1,
|
||||||
|
FinishCloseGroupV25,
|
||||||
|
FinishSetPressureUp2,
|
||||||
|
FinishSetTVto300
|
||||||
}
|
}
|
||||||
|
|
||||||
private ModuleName moduleName;
|
private ModuleName moduleName;
|
||||||
@ -276,149 +300,115 @@ namespace SicModules.PMs.Routines
|
|||||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||||
|
|
||||||
//关闭V72,打开V25
|
//3、 关闭 V72(GasBox.Vent.Pump) 打开 V25(GasBox.Vent.Bypass)。
|
||||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||||
//打开V103,关闭V105
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开V31,打开V32
|
//4、 打开 V31(H2.Supply)、 V32(Ar.Supply) 。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V35,打开V36
|
//5、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/C/E/F/H/KValves,打开 D/G Valves; 打开 J valve。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭B/C/E/F/H/K 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开D/G 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||||
//打开V65
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//设置MFC和PC的模式
|
//设置MFC和PC的模式
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
||||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||||
|
|
||||||
//打开J阀门
|
//6、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9), M18-M40(除M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1toM17, MfcGroupName.M1toM17, 0);
|
||||||
|
|
||||||
//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);
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
|
||||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
//7、打开 EPV2,等待 3s, 打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
|
||||||
|
|
||||||
//打开EPV2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||||
|
|
||||||
//设置蝶阀Enable
|
|
||||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
||||||
|
|
||||||
//设置蝶阀为压力模式
|
|
||||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||||
|
|
||||||
//伺服压力设定值到0mbar
|
|
||||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
//8、当蝶阀设定值 ramp 到 0 后,将 M18-M40(除 M30\M34\M39)) MFC 3s ramp 到 0;
|
||||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
SetMfcByGroup((int)RoutineStep.Set0M18toM40, MfcGroupName.M18toM40No303439, 0, 3);
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
|
||||||
|
|
||||||
//等待腔体压力Pump到设定值
|
//9、等待腔体压力到 Pump Base Pressure(可配置),蝶阀改为位置模式,开度设定 100%
|
||||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pumpTimeout);
|
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pumpTimeout);
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||||
|
|
||||||
//蝶阀设置为位置模式,开度设置为最大
|
|
||||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||||
|
|
||||||
//Final2阀对应的MFC 3s Ramp到Default值
|
//10、 M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值 ;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||||
|
|
||||||
//打开Final2阀
|
//11、打开 V87( SHPurge.Final)、 V88( OuterGas.Final)、 V89( InnerGas.Final)、 V90(MiddleGas.Final)、 V91(OpticPurge.Final)、 V97(CarryGas.Final);
|
||||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V68
|
//12、 打开 V68(ChamBody.N2.Purge)
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||||
|
|
||||||
//打开V92,V93和V95,再打开V94,在打开V96
|
//13、 M32、 M35、 M36、 M37、 M38 依次设定 3S ramp 到 default 值 ;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||||
|
//14、打开 V92(GasRingPurge.Final)、 V93(ChamberPurge.Final)、 V95(ConfinementRing.Final);
|
||||||
|
//等待 950,,打开 V94(RotationUpPurge.Final)、 等待 3S,打开 V96(HeaterWF.Final) ;
|
||||||
|
//蝶阀改为压力模式
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||||
|
WaitChamberPressUpTo((int)RoutineStep.WaitPressUpTo950, 950, 600);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||||
|
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||||
|
|
||||||
|
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
|
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||||
|
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
|
//伺服压力到设定值 0(可配置)
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.FirstSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.FirstWaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetMfcByGroup((int)RoutineStep.FirstSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.FirstSetTv1, _IoThrottle, _pressureMin);
|
||||||
//循环开始
|
//循环开始
|
||||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
|
//伺服压力到设定值 0(可配置)
|
||||||
//先关蝶阀,再关闭EPV2
|
//M18 - M40(除 M30\M34\M39)) MFC5s ramp 到 0。
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
//等待压力到达 0(可配置)
|
||||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.LoopWaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
SetMfcByGroup((int)RoutineStep.LoopSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pressureMin);
|
||||||
|
SetMfcByGroup((int)RoutineStep.Loop2Set0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pressureMin, _pumpTimeout);
|
||||||
|
|
||||||
//打开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.M2toM42, 0, 3);
|
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
|
||||||
|
|
||||||
//伺服到0mbar
|
|
||||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pumpTimeout);
|
|
||||||
|
|
||||||
EndLoop((int)RoutineStep.EndLoop);
|
EndLoop((int)RoutineStep.EndLoop);
|
||||||
|
//设置 M1-M17 3s ramp 到 default; M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到default 值。
|
||||||
//M27-M40 MFC 3s ramp 到 default 值
|
//打开 V72(GasBox.Vent.Pump) 关闭 V25(GasBox.Vent.Bypass), 反应腔压力伺服到300mbar(可配置)
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc2to40Default, MfcGroupName.M2toM42, 3);
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
SetMfcToDefaultByGroup((int)RoutineStep.FinishSetM1toM17, MfcGroupName.M1toM17, 3);
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.FinishSetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
//打开J阀门
|
SetIoValueByGroup((int)RoutineStep.FinishVentPumpClose_1, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ_1, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.FinishCloseGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.FinishSetPressureUp2, _IoThrottle, _throttleFinalPressure);
|
||||||
//打开V72,关闭V25
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.FinishSetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose_1, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseGroupV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//设置蝶阀为压力模式
|
|
||||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode2, _IoThrottle, 5);
|
|
||||||
|
|
||||||
//压力伺服到300mbar
|
|
||||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
|
||||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp2, _IoThrottle, _throttleFinalPressure);
|
|
||||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
|
||||||
}
|
}
|
||||||
catch (RoutineBreakException)
|
catch (RoutineBreakException)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
using System;
|
using Aitex.Core.RT.Device;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using Aitex.Core.RT.Device;
|
|
||||||
using Aitex.Core.RT.Device.Devices;
|
using Aitex.Core.RT.Device.Devices;
|
||||||
using Aitex.Core.RT.Event;
|
using Aitex.Core.RT.Event;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using Aitex.Core.RT.SCCore;
|
using Aitex.Core.RT.SCCore;
|
||||||
using MECF.Framework.Common.DBCore;
|
using MECF.Framework.Common.DBCore;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
{
|
{
|
||||||
@ -34,7 +35,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetMFCMode,
|
SetMFCMode,
|
||||||
SetPCMode,
|
SetPCMode,
|
||||||
|
|
||||||
SetM1to16,
|
SetM1toM17,
|
||||||
SetPC,
|
SetPC,
|
||||||
SetGroupJ,
|
SetGroupJ,
|
||||||
SetM291519to38,
|
SetM291519to38,
|
||||||
@ -52,7 +53,7 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
SetGasIn2,
|
SetGasIn2,
|
||||||
SetGroupJOpen,
|
SetGroupJOpen,
|
||||||
SetM291519to26,
|
SetM18toM40,
|
||||||
SetM17M18,
|
SetM17M18,
|
||||||
|
|
||||||
OpenFinal2,
|
OpenFinal2,
|
||||||
@ -66,7 +67,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetTVPressMode,
|
SetTVPressMode,
|
||||||
SetTv1,
|
SetTv1,
|
||||||
WaitTv1,
|
WaitTv1,
|
||||||
SetM2toM40,
|
Set0M18toM40,
|
||||||
SetM18,
|
SetM18,
|
||||||
SetTVPositionMode,
|
SetTVPositionMode,
|
||||||
SetTVPositionMode_1,
|
SetTVPositionMode_1,
|
||||||
@ -97,7 +98,7 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
SetMfc28to31,
|
SetMfc28to31,
|
||||||
SetReactorPress,
|
SetReactorPress,
|
||||||
CloseFinanl1,
|
CloseFinal1,
|
||||||
CloseFinanl2,
|
CloseFinanl2,
|
||||||
CloseEPV2,
|
CloseEPV2,
|
||||||
SetTVCloseMode2,
|
SetTVCloseMode2,
|
||||||
@ -145,6 +146,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetV31,
|
SetV31,
|
||||||
SetV32,
|
SetV32,
|
||||||
SetV35V36,
|
SetV35V36,
|
||||||
|
CloseV68,
|
||||||
|
|
||||||
SetV92V93V95,
|
SetV92V93V95,
|
||||||
SetV94,
|
SetV94,
|
||||||
@ -184,6 +186,13 @@ namespace SicModules.PMs.Routines
|
|||||||
TimeDelay15,
|
TimeDelay15,
|
||||||
TimeDelay16,
|
TimeDelay16,
|
||||||
TimeDelay17,
|
TimeDelay17,
|
||||||
|
|
||||||
|
LoopSetTVPressMode1,
|
||||||
|
LoopSetM18toM40,
|
||||||
|
LoopSetTv1,
|
||||||
|
LoopSet0M18toM40,
|
||||||
|
LoopSetM18Default,
|
||||||
|
LoopWaitTv1
|
||||||
}
|
}
|
||||||
|
|
||||||
enum LeakCheckType
|
enum LeakCheckType
|
||||||
@ -308,137 +317,73 @@ namespace SicModules.PMs.Routines
|
|||||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||||
|
|
||||||
//关闭V72,打开V25
|
//3、 关闭 V72(GasBox.Vent.Pump) 。
|
||||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
|
||||||
//打开V103,关闭V105
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开V31,打开V32
|
//4、 打开 V31(H2.Supply)、 V32(N2Supply)。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V35,打开V36
|
//5、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/C/E/F/H/KValves,打开 D/G Valves; 打开 J valve。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭B/C/E/F/H/K 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开D/G 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//设置MFC和PC的模式
|
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
|
||||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
|
||||||
|
|
||||||
//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.M2toM42, 3);//组改变,.M2toM26改变为->M2toM42,防止MFC不在正常状态
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 3);
|
|
||||||
|
|
||||||
//打开V68
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开J阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开EPV2
|
//6、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9), M18-M40(除M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1toM17, MfcGroupName.M1toM17, 0);
|
||||||
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
|
||||||
|
//7、打开 EPV2,等待 3s, 打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||||
|
|
||||||
//设置蝶阀Enable
|
|
||||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
|
||||||
|
|
||||||
//设置蝶阀为压力模式
|
|
||||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||||
|
|
||||||
//伺服压力设定值到0mbar
|
|
||||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pressureMin);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 3s ramp到0
|
//8、当蝶阀设定值 ramp 到 0 后,将 M18-M40(除 M30\M34\M39)) MFC 3s ramp 到 0;
|
||||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 3);
|
SetMfcByGroup((int)RoutineStep.Set0M18toM40, MfcGroupName.M18toM40No303439, 0, 3);
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 3);
|
|
||||||
|
|
||||||
//等待腔体压力Pump到设定值
|
//9、等待腔体压力到 Pump Base Pressure(可配置),蝶阀改为位置模式,开度设定 100%
|
||||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pressureMinTimeout);
|
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pressureMin, _pressureMinTimeout);
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
||||||
|
|
||||||
//蝶阀设置为位置模式,开度设置为最大
|
|
||||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
||||||
|
|
||||||
//循环开始
|
//循环开始
|
||||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||||
|
//蝶阀改为压力模式
|
||||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
//压力 servo 到 300(可配置)
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
//压力达到后, M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
|
//等待压力到达 0(可配置)
|
||||||
//先关蝶阀,再关闭EPV2
|
SetThrottleToPressModeAndWait((int)RoutineStep.LoopSetTVPressMode1, _IoThrottle, 5);
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pressureMin);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
SetMfcByGroup((int)RoutineStep.LoopSet0M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetM18Default, MfcGroupName.M18, 3);
|
||||||
|
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pressureMin, _pressureMinTimeout);
|
||||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
|
||||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _pressureMax, _pressureMaxTimeout);
|
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
|
||||||
|
|
||||||
//打开EPV2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
|
||||||
//设置蝶阀Enable
|
|
||||||
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.M2toM42, 0, 3);
|
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
|
||||||
|
|
||||||
//伺服到0mbar
|
|
||||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pressureMin, _pressureMinTimeout);
|
|
||||||
|
|
||||||
EndLoop((int)RoutineStep.EndLoop);
|
EndLoop((int)RoutineStep.EndLoop);
|
||||||
|
//11、 依次关闭 Final valves;
|
||||||
//依次关闭Final1
|
//先 关 闭 V93 ( ChamberPurge.Final )、 V94 ( RotationUpPurge.Final )、 V95(ConfinementRing.Final)、 V96(HeaterWF.Final);
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseGasIn1, IoGroupName.GasIn1, false, _IoValueOpenCloseTimeout);
|
//再关闭 V87( SHPurge.Final)、 V88( OuterGas.Final)、 V89( InnerGas.Final)、 V90( MiddleGas.Final )、 V91 ( OpticPurge.Final )、 V92 ( GasRingPurge.Final )、 V97(CarryGas.Final);
|
||||||
Delay((int)RoutineStep.TimeDelay13, 5);
|
SetIoValueByGroup((int)RoutineStep.CloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭M32,M35,M36,M37,M38
|
|
||||||
SetMfcByGroup((int)RoutineStep.CloseM32M35M37, MfcGroupName.M32M35M37, 0, 5);
|
|
||||||
SetMfcByGroup((int)RoutineStep.CloseM36, MfcGroupName.M36, 0, 5);
|
|
||||||
SetMfcByGroup((int)RoutineStep.CloseM38, MfcGroupName.M38, 0, 5);
|
|
||||||
|
|
||||||
Delay((int)RoutineStep.TimeDelay14, 5);
|
|
||||||
|
|
||||||
//关闭Final1阀
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseFinanl1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//关闭Final2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseFinal2, IoGroupName.Final2, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.CloseFinal2, IoGroupName.Final2, false, _IoValueOpenCloseTimeout);
|
||||||
|
//12、延时一定时间后(参数配置), 关闭蝶阀,再关闭 EPV2, 开始测漏记录腔体压力 P1(mbar)和时间 T1,测试时间 T(秒) 结束后, 记录腔体压力 P2 和时间 T2
|
||||||
//延时
|
//计算腔体漏率
|
||||||
|
//腔体漏率 =(P2 - P1) /(T2 - T1) *60
|
||||||
|
//所得漏率与设定范围对比,小于范围,测漏成功,否则报错提示
|
||||||
TimeDelay((int)RoutineStep.TimeDelay15, _paramContinuePumpTime);
|
TimeDelay((int)RoutineStep.TimeDelay15, _paramContinuePumpTime);
|
||||||
|
|
||||||
//先关蝶阀,再关闭EPV2
|
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
||||||
SetThrottleDisable((int)RoutineStep.CLoseTvvvv, _IoThrottle, 8);
|
SetThrottleDisable((int)RoutineStep.CLoseTvvvv, _IoThrottle, 8);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay16, 1);
|
TimeDelay((int)RoutineStep.TimeDelay16, 1);
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
using Aitex.Core.RT.Event;
|
using Aitex.Core.RT.Device;
|
||||||
|
using Aitex.Core.RT.Device.Devices;
|
||||||
|
using Aitex.Core.RT.Event;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using Aitex.Core.RT.SCCore;
|
using Aitex.Core.RT.SCCore;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
using MECF.Framework.Common.SubstrateTrackings;
|
using MECF.Framework.Common.SubstrateTrackings;
|
||||||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
@ -46,11 +49,37 @@ namespace SicModules.PMs.Routines
|
|||||||
TimeDelay12,
|
TimeDelay12,
|
||||||
TimeDelay13,
|
TimeDelay13,
|
||||||
TimeDelay14,
|
TimeDelay14,
|
||||||
TimeDelay15
|
TimeDelay15,
|
||||||
|
|
||||||
|
SetV31,
|
||||||
|
SetV32,
|
||||||
|
SetV35V36,
|
||||||
|
SetGroupB,
|
||||||
|
SetGroupC,
|
||||||
|
SetGroupE,
|
||||||
|
SetGroupF,
|
||||||
|
SetGroupH,
|
||||||
|
SetGroupK,
|
||||||
|
SetGroupD,
|
||||||
|
SetGroupG,
|
||||||
|
SetM1toM17,
|
||||||
|
SetPC,
|
||||||
|
SetM18toM40,
|
||||||
|
SetEPV2,
|
||||||
|
SetGroupJ,
|
||||||
|
SetV72,
|
||||||
|
SetV25,
|
||||||
|
SetPressureDown,
|
||||||
|
SetTVto300
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasWafer;
|
bool hasWafer;
|
||||||
|
|
||||||
|
private IoThrottleValve2 _IoThrottle;
|
||||||
|
private double _throttleFinalPressure = 300;//蝶阀最终调整对的压力
|
||||||
|
private double _pmPressureMaxDiff; //蝶阀与目标压力的差值范围(认为调整到位了)
|
||||||
|
private int _throttleTimeout; //蝶阀调整到指定压力的超时时间
|
||||||
|
|
||||||
//private int _timeout;
|
//private int _timeout;
|
||||||
private int _rotationSpeed = 60;
|
private int _rotationSpeed = 60;
|
||||||
|
|
||||||
@ -68,6 +97,7 @@ namespace SicModules.PMs.Routines
|
|||||||
private float _scrL2Ratio = 0;
|
private float _scrL2Ratio = 0;
|
||||||
private float _scrL3Ratio = 0;
|
private float _scrL3Ratio = 0;
|
||||||
|
|
||||||
|
private int _IoValueOpenCloseTimeout = 10; //开关超时时间
|
||||||
|
|
||||||
private double _targetPressure;
|
private double _targetPressure;
|
||||||
private PMServoToPressure _pmServoToPressure;
|
private PMServoToPressure _pmServoToPressure;
|
||||||
@ -99,11 +129,14 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
public override Result Start(params object[] objs)
|
public override Result Start(params object[] objs)
|
||||||
{
|
{
|
||||||
//servo = DEVICE.GetDevice<NAISServo>($"{Module}.NAISServo");
|
|
||||||
|
|
||||||
//_timeout = SC.GetValue<int>($"NAISServo.UpTimeout");
|
_IoThrottle = DEVICE.GetDevice<IoThrottleValve2>($"{Module}.TV");
|
||||||
_rotationSpeed = SC.GetValue<int>($"PM.{Module}.ProcessIdle.RotationSpeed");
|
_rotationSpeed = SC.GetValue<int>($"PM.{Module}.ProcessIdle.RotationSpeed");
|
||||||
|
|
||||||
|
_pmPressureMaxDiff = SC.GetValue<double>($"PM.{Module}.ThrottlePressureMaxDiff");
|
||||||
|
_throttleFinalPressure = SC.GetValue<double>($"PM.{Module}.ProcessIdle.FinalPressure");
|
||||||
|
_throttleTimeout = SC.GetValue<int>($"PM.{Module}.ThrottlePressureTimeout");
|
||||||
|
|
||||||
_psuHeatEnable = SC.GetValue<bool>($"PM.{Module}.ProcessIdle.PSUHeaterEnable");
|
_psuHeatEnable = SC.GetValue<bool>($"PM.{Module}.ProcessIdle.PSUHeaterEnable");
|
||||||
_psuHeatMode = SC.GetValue<int>($"PM.{Module}.ProcessIdle.PSUHeaterMode");
|
_psuHeatMode = SC.GetValue<int>($"PM.{Module}.ProcessIdle.PSUHeaterMode");
|
||||||
//_psuPowerRef = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.PSUPowerRef");
|
//_psuPowerRef = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.PSUPowerRef");
|
||||||
@ -135,19 +168,41 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
public override Result Monitor()
|
public override Result Monitor()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//1、 打开 V31(H2.Supply)、 V32(Ar.Supply)。
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||||
|
//2、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/ C / E / F / H / KValves,打开 D/ G Valves。
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||||
|
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);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
//3、 M1 - M17 设定为 default 值,所有 PC 设定为 default 值(PC1 - PC9)。
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1toM17, MfcGroupName.M1toM17, 0);
|
||||||
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
//4、 M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
//5、 打开 EPV2。
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
|
//6、打开 J Valves
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||||
|
//7、打开 V72(GasBox.Vent.Pump) 关闭 V25(GasBox.Vent.Bypass), 反应腔压力伺服到300mbar(可配置)
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||||
|
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureDown, _IoThrottle, _throttleFinalPressure);
|
||||||
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||||
|
//8、设定转速(可配置)
|
||||||
EnableRotation((int)RoutineStep.EnableRotation, 5);
|
EnableRotation((int)RoutineStep.EnableRotation, 5);
|
||||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation1, _rotationSpeed);
|
SetRotationValveAndNoWait((int)RoutineStep.SetRotation1, _rotationSpeed);
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, _servoUpDelay);
|
//9、加热使能(PSU 和 SCR)(可配置)
|
||||||
|
|
||||||
SetConfinementRingUpAndWait((int)RoutineStep.SetServoUp, 30);
|
|
||||||
|
|
||||||
ExecuteRoutine((int)RoutineStep.SetChamberPressure, _pmServoToPressure);
|
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay8, 1);
|
|
||||||
|
|
||||||
if (_psuHeatEnable && _needEnableHeat)
|
if (_psuHeatEnable && _needEnableHeat)
|
||||||
{
|
{
|
||||||
SetPSUEnable((int)RoutineStep.EnableTC1, true, 5);
|
SetPSUEnable((int)RoutineStep.EnableTC1, true, 5);
|
||||||
@ -168,6 +223,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetSCRHeatRatio((int)RoutineStep.SetTC2Ratio, _scrL1Ratio, _scrL2Ratio, _scrL3Ratio);
|
SetSCRHeatRatio((int)RoutineStep.SetTC2Ratio, _scrL1Ratio, _scrL2Ratio, _scrL3Ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TimeDelay((int)RoutineStep.TimeDelay8, 1);
|
||||||
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed / 2);
|
WaitRotationValve((int)RoutineStep.WaitRotation1, _rotationSpeed, true, _rotationSpeed / 2);
|
||||||
}
|
}
|
||||||
catch (RoutineBreakException)
|
catch (RoutineBreakException)
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
using System;
|
using Aitex.Core.RT.Device.Devices;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using Aitex.Core.RT.Event;
|
using Aitex.Core.RT.Event;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using Aitex.Core.RT.SCCore;
|
using Aitex.Core.RT.SCCore;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
{
|
{
|
||||||
@ -19,9 +20,9 @@ namespace SicModules.PMs.Routines
|
|||||||
SetPSURatio,
|
SetPSURatio,
|
||||||
SetSCRRatio,
|
SetSCRRatio,
|
||||||
SetRotation,
|
SetRotation,
|
||||||
SetM2toM40,
|
SetM18toM40,
|
||||||
SetM17M18,
|
SetM17M18,
|
||||||
SetM1to16,
|
SetM1toM17,
|
||||||
SetM5M21,
|
SetM5M21,
|
||||||
SetPC,
|
SetPC,
|
||||||
SetV32,
|
SetV32,
|
||||||
@ -41,7 +42,8 @@ namespace SicModules.PMs.Routines
|
|||||||
SetV34,
|
SetV34,
|
||||||
SetV100,
|
SetV100,
|
||||||
TimeDelay1,
|
TimeDelay1,
|
||||||
TimeDelay2,
|
TimeDelay2,
|
||||||
|
SetGroupJ
|
||||||
}
|
}
|
||||||
|
|
||||||
private int _heatTimeOut = 5;
|
private int _heatTimeOut = 5;
|
||||||
@ -81,66 +83,35 @@ namespace SicModules.PMs.Routines
|
|||||||
{
|
{
|
||||||
//CheckRoutineTimeOut();
|
//CheckRoutineTimeOut();
|
||||||
|
|
||||||
//停止加热
|
//停止加热、停止旋转
|
||||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||||
|
|
||||||
//设置模式为Power
|
|
||||||
SetPSUHeatMode((int)RoutineStep.SetPSUMode, 0);
|
|
||||||
SetSCRHeatMode((int)RoutineStep.SetSCRMode, 0);
|
|
||||||
|
|
||||||
//设定功率为0
|
|
||||||
SetPSUHeatRatio((int)RoutineStep.SetPSURatio, 0, 0, 0);
|
|
||||||
SetSCRHeatRatio((int)RoutineStep.SetSCRRatio, 0, 0, 0);
|
|
||||||
|
|
||||||
//停止旋转
|
|
||||||
SetRotationValveAndNoWait((int)RoutineStep.SetRotation, 0);
|
SetRotationValveAndNoWait((int)RoutineStep.SetRotation, 0);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 30s ramp 到 default 值
|
//2、 M18-M40(除 M30\M34\M39)) MFC 30s ramp 到 default 值(时间可配置)
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, _mfc2to40RampTime);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, _mfc2to40RampTime);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, _mfc2to40RampTime);
|
|
||||||
|
|
||||||
//M1 - M16 MFC 30s ramp 到 default 值(M2、M9、M15除外)
|
//3、 M1-M17 MFC 30s ramp 到 default 值(时间可配置) , 所有 PC 设定为 default 值(PC1-PC9)
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, _mfc1to16RampTime);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1toM17, MfcGroupName.M1toM17, _mfc1to16RampTime);
|
||||||
//M5 M2130s ramp 到 default 值
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM5M21, MfcGroupName.M5M21, _mfc1to16RampTime);
|
|
||||||
|
|
||||||
//所有PC设定为默认值
|
|
||||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
|
||||||
//等待MFC等流量
|
//等待MFC等流量
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to40RampTime, _mfc1to16RampTime));
|
TimeDelay((int)RoutineStep.TimeDelay1, Math.Max(_mfc2to40RampTime, _mfc1to16RampTime));
|
||||||
|
|
||||||
//打开V32
|
//4、打开 V32(N2.Supply)
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV32, IoGroupName.V32, true);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetV32, IoGroupName.V32, true);
|
||||||
|
|
||||||
//打开V35,打开V36
|
//5、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/C/E/F/H/KValves,打开 D/G Valves;打开 J valve。
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true);
|
||||||
|
|
||||||
//关闭B/C/E/F/H/K 阀门
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupB, IoGroupName.B, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupB, IoGroupName.B, false);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupC, IoGroupName.C, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupC, IoGroupName.C, false);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupE, IoGroupName.E, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupE, IoGroupName.E, false);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupF, IoGroupName.F, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupF, IoGroupName.F, false);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupH, IoGroupName.H, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupH, IoGroupName.H, false);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupK, IoGroupName.K, false);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupK, IoGroupName.K, false);
|
||||||
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV100, IoGroupName.V100, false);
|
|
||||||
|
|
||||||
//打开D/G 阀门
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupD, IoGroupName.D, true);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupD, IoGroupName.D, true);
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupG, IoGroupName.G, true);
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupG, IoGroupName.G, true);
|
||||||
|
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupJ, IoGroupName.V65, true);
|
||||||
|
|
||||||
//打开V65
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV65, IoGroupName.V65, true);
|
|
||||||
|
|
||||||
//打开V68
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetV68, IoGroupName.GasIn1, true);
|
|
||||||
|
|
||||||
//关闭V72,打开V25
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false);
|
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay2, 2);
|
|
||||||
SetIoValueByGroupNoWait((int)RoutineStep.SetGroupV25, IoGroupName.V25, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (RoutineBreakException)
|
catch (RoutineBreakException)
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
using System.Collections.Generic;
|
using Aitex.Core.RT.Device;
|
||||||
using System.Diagnostics;
|
|
||||||
using Aitex.Core.RT.Device;
|
|
||||||
using Aitex.Core.RT.Device.Devices;
|
using Aitex.Core.RT.Device.Devices;
|
||||||
using Aitex.Core.RT.Event;
|
using Aitex.Core.RT.Event;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using Aitex.Core.RT.SCCore;
|
using Aitex.Core.RT.SCCore;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
{
|
{
|
||||||
@ -32,7 +33,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetMFCMode,
|
SetMFCMode,
|
||||||
SetPCMode,
|
SetPCMode,
|
||||||
|
|
||||||
SetM1to16,
|
SetM1toM17,
|
||||||
SetM17M18,
|
SetM17M18,
|
||||||
SetPC,
|
SetPC,
|
||||||
SetGroupJ,
|
SetGroupJ,
|
||||||
@ -50,9 +51,11 @@ namespace SicModules.PMs.Routines
|
|||||||
SetTVCloseMode,
|
SetTVCloseMode,
|
||||||
SetTvPositionToZero,
|
SetTvPositionToZero,
|
||||||
|
|
||||||
|
WaitPressUpTo950,
|
||||||
|
|
||||||
SetGasIn2,
|
SetGasIn2,
|
||||||
SetGroupJOpen,
|
SetGroupJOpen,
|
||||||
SetM291519to26,
|
SetM18toM40,
|
||||||
SetM291519to26_1,
|
SetM291519to26_1,
|
||||||
|
|
||||||
OpenFinal2,
|
OpenFinal2,
|
||||||
@ -68,7 +71,8 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
SetTVEnable_1,
|
SetTVEnable_1,
|
||||||
SetTVEnable_2,
|
SetTVEnable_2,
|
||||||
SetTVPressMode,
|
SetTVPressMode,
|
||||||
|
SetTVPressMode2,
|
||||||
SetTVPressMode1,
|
SetTVPressMode1,
|
||||||
SetTv1,
|
SetTv1,
|
||||||
WaitTv1,
|
WaitTv1,
|
||||||
@ -85,7 +89,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetPressureUp,
|
SetPressureUp,
|
||||||
SetPressureDown,
|
SetPressureDown,
|
||||||
WaitPressureDown,
|
WaitPressureDown,
|
||||||
WaitPressureUp,
|
|
||||||
VentPumpOpen,
|
VentPumpOpen,
|
||||||
|
|
||||||
PressureToMax,
|
PressureToMax,
|
||||||
@ -104,14 +108,29 @@ namespace SicModules.PMs.Routines
|
|||||||
CLoseTvvvv,
|
CLoseTvvvv,
|
||||||
CLoseTV1,
|
CLoseTV1,
|
||||||
CLoseTV2,
|
CLoseTV2,
|
||||||
SetEPV2_1,
|
|
||||||
SetEPV2_2,
|
FirstWaitPressureUp,
|
||||||
|
FirstSetDefault_M18toM40,
|
||||||
|
FirstSet0_M18toM40,
|
||||||
|
FirstSetEPV2_1,
|
||||||
|
FirstSetEPV2_2,
|
||||||
|
FirstSetTv1,
|
||||||
|
|
||||||
SetEPV2_3,
|
SetEPV2_3,
|
||||||
CLoseEPV1,
|
CLoseEPV1,
|
||||||
CheckPM1000,
|
CheckPM1000,
|
||||||
WaitPressUpTo1000,
|
WaitPressUpTo1000,
|
||||||
WaitPressUpTo1020,
|
WaitPressUpTo1020,
|
||||||
|
|
||||||
|
LoopSetDefault_M18toM40,
|
||||||
|
LoopSetEPV2_1,
|
||||||
|
LoopWaitPressureUp,
|
||||||
|
LoopSetEPV2_2,
|
||||||
|
LoopSetTv1,
|
||||||
|
LoopSet0_M18toM40,
|
||||||
|
Loop2Set0_M18toM40,
|
||||||
|
LoopWaitTv1,
|
||||||
|
|
||||||
SetPressUpOrDown1,
|
SetPressUpOrDown1,
|
||||||
SetPressUpOrDown2,
|
SetPressUpOrDown2,
|
||||||
SetMfc28to40Special,
|
SetMfc28to40Special,
|
||||||
@ -128,7 +147,8 @@ namespace SicModules.PMs.Routines
|
|||||||
SetV761,
|
SetV761,
|
||||||
SetV103,
|
SetV103,
|
||||||
SetV105,
|
SetV105,
|
||||||
SetM2toM40,
|
Set0_M18toM40,
|
||||||
|
|
||||||
SetM2toM40_1,
|
SetM2toM40_1,
|
||||||
SetM2TOM40Default,
|
SetM2TOM40Default,
|
||||||
SetM18,
|
SetM18,
|
||||||
@ -200,6 +220,14 @@ namespace SicModules.PMs.Routines
|
|||||||
|
|
||||||
Notify1,
|
Notify1,
|
||||||
Notify2
|
Notify2
|
||||||
|
|
||||||
|
,FinishSetM1toM17,
|
||||||
|
FinishSetDefault_M18toM40,
|
||||||
|
FinishSetTVCloseMode2,
|
||||||
|
FinishCLoseTV2,
|
||||||
|
FinishSetEPV2_3,
|
||||||
|
FinishWaitPressUpTo1020,
|
||||||
|
FinishSet0_M2M9M15M19_M26
|
||||||
}
|
}
|
||||||
|
|
||||||
private ModuleName moduleName;
|
private ModuleName moduleName;
|
||||||
@ -296,195 +324,118 @@ namespace SicModules.PMs.Routines
|
|||||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//旋转停止,加热停止
|
//2、 旋转停止,加热停止
|
||||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||||
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
|
||||||
|
|
||||||
//关闭V72,打开V25
|
//3、 关闭 V72(GasBox.Vent.Pump) 打开 V25(GasBox.Vent.Bypass)。
|
||||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
|
||||||
//打开V103,关闭V105
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开V31,打开V32
|
//4、 打开 V31(H2.Supply)、 V32(Ar.Supply) 。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V35,打开V36
|
//5、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/C/E/F/H/KValves,打开 D/G Valves; 打开 J valve。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭B/C/E/F/H/K 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开D/G 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V65
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//设置MFC和PC的模式
|
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
|
||||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
|
||||||
|
|
||||||
//打开J阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//M1-M16设定为default值(M2、M9、M15除外)
|
//6、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9), M18-M40(除M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1toM17, MfcGroupName.M1toM17, 0);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
|
||||||
//设置所有PC到默认值
|
//7、打开 EPV2,等待 3s, 打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
|
||||||
|
|
||||||
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
|
|
||||||
|
|
||||||
//打开EPV2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
||||||
|
|
||||||
//设置蝶阀Enable
|
|
||||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_1, _IoThrottle, 5);
|
||||||
|
|
||||||
//设置蝶阀为压力模式
|
|
||||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
||||||
|
|
||||||
//伺服压力设定值到0mbar
|
//8、当蝶阀设定值 ramp 到 0 后,将 M18-M40(除 M30\M34\M39)) MFC 3s ramp 到 0;
|
||||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTv1, _IoThrottle, _pumpBasePressure);
|
SetMfcByGroup((int)RoutineStep.Set0_M18toM40, MfcGroupName.M18toM40No303439, 0, 3);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 5s ramp 到0
|
//9、等待腔体压力到 Pump Base Pressure(可配置),蝶阀改为位置模式,开度设定 100 %
|
||||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18, MfcGroupName.M18, 0, 5);
|
|
||||||
|
|
||||||
//等待腔体压力Pump到设定值
|
|
||||||
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _throttleTimeout);
|
WaitChamberPressDownTo((int)RoutineStep.WaitTv1, _pumpBasePressure, _throttleTimeout);
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||||
|
|
||||||
//蝶阀设置为位置模式,开度设置为最大
|
|
||||||
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode, _IoThrottle, _throttleTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||||
|
|
||||||
//Final2阀对应的MFC 3s Ramp到Default值
|
//10、 M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值 ;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||||
|
|
||||||
//打开Final2阀
|
//11、 打 开 V87( SHPurge.Final)、 V88( OuterGas.Final)、 V89( InnerGas.Final )、 V90(MiddleGas.Final)、 V91(OpticPurge.Final)、 V97(CarryGas.Final);
|
||||||
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V68
|
//12、 打开 V68(ChamBody.N2.Purge)
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
TimeDelay((int)RoutineStep.TimeDelay3, 1);
|
||||||
|
|
||||||
//打开V92,V93和V95,再打开V94,在打开V96
|
//13、 M32、 M35、 M36、 M37、 M38 依次设定 3S ramp 到 default 值 ;
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
|
||||||
|
//14、打开 V92(GasRingPurge.Final)、 V93(ChamberPurge.Final)、 V95(ConfinementRing.Final);
|
||||||
|
//等待 950,打开 V94(RotationUpPurge.Final)、 等待 3S,打开 V96(HeaterWF.Final) ;
|
||||||
|
//蝶阀改为压力模式
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||||
|
WaitChamberPressUpTo((int)RoutineStep.WaitPressUpTo950, 950, _waitPressureTimeout);
|
||||||
//循环开始
|
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
|
||||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
TimeDelay((int)RoutineStep.TimeDelay4, 3);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
|
||||||
//M2、M9、M15、M19-M40 MFC 3s ramp 到 default 值
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM2TOM40Default, MfcGroupName.M2toM42, 3);
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18Default, MfcGroupName.M18, 3);
|
|
||||||
|
|
||||||
//先关蝶阀,再关闭EPV2
|
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode1, _IoThrottle, 8);
|
|
||||||
SetThrottleDisable((int)RoutineStep.CLoseTV1, _IoThrottle, 8);
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
|
||||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
|
||||||
|
|
||||||
////设置蝶阀为压力模式
|
|
||||||
//SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
|
||||||
|
|
||||||
////使用动态流量伺服到300mbar
|
|
||||||
//SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Uping);
|
|
||||||
//SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureUp, _IoThrottle, _ventBasePressure);
|
|
||||||
//WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.WaitPressureUp, _IoThrottle, _ventBasePressure, _pmPressureMaxDiff, _pressureMaxTimeout);
|
|
||||||
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay6, _pressureMaxDelay);
|
|
||||||
|
|
||||||
//打开EPV2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay7, 1);
|
|
||||||
//设置蝶阀Enable
|
|
||||||
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
|
|
||||||
//设置蝶阀为压力模式
|
|
||||||
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 3s ramp 0
|
//M18-M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
SetMfcByGroup((int)RoutineStep.SetM2toM40_1, MfcGroupName.M2toM42, 0, 3);
|
//关闭 EPV2,等待压力达到设定值,压力达到后, 打开 EPV2; M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18_1, MfcGroupName.M18, 0, 3);
|
//伺服压力到设定值 0(可配置)
|
||||||
|
SetMfcToDefaultByGroup((int)RoutineStep.FirstSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.FirstWaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetMfcByGroup((int)RoutineStep.FirstSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.FirstSetTv1, _IoThrottle, _pumpBasePressure);
|
||||||
|
|
||||||
//伺服到0mbar
|
//循环开始
|
||||||
SetThrottlePressureAndWait((int)RoutineStep.SetPressureDown, _IoThrottle, _pumpBasePressure, _pumpTimeout);
|
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||||
|
|
||||||
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
|
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||||
|
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||||
////蝶阀设置为位置模式,开度设置为最大
|
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
//SetThrottleToPositionMode((int)RoutineStep.SetTVPositionMode_1, _IoThrottle, _throttleTimeout);
|
//伺服压力到设定值 0(可配置)
|
||||||
//SetThrottleSetPositionNoWait((int)RoutineStep.SetTVPositionMax_1, _IoThrottle, 100, _throttleTimeout);
|
//M18 - M40(除 M30\M34\M39)) MFC5s ramp 到 0。
|
||||||
|
//等待压力到达 0(可配置)
|
||||||
//TimeDelay((int)RoutineStep.TimeDelay9, _pressureMinDelay);
|
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.LoopWaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
||||||
|
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
|
SetMfcByGroup((int)RoutineStep.LoopSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
|
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pumpBasePressure);
|
||||||
|
SetMfcByGroup((int)RoutineStep.Loop2Set0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
|
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pumpBasePressure, _pumpTimeout);
|
||||||
|
|
||||||
EndLoop((int)RoutineStep.EndLoop);
|
EndLoop((int)RoutineStep.EndLoop);
|
||||||
|
//设置 M1-M17 3s ramp 到 default; M18 - M40(除 M30\M34\M39)) MFC 3s ramp到 default 值。
|
||||||
|
//关闭蝶阀,再关闭 EPV2; 等待压力到达 1020。
|
||||||
//M2,M9,M15,M19-M26 3s ramp 到0
|
//M2,M9,M15,M19-M26 3s ramp 到0
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26_1, MfcGroupName.M2toM26, 3);
|
SetMfcToDefaultByGroup((int)RoutineStep.FinishSetM1toM17, MfcGroupName.M1toM17, 3);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18_2, MfcGroupName.M18, 3);
|
SetMfcToDefaultByGroup((int)RoutineStep.FinishSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||||
|
SetThrottleToCloseMode((int)RoutineStep.FinishSetTVCloseMode2, _IoThrottle, 8);
|
||||||
//M27-M40 MFC 3s ramp 到 default 值
|
SetThrottleDisable((int)RoutineStep.FinishCLoseTV2, _IoThrottle, 8);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc27to40Default, MfcGroupName.M27toM40, 3);
|
|
||||||
|
|
||||||
//关闭J阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseGroupJ, IoGroupName.J, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//关闭先关蝶阀,再EPV2
|
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode2, _IoThrottle, 8);
|
|
||||||
SetThrottleDisable((int)RoutineStep.CLoseTV2, _IoThrottle, 8);
|
|
||||||
TimeDelay((int)RoutineStep.TimeDelay10, 1);
|
TimeDelay((int)RoutineStep.TimeDelay10, 1);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_3, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.FinishSetEPV2_3, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
|
NotifyInfo((int)RoutineStep.Notify1, $"Wait pm pressure to 1020 mbar!");
|
||||||
//等待反应腔压力到达950
|
WaitChamberPressUpTo((int)RoutineStep.FinishWaitPressUpTo1020, 1020, _waitPressureTimeout);
|
||||||
NotifyInfo((int)RoutineStep.Notify1, $"Wait pm pressure to 950 mbar!");
|
SetMfcByGroup((int)RoutineStep.FinishSet0_M2M9M15M19_M26, MfcGroupName.M2M9M15M19_M26, 0, 3);
|
||||||
WaitChamberPressUpTo((int)RoutineStep.WaitPressUpTo1000, 950, _waitPressureTimeout);
|
|
||||||
|
|
||||||
if (_needFinalValveOpen)
|
|
||||||
{
|
|
||||||
//打开Final1阀
|
|
||||||
SetIoValueByGroup((int)RoutineStep.IsOpenFinal1, IoGroupName.Final1, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开Final2阀
|
|
||||||
SetIoValueByGroup((int)RoutineStep.IsOpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36_1, MfcGroupName.M36, 3);
|
|
||||||
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38_1, MfcGroupName.M38, 3);
|
|
||||||
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV111_1, IoGroupName.V111, true, _IoValueOpenCloseTimeout);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//关闭Final1阀
|
|
||||||
SetIoValueByGroup((int)RoutineStep.IsCloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//关闭Final2阀
|
|
||||||
SetIoValueByGroup((int)RoutineStep.IsCloseFinal2, IoGroupName.Final2, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV111_2, IoGroupName.V111, false, _IoValueOpenCloseTimeout);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (RoutineBreakException)
|
catch (RoutineBreakException)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
using System.Collections.Generic;
|
using Aitex.Core.RT.Device;
|
||||||
using Aitex.Core.RT.Device;
|
|
||||||
using Aitex.Core.RT.Device.Devices;
|
using Aitex.Core.RT.Device.Devices;
|
||||||
using Aitex.Core.RT.Routine;
|
using Aitex.Core.RT.Routine;
|
||||||
using MECF.Framework.Common.Equipment;
|
using MECF.Framework.Common.Equipment;
|
||||||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
|
||||||
using SicModules.PMs.Routines.Base;
|
using SicModules.PMs.Routines.Base;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace SicModules.PMs.Routines
|
namespace SicModules.PMs.Routines
|
||||||
{
|
{
|
||||||
@ -25,8 +26,8 @@ namespace SicModules.PMs.Routines
|
|||||||
SetGroupG,
|
SetGroupG,
|
||||||
SetGroupK,
|
SetGroupK,
|
||||||
|
|
||||||
SetM1to16,
|
SetM1to17,
|
||||||
SetM2toM40,
|
SetM18toM40,
|
||||||
SetM17M18,
|
SetM17M18,
|
||||||
SetPC,
|
SetPC,
|
||||||
SetGroupI, //V87-96
|
SetGroupI, //V87-96
|
||||||
@ -125,67 +126,46 @@ namespace SicModules.PMs.Routines
|
|||||||
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//旋转停止,加热停止
|
//2、 旋转停止,加热停止
|
||||||
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
|
||||||
SetRotationValve((int)RoutineStep.RotationEnable, 0, false, _rotationCloseTimeout);
|
SetRotationValve((int)RoutineStep.RotationEnable, 0, false, _rotationCloseTimeout);
|
||||||
|
|
||||||
//关闭V72
|
//3、 关闭 V72(GasBox.Vent.Pump) 。
|
||||||
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
|
||||||
//打开V103,关闭V105
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开V31,打开V32
|
//4、 打开 V31(H2.Supply)、 V32(N2Supply)。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V35,打开V36
|
//5、 打开 V35(H2N2.Line1)、V36(H2N2.Line2),关闭 B/ C / E / F / H / KValves,打开D / G Valves。关闭 V68(ChamBody.Ar.Purge)
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭B/C/E/F/H/K 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//打开V65
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
|
|
||||||
|
|
||||||
//打开D/G 阀门
|
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭V68
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseV68, IoGroupName.V68, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.CloseV68, IoGroupName.V68, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//设置MFC和PC的模式
|
//6、 1 - M17 设定为 default 值,所有 PC 设定为 default 值(PC1 - PC9),
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to17, MfcGroupName.M1toM17, 0);
|
||||||
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
|
|
||||||
|
|
||||||
//M1-M16设定为default值(M2、M9、M15除外)
|
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
|
|
||||||
|
|
||||||
//设置所有PC到默认值
|
|
||||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
|
||||||
//M2、M9、M15、M19-M40 MFC 5s ramp到0
|
//7、 M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||||
SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
|
SetMfcByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
SetMfcByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0, 5);
|
|
||||||
|
|
||||||
//关闭Final1阀
|
//8、 依次关闭 Final valves;
|
||||||
|
//先关闭 V93(ChamberPurge.Final)、 V94(RotationUpPurge.Final)、 V95(ConfinementRing.Final)、 V96(HeaterWF.Final);
|
||||||
|
//再关闭 V87(SHPurge.Final)、 V88(OuterGas.Final)、 V89(InnerGas.Final)、 V90(MiddleGas.Final)、 V91(OpticPurge.Final)、 V92(GasRingPurge.Final)、 V97(CarryGas.Final);
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.CloseFinal1, IoGroupName.Final1, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭Final2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseFinal2, IoGroupName.Final2, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.CloseFinal2, IoGroupName.Final2, false, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//关闭蝶阀
|
//9、 关闭蝶阀,再关闭 EPV2
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||||
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
||||||
|
|
||||||
//关闭EPV2
|
|
||||||
SetIoValueByGroup((int)RoutineStep.CloseEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.CloseEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||||
}
|
}
|
||||||
catch (RoutineBreakException)
|
catch (RoutineBreakException)
|
||||||
|
|||||||
@ -312,7 +312,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//5、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9)。
|
//5、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9)。
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1to17);
|
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1toM17);
|
||||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
|
|
||||||
//M1-M16设定为default值(M2、M9、M15除外)
|
//M1-M16设定为default值(M2、M9、M15除外)
|
||||||
@ -320,7 +320,7 @@ namespace SicModules.PMs.Routines
|
|||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
|
||||||
|
|
||||||
//6、 M18-M40(除 M30\M34\M39) MFC 5s ramp 到 0。
|
//6、 M18-M40(除 M30\M34\M39) MFC 5s ramp 到 0。
|
||||||
SetMfcByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18to40No303439, 0, 5);
|
SetMfcByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||||
|
|
||||||
//7、 打开 EPV2。
|
//7、 打开 EPV2。
|
||||||
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||||
@ -361,7 +361,6 @@ namespace SicModules.PMs.Routines
|
|||||||
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
|
||||||
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
TimeDelay((int)RoutineStep.TimeDelay5, 1);
|
||||||
SetIoValueByGroup((int)RoutineStep.SetV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
|
||||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Dowing);
|
|
||||||
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureDown, _IoThrottle, _throttleFinalPressure);
|
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureDown, _IoThrottle, _throttleFinalPressure);
|
||||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
|
||||||
|
|
||||||
|
|||||||
@ -193,9 +193,9 @@ namespace SicModules.PMs.Routines
|
|||||||
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
|
||||||
|
|
||||||
//6、 M1-M17 设定为 default 值, 所有 PC 设定为 default 值(PC1-PC9) ,M18 - M40(除 M30\M34\M39) MFC 5s ramp 到 0。
|
//6、 M1-M17 设定为 default 值, 所有 PC 设定为 default 值(PC1-PC9) ,M18 - M40(除 M30\M34\M39) MFC 5s ramp 到 0。
|
||||||
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1to17);
|
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1toM17);
|
||||||
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
|
||||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18to40No303439, 5);
|
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18toM40No303439, 5);
|
||||||
|
|
||||||
//7、 关闭蝶阀, 再关闭 EPV2
|
//7、 关闭蝶阀, 再关闭 EPV2
|
||||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user