HongHuTM.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using Aitex.Core.Common.DeviceData;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Device.Unit;
  4. using MECF.Framework.Common.Equipment;
  5. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using Venus_Core;
  12. namespace Venus_RT.Devices
  13. {
  14. public class HongHuTM : TM
  15. {
  16. /// <summary>
  17. /// 针对VenusSE设计
  18. /// </summary>
  19. #region io 信号抽象
  20. //控制阀信号
  21. private readonly IoValve _TMFastPumpValve;
  22. private readonly IoValve _TMSoftPumpValve;
  23. private readonly IoValve _VCESoftPumpValve;
  24. private readonly IoValve _VCEFastPumpValve;
  25. private readonly IoValve _TMFastVentValve;
  26. private readonly IoValve _TMSoftVentValve;
  27. private readonly IoValve _VCESoftVentValve;
  28. private readonly IoValve _VCEFastVentValve;
  29. //判断信号
  30. private readonly IoSensor _VCESlitDoorOpen;
  31. private readonly IoSensor _PMASlitDoorOpen;
  32. private readonly IoSensor _PMBSlitDoorOpen;
  33. private readonly IoSensor _PMCSlitDoorOpen;
  34. private readonly IoSensor _VCESlitDoorOpenEnable;
  35. private readonly IoSensor _PMASlitDoorOpenEnable;
  36. private readonly IoSensor _PMBSlitDoorOpenEnable;
  37. private readonly IoSensor _PMCSlitDoorOpenEnable;
  38. private readonly IoSensor _TMExtendVCEEnable;
  39. private readonly IoSensor _TMExtendPMAEnable;
  40. private readonly IoSensor _TMExtendPMBEnable;
  41. private readonly IoSensor _TMExtendPMCEnable;
  42. private readonly IoSensor _TMATMSensor;
  43. private readonly IoSensor _VCEATMSensor;
  44. //控制门信号
  45. private readonly IoCylinder _VCESlitDoor;
  46. private readonly IoCylinder _PMASlitDoor;
  47. private readonly IoCylinder _PMBSlitDoor;
  48. private readonly IoCylinder _PMCSlitDoor;
  49. #endregion
  50. #region 暴露变量
  51. //ATM VAC信号
  52. public bool IsTMATM => _TMATMSensor.Value;
  53. public bool IsVCEATM => _VCEATMSensor.Value;
  54. //valve开关状态
  55. public bool IsTMFastPumpOpen => _TMFastPumpValve.Status;
  56. public bool IsTMSoftPumpOpen => _TMSoftPumpValve.Status;
  57. public bool IsTMFastVentOpen => _TMFastVentValve.Status;
  58. public bool IsTMSoftVentOpen => _TMSoftVentValve.Status;
  59. public bool IsVCEFastPumpOpen => _VCEFastPumpValve.Status;
  60. public bool IsVCESoftPumpOpen => _VCESoftPumpValve.Status;
  61. public bool IsVCEFastVentOpen => _VCEFastVentValve.Status;
  62. public bool IsVCESoftVentOpen => _VCESoftVentValve.Status;
  63. //SlitDoor
  64. public bool VCESlitDoorClosed => _VCESlitDoor.State == CylinderState.Close;
  65. public bool PMASlitDoorClosed => _PMASlitDoor.State == CylinderState.Close;
  66. public bool PMBSlitDoorClosed => _PMBSlitDoor.State == CylinderState.Close;
  67. public bool PMCSlitDoorClosed => _PMCSlitDoor.State == CylinderState.Close;
  68. public bool VCESlitDoorOpenEnable => _VCESlitDoorOpenEnable.Value;
  69. public bool PMASlitDoorOpenEnable => _PMASlitDoorOpenEnable.Value;
  70. public bool PMBSlitDoorOpenEnable => _PMBSlitDoorOpenEnable.Value;
  71. public bool PMCSlitDoorOpenEnable => _PMCSlitDoorOpenEnable.Value;
  72. //Robot动作
  73. public bool TMExtendVCEEnable => _TMExtendVCEEnable.Value;
  74. public bool TMExtendPMAEnable => _TMExtendPMAEnable.Value;
  75. public bool TMExtendPMBEnable => _TMExtendPMBEnable.Value;
  76. public bool TMExtendPMCEnable => _TMExtendPMCEnable.Value;
  77. #endregion
  78. public HongHuTM(string module) : base(module)
  79. {
  80. _TMFastPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.TMFastPumpValve}");
  81. _TMSoftPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.TMSoftPumpValve}");
  82. _VCESoftPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.VCESoftPumpValve}");
  83. _VCEFastPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.VCEFastPumpValve}");
  84. _TMFastVentValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.TMFastPumpValve}");
  85. _TMSoftVentValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.TMSoftVentValve}");
  86. _VCESoftVentValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.VCESoftVentValve}");
  87. _VCEFastVentValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.VCEFastVentValve}");
  88. _VCESlitDoorOpenEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.VCESlitDoorOpenEnable}");
  89. _PMASlitDoorOpenEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.PMASlitDoorOpenEnable}");
  90. _PMBSlitDoorOpenEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.PMBSlitDoorOpenEnable}");
  91. _PMCSlitDoorOpenEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.PMCSlitDoorOpenEnable}");
  92. _TMExtendVCEEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMExtendVCEEnable}");
  93. _TMExtendPMAEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMExtendPMAEnable}");
  94. _TMExtendPMBEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMExtendPMBEnable}");
  95. _TMExtendPMCEnable = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMExtendPMCEnable}");
  96. _TMATMSensor = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMATMSensor}");
  97. _VCEATMSensor = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.VCEATMSensor}");
  98. _VCESlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.VCESlitDoor}");
  99. _PMASlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.PMASlitDoor}");
  100. _PMBSlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.PMBSlitDoor}");
  101. _PMCSlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.PMCSlitDoor}");
  102. }
  103. #region IO控制方法
  104. //slitdoor
  105. public void TurnSlitDoor(ModuleName mod, bool bOn)
  106. {
  107. switch(mod)
  108. {
  109. case ModuleName.VCE1:
  110. _VCESlitDoor.SetCylinder(bOn, out _);
  111. break;
  112. case ModuleName.PMA:
  113. _PMASlitDoor.SetCylinder(bOn, out _);
  114. break;
  115. case ModuleName.PMB:
  116. _PMBSlitDoor.SetCylinder(bOn, out _);
  117. break;
  118. case ModuleName.PMC:
  119. _PMCSlitDoor.SetCylinder(bOn, out _);
  120. break;
  121. }
  122. }
  123. //valve
  124. public void TurnFastPumpValve(ModuleName mod, bool bOn)
  125. {
  126. switch (mod)
  127. {
  128. case ModuleName.TM:
  129. _TMFastPumpValve.TurnValve(bOn, out string _);
  130. break;
  131. case ModuleName.VCE1:
  132. _VCEFastPumpValve.TurnValve(bOn, out string _);
  133. break;
  134. }
  135. }
  136. public void TurnSoftPumpValve(ModuleName mod, bool bOn)
  137. {
  138. switch (mod)
  139. {
  140. case ModuleName.TM:
  141. _TMSoftPumpValve.TurnValve(bOn, out string _);
  142. break;
  143. case ModuleName.VCE1:
  144. _VCESoftPumpValve.TurnValve(bOn, out string _);
  145. break;
  146. }
  147. }
  148. public void TurnFastVentValve(ModuleName mod, bool bOn)
  149. {
  150. switch (mod)
  151. {
  152. case ModuleName.TM:
  153. _TMFastVentValve.TurnValve(bOn, out string _);
  154. break;
  155. case ModuleName.VCE1:
  156. _VCEFastVentValve.TurnValve(bOn, out string _);
  157. break;
  158. }
  159. }
  160. public void TurnSoftVentValve(ModuleName mod, bool bOn)
  161. {
  162. switch (mod)
  163. {
  164. case ModuleName.TM:
  165. _TMSoftVentValve.TurnValve(bOn, out string _);
  166. break;
  167. case ModuleName.VCE1:
  168. _VCESoftVentValve.TurnValve(bOn, out string _);
  169. break;
  170. }
  171. }
  172. #endregion
  173. }
  174. }