Наверно что-то я делаю не так. Проэмулировал modbus master+slave.

В одном окне:

root@hardbox:~/server/terminals/DiagSlave/linux# ./diagslave -a 16 -b 9600 -d 8 -s 1 -p none -m rtu /dev/ttyS0diagslave 2.12 - FieldTalk(tm) Modbus(R) Diagnostic Slave Simulator
Copyright (c) 2002-2012 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU
Slave configuration: address = 16, master activity t/o = 3.00
Serial port configuration: /dev/ttyS0, 9600, 8, 1, none

Server started up successfully.
Listening to network (Ctrl-C to stop)
............................

В другом окне:

root@hardbox:~/server/terminals/modpoll.3.4/linux# ./modpoll -m rtu -a 16 -r 1 -c 10 -t 3 -b 9600 -d 8 -p none /dev/ttyS0
modpoll 3.4 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2013 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU
Slave configuration...: address = 16, start reference = 1, count = 10
Communication.........: /dev/ttyS0, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, input register table

-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!