PMControlPressureRoutine.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Aitex.Core.RT.Routine;
  2. using Aitex.Core.RT.SCCore;
  3. using MECF.Framework.Common.Equipment;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Venus_Core;
  10. using Venus_RT.Devices;
  11. using Venus_RT.Modules.PMs;
  12. namespace Venus_RT.Modules.PMs
  13. {
  14. class PMControlPressureRoutine : PMRoutineBase, IRoutine
  15. {
  16. private enum ControlPressureStep
  17. {
  18. Delay1s,
  19. StartControlPressure,
  20. End
  21. }
  22. private readonly JetPMBase _chamber;
  23. private int _controlPressureSetPoint = 90;
  24. private int _controlFlowSetPoint = 90;
  25. public PMControlPressureRoutine(JetPMBase chamber) : base(chamber)
  26. {
  27. _chamber = chamber;
  28. }
  29. public RState Start(params object[] objs)
  30. {
  31. if (!CheckTurboPump())
  32. {
  33. return RState.Failed;
  34. }
  35. if (_chamber.GetPVPosition() == 0)
  36. {
  37. Stop("钟摆阀没有打开");
  38. return RState.Failed;
  39. }
  40. Reset();
  41. // open process final valve and flow
  42. Notify("Open valve and flow mfc");
  43. _chamber.OpenValve(ValveType.GasFinal, true);
  44. _controlPressureSetPoint = SC.GetValue<int>($"{Module}.ControlPressureSetPoint");
  45. _controlFlowSetPoint= SC.GetValue<int>($"{Module}.ControlPressureN2FlowSetPoint");
  46. return Runner.Start(Module, Name);
  47. }
  48. public RState Monitor()
  49. {
  50. Runner.Delay(ControlPressureStep.Delay1s, _delay_1s)
  51. .Run(ControlPressureStep.StartControlPressure, StartControlPressure)
  52. .End(ControlPressureStep.End, End);
  53. return Runner.Status;
  54. }
  55. private bool StartControlPressure()
  56. {
  57. _chamber.StartControlPressure(_controlPressureSetPoint, _controlFlowSetPoint);
  58. return true;
  59. }
  60. private bool End()
  61. {
  62. return true;
  63. }
  64. public void Abort()
  65. {
  66. _chamber.AbortControlPressure();
  67. }
  68. }
  69. }