一、创建一个Moudbus类,引入NModbus和NModbus4这两个包
#region ModbusTCP public class NmodbusTcpHelper { // 静态成员变量,用于存储TcpClient实例 private static TcpClient tcpClient = null; // 静态成员变量,用于存储ModbusIpMaster实例 private static ModbusIpMaster master; // 连接到指定的IP和端口 public static void Connect(string ip, int port, int MaxConnectTime) { try { // 创建一个新的TcpClient实例 tcpClient = new TcpClient(); // 尝试异步连接到指定的IP和端口,最多等待3000毫秒 if (!tcpClient.ConnectAsync(ip, port).Wait(3000)) { // 如果连接失败,则抛出一个异常 throw new Exception(string.Format("客户端连接在{0}:{1}失败", ip, port)); } else { // 连接成功,创建ModbusIpMaster实例 master = ModbusIpMaster.CreateIp(tcpClient); // 设置Modbus通信的读取超时时间为2000毫秒 master.Transport.ReadTimeout = 2000; // 设置Modbus通信的写入超时时间为2000毫秒 master.Transport.WriteTimeout = 2000; // 设置Modbus通信的重试次数为3次 master.Transport.Retries = 3; // 设置Modbus通信的重试等待时间为1000毫秒 master.Transport.WaitToRetryMilliseconds = 1000;