| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
							- using Aitex.Core.RT.Routine;
 
- using Aitex.Core.RT.SCCore;
 
- using Venus_RT.Devices;
 
- using MECF.Framework.Common.Routine;
 
- using Venus_Core;
 
- namespace Venus_RT.Modules.PMs
 
- {
 
-     class PMGaslinePurgeRoutine : PMRoutineBase, IRoutine
 
-     {
 
-         private enum GaslinePurgeStep
 
-         {
 
-             kPreTurnValves,
 
-             kOpenPVN21_PV12_1,
 
-             kFlowMFC1_2,
 
-             kClosePV12_3,
 
-             kOpenPV22_4,
 
-             kFlowMFC2_5,
 
-             kClosePV22_6,
 
-             kOpenPV32_7,
 
-             kFlowMFC3_8,
 
-             kClosePV32_9,
 
-             kOpenPV42_10,
 
-             kFlowMFC4_11,
 
-             kClosePV42_12,
 
-             kClosePVN21_13,
 
-             kOpenMFC1_14,
 
-             kCloseMFC1_15,
 
-             kOpenMFC2_16,
 
-             kCloseMFC2_17,
 
-             kOpenMFC3_18,
 
-             kCloseMFC3_19,
 
-             kOpenMFC4_20,
 
-             kCloseMFC4_21,
 
-             kEnd,
 
-         }
 
-         public int PurgeCounter { get; private set; }
 
-         private int _gasPurgeFlowTime = 5;
 
-         private int _gasPurgePumpTime = 10;
 
-         private int _gasPurgeCycleCount = 30;
 
-         private readonly double _GasFlow = 1.0;
 
-         bool Flow_MFC1() => _chamber.FlowGas(1, _GasFlow);
 
-         bool Flow_MFC2() => _chamber.FlowGas(2, _GasFlow);
 
-         bool Flow_MFC3() => _chamber.FlowGas(3, _GasFlow);
 
-         bool Flow_MFC4() => _chamber.FlowGas(4, _GasFlow);
 
-         public PMGaslinePurgeRoutine(JetPMBase chamber) : base(chamber)
 
-         {
 
-             Name = "GasLine Purge";
 
-         }
 
-         public RState Start(params object[] objs)
 
-         {
 
-             if (CheckLidLoadLock() &&
 
-                 CheckSlitDoor() &&
 
-                 CheckDryPump() &&
 
-                 CheckTurboPump())
 
-             {
 
-                 _gasPurgeFlowTime = SC.GetValue<int>($"{Module}.Purge.GasPurgeFlowTime");
 
-                 _gasPurgePumpTime = SC.GetValue<int>($"{Module}.Purge.GasPurgePumpTime");
 
-                 _gasPurgeCycleCount = SC.GetValue<int>($"{Module}.Purge.GasPurgeCycleCount");
 
-                 Reset();
 
-                 PreTurnValves();
 
-                 PurgeCounter = 0;
 
-                 return Runner.Start(Module, Name);
 
-             }
 
-             return RState.Failed;
 
-         }
 
-         public RState Monitor()
 
-         {
 
-             Runner.Delay((int)GaslinePurgeStep.kPreTurnValves,      _delay_1s)
 
-                 .LoopStart((int)GaslinePurgeStep.kOpenPVN21_PV12_1, "Gas Purge Cycle",    _gasPurgeCycleCount, OpenPVN21_PV12,     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kFlowMFC1_2,         Flow_MFC1,                                                      _gasPurgeFlowTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kClosePV12_3,        HOFs.WrapAction(_chamber.OpenValve, ValveType.PV12, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenPV22_4,         HOFs.WrapAction(_chamber.OpenValve, ValveType.PV22, true),      _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kFlowMFC2_5,         Flow_MFC2,                                                      _gasPurgeFlowTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kClosePV22_6,        HOFs.WrapAction(_chamber.OpenValve, ValveType.PV22, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenPV32_7,         HOFs.WrapAction(_chamber.OpenValve, ValveType.PV32, true),      _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kFlowMFC3_8,         Flow_MFC3,                                                      _gasPurgeFlowTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kClosePV32_9,        HOFs.WrapAction(_chamber.OpenValve, ValveType.PV32, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenPV42_10,        HOFs.WrapAction(_chamber.OpenValve, ValveType.PV42, true),      _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kFlowMFC4_11,        Flow_MFC4,                                                      _gasPurgeFlowTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kClosePV42_12,       HOFs.WrapAction(_chamber.OpenValve, ValveType.PV42, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kClosePVN21_13,      HOFs.WrapAction(_chamber.OpenValve, ValveType.PV21, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenMFC1_14,        HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc1, true),      _gasPurgePumpTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kCloseMFC1_15,       HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc1, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenMFC2_16,        HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc2, true),      _gasPurgePumpTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kCloseMFC2_17,       HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc2, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenMFC3_18,        HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc3, true),      _gasPurgePumpTime * 1000)
 
-                 .LoopRun((int)GaslinePurgeStep.kCloseMFC3_19,       HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc3, false),     _delay_1s)
 
-                 .LoopRun((int)GaslinePurgeStep.kOpenMFC4_20,        HOFs.WrapAction(_chamber.OpenValve, ValveType.Mfc4, true),      _gasPurgePumpTime * 1000)
 
-                 .LoopEnd((int)GaslinePurgeStep.kCloseMFC4_21,       StopAllGas,                                                     _delay_1s)
 
-                 .End((int)GaslinePurgeStep.kEnd,                    NullFun,                                                        _delay_50ms);
 
-             return Runner.Status;
 
-         }
 
-         public void Abort()
 
-         {
 
-             CloseAllValves();
 
-         }
 
-         private void PreTurnValves()
 
-         {
 
-             _chamber.OpenValve(ValveType.Guage, false);
 
-             _chamber.OpenValve(ValveType.SoftPump, false);
 
-             _chamber.OpenValve(ValveType.FastPump, false);
 
-             _chamber.TurnPendulumValve(false);
 
-             _chamber.OpenValve(ValveType.GasFinal, false);
 
-             _chamber.OpenValve(ValveType.N2, false);
 
-             _chamber.OpenValve(ValveType.PVN22, false);
 
-             _chamber.OpenValve(ValveType.TurboPumpPumping, true);
 
-             _chamber.OpenValve(ValveType.TurboPumpPurge, true);
 
-         }
 
-         private bool OpenPVN21_PV12()
 
-         {
 
-             _chamber.OpenValve(ValveType.PVN21, true);
 
-             _chamber.OpenValve(ValveType.PV12, true);
 
-             return true;
 
-         }
 
-         private bool StopAllGas()
 
-         {
 
-             _chamber.StopGas(1);
 
-             _chamber.StopGas(2);
 
-             _chamber.StopGas(3);
 
-             _chamber.StopGas(4);
 
-             PurgeCounter++;
 
-             return true;
 
-         }
 
-     }
 
- }
 
 
  |