| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | 
							- using Aitex.Core.Common.DeviceData;
 
- using Aitex.Core.RT.Device;
 
- using Aitex.Core.RT.IOCore;
 
- using Aitex.Core.RT.SCCore;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Xml;
 
- namespace Venus_RT.Devices.IODevices
 
- {
 
-     
 
-     public class IoHongHuControl : BaseDevice, IDevice
 
-     {
 
-         private bool _lastValue;
 
-         //WriteMode分为两种模式 一种是Flow模式 一种是控压模式
 
-         private SCConfigItem _scWriteMode;
 
-         private SCConfigItem _scTargetMFC;
 
-         private SCConfigItem _scTargetPressure;
 
-         private readonly DOAccessor _FlowMode;
 
-         private readonly DOAccessor _PressureMode;
 
-         private readonly AOAccessor _MFCSetPoint;
 
-         private readonly AOAccessor _PressureSetPoint;
 
-         public IoHongHuControl(string module, XmlElement node, string ioModule = "")
 
-         {
 
-             base.Module = module;
 
-             base.Name = node.GetAttribute("id");
 
-             base.Display = node.GetAttribute("display");
 
-             base.DeviceID = node.GetAttribute("schematicId");
 
-             _scWriteMode        = SC.GetConfigItem($"{Module}.{Name}.ControlWriteMode");
 
-             _scTargetMFC        = SC.GetConfigItem($"{Module}.{Name}.TargetMFC");
 
-             _scTargetPressure   = SC.GetConfigItem($"{Module}.{Name}.TargetPressure");
 
-             _FlowMode           = ParseDoNode("doMFCFlow", node, ioModule);
 
-             _PressureMode       = ParseDoNode("doPressureMode", node, ioModule);
 
-             _MFCSetPoint        = ParseAoNode("aoMFCFlow", node, ioModule);
 
-             _PressureSetPoint   = ParseAoNode("aoPressure", node, ioModule);
 
-         }
 
-         //
 
-         public bool Initialize()
 
-         {
 
-             return true;
 
-         }
 
-         public void Monitor()
 
-         {
 
-             //如果是true MFC模式
 
-             if (_scWriteMode.BoolValue)
 
-             {
 
-                 if(_FlowMode != null && _FlowMode.Value !=true)
 
-                     _FlowMode.SetValue(true,out string _);
 
-                 if (_PressureMode != null && _PressureMode.Value != false)
 
-                     _PressureMode.SetValue(false,out  _);
 
-                 if (_MFCSetPoint != null)
 
-                 {
 
-                     byte[] flow;
 
-                     flow = BitConverter.GetBytes(float.Parse(_scTargetMFC.Value.ToString()));
 
-                     _MFCSetPoint.Buffer[_MFCSetPoint.Index] = BitConverter.ToInt16(flow, 0);
 
-                     _MFCSetPoint.Buffer[_MFCSetPoint.Index + 1] = BitConverter.ToInt16(flow, 2);
 
-                 }
 
-                 //if (_lastValue != _scWriteMode.BoolValue)
 
-                 //{
 
-                 //    if (_ventvalve != null && _ventvalve.Value != false)
 
-                 //        _ventvalve.SetValue(false, out _);
 
-                 //    if (_pumpvalve != null && _pumpvalve.Value != false)
 
-                 //        _pumpvalve.SetValue(false, out _);
 
-                 //}
 
-             }
 
-             else
 
-             {
 
-                 if (_FlowMode != null && _FlowMode.Value != false)
 
-                     _FlowMode.SetValue(false, out string _);
 
-                 if (_PressureMode != null && _PressureMode.Value != true)
 
-                     _PressureMode.SetValue(true, out string _);
 
-                 if (_PressureSetPoint != null )
 
-                 {
 
-                     byte[] pressure;
 
-                     pressure = BitConverter.GetBytes(float.Parse(_scTargetPressure.Value.ToString()));
 
-                     _PressureSetPoint.Buffer[_PressureSetPoint.Index] = BitConverter.ToInt16(pressure, 0);
 
-                     _PressureSetPoint.Buffer[_PressureSetPoint.Index + 1] = BitConverter.ToInt16(pressure, 2);
 
-                 }
 
-                 //if (_lastValue != _scWriteMode.BoolValue)
 
-                 //{
 
-                 //    if (_ventvalve != null && _ventvalve.Value != true)
 
-                 //        _ventvalve.SetValue(true, out _);
 
-                 //    if (_pumpvalve != null && _pumpvalve.Value != true)
 
-                 //        _pumpvalve.SetValue(true, out _);
 
-                 //}
 
-             }
 
-             _lastValue = _scWriteMode.BoolValue;
 
-         }
 
-         public void Reset()
 
-         {
 
-             if (_FlowMode != null && _FlowMode.Value != true)
 
-                 _FlowMode.SetValue(true, out string _);
 
-             if (_PressureMode != null && _PressureMode.Value != false)
 
-                 _PressureMode.SetValue(false, out _);
 
-             if (_MFCSetPoint != null)
 
-             {
 
-                 byte[] flow;
 
-                 flow = BitConverter.GetBytes(float.Parse("0"));
 
-                 _MFCSetPoint.Buffer[_MFCSetPoint.Index] = BitConverter.ToInt16(flow, 0);
 
-                 _MFCSetPoint.Buffer[_MFCSetPoint.Index + 1] = BitConverter.ToInt16(flow, 2);
 
-             }
 
-             //if (_ventvalve != null && _ventvalve.Value != false)
 
-             //    _ventvalve.SetValue(false, out _);
 
-             //if (_pumpvalve != null && _pumpvalve.Value != false)
 
-             //    _pumpvalve.SetValue(false, out _);
 
-         }
 
-         public void Terminate()
 
-         {
 
-             if (_FlowMode != null && _FlowMode.Value != true)
 
-                 _FlowMode.SetValue(true, out string _);
 
-             if (_PressureMode != null && _PressureMode.Value != false)
 
-                 _PressureMode.SetValue(false, out _);
 
-             if (_MFCSetPoint != null)
 
-             {
 
-                 byte[] flow;
 
-                 flow = BitConverter.GetBytes(float.Parse("0"));
 
-                 _MFCSetPoint.Buffer[_MFCSetPoint.Index] = BitConverter.ToInt16(flow, 0);
 
-                 _MFCSetPoint.Buffer[_MFCSetPoint.Index + 1] = BitConverter.ToInt16(flow, 2);
 
-             }
 
-             //if (_ventvalve != null && _ventvalve.Value != false)
 
-             //    _ventvalve.SetValue(false, out _);
 
-             //if (_pumpvalve != null && _pumpvalve.Value != false)
 
-             //    _pumpvalve.SetValue(false, out _);
 
-         }
 
-     }
 
- }
 
 
  |