123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using Aitex.Core.RT.Routine;
- using Aitex.Core.RT.SCCore;
- using MECF.Framework.Common.Equipment;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Venus_Core;
- using Venus_RT.Devices;
- using Venus_RT.Modules.PMs;
- namespace Venus_RT.Modules.TM
- {
-
- class MFControlPressureRoutine : ModuleRoutineBase, IRoutine
- {
- private enum ControlPressureStep
- {
- PumpDown,
- Delay1s,
- StartControlPressure,
- End
- }
- private readonly JetTM _JetTM;
- private readonly MFPumpRoutine _pumpDownRoutine;
- private int _controlPressureCheckPoint = 100;
- private int _controlPressureSetPoint = 90;
- private int _controlFlowSetPoint = 90;
- public MFControlPressureRoutine(JetTM jetTM, MFPumpRoutine pumpDownRoutine) : base(ModuleName.TM)
- {
- _JetTM = jetTM;
- _pumpDownRoutine = pumpDownRoutine;
- }
- public RState Start(params object[] objs)
- {
- _controlPressureCheckPoint= SC.GetValue<int>($"TM.ControlPressureCheckPoint");
- _controlPressureSetPoint= SC.GetValue<int>($"TM.ControlPressureSetPoint");
- _controlFlowSetPoint= SC.GetValue<int>($"TM.TM_MFC1.DefaultSetPoint");
- return Runner.Start(Module, Name);
- }
- public RState Monitor()
- {
- Runner.Run((int)ControlPressureStep.PumpDown, PumpingDown, StopPumpDone)
- .Delay((int)ControlPressureStep.Delay1s, _delay_1s)
- .Run((int)ControlPressureStep.StartControlPressure, StartControlPressure)
- .End((int)ControlPressureStep.End, End);
- return Runner.Status;
- }
- private bool PumpingDown()
- {
- return _pumpDownRoutine.Start() == RState.Running;
- }
- private bool StopPumpDone()
- {
- var status = _pumpDownRoutine.Monitor();
- if (_JetTM.TMPressure <= _controlPressureCheckPoint && status == RState.End)
- {
- _JetTM.TurnSoftPumpValve(ModuleName.TM, false);
- _JetTM.TurnFastPumpValve(ModuleName.TM, false);
- _JetTM.TurnFastPumpValve(ModuleName.TM,true);
- return true;
- }
- else
- {
- return false;
- }
- }
- private bool StartControlPressure()
- {
- _JetTM.TurnN2Valve(true);
- _JetTM.TurnPurgeValve(ModuleName.TM, true);
- if (_JetTM.AllPMSlitDoorClosed)
- {
- _JetTM.SwitchTMPressureMode(true);
- _JetTM.SetTMPressure(_controlPressureSetPoint);
- }
- else
- {
- _JetTM.SwitchTMPressureMode(false);
- _JetTM.SetTMFlow(_controlFlowSetPoint);
- }
- return true;
- }
- private bool End()
- {
- return true;
- }
- public void Abort()
- {
- if(_JetTM != null)
- {
- _JetTM.TurnFastPumpValve(ModuleName.TM, false);
- _JetTM.TurnN2Valve(false);
- _JetTM.TurnPurgeValve(ModuleName.TM, false);
- _JetTM.SetTMPressure(0);
- _JetTM.SetTMFlow(0);
- }
- }
- }
- }
|