using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO.Ports; using Modbus.Device; using HslCommunication.ModBus; // 引入 NModbus 库 namespace ControlcBoardsTest { internal class ModbusHelper { /// /// 私有ModbusRTU主站字段 /// public static ModbusRtu master=new ModbusRtu(2); /// /// 写入单个线圈 /// public static void WriteSingleCoil(byte stationNo, ushort Adr, bool Value) { master.Write(Adr.ToString(), Value); } public static StopBits GetSelectedStopBits(double stopBits) { switch (stopBits) { case 1: return StopBits.One; case 1.5: return StopBits.OnePointFive; case 2: return StopBits.Two; default: return StopBits.One; } } /// /// 写入单个寄存器 /// public static void WriteSingleRegister(byte stationNo, ushort Value, ushort result) { master.Write(Value.ToString(), result); } /// /// 读取输出线圈 /// /// public static bool[] ReadCoils(byte stationNo, ushort Value, ushort result) { var data = master.ReadCoil(Value.ToString(), result); return master.ReadCoil(Value.ToString(), result).Content; } /// /// 读取保持型寄存器 /// /// public static ushort[] ReadHoldingRegisters(byte stationNo, ushort Value, ushort result) { return master.ReadUInt16(Value.ToString(), result).Content; } } }