修改pmroutine
This commit is contained in:
parent
8653fc01b0
commit
84c34147d3
@ -19,7 +19,7 @@
|
||||
<Limit di="PM1.DI_PumpExhaustDPSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-40" />
|
||||
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41" />
|
||||
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42" />
|
||||
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55" />
|
||||
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"
|
||||
<Limit di="PM1.DI_GBH2SeDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-57" />
|
||||
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70" />
|
||||
<Limit di="PM1.DI_MainCBStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-76" />
|
||||
|
||||
@ -1130,18 +1130,8 @@ namespace SicModules.PMs
|
||||
private bool FsmStartExchangeMO(object[] param)
|
||||
{
|
||||
Result ret;
|
||||
if (SC.GetValue<bool>($"PM.IsExchangeMO{param[0]}Routine"))
|
||||
{
|
||||
string RoutineFileName = SC.GetStringValue($"PM.{Module}.ExchangeMO{param[0]}FileName");
|
||||
|
||||
_pMMacroRoutine.Init(RoutineFileName, RoutineType.ExchangeMORoutine);
|
||||
ret = StartRoutine(_pMMacroRoutine);
|
||||
}
|
||||
else
|
||||
{
|
||||
_changeMoRoutine.Init(param[0].ToString());
|
||||
ret = StartRoutine(_changeMoRoutine);
|
||||
}
|
||||
_changeMoRoutine.Init(param[0].ToString());
|
||||
ret = StartRoutine(_changeMoRoutine);
|
||||
|
||||
if (ret == Result.FAIL || ret == Result.DONE)
|
||||
return false;
|
||||
|
||||
@ -88,7 +88,7 @@ namespace SicModules.PMs
|
||||
M19toM33,
|
||||
M32toM38,
|
||||
M36,
|
||||
M28293140,
|
||||
M27M28293140,
|
||||
M18toM26,
|
||||
M19toM26,
|
||||
All,
|
||||
@ -1031,7 +1031,7 @@ namespace SicModules.PMs
|
||||
}
|
||||
else if (eGroupName == IoGroupName.Final2)
|
||||
{
|
||||
lst = new List<string>() { "V87", "V88", "V89", "V90", "V91", "V97" };
|
||||
lst = new List<string>() { "V87", "V88", "V89", "V90", "V91", "V92", "V97" };
|
||||
}
|
||||
else if (eGroupName == IoGroupName.GasIn1)
|
||||
{
|
||||
@ -1151,7 +1151,7 @@ namespace SicModules.PMs
|
||||
}
|
||||
else if (mGroupName == MfcGroupName.M1toM17)
|
||||
{
|
||||
lst = new List<int>() { 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17 };
|
||||
lst = new List<int>() { 1, 3, 4, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17 };
|
||||
}
|
||||
else if (mGroupName == MfcGroupName.M18toM40No303439)
|
||||
{
|
||||
@ -1209,9 +1209,9 @@ namespace SicModules.PMs
|
||||
{
|
||||
lst = new List<int>() { 27, 28, 29, 31, 33, 32, 35, 36, 37, 38, 40 };
|
||||
}
|
||||
else if (mGroupName == MfcGroupName.M28293140)
|
||||
else if (mGroupName == MfcGroupName.M27M28293140)
|
||||
{
|
||||
lst = new List<int>() { 28, 29, 31, 40 };
|
||||
lst = new List<int>() { 27 ,28, 29, 31, 40 };
|
||||
}
|
||||
else if (mGroupName == MfcGroupName.M19toM33)
|
||||
{
|
||||
|
||||
@ -1288,18 +1288,18 @@ namespace SicModules.PMs.Routines.Base
|
||||
int cIntLv = (int)level;
|
||||
if (cIntLv < 100)
|
||||
{
|
||||
Notify($"Set MFC28,29,31,40 to pressureLevel [20-100]");
|
||||
Notify($"Set MFC27,28,29,31,40 to pressureLevel [20-100]");
|
||||
}
|
||||
else if (cIntLv >= 950)
|
||||
{
|
||||
Notify($"Set MFC28,29,31,40 to pressureLevel [950]");
|
||||
Notify($"Set MFC27,28,29,31,40 to pressureLevel [950]");
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify($"Set MFC28,29,31,40 to pressureLevel [{cIntLv - 50},{cIntLv + 50})");
|
||||
Notify($"Set MFC27,28,29,31,40 to pressureLevel [{cIntLv - 50},{cIntLv + 50})");
|
||||
}
|
||||
_lastPressureLevel = level;
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M28293140, Convert.ToDouble((int)level));
|
||||
_pm.SetMfcRampByGroupAndPressure(MfcGroupName.M27M28293140, Convert.ToDouble((int)level));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1772,7 +1772,7 @@ namespace SicModules.PMs.Routines.Base
|
||||
},
|
||||
() =>
|
||||
{
|
||||
//SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
||||
SetMfcRampByGroupAndPressureAlways(currentPressureUpOrDown);
|
||||
return _IoThrottle.PressureFeedback >= pressure;
|
||||
},
|
||||
timeout * 1000);
|
||||
|
||||
@ -92,6 +92,8 @@ namespace SicModules.PMs.Routines
|
||||
SetV75,
|
||||
SetTVto300,
|
||||
|
||||
SetMfcFinal2gongyi,
|
||||
|
||||
CheckPM1000,
|
||||
SetMfc28to40Special,
|
||||
WaitPressUpTo1000,
|
||||
@ -181,19 +183,25 @@ namespace SicModules.PMs.Routines
|
||||
WaitPressUpTo950,
|
||||
|
||||
FirstWaitPressureUp,
|
||||
FirstSetDefault_M18toM40,
|
||||
FirstSetDefault_M18toM40, FirstSetTvPositionToZero, FirstSetEPV2, FirstSetTVEnable_1, FirstSetTVPressMode,
|
||||
FirstSetTVCloseMode,
|
||||
FirstSet0_M18toM40,
|
||||
FirstSetEPV2_1,
|
||||
FirstSetEPV2_2,
|
||||
FirstSetTv1,
|
||||
FirstWaitTv1,
|
||||
|
||||
LoopSetDefault_M18toM40,
|
||||
LoopSetEPV2_1,
|
||||
LoopSetTVCloseMode,
|
||||
LoopSetTvPositionToZero,
|
||||
LoopSetEPV2,
|
||||
LoopWaitPressureUp,
|
||||
LoopSetEPV2_2,
|
||||
LoopSetTv1,
|
||||
LoopSet0_M18toM40,
|
||||
Loop2Set0_M18toM40,
|
||||
LoopSetTVEnable_1,
|
||||
LoopSetTVPressMode,
|
||||
LoopWaitTv1,
|
||||
|
||||
FinishSetM1toM17,
|
||||
@ -348,6 +356,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//10、 M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值 ;
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2gongyi, MfcGroupName.M18toM26, 3);
|
||||
|
||||
//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);
|
||||
@ -362,41 +371,64 @@ namespace SicModules.PMs.Routines
|
||||
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) ;
|
||||
//蝶阀改为压力模式
|
||||
//关闭蝶阀, 再关闭 EPV2,等待 950,打开 V94(RotationUpPurge.Final)、 等待 3S,打开 V96(HeaterWF.Final) ;
|
||||
//打开蝶阀,打开EPV2,蝶阀改为压力模式
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
WaitChamberPressUpTo((int)RoutineStep.WaitPressUpTo950, 950, 600);
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 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);
|
||||
//SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode1, _IoThrottle, 5);
|
||||
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||
//关闭蝶阀, 再关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2,打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||
//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);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToCloseMode((int)RoutineStep.FirstSetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.FirstSetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2, 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);
|
||||
|
||||
SetThrottleEnableAndWait((int)RoutineStep.FirstSetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.FirstSetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.FirstSetTv1, _IoThrottle, _pressureMin);
|
||||
|
||||
SetMfcByGroup((int)RoutineStep.FirstSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
WaitChamberPressDownTo((int)RoutineStep.FirstWaitTv1, _pressureMin, _pumpTimeout);
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||
//关闭蝶阀, 再关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||
//伺服压力到设定值 0(可配置)
|
||||
//M18 - M40(除 M30\M34\M39)) MFC5s ramp 到 0。
|
||||
//打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||
//等待压力到达 0(可配置)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToCloseMode((int)RoutineStep.LoopSetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.LoopSetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.LoopWaitPressureUp, _IoThrottle, _pressureMax, _ventTimeout);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetMfcByGroup((int)RoutineStep.LoopSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
|
||||
SetThrottleEnableAndWait((int)RoutineStep.LoopSetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.LoopSetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pressureMin);
|
||||
SetMfcByGroup((int)RoutineStep.Loop2Set0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
|
||||
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pressureMin, _pumpTimeout);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
@ -129,7 +129,7 @@ namespace SicModules.PMs.Routines
|
||||
_lstGroup2 = new List<string>() { "V50", "V50s" };
|
||||
_lstGroup3 = new List<string>() { "V48", "V48s" };
|
||||
break;
|
||||
case "WCO6":
|
||||
case "W(CO)6":
|
||||
mfc1 = 7;
|
||||
mfc2 = 8;
|
||||
pc = 2;
|
||||
@ -138,7 +138,7 @@ namespace SicModules.PMs.Routines
|
||||
_lstGroup2 = new List<string>() { "V46", "V46s" };
|
||||
_lstGroup3 = new List<string>() { "V43", "V43s" };
|
||||
break;
|
||||
case "MORE":
|
||||
case "MOReserved":
|
||||
mfc1 = 16;
|
||||
mfc2 = 17;
|
||||
pc = 9;
|
||||
@ -147,7 +147,7 @@ namespace SicModules.PMs.Routines
|
||||
_lstGroup2 = new List<string>() { "V23", "V23s" };
|
||||
_lstGroup3 = new List<string>() { "V21", "V21s" };
|
||||
break;
|
||||
case "MOCO6":
|
||||
case "MO(CO)6":
|
||||
mfc1 = 9;
|
||||
mfc2 = 10;
|
||||
pc = 8;
|
||||
|
||||
@ -192,7 +192,8 @@ namespace SicModules.PMs.Routines
|
||||
LoopSetTv1,
|
||||
LoopSet0M18toM40,
|
||||
LoopSetM18Default,
|
||||
LoopWaitTv1
|
||||
LoopWaitTv1,
|
||||
LoopSetDefault_M18toM40, LoopSetTVCloseMode, LoopSetTvPositionToZero, LoopSetEPV2, LoopWaitPressureUp, LoopSetEPV2_2, LoopSet0_M18toM40, LoopSetTVEnable_1, LoopSetTVPressMode
|
||||
}
|
||||
|
||||
enum LeakCheckType
|
||||
@ -356,22 +357,37 @@ namespace SicModules.PMs.Routines
|
||||
TimeDelay((int)RoutineStep.TimeDelay11, 3);
|
||||
SetThrottleSetPosition((int)RoutineStep.SetTVPositionMax, _IoThrottle, 100, _throttleTimeout);
|
||||
TimeDelay((int)RoutineStep.TimeDelay9, 3);
|
||||
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
//蝶阀改为压力模式
|
||||
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||
//压力 servo 到 300(可配置)
|
||||
//压力达到后, M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||
//关闭蝶阀, 再关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||
//打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||
//等待压力到达 0(可配置)
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.LoopSetTVPressMode1, _IoThrottle, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetM18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToCloseMode((int)RoutineStep.LoopSetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.LoopSetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.LoopWaitPressureUp, _IoThrottle, _pressureMax, _pressureMaxTimeout);
|
||||
|
||||
SetIoValueByGroup((int)RoutineStep.LoopSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
SetMfcByGroup((int)RoutineStep.LoopSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
|
||||
SetThrottleEnableAndWait((int)RoutineStep.LoopSetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.LoopSetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pressureMin);
|
||||
SetMfcByGroup((int)RoutineStep.LoopSet0M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetM18Default, MfcGroupName.M18, 3);
|
||||
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pressureMin, _pressureMinTimeout);
|
||||
|
||||
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pressureMin, _pressureMinTimeout);
|
||||
|
||||
EndLoop((int)RoutineStep.EndLoop);
|
||||
|
||||
|
||||
//11、 依次关闭 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);
|
||||
|
||||
@ -67,6 +67,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
SetEPV1,
|
||||
SetEPV2,
|
||||
SetEPV2_1,
|
||||
SetTvMode,
|
||||
|
||||
SetTVEnable_1,
|
||||
@ -115,6 +116,12 @@ namespace SicModules.PMs.Routines
|
||||
FirstSetEPV2_1,
|
||||
FirstSetEPV2_2,
|
||||
FirstSetTv1,
|
||||
FirstSetTVCloseMode,
|
||||
FirstSetTvPositionToZero,
|
||||
FirstSetEPV2,
|
||||
FirstSetTVEnable_1,
|
||||
FirstSetTVPressMode,
|
||||
FirstWaitTv1,
|
||||
|
||||
SetEPV2_3,
|
||||
CLoseEPV1,
|
||||
@ -227,7 +234,13 @@ namespace SicModules.PMs.Routines
|
||||
FinishCLoseTV2,
|
||||
FinishSetEPV2_3,
|
||||
FinishWaitPressUpTo1020,
|
||||
FinishSet0_M2M9M15M19_M26
|
||||
FinishSet0_M2M9M15M19_M26,
|
||||
LoopSetTVCloseMode,
|
||||
LoopSetTvPositionToZero,
|
||||
LoopSetTVEnable_1,
|
||||
LoopSetTVPressMode,
|
||||
|
||||
SetMfcFinal2gongyi
|
||||
}
|
||||
|
||||
private ModuleName moduleName;
|
||||
@ -372,6 +385,7 @@ namespace SicModules.PMs.Routines
|
||||
|
||||
//10、 M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值 ;
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2gongyi, MfcGroupName.M18toM26, 3);
|
||||
|
||||
//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);
|
||||
@ -384,42 +398,66 @@ namespace SicModules.PMs.Routines
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 1);
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 1);
|
||||
|
||||
|
||||
//14、打开 V92(GasRingPurge.Final)、 V93(ChamberPurge.Final)、 V95(ConfinementRing.Final);
|
||||
//等待 950,打开 V94(RotationUpPurge.Final)、 等待 3S,打开 V96(HeaterWF.Final) ;
|
||||
//蝶阀改为压力模式
|
||||
//关闭蝶阀, 再关闭 EPV2,等待 950,打开 V94(RotationUpPurge.Final)、 等待 3S,打开 V96(HeaterWF.Final) ;
|
||||
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
|
||||
WaitChamberPressUpTo((int)RoutineStep.WaitPressUpTo950, 950, _waitPressureTimeout);
|
||||
|
||||
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.SetEPV2_1, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 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, _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);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||
//关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2;
|
||||
//关闭蝶阀, 再关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2,打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||
//伺服压力到设定值 0(可配置)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.FirstSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetThrottleToCloseMode((int)RoutineStep.FirstSetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.FirstSetTvPositionToZero, _IoThrottle, 8);
|
||||
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.FirstWaitPressureUp, _IoThrottle, _ventBasePressure, _ventTimeout);
|
||||
SetIoValueByGroup((int)RoutineStep.FirstSetEPV2_2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
|
||||
|
||||
|
||||
SetThrottleEnableAndWait((int)RoutineStep.FirstSetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.FirstSetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.FirstSetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
SetMfcByGroup((int)RoutineStep.FirstSet0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
|
||||
WaitChamberPressDownTo((int)RoutineStep.FirstWaitTv1, _pumpBasePressure, _pumpTimeout);
|
||||
|
||||
//循环开始
|
||||
Loop((int)RoutineStep.StartLoop, _pressureLoopCount);
|
||||
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 3s ramp 到 default 值。
|
||||
//关闭蝶阀, 再关闭 EPV2,等待压力达到设定值,压力达到后,打开 EPV2
|
||||
//M18 - M40(除 M30\M34\M39)) MFC 5s ramp 到 0。
|
||||
//打开 TV enable, 压力模式,伺服压力默认设定为 0mbar;
|
||||
//M18 - M40(除 M30\M34\M39)) MFC5s ramp 到 0。
|
||||
//等待压力到达 0(可配置)
|
||||
SetMfcToDefaultByGroup((int)RoutineStep.LoopSetDefault_M18toM40, MfcGroupName.M18toM40No303439, 3);
|
||||
|
||||
SetThrottleToCloseMode((int)RoutineStep.LoopSetTVCloseMode, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.LoopSetTvPositionToZero, _IoThrottle, 8);
|
||||
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);
|
||||
|
||||
SetThrottleEnableAndWait((int)RoutineStep.LoopSetTVEnable_1, _IoThrottle, 5);
|
||||
SetThrottleToPressModeAndWait((int)RoutineStep.LoopSetTVPressMode, _IoThrottle, 5);
|
||||
SetThrottleToTargetAndNoWait((int)RoutineStep.LoopSetTv1, _IoThrottle, _pumpBasePressure);
|
||||
|
||||
SetMfcByGroup((int)RoutineStep.Loop2Set0_M18toM40, MfcGroupName.M18toM40No303439, 0, 5);
|
||||
WaitChamberPressDownTo((int)RoutineStep.LoopWaitTv1, _pumpBasePressure, _pumpTimeout);
|
||||
|
||||
@ -432,9 +470,11 @@ namespace SicModules.PMs.Routines
|
||||
SetThrottleToCloseMode((int)RoutineStep.FinishSetTVCloseMode2, _IoThrottle, 8);
|
||||
SetThrottleDisable((int)RoutineStep.FinishCLoseTV2, _IoThrottle, 8);
|
||||
TimeDelay((int)RoutineStep.TimeDelay10, 1);
|
||||
|
||||
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown2, PressureUpOrDown.Uping);
|
||||
SetIoValueByGroup((int)RoutineStep.FinishSetEPV2_3, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
|
||||
NotifyInfo((int)RoutineStep.Notify1, $"Wait pm pressure to 1020 mbar!");
|
||||
WaitChamberPressUpTo((int)RoutineStep.FinishWaitPressUpTo1020, 1020, _waitPressureTimeout);
|
||||
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.FinishWaitPressUpTo1020, _IoThrottle, 1200, _ventTimeout);
|
||||
SetMfcByGroup((int)RoutineStep.FinishSet0_M2M9M15M19_M26, MfcGroupName.M2M9M15M19_M26, 0, 3);
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
|
||||
@ -611,7 +611,7 @@
|
||||
<config default="0" name="ThrottlePositionDefaultValue" description="蝶阀位置模式默认值" max="100" min="0" paramter="" tag="" unit="s" type="Double" />
|
||||
<config default="1100" name="ThrottlePressureDefaultValue" description="蝶阀压力模式默认值" max="1500" min="0" paramter="" tag="" unit="s" type="Double" />
|
||||
<config default="400" name="ThrottlePositionModeMaxPressure" description="蝶阀允许位置模式需要的最大压力值" max="1100" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="1000*10,3000*10,3000*10,4000*10,6000*10,8000*10,10000*10,12000*10,14000*10,2500*10" name="MFC27DynamicFlow" description="MFC27 动态流量" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="4000*10,7000*10,11000*10,13000*10,16000*10,19000*10,23000*10,28000*10,34000*10,11000*10" name="MFC27DynamicFlow" description="MFC27 动态流量" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="1000*10,3000*10,3000*10,4000*10,6000*10,8000*10,10000*10,12000*10,14000*10,2500*10" name="MFC28DynamicFlow" description="MFC28 动态流量" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="500*10,2000*10,2500*10,3500*10,5500*10,7500*10,9500*10,11500*10,13000*10,2000*10" name="MFC29DynamicFlow" description="MFC29 动态流量" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="1000*10,3000*10,5000*10,6000*10,8000*10,10000*10,12000*10,14000*10,16000*10,4000*10" name="MFC31DynamicFlow" description="MFC31 动态流量" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
|
||||
47
App/SicUI/Models/PMs/ExchangeMoSelectDialogView.xaml
Normal file
47
App/SicUI/Models/PMs/ExchangeMoSelectDialogView.xaml
Normal file
@ -0,0 +1,47 @@
|
||||
<UserControl x:Class="SicUI.Models.PMs.ExchangeMoSelectDialogView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:cal="http://www.caliburn.org"
|
||||
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
mc:Ignorable="d"
|
||||
Width="350"
|
||||
Height="200">
|
||||
<UserControl.Resources>
|
||||
|
||||
</UserControl.Resources>
|
||||
<Border BorderBrush="Gray" BorderThickness="0,1,0,0" Background="{DynamicResource Tab_BG}">
|
||||
<Grid Margin="20,30">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Content_Highlight}">
|
||||
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBlock VerticalAlignment="Center" FontFamily="Arial" Margin="10 0" FontSize="12" Foreground="{DynamicResource FG_Black}" Text="Select MO:" TextWrapping="Wrap" />
|
||||
<ComboBox Width="150" Height="25" Margin="10 0" ItemsSource="{Binding MoList}" SelectedIndex="0" SelectedItem="{Binding SelectedMO}"/>
|
||||
</StackPanel>
|
||||
|
||||
</Border>
|
||||
<StackPanel Grid.Row="1" Margin="0,10,0,0" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Content="OK" Width="90" Height="30">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="OK">
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Content="Cancel" Margin="10,0,0,0" Width="90" Height="30">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Cancel">
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
59
App/SicUI/Models/PMs/ExchangeMoSelectDialogView.xaml.cs
Normal file
59
App/SicUI/Models/PMs/ExchangeMoSelectDialogView.xaml.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using MECF.Framework.Common.DataCenter;
|
||||
using OpenSEMI.ClientBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace SicUI.Models.PMs
|
||||
{
|
||||
/// <summary>
|
||||
/// ExchangeMoSelectDialogView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ExchangeMoSelectDialogView : UserControl
|
||||
{
|
||||
public ExchangeMoSelectDialogView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
|
||||
public class ExchangeMoSelectDialogViewModel : DialogViewModel<string>
|
||||
{
|
||||
|
||||
public ExchangeMoSelectDialogViewModel()
|
||||
{
|
||||
MoList = new List<string>() { "CS2", "W(CO)6", "MOReserved", "MO(CO)6" };
|
||||
}
|
||||
|
||||
public void OK()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(SelectedMO))
|
||||
{
|
||||
this.DialogResult = SelectedMO;
|
||||
IsCancel = false;
|
||||
TryClose(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
{
|
||||
IsCancel = true;
|
||||
TryClose(false);
|
||||
}
|
||||
|
||||
public List<string> MoList { get; set; }
|
||||
public string SelectedMO { get; set; }
|
||||
}
|
||||
}
|
||||
@ -125,7 +125,7 @@ namespace SicUI.Models.PMs
|
||||
}
|
||||
|
||||
|
||||
private List<string> _MFCGroup = new List<string>() { "MFC28", "MFC29", "MFC31","MFC40" };
|
||||
private List<string> _MFCGroup = new List<string>() { "MFC27", "MFC28", "MFC29", "MFC31","MFC40" };
|
||||
public List<string> MFCGroup
|
||||
{
|
||||
get { return _MFCGroup; }
|
||||
|
||||
@ -647,11 +647,10 @@
|
||||
Margin="5"
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
x:Name="ID_BTN_Exchange_TCS_Content"
|
||||
Width="100"
|
||||
Height="30"
|
||||
Padding="0"
|
||||
Content="{lex:Loc}"
|
||||
Content="ExchangeMo"
|
||||
FontFamily="微软雅黑"
|
||||
FontSize="12"
|
||||
FontStretch="Normal"
|
||||
@ -661,7 +660,7 @@
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="PMOperation">
|
||||
<cal:Parameter Value="ExchangeMOTCS" />
|
||||
<cal:Parameter Value="MOExchange" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
|
||||
@ -1514,22 +1514,27 @@ namespace SicUI.Models.PMs
|
||||
InvokeClient.Instance.Service.DoOperation($"{Module}.{strPMOP}");
|
||||
return;
|
||||
}
|
||||
|
||||
//去除strPMOP中To关键字
|
||||
string strCleanTo = strPMOP.Replace("To", "");
|
||||
var selection = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM, $"Are you sure perform the operation {strCleanTo}");
|
||||
if (selection == DialogButton.Yes)
|
||||
if (strPMOP.Contains("MOExchange"))
|
||||
{
|
||||
if (strPMOP.Contains("ExchangeMO"))
|
||||
var vm = new ExchangeMoSelectDialogViewModel();
|
||||
var _windowmanager = new WindowManager();
|
||||
_windowmanager.ShowDialog(vm);
|
||||
if (!vm.IsCancel)
|
||||
{
|
||||
string strMOType = strPMOP.Replace("ExchangeMO", "");
|
||||
InvokeClient.Instance.Service.DoOperation($"{Module}.ExchangeMO", $"{strMOType}");
|
||||
InvokeClient.Instance.Service.DoOperation($"{Module}.ExchangeMO", vm.DialogResult);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
//去除strPMOP中To关键字
|
||||
string strCleanTo = strPMOP.Replace("To", "");
|
||||
var selection = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM, $"Are you sure perform the operation {strCleanTo}");
|
||||
if (selection == DialogButton.Yes)
|
||||
{
|
||||
InvokeClient.Instance.Service.DoOperation($"{Module}.{strPMOP}");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -340,6 +340,9 @@
|
||||
<Compile Include="Models\PMs\ContinueSelectDialogView.xaml.cs">
|
||||
<DependentUpon>ContinueSelectDialogView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\PMs\ExchangeMoSelectDialogView.xaml.cs">
|
||||
<DependentUpon>ExchangeMoSelectDialogView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\PMs\PMAlarmView.xaml.cs">
|
||||
<DependentUpon>PMAlarmView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@ -578,6 +581,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Models\PMs\ExchangeMoSelectDialogView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Models\PMs\PMAlarmView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user