GalilLipselSwitchOffRoutine.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Aitex.Core.RT.Routine;
  2. using MECF.Framework.Common.CommonData.PUF;
  3. using MECF.Framework.Common.Routine;
  4. using CyberX8_Core;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace CyberX8_RT.Devices.AXIS.GalilLipsel
  11. {
  12. public class GalilLipselSwitchOffRoutine : RoutineBase, IRoutine
  13. {
  14. private enum SwitchOffStep
  15. {
  16. SwitchOff,
  17. End
  18. }
  19. #region 内部变量
  20. private JetAxisBase _axis;
  21. #endregion
  22. public GalilLipselSwitchOffRoutine(string module,JetAxisBase axis) : base(module)
  23. {
  24. _axis = axis;
  25. }
  26. public void Abort()
  27. {
  28. Runner.Stop("Manual Abort");
  29. }
  30. public RState Monitor()
  31. {
  32. Runner.Run(SwitchOffStep.SwitchOff,SwitchOff,CheckSwitchOff,1000)
  33. .End(SwitchOffStep.End,NullFun,100);
  34. return Runner.Status;
  35. }
  36. /// <summary>
  37. /// 下电
  38. /// </summary>
  39. /// <returns></returns>
  40. public bool SwitchOff()
  41. {
  42. return _axis.WriteSwitchOff();
  43. }
  44. private bool CheckSwitchOff()
  45. {
  46. return !_axis.IsSwitchOn;
  47. }
  48. public RState Start(params object[] objs)
  49. {
  50. return Runner.Start(Module, "Switch Off");
  51. }
  52. }
  53. }