WB-MWAC safety timer - wth?

У меня с 0 в этом регистре уже сутки не глючило. Продолжаю наблюдение.

Воспроизвести пока не удалось. Более 2х часов тестировал с Safety Timer = 3600 c, более 3х часов с Safety Timer = 5 c. Реле самопроизвольно не отключались.

Что будем делать? Устройство не выглядит неисправным, кроме этого глюка.

Проверьте работу с разными значениями Safety Timer (5 c, 10 c, 100 c)?
Какая версия прошивки модуля MWAC? Сбрасывается ли Uptime при отключении выходов?
Значение Desired poll interval (ms) для порта случайно не больше Safety Timer?

На случай проблем с питанием можно установить режим работы с восстановлением состояния выходов при включении (в регистр 6 holding записать 1).

Будет лишний - проверю. На данный момент все в бою, еще десяток в закупе.
Проверяю сейчас на подключенном напрямки, из той же партии.
Опрос - 2с (см.выше), ошибок не валится, питалово/сеть стабильны. Версию сейчас достану уже. Регистр сохранения выхода при рестарте - установлен в 1. Рестартов не было. Канал выключается сам, о чем сообщает в mqtt.

О, а по серийнику не можете версию достать? Он виден, 4273965783. Не апгрейдил.

Другое устройство, напрямую на порту 485-iso, не вырубилось после таймаута 11с. Поставил 3600, жду.

Посмотрите, пожалуйста, про “ERRMR02: Безопасный режим отключает реле независимо от обмена по modbus” здесь:WB-MWAC: Errata — Wiren Board
Может, это ваш случай? Рекомендовал бы обновить прошивку модуля до последней.

Вообще-то ваш.
Да, похоже. Блин.

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

Это будет непросто на живом узле, да еще за конвертором. Заменю лучше.
Спасибо за помощь.

И, чтоб дважды не вставать, cпрошу: а вот ваш протокол 485 поверх IP - он имеет какие-то большие преимущества относительно обычного виртуального уарта (socat et al)? С ним физическое взаимодействие головы и модулей превращается в серьезную боль.

Второй на этом узле тоже отвалился через час.
Причем, согласно еррате, он еще и зависнуть должен через полтора месяца. Попадос.

Не даете скучать, ага.

Serial over TCP (Modbus RTU over TCP) делает то же, что может и socat - добавляет обертку от TCP/IP для пакетов RTU при передаче и убирает ее при приеме.

Так вот - зачем он нужен? Чем лучше просто виртуальных портов, через которые и регистр можно скоренько записать, и фирмварь обновить (см. соседнюю ветку)? Выглядит неким костылем, но, раз придумали, причина-то должна быть?

Улучил момент обновить модуль, сидящий на шине контроллера, глюк ушел, проблема была именно в фирмвари.

Таки прошу ответить о преимуществах 485-over-ip, если они есть. Если нет, наверное, проще и умнее поставить socat в инит и пользовать удаленные порты как местные? не?

К сожалению, проблема не ушла, но растянулась. В промежутке между сутками и двумя релейка снова погасла.
Условия по корму и аптайму прежние, модуль присоединен напрямую к rs485-iso, грешить на локалку уже не получится. После прошивки не перезагружал mwac, не в этом ли проблема? Счетчики идут как шли, не обнулялись.

Давайте уже решать как-то.

Таки прошу ответить о преимуществах 485-over-ip, если они есть. Если нет, наверное, проще и умнее поставить socat в инит и пользовать удаленные порты как местные? не?

Это по сути одно и то же. Настройка в конфигурации TCP port (Serial over TCP) также реализует обмен через виртуальный порт. Для полного контроля, гибкости и интеграции это реализовано собственным драйвером wb-mqtt-serial.

Про MWAC. Перезагрузка необязательна, но попробуйте перезагрузить устройство на всякий случай. Прошивка точно записалась?
Покажите, пожалуйста, вывод команды (измените адрес устройства и настройки порта на актуальные):

service wb-mqtt-serial stop
echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r250 -c6 | grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`

Попробуйте с разными значениями Safety Timer: 5 с, 10 с, 100 с. Как ведет себя реле?
Какое значение в регистре Uptime? Изменяется ли значение регистра Uptime после отключения реле?

Еще раз - у меня нет запасного модуля и пока что времени. Если и то и это есть у вас - прошу, подергайте плз. Эта бага - из разряда влияющих на имидж…

Прошла еще пара суток. Не выключилось. Получается, после записи 3600 в safety timeout и отвала по неясным причинам, следующее включение уже не глючит (проверим).

Тестировал у себя 3,5 суток с Safety Timer = 50 c. Никаких проблем не обнаружил. При остановке драйвера реле выключаются точно через заданное время.
Не может ли это быть как-то связанным с темой Wb-rules check failed, reload wb-rules ?

Да, я тоже на это подумал, но - недоказуемо. Тем и неприятны блуждающие ошибки.