|
@@ -10,22 +10,24 @@ namespace Venus_RT.Modules.PMs
|
|
|
{
|
|
|
private enum PurgeStep
|
|
|
{
|
|
|
+ kStart,
|
|
|
kCloseValvesExceptN2Purge,
|
|
|
kPurgeVent,
|
|
|
kStopVent,
|
|
|
kCloseISOValve,
|
|
|
kSoftPump,
|
|
|
kFastPump,
|
|
|
- kOpenISOValve,
|
|
|
- kRoughPump,
|
|
|
kCloseFastPump,
|
|
|
- kPurgeDelay,
|
|
|
+ kOpenISOValve,
|
|
|
+ kOpenVATValve,
|
|
|
+ kOpenV8N2Purge,
|
|
|
+ kCloseVATValve,
|
|
|
kEnd,
|
|
|
}
|
|
|
|
|
|
public int PurgeCounter { get; private set; }
|
|
|
|
|
|
- private readonly int _forelinePressure = 200;
|
|
|
+ private readonly int _pumpingTargetPressure = 200;
|
|
|
private int _purgeVentPressure = 1000;
|
|
|
private int _roughPumpDownPressure = 75;
|
|
|
private int _purgePumpTime = 60;
|
|
@@ -51,7 +53,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
Reset();
|
|
|
|
|
|
- CloseValvesExceptN2Purge();
|
|
|
+ //CloseValvesExceptN2Purge();
|
|
|
|
|
|
PurgeCounter = 0;
|
|
|
return Runner.Start(Module, Name);
|
|
@@ -60,18 +62,19 @@ namespace Venus_RT.Modules.PMs
|
|
|
}
|
|
|
public RState Monitor()
|
|
|
{
|
|
|
- Runner.Delay((int)PurgeStep.kCloseValvesExceptN2Purge, _delay_1s)
|
|
|
- .LoopStart((int)PurgeStep.kPurgeVent, "Purge Cycle", _purgeCycleCount, OpenVentValves, () => { return _chamber.ChamberPressure >= _purgeVentPressure; })
|
|
|
- .LoopRun((int)PurgeStep.kStopVent, CloseVentValves, _delay_1s)
|
|
|
- .LoopRun((int)PurgeStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_1s)
|
|
|
+ Runner.Delay((int)PurgeStep.kStart, _delay_1s)
|
|
|
+ .LoopStart((int)PurgeStep.kCloseValvesExceptN2Purge, "Purge Cycle", _purgeCycleCount, CloseValvesExceptN2Purge, _delay_5s)
|
|
|
+ .LoopRun((int)PurgeStep.kPurgeVent, OpenVentValves, () => { return _chamber.ChamberPressure >= _purgeVentPressure; })
|
|
|
+ .LoopRun((int)PurgeStep.kStopVent, CloseVentValves, _delay_2s)
|
|
|
+ .LoopRun((int)PurgeStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
|
|
|
.LoopRun((int)PurgeStep.kSoftPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure <= _roughPumpDownPressure; })
|
|
|
- .LoopRun((int)PurgeStep.kFastPump, StartFastPump, () => { return _chamber.ForelinePressure <= _forelinePressure; })
|
|
|
- .LoopRun((int)PurgeStep.kOpenISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, true), _delay_1s)
|
|
|
- .LoopRun((int)PurgeStep.kRoughPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPurge, true), _purgePumpTime * 1000)
|
|
|
- .LoopEnd((int)PurgeStep.kCloseFastPump, CloseFastPump, _delay_1s)
|
|
|
- .Delay((int)PurgeStep.kPurgeDelay, _delay_1s)
|
|
|
- .End((int)PurgeStep.kEnd, FinalStep, _delay_1s);
|
|
|
-
|
|
|
+ .LoopRun((int)PurgeStep.kFastPump, StartFastPump, () => { return _chamber.ChamberPressure <= _pumpingTargetPressure; })
|
|
|
+ .LoopRun((int)PurgeStep.kCloseFastPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.FastPump, false), _delay_2s)
|
|
|
+ .LoopRun((int)PurgeStep.kOpenISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, true), _delay_2s)
|
|
|
+ .LoopRun((int)PurgeStep.kOpenVATValve, HOFs.Apply(_chamber.TurnPendulumValve, true), _delay_5s)
|
|
|
+ .LoopRun((int)PurgeStep.kOpenV8N2Purge, OpenV8N2Purge, (_purgePumpTime - 5) * 1000)
|
|
|
+ .LoopEnd((int)PurgeStep.kCloseVATValve, CloseVATValve, _delay_1s)
|
|
|
+ .End((int)PurgeStep.kEnd, NullFun, _delay_1s);
|
|
|
|
|
|
return Runner.Status;
|
|
|
}
|
|
@@ -81,7 +84,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
CloseAllValves();
|
|
|
}
|
|
|
|
|
|
- private void CloseValvesExceptN2Purge()
|
|
|
+ private bool CloseValvesExceptN2Purge()
|
|
|
{
|
|
|
_chamber.OpenValve(ValveType.Guage, false);
|
|
|
_chamber.OpenValve(ValveType.SoftPump, false);
|
|
@@ -91,17 +94,18 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
_chamber.OpenValve(ValveType.GasFinal, false);
|
|
|
_chamber.OpenValve(ValveType.N2, false);
|
|
|
- _chamber.OpenValve(ValveType.PVN22, false);
|
|
|
|
|
|
+ _chamber.OpenValve(ValveType.PVN22, true);
|
|
|
_chamber.OpenValve(ValveType.TurboPumpPumping, true);
|
|
|
_chamber.OpenValve(ValveType.TurboPumpPurge, true);
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
private bool OpenVentValves()
|
|
|
{
|
|
|
_chamber.OpenValve(ValveType.GasFinal, true);
|
|
|
_chamber.OpenValve(ValveType.N2, true);
|
|
|
- _chamber.OpenValve(ValveType.PVN22, true);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -111,7 +115,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
_chamber.OpenValve(ValveType.GasFinal, false);
|
|
|
_chamber.OpenValve(ValveType.N2, false);
|
|
|
_chamber.OpenValve(ValveType.PVN22, false);
|
|
|
- _chamber.OpenValve(ValveType.TurboPumpPurge, false);
|
|
|
+ //_chamber.OpenValve(ValveType.TurboPumpPurge, false);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -124,17 +128,17 @@ namespace Venus_RT.Modules.PMs
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- private bool FinalStep()
|
|
|
+ private bool OpenV8N2Purge()
|
|
|
{
|
|
|
_chamber.OpenValve(ValveType.Guage, true);
|
|
|
- _chamber.TurnPendulumValve(true);
|
|
|
+ _chamber.OpenValve(ValveType.TurboPumpPurge, true);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- private bool CloseFastPump()
|
|
|
+ private bool CloseVATValve()
|
|
|
{
|
|
|
- _chamber.OpenValve(ValveType.FastPump, false);
|
|
|
+ _chamber.TurnPendulumValve(false);
|
|
|
PurgeCounter++;
|
|
|
return true;
|
|
|
}
|