LoaderRotationAxisInterLock.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using Aitex.Core.RT.DataCenter;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Log;
  4. using MECF.Framework.Common.Equipment;
  5. using MECF.Framework.Common.Utilities;
  6. using CyberX8_RT.Devices.AXIS;
  7. using CyberX8_RT.Devices.AXIS.Yaskawa;
  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.Devices.Loader
  14. {
  15. public class LoaderRotationAxisInterLock : IAxisInterLock
  16. {
  17. #region 内部变量
  18. private JetAxisBase _loadTransporterGantryAxis;
  19. private JetAxisBase _axis;
  20. #endregion
  21. #region 属性
  22. /// <summary>
  23. /// 模块名称
  24. /// </summary>
  25. public string Module { get { return _axis.Module; } }
  26. /// <summary>
  27. /// 子模块名称
  28. /// </summary>
  29. public string Name { get { return _axis.Name; } }
  30. #endregion
  31. /// <summary>
  32. /// 构造函数
  33. /// </summary>
  34. /// <param name="Module"></param>
  35. /// <param name="name"></param>
  36. public LoaderRotationAxisInterLock(JetAxisBase axis)
  37. {
  38. _axis = axis;
  39. }
  40. /// <summary>
  41. /// GotoPosition条件检验
  42. /// </summary>
  43. /// <param name="station"></param>
  44. /// <returns></returns>
  45. /// <exception cref="NotImplementedException"></exception>
  46. public bool CheckGotoPosition(string station)
  47. {
  48. if (!_axis.IsHomed)
  49. {
  50. LOG.WriteLog(eEvent.ERR_LOADER, Module, "Rotation is not home, Cannot execute GotoSavedPosition");
  51. return false;
  52. }
  53. //if (!AxisManager.Instance.CheckModuleAxisSwitchOn(Module,Name))
  54. //{
  55. // return false;
  56. //}
  57. //JetAxisBase shuttleAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleA");
  58. //if (shuttleAAxis.IsRun)
  59. //{
  60. // LOG.WriteLog(eEvent.ERR_PUF, Module, "shuttleA is running, Cannot execute GotoSavedPosition");
  61. // return false;
  62. //}
  63. //JetAxisBase shuttleBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleB");
  64. //if (shuttleBAxis.IsRun)
  65. //{
  66. // LOG.WriteLog(eEvent.ERR_PUF, Module, "shuttleB is running, Cannot execute GotoSavedPosition");
  67. // return false;
  68. //}
  69. //JetAxisBase tiltAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltA");
  70. //if (tiltAAxis.IsRun)
  71. //{
  72. // LOG.WriteLog(eEvent.ERR_PUF, Module, "tiltA is running, Cannot execute GotoSavedPosition");
  73. // return false;
  74. //}
  75. //JetAxisBase tiltBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltB");
  76. //if (tiltBAxis.IsRun)
  77. //{
  78. // LOG.WriteLog(eEvent.ERR_PUF, Module, "tiltB is running, Cannot execute GotoSavedPosition");
  79. // return false;
  80. //}
  81. //if (ModuleHelper.IsInstalled(ModuleName.PUF1))
  82. //{
  83. // JetAxisBase puf1VerticalAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.PUF1}.Vertical");
  84. // double puf1VerticalPosition = puf1VerticalAxis.MotionData.MotorPosition;
  85. // if (!puf1VerticalAxis.CheckPositionIsInStation(puf1VerticalPosition, "Park"))
  86. // {
  87. // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF1 Vertical {puf1VerticalPosition} is not in Park station,Cannot execute GotoSavedPosition");
  88. // return false;
  89. // }
  90. //}
  91. //if (ModuleHelper.IsInstalled(ModuleName.PUF2))
  92. //{
  93. // JetAxisBase puf2VerticalAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.PUF2}.Vertical");
  94. // double puf2VerticalPosition=puf2VerticalAxis.MotionData.MotorPosition;
  95. // if (!puf2VerticalAxis.CheckPositionIsInStation(puf2VerticalPosition, "Park") &&
  96. // !puf2VerticalAxis.CheckPositionIsInStation(puf2VerticalPosition, "Robot"))
  97. // {
  98. // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF2 Vertical {puf2VerticalPosition} is not in Park and Robot station,Cannot execute GotoSavedPosition");
  99. // return false;
  100. // }
  101. // JetAxisBase puf2RotationAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.PUF2}.Rotation");
  102. // double puf2RotationPosition=puf2RotationAxis.MotionData.MotorPosition;
  103. // if (!puf2RotationAxis.CheckPositionIsInStation(puf2RotationPosition, "Park") &&
  104. // !puf2RotationAxis.CheckPositionIsInStation(puf2RotationPosition, "Robot"))
  105. // {
  106. // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF2 Rotation {puf2RotationPosition} is not in Park and Robot station,Cannot execute GotoSavedPosition");
  107. // return false;
  108. // }
  109. //}
  110. //JetAxisBase loaderShuttleAAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.Loader1}.ShuttleA");
  111. //double shuttleAPosition=loaderShuttleAAxis.MotionData.MotorPosition;
  112. //if (!loaderShuttleAAxis.CheckPositionIsInStation(shuttleAPosition, "CLOSED"))
  113. //{
  114. // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"Loader1 ShuttleA {shuttleAPosition} is not in CLOSED station,Cannot execute GotoSavedPosition");
  115. // return false;
  116. //}
  117. //JetAxisBase loaderShuttleBAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.Loader1}.ShuttleB");
  118. //double shuttleBPosition = loaderShuttleBAxis.MotionData.MotorPosition;
  119. //if (!loaderShuttleBAxis.CheckPositionIsInStation(shuttleBPosition, "CLOSED"))
  120. //{
  121. // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"Loader1 ShuttleB {shuttleBPosition} is not in CLOSED station,Cannot execute GotoSavedPosition");
  122. // return false;
  123. //}
  124. //bool loaderTransporterInstalled = ModuleHelper.IsInstalled(ModuleName.Transporter2);
  125. //if(loaderTransporterInstalled)
  126. //{
  127. // _loadTransporterGantryAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.Transporter2}.Gantry");
  128. // if (_loadTransporterGantryAxis!=null&&!_loadTransporterGantryAxis.JudgeCompareTargetStation("Loader","Right"))
  129. // {
  130. // LOG.WriteLog(eEvent.ERR_PUF, Module, "loader transporter axis is in loader station, Cannot execute GotoSavedPosition");
  131. // return false;
  132. // }
  133. //}
  134. return true;
  135. }
  136. }
  137. }