using Aitex.Core.Common.DeviceData; using Aitex.Core.RT.Device; using Aitex.Core.RT.Device.Unit; using MECF.Framework.Common.Equipment; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Venus_Core; namespace Venus_RT.Devices { public class HongHuTM : TM { /// /// 针对VenusSE设计 /// #region io 信号抽象 //控制阀信号 private readonly IoValve _TMFastPumpValve; private readonly IoValve _TMSoftPumpValve; private readonly IoValve _VCESoftPumpValve; private readonly IoValve _VCEFastPumpValve; private readonly IoValve _TMFastVentValve; private readonly IoValve _TMSoftVentValve; private readonly IoValve _VCESoftVentValve; private readonly IoValve _VCEFastVentValve; //判断信号 private readonly IoSensor _VCESlitDoorOpen; private readonly IoSensor _PMASlitDoorOpen; private readonly IoSensor _PMBSlitDoorOpen; private readonly IoSensor _PMCSlitDoorOpen; private readonly IoSensor _VCESlitDoorOpenEnable; private readonly IoSensor _PMASlitDoorOpenEnable; private readonly IoSensor _PMBSlitDoorOpenEnable; private readonly IoSensor _PMCSlitDoorOpenEnable; private readonly IoSensor _TMExtendVCEEnable; private readonly IoSensor _TMExtendPMAEnable; private readonly IoSensor _TMExtendPMBEnable; private readonly IoSensor _TMExtendPMCEnable; private readonly IoSensor _TMATMSensor; private readonly IoSensor _VCEATMSensor; //控制门信号 private readonly IoCylinder _VCESlitDoor; private readonly IoCylinder _PMASlitDoor; private readonly IoCylinder _PMBSlitDoor; private readonly IoCylinder _PMCSlitDoor; #endregion #region 暴露变量 //ATM VAC信号 public bool IsTMATM => _TMATMSensor.Value; public bool IsVCEATM => _VCEATMSensor.Value; //valve开关状态 public bool IsTMFastPumpOpen => _TMFastPumpValve.Status; public bool IsTMSoftPumpOpen => _TMSoftPumpValve.Status; public bool IsTMFastVentOpen => _TMFastVentValve.Status; public bool IsTMSoftVentOpen => _TMSoftVentValve.Status; public bool IsVCEFastPumpOpen => _VCEFastPumpValve.Status; public bool IsVCESoftPumpOpen => _VCESoftPumpValve.Status; public bool IsVCEFastVentOpen => _VCEFastVentValve.Status; public bool IsVCESoftVentOpen => _VCESoftVentValve.Status; //SlitDoor public bool VCESlitDoorClosed => _VCESlitDoor.State == CylinderState.Close; public bool PMASlitDoorClosed => _PMASlitDoor.State == CylinderState.Close; public bool PMBSlitDoorClosed => _PMBSlitDoor.State == CylinderState.Close; public bool PMCSlitDoorClosed => _PMCSlitDoor.State == CylinderState.Close; public bool VCESlitDoorOpenEnable => _VCESlitDoorOpenEnable.Value; public bool PMASlitDoorOpenEnable => _PMASlitDoorOpenEnable.Value; public bool PMBSlitDoorOpenEnable => _PMBSlitDoorOpenEnable.Value; public bool PMCSlitDoorOpenEnable => _PMCSlitDoorOpenEnable.Value; //Robot动作 public bool TMExtendVCEEnable => _TMExtendVCEEnable.Value; public bool TMExtendPMAEnable => _TMExtendPMAEnable.Value; public bool TMExtendPMBEnable => _TMExtendPMBEnable.Value; public bool TMExtendPMCEnable => _TMExtendPMCEnable.Value; #endregion public HongHuTM(string module) : base(module) { _TMFastPumpValve = DEVICE.GetDevice($"TM.{VenusDevice.TMFastPumpValve}"); _TMSoftPumpValve = DEVICE.GetDevice($"TM.{VenusDevice.TMSoftPumpValve}"); _VCESoftPumpValve = DEVICE.GetDevice($"TM.{VenusDevice.VCESoftPumpValve}"); _VCEFastPumpValve = DEVICE.GetDevice($"TM.{VenusDevice.VCEFastPumpValve}"); _TMFastVentValve = DEVICE.GetDevice($"TM.{VenusDevice.TMFastPumpValve}"); _TMSoftVentValve = DEVICE.GetDevice($"TM.{VenusDevice.TMSoftVentValve}"); _VCESoftVentValve = DEVICE.GetDevice($"TM.{VenusDevice.VCESoftVentValve}"); _VCEFastVentValve = DEVICE.GetDevice($"TM.{VenusDevice.VCEFastVentValve}"); _VCESlitDoorOpenEnable = DEVICE.GetDevice($"TM.{VenusDevice.VCESlitDoorOpenEnable}"); _PMASlitDoorOpenEnable = DEVICE.GetDevice($"TM.{VenusDevice.PMASlitDoorOpenEnable}"); _PMBSlitDoorOpenEnable = DEVICE.GetDevice($"TM.{VenusDevice.PMBSlitDoorOpenEnable}"); _PMCSlitDoorOpenEnable = DEVICE.GetDevice($"TM.{VenusDevice.PMCSlitDoorOpenEnable}"); _TMExtendVCEEnable = DEVICE.GetDevice($"TM.{VenusDevice.TMExtendVCEEnable}"); _TMExtendPMAEnable = DEVICE.GetDevice($"TM.{VenusDevice.TMExtendPMAEnable}"); _TMExtendPMBEnable = DEVICE.GetDevice($"TM.{VenusDevice.TMExtendPMBEnable}"); _TMExtendPMCEnable = DEVICE.GetDevice($"TM.{VenusDevice.TMExtendPMCEnable}"); _TMATMSensor = DEVICE.GetDevice($"TM.{VenusDevice.TMATMSensor}"); _VCEATMSensor = DEVICE.GetDevice($"TM.{VenusDevice.VCEATMSensor}"); _VCESlitDoor = DEVICE.GetDevice($"TM.{VenusDevice.VCESlitDoor}"); _PMASlitDoor = DEVICE.GetDevice($"TM.{VenusDevice.PMASlitDoor}"); _PMBSlitDoor = DEVICE.GetDevice($"TM.{VenusDevice.PMBSlitDoor}"); _PMCSlitDoor = DEVICE.GetDevice($"TM.{VenusDevice.PMCSlitDoor}"); } #region IO控制方法 //slitdoor public void TurnSlitDoor(ModuleName mod, bool bOn) { switch(mod) { case ModuleName.VCE1: _VCESlitDoor.SetCylinder(bOn, out _); break; case ModuleName.PMA: _PMASlitDoor.SetCylinder(bOn, out _); break; case ModuleName.PMB: _PMBSlitDoor.SetCylinder(bOn, out _); break; case ModuleName.PMC: _PMCSlitDoor.SetCylinder(bOn, out _); break; } } //valve public void TurnFastPumpValve(ModuleName mod, bool bOn) { switch (mod) { case ModuleName.TM: _TMFastPumpValve.TurnValve(bOn, out string _); break; case ModuleName.VCE1: _VCEFastPumpValve.TurnValve(bOn, out string _); break; } } public void TurnSoftPumpValve(ModuleName mod, bool bOn) { switch (mod) { case ModuleName.TM: _TMSoftPumpValve.TurnValve(bOn, out string _); break; case ModuleName.VCE1: _VCESoftPumpValve.TurnValve(bOn, out string _); break; } } public void TurnFastVentValve(ModuleName mod, bool bOn) { switch (mod) { case ModuleName.TM: _TMFastVentValve.TurnValve(bOn, out string _); break; case ModuleName.VCE1: _VCEFastVentValve.TurnValve(bOn, out string _); break; } } public void TurnSoftVentValve(ModuleName mod, bool bOn) { switch (mod) { case ModuleName.TM: _TMSoftVentValve.TurnValve(bOn, out string _); break; case ModuleName.VCE1: _VCESoftVentValve.TurnValve(bOn, out string _); break; } } #endregion } }