TCP方式连接
tcpClient = new TcpClient();
tcpClient.SendTimeout = 10;
tcpClient.ReceiveTimeout = 10;
IAsyncResult asyncresult = tcpClient.BeginConnect(IPAddress.Parse("192.168.4.99"), Convert.ToInt32("502"), null, null);
ModbusIpMaster ModbusMaster = ModbusIpMaster.CreateIp(tcpClient);
然后读取
ModbusMaster.ReadHoldingRegisters(1, 1, 10);
读取从站1,开始位置1,长度10个数据,一切正常。
写的时候
ModbusMaster.WriteSingleRegister(1, 1, 9)
或者
ModbusMaster.WriteMultipleRegisters(1, 2, new ushort[1]);
都返回同样的错误 {"无法从传输连接中读取数据: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。。"}
问题不难,但刚刚学习Modbus,实在找不到到底问题在哪。
不知道你这个问题是否已经解决, 如果还没有解决的话: