IoTMSEPressureCtl.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Aitex.Core.RT.DataCenter;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Log;
  4. using System;
  5. using Venus_RT.Devices.IODevices;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using Aitex.Core.RT.Tolerance;
  11. using Aitex.Core.Util;
  12. using Aitex.Core.RT.IOCore;
  13. using System.Xml;
  14. namespace Venus_RT.Devices
  15. {
  16. class IoTMSEPressureCtl:BaseDevice,IDevice
  17. {
  18. public readonly IoPressureMeter TMVacuumGauge;
  19. public readonly IoPressureMeter TMPipelineGauge;
  20. public readonly IoPressureMeter VCEVacuumGauge;
  21. public readonly IoPressureMeter VCEPipelineVacuumGauge;
  22. private readonly ToleranceChecker _tolerance = new ToleranceChecker();
  23. private readonly R_TRIG _trigTMVacuumGauge = new R_TRIG();
  24. private readonly R_TRIG _trigTMPipelineGauge = new R_TRIG();
  25. private readonly R_TRIG _trigVCEVacuumGauge = new R_TRIG();
  26. private readonly R_TRIG _trigVCEPipelineVacuumGauge = new R_TRIG();
  27. public double TargetPressure { get; set; }
  28. public IoTMSEPressureCtl(string module, XmlElement node, string ioModule = "")
  29. {
  30. base.Module = module;
  31. base.Name = node.GetAttribute("id");
  32. base.Display = node.GetAttribute("display");
  33. base.DeviceID = node.GetAttribute("schematicId");
  34. TMVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "MFPressureMeter", node);
  35. TMPipelineGauge = ParseDeviceNode<IoPressureMeter>(Module, "MFForelineMeter", node);
  36. VCEVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "VCEPressureMeter", node);
  37. VCEPipelineVacuumGauge = ParseDeviceNode<IoPressureMeter>(Module, "VCEPipelineMeter", node);
  38. }
  39. public bool Initialize()
  40. {
  41. return true;
  42. }
  43. public void SetTMPressure(float pressure)
  44. {
  45. }
  46. public void Terminate()
  47. {
  48. }
  49. public void Monitor()
  50. {
  51. _trigTMVacuumGauge.CLK = TMVacuumGauge.GaugeAlarm;
  52. if (_trigTMVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "MF pressure gauge Alarm");
  53. _trigTMPipelineGauge.CLK = TMPipelineGauge.GaugeAlarm;
  54. if (_trigTMPipelineGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "MF Pipeline pressure gauge Alarm");
  55. _trigVCEVacuumGauge.CLK = VCEVacuumGauge.GaugeAlarm;
  56. if (_trigVCEVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "VCE pressure gauge Alarm");
  57. _trigVCEPipelineVacuumGauge.CLK = VCEPipelineVacuumGauge.GaugeAlarm;
  58. if (_trigVCEPipelineVacuumGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "VCE Pipeline pressure Gauge Alarm");
  59. }
  60. public void Reset()
  61. {
  62. _trigTMVacuumGauge.RST = true;
  63. _trigTMPipelineGauge.RST = true;
  64. _trigVCEVacuumGauge.RST = true;
  65. _trigVCEPipelineVacuumGauge.RST = true;
  66. }
  67. }
  68. }