Переинит выходов после падения связи или питания

Привет.

Временами приходится задавать тупые вопросы, ответы на которые, может, будет иметь смысл добавить в вику…

Есть релейный модуль (или аналоговый выход, диммер там, пищалка), подцепленный по modbus или modbus over ip, или modbus/tcp. Удаленный выход, короче.
После падения питающей сети этот выход инициализируется, очевидно, в свое дефолтное состояние встроенным микроконтроллером модуля, и запросить текущее значение у головного контроллера не сможет, будучи для него слейвом. После просто падения связи - вероятно, остается в последнем состоянии, если в нем не имеется таймера на сброс по потере связи (wb-mwac например).

Внимание, идеологический вопрос. Мне (одному ли?) не хотелось бы иметь неопределенных состояний выходов ни при каком раскладе.

Должен ли wb-mqtt-serial, который отслеживает состояние слейвов, перезаписывать в них значения выходных регистров после падения и последующего восстановления связи?
Или это умнее поручить пользовательскому скрипту, который «пингует» шину и переиничивает выходы в таких случаях?

Спасибо.

Добрый день.

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

Да, идеологически - правильней. Для ответственных реле, например - сохранять состояния, анализировать meta “error” - и при необходимости восстанавливать.

Здравствуйте! У модулей реле MRxx, подключаемых по Modbus, есть возможность восстанавливать свое последнее состояние при включении:

Режим работы реле при возобновлении питания

Устройство запоминает состояние выходов при отключении питания.
Регистром 6 настраивается поведение при возобновлении питания:

  • 0 — все реле будут выключены.
  • 1 — реле восстановят свои состояния.
    Этот функционал появился в устройствах с версией прошивки от 1.5.3.
    Модуль реле WB-MR6C v.2 — Wiren Board
1 лайк

Если устройство ребутнулось по питанию и в нем есть мозги, оно встанет в свое дефолтное состояние. Если просто упала и затем поднялась связь - не встанет. В первом случае оно запишет, скажем, 0 в свой же топик (являющийся в экосистеме ведущим носителем информации), во втором промолчит.

А у wb-mwac вроде нету. Зато есть таймаут потери связи и действие на случай его выстрела.

Вопрос не так однозначен, как кажется. Надо всесторонне его обкурить и принять какое-либо детерминированное поведение, обязательное для всего исполнилова. Я так думаю.

Есть, 6 регистр как и у реле.
Ну и таймаут (8 регистр) тоже есть что у реле что у MWAC.

Тут надо ветвить логику:

  • может ли реле менять свое состояние по автономным входам?
    ** если да - то на контроллере в случае обнаружения пропадания связи: (что делать)

  • реле управляется только с контроллера: при пропадании-восстановлении проверять, соответствует ли состояние реле сохраненному, если нет - восстанавливать.

…и таки кто должен это делать, ибо имеется хорошее такое поле для непредсказуемого поведения.
Я в основном об этом.