TemperatureControlRoutine.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System;
  2. using Aitex.Core.RT.Routine;
  3. using Aitex.Core.RT.SCCore;
  4. using VirgoRT.Devices;
  5. namespace VirgoRT.Modules.PMs
  6. {
  7. class TemperatureControlRoutine : PMRoutineBase, IRoutine
  8. {
  9. private enum TCSequence
  10. {
  11. kCheckTemperature,
  12. kEnd
  13. }
  14. private int _checkSubstrateTempTimeout = 60;
  15. private double _TargetTemp = 0.0f;
  16. private double _OffsetTemp = 0.0f;
  17. private double _tolerance;
  18. public TemperatureControlRoutine(JetPM chamber) : base(chamber)
  19. {
  20. Name = "PreHeat";
  21. bUINotify = true;
  22. }
  23. public void Terminate()
  24. {
  25. }
  26. public Result Start(params object[] objs)
  27. {
  28. try
  29. {
  30. Reset();
  31. _TargetTemp = (double)objs[0];
  32. _checkSubstrateTempTimeout = SC.GetValue<int>($"{Module}.CheckSubstrateTempTimeout");
  33. _tolerance = SC.GetValue<double>($"System.MaxTemperatureToleranceToTarget");
  34. _OffsetTemp = SC.GetValue<double>($"{Module}.Chiller.ChillerTemperatureOffset");
  35. Notify($"开始, 目标 {_TargetTemp} ℃, 偏移值 { _OffsetTemp} ℃");
  36. return Result.RUN;
  37. }
  38. catch
  39. {
  40. return Result.FAIL;
  41. }
  42. }
  43. public Result Monitor()
  44. {
  45. try
  46. {
  47. if (SC.GetValue<bool>($"{Module}.Chiller.EnableChiller"))
  48. {
  49. CheckCoolantTemp((int)TCSequence.kCheckTemperature, _TargetTemp, _OffsetTemp, _checkSubstrateTempTimeout, _tolerance);
  50. }
  51. else
  52. {
  53. CheckSubstrateTemp((int)TCSequence.kCheckTemperature, _TargetTemp, _checkSubstrateTempTimeout, _tolerance);
  54. }
  55. End((int)TCSequence.kEnd);
  56. }
  57. catch (RoutineBreakException)
  58. {
  59. return Result.RUN;
  60. }
  61. catch (RoutineFaildException)
  62. {
  63. Notify("出错 ");
  64. return Result.FAIL;
  65. }
  66. catch (System.Exception ex)
  67. {
  68. Stop(ex.Message);
  69. return Result.FAIL;
  70. }
  71. Notify("结束");
  72. return Result.DONE;
  73. }
  74. public override void Abort() { }
  75. }
  76. }