Сначала после обновления все заработало нормально.
Через неделю начало глючить реле MRPS6 - срабатывало через раз, затем через три раза, затем перестало совсем.
Полез разбираться и совсем запутался. Реле не видится на шине. Возможно умерло. Но в логах serial драйвера творится вот такое:
|21-06-2023 22:27:16.643 [wb-mqtt-serial]|WARNING: </dev/ttyRS485-2 9600 8 N 2>: closed due to repetetive errors|
|21-06-2023 22:27:07.498 [wb-mqtt-serial]|WARNING: </dev/ttyRS485-2 9600 8 N 2>: closed due to repetetive errors|
|21-06-2023 22:27:00.443 [wb-mqtt-serial]|WARNING: </dev/ttyRS485-2 9600 8 N 2>: closed due to repetetive errors|
|21-06-2023 22:26:52.781 [wb-mqtt-serial]|WARNING: </dev/ttyRS485-2 9600 8 N 2>: closed due to repetetive errors|
|21-06-2023 22:26:44.431 [wb-mqtt-serial]|WARNING: </dev/ttyRS485-2 9600 8 N 2>: closed due to repetetive errors|
При этом еще 2 устройства на этой же шине работают.
Пробовал отключить с шины все устройства - ошибка не уходит.
Пробовал оставить одно реле и попинать его modbus_client-ом, не получается, оно не видится.
НО! modbus_client так же странно считывает данные с работающих устройств. Например читает из регистров 128 вместо адреса нули:
root@wirenboard-AGOS7GPV:/usr/bin# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a11 -t0x03 -r128
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[0B][03][00][80][00][01][85][48]
Waiting for a confirmation…
<0B><03><02><00><00><20><45>
SUCCESS: read 1 of elements:
Data: 0x0000
Итого проблем 3: 1. Не работающее реле - как понять что оно вышло из строя? 2 - постоянные ошибки на шине 485. (На другой шине где подключено еще одно устройство ошибок нет.). 3 - Что я неправильно делаю с modbus_client (раньше вопросов не было).
Я что-то совсем запутался, подскажите в каком направлении искать:)
Вы отключаете устройства физически + убираете из из конфигурации, а ошибка остается? Или как? Если на порту не описано ни одно устройство, он ничего опрашивать не будет, и ошибки быть не должно.
Помогло!
Сбросил, обновил прошивку, установил те же параметры и заработало.
Спасибо!
Напрягу вас еще одним вопросом:
Несмотря на то что все устройства работают, в логи сыплются ошибки чтения-записи:
22-06-2023 23:31:41.583 [wb-mqtt-serial]
WARNING: [modbus] failed to read 2 holding(s) @ 1 of device modbus:103: Serial protocol error: request timed out
22-06-2023 23:31:21.597 [wb-mqtt-serial]
WARNING: [modbus] failed to read 2 input(s) @ 0 of device modbus:11: Serial protocol error: request timed out
Такие.
Это не wirenboard устройства. 103 это датчик влажности почвы, а 11 - электросчетчик. Оба с Алиэкспресс. При этом они вполне работают.
В чем может быть причина?
Это значит, что устройство в ответ на запрос за заданное время не ответило. Такое может быть из-за качества линии связи (д.б. витая пара, без ответвлений), при наличии помех (например, неэкранированный кабель проложен параллельно силовому, незаземленный экран экранированного кабеля), при отсутствии терминаторов на концах линии, при невысоком качестве Modbus устройства… Если из трех (условно) запросов устройство отвечает на одно - связь с ним фактически есть, и данные приходят, но такие сообщения в логи будут сыпаться.