我正在运行以下modbus从站模拟器http://www.modbusdriver.com/diagslave.html以及以下modbus轮询器http://www.modbusdriver.com/modpoll.html。奇怪的是,我不能让他们发现彼此。这是从模拟器的输出
Protocol configuration: Modbus RTU
Slave configuration: address = -1, master activity t/o = 3.00
Serial port configuration: /dev/ttyS0, 19200, 8, 1, even
Server started up successfully.
Listening to network (Ctrl-C to stop)
....................
以下是modbus轮询器的输出。
Protocol configuration: Modbus RTU
Slave configuration...: address = 1, start reference = 1, count = 1
Communication.........: /dev/ttyS0, 19200, 8, 1, even, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
正如您所看到的,modbus从站模拟器以及modbus轮询器都具有相同的值,应该能够找到彼此。然而,他们不能发现奇怪的事情。有没有人对可能发生的事情有任何建议?
答案 0 :(得分:0)
超时可能有多种原因,例如
从属设备中不存在您的轮询的寄存器地址(同时检查您要轮询的寄存器类型是否正确)
从站和接口之间尚未建立连接。主设备(这可能是由于配置了从设备和主设备端口接口不正确)。
同时检查串行链路是否已物理连接到两端正确的引脚(从站和主站)。
- 检查在主设备上设置的超时时间。您可能已将其设置为非常低的值,因此错过了来自奴隶的响应。
希望这有帮助。