Rea*_*ter 5 c# modbus tcpclient
我正在使用 nmodbus 库(从 Google 代码下载)通过 TCP 进行 modbus rtu 通信。
我正在使用硬件(RS485 到以太网转换器)将我的 modbus over RTU 请求转换为 TCP,反之亦然。
如果我发送请求并且 modbus 设备处于活动状态,则一切正常,但是如果我发送请求并且 modbus 设备未处于活动状态,则我的 tcpclient 连接会自动关闭,我希望它保持打开状态并抛出超时异常,但这没有发生。
我已经正确设置了超时值,但仍然没有结果。
我的示例伪代码如下
using (TcpClient _client = new TcpClient(ipAdd, 1025))
{
_client.NoDelay = true;
ModbusSerialMaster _device = ModbusSerialMaster.CreateRtu(tcpObj);
_device.Transport.ReadTimeout = 1000;
_device.Transport.WriteTimeout = 1000;
_device.ReadInputRegisters(meterID, startAdd, register);
}
Run Code Online (Sandbox Code Playgroud)
我已经使用modbus模拟器(Pollscan,modbus poll)验证了转换器和modbus硬件的功能
我相信我在设置 tcpclient 的属性时犯了一些错误,但不确定到底是什么。
任何建议、意见都非常值得赞赏。