WB-MR14 не читаются регистры

Всем привет!

После 9 лет работы перестали читаться регистры в subj.

Запись проходит нормально, на изменение состояния входа реле реагирует, но состояние входа и в интерфейсе и в mqtt не меняется.

В mqtt у всех линий выставлен meta/eror r= 1.

Вопрос: похоже, проблема аппаратная. Как можно починить за несколько дней (больше у меня нет) ? Смотреть конденсаторы? Что-то ещё типичное для таких ситуаций?

Здравствуйте! Я — автоматический помощник техподдержки Wiren Board.
Сейчас нерабочее время — я постараюсь помочь сразу, а в ближайший рабочий день
инженеры посмотрят тему и ответят.

По этим симптомам аппаратная неисправность пока не подтверждается. Реакция реле на локальный вход не проверяет обратную связь по RS-485. Важно уточнить: под «запись проходит» вы имеете в виду, что реле физически переключается по команде из веб-интерфейса?

Подтверждённого типового дефекта WB-MR14 с такими симптомами и рекомендацией заменить конденсаторы в найденных источниках нет. Паять наугад пока не советую; срок ремонта без диагностики оценить не получится.

Чтобы быстро сузить причину:

  1. Пришлите лог опроса — нужно отличить отсутствие ответа от ошибки Modbus:
    journalctl -u wb-mqtt-serial -n 200 --no-pager
    
  2. Укажите модель контроллера, ревизию MR14 с наклейки и релиз:
    cat /etc/wirenboard-release
    
  3. Напишите, были ли перед отказом обновления, изменения конфигурации или работы на линии, и читаются ли другие устройства на том же RS-485.

Здесь может понадобиться мнение инженера Wiren Board. Для уверенного
ответа мне может не хватить контекста — если можете, приложите логи или
результаты тестов, я уточню гипотезы точнее.

Примечание: я — ИИ-ассистент, а не сотрудник-человек; в ответе возможны
неточности. Если пришлёте уточняющие данные/логи, я смогу проверить
гипотезы точнее.

Лог примерно такой:

сен 08 12:30:49 wirenboard-ABF3WASM serial[1336]: device modbus:13 disconnected
сен 08 12:30:49 wirenboard-ABF3WASM serial[1336]: ModbusRTU::ReadRegisterRange(): failed to read 1 holding(s) @ 8 of device modbus:13: Serial protocol error: malformed response: invalid data size
сен 08 12:30:50 wirenboard-ABF3WASM serial[1336]: device modbus:13 disconnected

На том же канале Modbus сидит MRM2-mini и прекрасно работает.

А вот WB-MR14 не читается. Хотя пишется нормально: и через веб интерфейс и через mqtt реле щелкает.

Wirenboard 5.8 прошивка 202202041906

Debian stretch ядро 4.9.22

Наклейка реле 191203/2

Прошивку сбойного реле узнать по понятным причинам нет возможности, но у соседнего точно такого же, обновленного в то же время чтои сбойное стоит Apr 20 201815:40:08

Спасибо, теперь понятно: команды по RS-485 до MR14 доходят и исполняются. Ошибка malformed response: invalid data size означает, что драйвер получил ответ с некорректным размером данных, а не просто не дождался ответа. Это ещё не определяет, виноваты ли электроника модуля, обмен на линии или обработка ответа.

В похожей теме про WB-MR14 при ошибках чтения ручной опрос работал; инженеры проверяли настройки порта и отладочный обмен. Поэтому замену конденсаторов и обновление прошивки пока лучше отложить.

Сейчас полезнее всего:

  1. Пришлите конфигурацию проблемного порта из /etc/wb-mqtt-serial.conf и версию драйвера:
    dpkg -s wb-mqtt-serial
    
  2. Включите ненадолго отладку по инструкции wb-mqtt-serial, снимите лог и затем отключите её:
    journalctl -u wb-mqtt-serial -n 200 --no-pager
    
    Нужны строки отправленных и принятых байтов вокруг ошибки чтения и одной команды переключения безопасной нагрузки.

По этим пакетам можно будет проверить, что именно не совпадает в ответе, и подготовить ручной тест под ваш порт. Версию соседнего реле пока считаем лишь ориентиром, а не подтверждённой версией сбойного.

Примечание: я — ИИ-ассистент, а не сотрудник-человек; в ответе возможны неточности. Если пришлёте уточняющие данные/логи, я смогу проверить гипотезы точнее.

Эх железка ты кремниевая! Ну раз другие устройства на том же порту работают, значит порт не проблемный.

Раз команды на запись проходят, стало быть и с параметрами коммуникации все хорошо, так ведь?

Кстати, они 115200 N 8 2.

Скорость была выставлена много лет назад и работало все нормально.

Вы правы: я слишком широко предложил проверять порт. Работа остальных устройств и исполнение команд MR14 делают неверные параметры связи маловероятной причиной, особенно после многолетней работы на 115200 8N2. Менять их сейчас оснований нет.

Но щелчок реле подтверждает получение команды модулем, а не получение контроллером корректного ответа на запись. Поэтому неисправность передачи со стороны MR14 пока не исключена. Работа соседнего устройства также не проверяет передатчик самого MR14.

Следующий полезный шаг — только короткий отладочный лог чтения и записи, о котором писал выше. Он нужен не для повторной проверки скорости, а чтобы увидеть: ответ на запись действительно корректный или команда исполняется, но ответ тоже повреждён. Это поможет сузить поиск; по одной строке invalid data size выбрать компонент для замены нельзя. Подтверждённых данных о типовом дефекте конденсаторов с таким проявлением я не нашёл.

Здесь может понадобиться мнение инженера Wiren Board. Для уверенного
ответа мне может не хватить контекста — если можете, приложите логи или
результаты тестов, я уточню гипотезы точнее.

Примечание: я — ИИ-ассистент, а не сотрудник-человек; в ответе возможны неточности. Если пришлёте уточняющие данные/логи, я смогу проверить гипотезы точнее.

Зависит от количества ошибок. Ну и не раз наблюдалось что устройство команду получает а ответ приходит испорченный, из-за неконтакта, например.

Можете проверить, подключив MR14 единственным устройством прямо к контроллеру коротким проводом. Если модуль корректно работает, причина была в линии.

Если нет — снимите обмен через modbus_client --debug по разным типам регистров и пришлите полный журнал journalctl -u wb-mqtt-serial.

По ремонту, к сожалению, подсказать не смогу(