Мне кажется, я понял как воспроизвести ошибку:
Вот лог, когда на слейве 16 регистров
01-03-2024 09:10:16.898 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 03 0c 0c a4 0c 9e 0c c2 0c c2 00 00 00 e7 2f a5
01-03-2024 09:10:16.852 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:10:16.850 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 02 00 06 7a 19
01-03-2024 09:10:16.849 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:10:16.835 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726985: Wait until 254727000
01-03-2024 09:10:16.735 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726885: Wait until 254727000
01-03-2024 09:10:16.634 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726785: Wait until 254727000
01-03-2024 09:10:16.543 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726684: Wait until 254727000
01-03-2024 09:10:16.434 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726584: Wait until 254727000
01-03-2024 09:10:16.434 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726584: Wait until 254727000
01-03-2024 09:10:16.340 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726484: Wait until 254727000
01-03-2024 09:10:16.241 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726384: Wait until 254727000
01-03-2024 09:10:16.139 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726284: Wait until 254727000
01-03-2024 09:10:16.040 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726184: Wait until 254727000
01-03-2024 09:10:15.942 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726084: Wait until 254727000
01-03-2024 09:10:15.942 DEBUG: [serial port driver] channel '1' of device 'wb-modbus-0-1' <-- 3240
01-03-2024 09:10:15.942 DEBUG: [register] new val for <modbus:128:holding: 1>: ca8
01-03-2024 09:10:15.942 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 03 0c 0c a8 0c a2 0c 9c 0c c0 0c c0 00 00 94 d7
01-03-2024 09:10:15.892 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:10:15.892 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:10:15.892 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 01 00 06 8a 19
01-03-2024 09:10:15.892 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:10:15.892 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254726040: Wait until 254726040
01-03-2024 09:10:15.892 DEBUG: [serial port driver] channel '0' of device 'wb-modbus-0-1' <-- 3245
01-03-2024 09:10:15.892 DEBUG: [register] new val for <modbus:128:holding: 0>: cad
01-03-2024 09:10:15.892 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 03 0c 0c ad 0c a8 0c a2 0c 9c 0c c0 0c c0 f1 25
01-03-2024 09:10:15.852 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:10:15.852 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 00 00 06 db d9
01-03-2024 09:10:15.849 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:10:15.849 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:10:15.844 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725994: Wait until 254726000
01-03-2024 09:10:15.744 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725894: Wait until 254726000
01-03-2024 09:10:15.643 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725794: Wait until 254726000
01-03-2024 09:10:15.544 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725693: Wait until 254726000
01-03-2024 09:10:15.443 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725593: Wait until 254726000
01-03-2024 09:10:15.353 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725493: Wait until 254726000
01-03-2024 09:10:15.243 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725393: Wait until 254726000
01-03-2024 09:10:15.143 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725293: Wait until 254726000
01-03-2024 09:10:15.043 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725193: Wait until 254726000
01-03-2024 09:10:15.043 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725193: Wait until 254726000
01-03-2024 09:10:14.946 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254725093: Wait until 254726000
01-03-2024 09:10:14.946 DEBUG: [serial port driver] channel '5' of device 'wb-modbus-0-1' <-- 3262
данные вроде обновляются, но посмотрите как это происходит - контроллер формирует запрос на считывание 6 регисров и перебирает стартовый адрес. И записывает изменение только этого регистра.
А теперь на слейве только 6 регистров
01-03-2024 09:14:37.325 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:14:37.307 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 04 00 06 9a 18
01-03-2024 09:14:37.307 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:14:37.307 DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
01-03-2024 09:14:37.307 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254987438: Wait until 254987438
01-03-2024 09:14:37.307 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 83 02 90 d9
01-03-2024 09:14:36.233 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:14:36.228 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 03 00 06 2b d9
01-03-2024 09:14:36.228 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:14:36.228 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254986378: Wait until 254986378
01-03-2024 09:14:36.228 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254986378: Wait until 254986378
01-03-2024 09:14:36.228 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 83 02 90 d9
01-03-2024 09:14:35.178 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:14:35.178 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 02 00 06 7a 19
01-03-2024 09:14:35.178 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:14:35.178 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254985315: Wait until 254985315
01-03-2024 09:14:35.178 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 83 02 90 d9
01-03-2024 09:14:34.129 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:14:34.129 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 01 00 06 8a 19
01-03-2024 09:14:34.129 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:14:34.129 DEBUG: [port] /dev/ttyRS485-1: Sleep 10 us
01-03-2024 09:14:34.129 DEBUG: [serial client] </dev/ttyRS485-1 115200 8 N 1>254984259: Wait until 254984259
01-03-2024 09:14:34.129 DEBUG: [serial port driver] channel '0' of device 'wb-modbus-0-1' <-- 3492
01-03-2024 09:14:34.129 DEBUG: [register] new val for <modbus:128:holding: 0>: da4
01-03-2024 09:14:34.129 DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 80 03 0c 0d a4 0d 9f 0d 99 0d 93 0d b7 0d b7 ef 01
01-03-2024 09:14:33.062 DEBUG: [port] /dev/ttyRS485-1: Sleep 695 us
01-03-2024 09:14:33.061 DEBUG: [port] /dev/ttyRS485-1: Write: 80 03 00 00 00 06 db d9
контроллер так же пытается перебрать регистры, но после 0 адреса получает ошибку и соответственно, другие регистры не обновляет