Так, проверил на 4.11. Ну и на актуальной, 4.22
Читаю coil “воспроизведения”, десяток:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><00><00><71><F8>
SUCCESS: read 10 of elements:
Data: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
При этом банки - пустые:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x03 -r5400 -c 10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][03][15][18][00][0A][44][50]
Waiting for a confirmation...
<37><03><14><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><5F><F8>
SUCCESS: read 10 of elements:
Data: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
Запускаю “воспроизведение” из младшего, точно пустого банка:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Хм. При пустом банке “1” не сбрасывается. Ну и позволяет записать “воспроизведение” еще в один, а вот такого быть не должно:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x05 -r5101 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][05][13][ED][FF][00][1D][1D]
Waiting for a confirmation...
<37><05><13><ED><FF><00><1D><1D>
SUCCESS: written 1 elements!
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><03><00><71><08>
SUCCESS: read 10 of elements:
Data: 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Так, попробую “запись”:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x05 -r5300 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][05][14][B4][FF][00][CC][7A]
Waiting for a confirmation...
<37><05><14><B4><FF><00><CC><7A>
SUCCESS: written 1 elements!
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5300
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][14][B4][00][01][BD][8A]
Waiting for a confirmation...
<37><01><01><01><9F><C0>
SUCCESS: read 1 of elements:
Data: 0x01
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5300 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][14][B4][00][0A][FC][4D]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><03><00><71><08>
SUCCESS: read 10 of elements:
Data: 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
То есть я нашел баг, не сбрасывается coil “воспроизведение” если банк пуст. Но все по прежнему читается…
И в логе
именно ошибок при чтении со 118 устройства не нашел.
Так, подскажите, как воспроизвести?