|
@@ -9,6 +9,7 @@ using Aitex.Core.RT.SCCore;
|
|
|
using System.Reflection;
|
|
|
using System.Diagnostics;
|
|
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot;
|
|
|
+using Aitex.Core.Common.DeviceData;
|
|
|
//#pragma warning disable 0436
|
|
|
|
|
|
namespace Venus_RT.Modules.PMs
|
|
@@ -31,50 +32,56 @@ namespace Venus_RT.Modules.PMs
|
|
|
private List<float> biasRfMatchC2 = new List<float>();
|
|
|
private int biasRfMatchC1C2Index = 0;
|
|
|
|
|
|
+ public bool isLoop = false;
|
|
|
+ public int loopsteps = 0;
|
|
|
+ public int currentStepIndex = 0;
|
|
|
+
|
|
|
+ //private int cycleIndex = 0;
|
|
|
+ private bool biasRFSetPointFlag = true;
|
|
|
public ProcessHelper(JetPMBase pm)
|
|
|
{
|
|
|
Chamber = pm;
|
|
|
- Module = pm.Module.ToString() ;
|
|
|
+ Module = pm.Module.ToString();
|
|
|
Init();
|
|
|
}
|
|
|
|
|
|
private void Init()
|
|
|
{
|
|
|
- startHelper [$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.PressureByPressureModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByPressureModeUnit_End(unit, step);
|
|
|
|
|
|
//startHelper [$"{Module}.PressureByValveModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByValveModeUnit_Start(unit, step);
|
|
|
//checkerHelper [$"{Module}.PressureByValveModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByValveModeUnit_Check(unit, step);
|
|
|
//endHelper [$"{Module}.PressureByValveModeUnit"] = (ProcessUnitBase unit, RecipeStep step) => PressureByValveModeUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.TCPUnit"] = (ProcessUnitBase unit, RecipeStep step) => TCPUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.BiasUnit"] = (ProcessUnitBase unit, RecipeStep step) => BiasUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => GasControlUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.ESCHVUnit"] = (ProcessUnitBase unit, RecipeStep step) => ESCHVUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.ProcessKitUnit"] = (ProcessUnitBase unit, RecipeStep step) => ProcessKitUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.Kepler2200GasControlUnit"] = (ProcessUnitBase unit, RecipeStep step) => Kepler2200GasControlUnit_End(unit, step);
|
|
|
|
|
|
- startHelper [$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_Start(unit, step);
|
|
|
- checkerHelper [$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_Check(unit, step);
|
|
|
- endHelper [$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_End(unit, step);
|
|
|
+ startHelper[$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_Start(unit, step);
|
|
|
+ checkerHelper[$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_Check(unit, step);
|
|
|
+ endHelper[$"{Module}.HeaterUnit"] = (ProcessUnitBase unit, RecipeStep step) => HeaterUnit_End(unit, step);
|
|
|
}
|
|
|
|
|
|
private RState PressureByPressureModeUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
@@ -91,21 +98,21 @@ namespace Venus_RT.Modules.PMs
|
|
|
else if (ProcessUnit.PressureUnitMode == PressureUnitMode.Valve)
|
|
|
{
|
|
|
if (Chamber.SetPVPostion(ProcessUnit.StartValue))
|
|
|
- {
|
|
|
+ {
|
|
|
return RState.Running;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
return RState.Failed;
|
|
|
}
|
|
|
|
|
|
private RState PressureByPressureModeUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
var ProcessUnit = unit as PressureByPressureModeUnit;
|
|
|
- if(ProcessUnit.EnableRamp)
|
|
|
+ if (ProcessUnit.EnableRamp)
|
|
|
{
|
|
|
if (ProcessUnit.PressureUnitMode == PressureUnitMode.Pressure)
|
|
|
{
|
|
|
- if (Chamber.SetPVPressure(ProcessUnit.StartValue+ (int)((ProcessUnit.TargetValue - ProcessUnit.StartValue) * step.RampFactor())))
|
|
|
+ if (Chamber.SetPVPressure(ProcessUnit.StartValue + (int)((ProcessUnit.TargetValue - ProcessUnit.StartValue) * step.RampFactor())))
|
|
|
return RState.Running;
|
|
|
else
|
|
|
return RState.Failed;
|
|
@@ -126,15 +133,15 @@ namespace Venus_RT.Modules.PMs
|
|
|
return RState.End;
|
|
|
}
|
|
|
}
|
|
|
- else if (ProcessUnit.PressureUnitMode == PressureUnitMode.Valve )
|
|
|
+ else if (ProcessUnit.PressureUnitMode == PressureUnitMode.Valve)
|
|
|
{
|
|
|
- if (step.Type == StepType.Stable && Chamber.GetPVPosition() == ProcessUnit.StartValue)
|
|
|
+ if (step.Type == StepType.Stable && Chamber.GetPVPosition() == ProcessUnit.StartValue)
|
|
|
{
|
|
|
return RState.End;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
return RState.Running;
|
|
|
}
|
|
@@ -196,7 +203,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
p1 = ProcessUnit.TuneCapPreset;
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
+ {
|
|
|
p1 = ProcessUnit.AutoTuneCapPreset;
|
|
|
}
|
|
|
if (ProcessUnit.LoadCapPreset > 0)
|
|
@@ -216,9 +223,9 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private RState TCPUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
- var _scPowerAlarmTime= SC.GetValue<double>($"{Chamber.Name}.Rf.PowerAlarmTime");
|
|
|
+ var _scPowerAlarmTime = SC.GetValue<double>($"{Chamber.Name}.Rf.PowerAlarmTime");
|
|
|
var ProcessUnit = unit as TCPUnit;
|
|
|
- if(ProcessUnit.MaxReflectedPower > 0 && Chamber.ReflectPower > ProcessUnit.MaxReflectedPower && step.ElapsedTime() > _scPowerAlarmTime*1000)
|
|
|
+ if (ProcessUnit.MaxReflectedPower > 0 && Chamber.ReflectPower > ProcessUnit.MaxReflectedPower && step.ElapsedTime() > _scPowerAlarmTime * 1000)
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_PROCESS, Chamber.Module, $"Step:{step.StepNo} failed, RF Reflect Power:{Chamber.ReflectPower} exceeds the Max Limit:{ProcessUnit.MaxReflectedPower}");
|
|
|
return RState.Failed;
|
|
@@ -238,20 +245,20 @@ namespace Venus_RT.Modules.PMs
|
|
|
}
|
|
|
|
|
|
|
|
|
- return RState.Running;
|
|
|
+ return RState.Running;
|
|
|
}
|
|
|
|
|
|
private void TCPUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
var ProcessUnit = unit as TCPUnit;
|
|
|
- if (rfMatchC1.Count >=6)
|
|
|
+ if (rfMatchC1.Count >= 6)
|
|
|
{
|
|
|
float allValue = 0;
|
|
|
for (int i = 4; i < rfMatchC1.Count; i++)
|
|
|
{
|
|
|
allValue += rfMatchC1[i];
|
|
|
}
|
|
|
- var average=allValue/ (rfMatchC1.Count-4);
|
|
|
+ var average = allValue / (rfMatchC1.Count - 4);
|
|
|
ProcessUnit.AutoTuneCapPreset = (int)average;
|
|
|
}
|
|
|
if (rfMatchC2.Count >= 6)
|
|
@@ -275,8 +282,11 @@ namespace Venus_RT.Modules.PMs
|
|
|
var ProcessUnit = unit as BiasUnit;
|
|
|
if (ProcessUnit.BiasRFPower > 5)
|
|
|
{
|
|
|
- Chamber.GeneratorBiasSetpower(ProcessUnit.BiasRFPower);
|
|
|
Chamber.GeneratorBiasPowerOn(true);
|
|
|
+ if ((ProcessUnit.EnableRamp == false))
|
|
|
+ {
|
|
|
+ Chamber.GeneratorBiasSetpower(ProcessUnit.BiasRFPower);
|
|
|
+ }
|
|
|
}
|
|
|
int p1;
|
|
|
int p2;
|
|
@@ -297,7 +307,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
p2 = ProcessUnit.AutoBiasLoadCapPreset;
|
|
|
}
|
|
|
Chamber.SetBiasMatchPosition(p1, p2);
|
|
|
- if(ProcessUnit.BiasGeneratorMode == GeneratorMode.Pulsing)
|
|
|
+ if (ProcessUnit.BiasGeneratorMode == GeneratorMode.Pulsing)
|
|
|
{
|
|
|
Chamber.SetBiasPulseMode(true);
|
|
|
Chamber.SetBiasPulseRateFreq(ProcessUnit.PulseRateFreq);
|
|
@@ -331,6 +341,30 @@ namespace Venus_RT.Modules.PMs
|
|
|
biasRfMatchC2.Add(Chamber.BiasRFMatchC2);
|
|
|
biasRfMatchC1C2Index += 1;
|
|
|
}
|
|
|
+ if (ProcessUnit.EnableRamp)
|
|
|
+ {
|
|
|
+ //if (step.ElapsedTime() <= 500*cycleIndex)
|
|
|
+ //{
|
|
|
+ // return RState.Running;
|
|
|
+ //}
|
|
|
+ //cycleIndex += 1;
|
|
|
+ if (ProcessUnit.TargetMode == TargetMode.Cycle)
|
|
|
+ {
|
|
|
+ if (currentStepIndex == 0 && biasRFSetPointFlag==true)
|
|
|
+ {
|
|
|
+ biasRFSetPointFlag = false;
|
|
|
+ Chamber.GeneratorBiasSetpower((float)((ProcessUnit.BiasRFPower + (float)((ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower) / (loopsteps - 1) * currentStepIndex))));
|
|
|
+ }
|
|
|
+ //float rampFactor = (float)currentStepIndex / (float)(loopsteps-1);
|
|
|
+ //double rampFactor = step.RampFactor();
|
|
|
+ //Chamber.GeneratorBiasSetpower((float)((ProcessUnit.BiasRFPower+ (ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower)/(loopsteps)*currentStepIndex) + ((double)(ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower) / ((double)loopsteps)) * rampFactor));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //double rampFactor = step.RampFactor();
|
|
|
+ //Chamber.GeneratorBiasSetpower((float)(ProcessUnit.BiasRFPower + (ProcessUnit.TargetBiasRFPower - ProcessUnit.BiasRFPower) * rampFactor));
|
|
|
+ }
|
|
|
+ }
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
@@ -362,6 +396,8 @@ namespace Venus_RT.Modules.PMs
|
|
|
biasRfMatchC1.Clear();
|
|
|
biasRfMatchC1.Clear();
|
|
|
biasRfMatchC1C2Index = 0;
|
|
|
+ //cycleIndex = 0;
|
|
|
+ biasRFSetPointFlag = true;
|
|
|
}
|
|
|
|
|
|
private RState GasControlUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
@@ -381,7 +417,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
Chamber.FlowGas(2, ProcessUnit.Gas3);
|
|
|
if (ProcessUnit.Gas3 >= 1)
|
|
|
{
|
|
|
- Chamber.OpenValve(ValveType.PV31,true);
|
|
|
+ Chamber.OpenValve(ValveType.PV31, true);
|
|
|
}
|
|
|
Chamber.FlowGas(3, ProcessUnit.Gas4);
|
|
|
if (ProcessUnit.Gas4 >= 1)
|
|
@@ -398,7 +434,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
private RState GasControlUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
var ProcessUnit = unit as GasControlUnit;
|
|
|
- if(ProcessUnit.EnableRamp)
|
|
|
+ if (ProcessUnit.EnableRamp)
|
|
|
{
|
|
|
double rampFactor = step.RampFactor();
|
|
|
Chamber.FlowGas(0, ProcessUnit.Gas1 + (ProcessUnit.Gas1Target - ProcessUnit.Gas1) * rampFactor);
|
|
@@ -428,7 +464,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
private RState ESCHVUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
var ProcessUnit = unit as ESCHVUnit;
|
|
|
-
|
|
|
+
|
|
|
Chamber.SetESCClampVoltage(ProcessUnit.ESCClampValtage);
|
|
|
|
|
|
Chamber.SetBacksideHePressure(ProcessUnit.BacksideHelum);
|
|
@@ -438,7 +474,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private RState ESCHVUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
- if(Chamber.BackSideHeOutOfRange)
|
|
|
+ if (Chamber.BackSideHeOutOfRange)
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_PROCESS, Chamber.Module, $"Step:{step.StepNo} failed, Backside Helium out of range.");
|
|
|
return RState.Failed;
|
|
@@ -516,7 +552,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
}
|
|
|
|
|
|
private RState HeaterUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
- {
|
|
|
+ {
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
@@ -527,12 +563,12 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private void HeaterUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
public bool LoadMethods(ProcessUnitBase unit)
|
|
|
{
|
|
|
var className = $"{Module}.{unit.GetType().Name}";
|
|
|
- if(startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className) && endHelper.ContainsKey(className))
|
|
|
+ if (startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className) && endHelper.ContainsKey(className))
|
|
|
{
|
|
|
unit.starter = startHelper[className];
|
|
|
unit.checker = checkerHelper[className];
|
|
@@ -543,6 +579,12 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
+ //public void loopStep(bool isloop,int loopCount,int loopIndex)
|
|
|
+ //{
|
|
|
+ // isLoop = isloop;
|
|
|
+ // loopsteps=loopCount;
|
|
|
+ // currentStepIndex = loopIndex;
|
|
|
+ //}
|
|
|
|
|
|
private RState stepStarter(RecipeStep step)
|
|
|
{
|
|
@@ -558,7 +600,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private RState stepChecker(RecipeStep step)
|
|
|
{
|
|
|
- switch(step.Type)
|
|
|
+ switch (step.Type)
|
|
|
{
|
|
|
case StepType.Time:
|
|
|
return step.ElapsedTime() >= step.Time * 1000 ? RState.End : RState.Running;
|
|
@@ -571,8 +613,9 @@ namespace Venus_RT.Modules.PMs
|
|
|
return RState.End;
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
return Chamber.EPDCaptured ? RState.End : RState.Running;
|
|
|
-
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return RState.Running;
|
|
@@ -580,17 +623,10 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private RState stepEnder(RecipeStep step)
|
|
|
{
|
|
|
- if(step.Type == StepType.EndPoint)
|
|
|
+ if (step.Type == StepType.EndPoint)
|
|
|
{
|
|
|
Chamber.EPDStepStop();
|
|
|
}
|
|
|
-
|
|
|
- //Chamber.GeneratorBiasPowerOn(false);
|
|
|
- //Chamber.GeneratorPowerOn(false);
|
|
|
- //Chamber.TurnPendulumValve(false);
|
|
|
- //Chamber.CloseValves();
|
|
|
- //Chamber.OpenValve(ValveType.TurboPumpPumping, true);
|
|
|
- //Chamber.OpenValve(ValveType.TurboPumpPurge, true);
|
|
|
return RState.End;
|
|
|
}
|
|
|
|