VPWChamberDownRoutine.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.RT.Log;
  3. using Aitex.Core.RT.Routine;
  4. using Aitex.Core.RT.SCCore;
  5. using Aitex.Core.Util;
  6. using MECF.Framework.Common.Equipment;
  7. using MECF.Framework.Common.RecipeCenter;
  8. using MECF.Framework.Common.Routine;
  9. using MECF.Framework.Common.SubstrateTrackings;
  10. using PunkHPX8_Core;
  11. using PunkHPX8_RT.Devices.AXIS;
  12. using PunkHPX8_RT.Devices.VpwCell;
  13. using PunkHPX8_RT.Devices.VpwMain;
  14. using PunkHPX8_RT.Modules.VpwMain;
  15. using PunkHPX8_RT.Schedulers;
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. namespace PunkHPX8_RT.Modules.VpwMain
  22. {
  23. public class VPWChamberDownRoutine : RoutineBase, IRoutine
  24. {
  25. private enum PrepareStep
  26. {
  27. ChamerDown,
  28. Delay,
  29. End
  30. }
  31. #region 内部变量
  32. /// <summary>
  33. /// Main设备
  34. /// </summary>
  35. private VpwMainDevice _mainDevice;
  36. #endregion
  37. /// <summary>
  38. /// 构造函数
  39. /// </summary>
  40. /// <param name="module"></param>
  41. public VPWChamberDownRoutine(string module) : base(module)
  42. {
  43. }
  44. /// <summary>
  45. /// 中止
  46. /// </summary>
  47. public void Abort()
  48. {
  49. Runner.Stop("Manual abort");
  50. }
  51. /// <summary>
  52. /// 监控
  53. /// </summary>
  54. /// <returns></returns>
  55. public RState Monitor()
  56. {
  57. Runner.Run(PrepareStep.ChamerDown, ChamberDown, CheckChamberOpend,_delay_10s)
  58. .End(PrepareStep.End,NullFun,_delay_1ms);
  59. return Runner.Status;
  60. }
  61. /// <summary>
  62. /// 打开 Chamber
  63. /// </summary>
  64. /// <returns></returns>
  65. private bool ChamberDown()
  66. {
  67. return _mainDevice.ChamberDown();
  68. }
  69. /// <summary>
  70. /// 检验Chamber是否打开
  71. /// </summary>
  72. /// <returns></returns>
  73. private bool CheckChamberOpend()
  74. {
  75. return _mainDevice.CommonData.ChamberOpened && !_mainDevice.CommonData.ChamberClosed;
  76. }
  77. /// <summary>
  78. /// 启动
  79. /// </summary>
  80. /// <param name="objs"></param>
  81. /// <returns></returns>
  82. public RState Start(params object[] objs)
  83. {
  84. _mainDevice = DEVICE.GetDevice<VpwMainDevice>(Module);
  85. return Runner.Start(Module, $"{Module} chamber down");
  86. }
  87. }
  88. }