TransporterSwitchOffRoutine.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.RT.Routine;
  3. using MECF.Framework.Common.Equipment;
  4. using MECF.Framework.Common.Routine;
  5. using CyberX8_Core;
  6. using CyberX8_RT.Devices.AXIS;
  7. using CyberX8_RT.Devices.PUF;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace CyberX8_RT.Modules.Transporter
  14. {
  15. public class TransporterSwitchOffRoutine : RoutineBase, IRoutine
  16. {
  17. private enum SwitchOffStep
  18. {
  19. Vertical,
  20. Gantry,
  21. End
  22. }
  23. #region 内部变量
  24. private JetAxisBase _gantryAxis;
  25. private JetAxisBase _elevatorAxis;
  26. private int _timeOut = 6000;
  27. #endregion
  28. public TransporterSwitchOffRoutine(string module) : base(module)
  29. {
  30. }
  31. public void Abort()
  32. {
  33. Runner.Stop("Manual Abort");
  34. }
  35. public RState Monitor()
  36. {
  37. Runner.Run(SwitchOffStep.Vertical, VerticalAxisSwitchOff, CheckVerticalSwitchOff, _timeOut)
  38. .Run(SwitchOffStep.Gantry, GantryAxisSwitchOff, CheckGantrySwitchOff, _timeOut)
  39. .End(SwitchOffStep.End,NullFun);
  40. return Runner.Status;
  41. }
  42. private bool VerticalAxisSwitchOff()
  43. {
  44. _elevatorAxis.SwitchOff();
  45. return true;
  46. }
  47. private bool CheckVerticalSwitchOff()
  48. {
  49. return !_elevatorAxis.IsSwitchOn;
  50. }
  51. private bool GantryAxisSwitchOff()
  52. {
  53. _gantryAxis.SwitchOff();
  54. return true;
  55. }
  56. private bool CheckGantrySwitchOff()
  57. {
  58. return !_gantryAxis.IsSwitchOn;
  59. }
  60. public RState Start(params object[] objs)
  61. {
  62. _gantryAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.Gantry");
  63. _elevatorAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.Elevator");
  64. Runner.Start(Module, "SwitchOff");
  65. return RState.Running;
  66. }
  67. }
  68. }