ProcessTransporterElevatorAxisInterLock.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.RT.Log;
  3. using CyberX8_RT.Devices.AXIS;
  4. using CyberX8_RT.Devices.AXIS.Yaskawa;
  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.TransPorter
  11. {
  12. public class ProcessTransporterElevatorAxisInterLock : IAxisInterLock
  13. {
  14. #region 内部变量
  15. private JetAxisBase _axis;
  16. #endregion
  17. #region 属性
  18. /// <summary>
  19. /// 模块名称
  20. /// </summary>
  21. public string Module { get { return _axis.Module; } }
  22. /// <summary>
  23. /// 子模块名称
  24. /// </summary>
  25. public string Name { get { return _axis.Name; } }
  26. #endregion
  27. /// <summary>
  28. /// 构造函数
  29. /// </summary>
  30. /// <param name="Module"></param>
  31. /// <param name="name"></param>
  32. public ProcessTransporterElevatorAxisInterLock(JetAxisBase axis)
  33. {
  34. _axis = axis;
  35. }
  36. /// <summary>
  37. /// GotoPosition条件检验
  38. /// </summary>
  39. /// <param name="station"></param>
  40. /// <returns></returns>
  41. public bool CheckGotoPosition(string station)
  42. {
  43. if (!AxisManager.Instance.CheckModuleAxisSwitchOn(Module, Name))
  44. {
  45. return false;
  46. }
  47. JetAxisBase gantryAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.Gantry");
  48. if (gantryAxis != null)
  49. {
  50. if (gantryAxis.IsRun)
  51. {
  52. LOG.WriteLog(eEvent.ERR_AXIS, Module, "Gantry Axis is Run");
  53. return false;
  54. }
  55. }
  56. return true;
  57. }
  58. }
  59. }