Самопроизвольно изменяется счетчик срабатывания входа MR6C

У меня есть “вынос” с MR6C через WB-MGE. Так вот, перезагрузка WB, когда он ещё не загрузил web/ssh и не отвечает по mqtt внешним устройствам, но уже “пингуется”, это событие вызывает срабатывание реле***.

На моём примере.
Cрабатывает правило:

defineRule("input_MR6C_COUNT2", {
  whenChanged: "wb-mr6c_132/Input 2 counter",
  then: function (newValue, devName, cellName)  {
      dev["wb-mr6c_132"]["K4"] = !dev["wb-mr6c_132"]["K4"];
  }
});

Соответственно, пока не увеличится счётчик и не сработает вновь.

Что видно в /var/log/messages:

  1. В 05:28:41 старт устройства (в этом случае устройство именно перезагрузилось, а не просто упавший wb-rules):
Feb 26 05:28:41 trailer-wb6 systemd-fsck[99]: rootfs: clean....
[cut]
Feb 26 05:29:42 trailer-wb6 wb-rules[2037]: INFO: /usr/share/wb-rules/load_alarms.js is NOT under source root /etc/wb-rules
Feb 26 05:29:42 trailer-wb6 wb-rules[2037]: INFO: all rule files are loaded
[cut]
Feb 26 05:29:55 trailer-wb6 wb-mqtt-serial[2066]: INFO: [modbus] Init: Restore Last Outputs State After Power On: setup register <modbus:132:holding: 6> <-- 0 (0x0)
Feb 26 05:29:55 trailer-wb6 wb-mqtt-serial[2066]: INFO: [modbus] Init: disable legacy input mode control: setup register <modbus:132:holding: 5> <-- 0 (0x0)
  1. В 05:29:06 сработало правило по whenChanged: “wb-mr6c_132/Input 2 counter” (log(" … ") специально добавлен в одно из правил для ловли “блох”).
Feb 26 05:29:56 trailer-wb6 wb-rules[2037]: INFO: [rule info] debug counter 2 change. newValue: 32/32

Физически никто ничего не замыкал (кнопкой). Электропитание шлюза и модуля не пропадало. Значение счётчика = 32. Предыдущее значение (на случай дебага храню его в специально созданном dev.MR6C_132[‘count2’]), так же = 32.

  1. Устройство продолжает загрузку (132 – MR6C):
Feb 26 05:29:57 trailer-wb6 wb-mqtt-serial[2066]: INFO: [serial client] device modbus:132 is connected
  1. 05:30:05, спустя ~9 секунд вновь срабатывает правило по whenChanged: “wb-mr6c_132/Input 2 counter”:
Feb 26 05:30:05 trailer-wb6 wb-rules[2037]: INFO: [rule info] debug counter 2 change. newValue: 44/32

Соответствующее значение newValue = 44. Хранимое в dev.MR6C_132[‘count2’] = 32. Откуда увеличение на 12?.. Не понятно.

  1. Далее случается такое:
Feb 26 05:30:08 trailer-wb6 systemd[1]: wb-mqtt-serial.service: Main process exited, code=killed, status=4/ILL
Feb 26 05:30:08 trailer-wb6 systemd[1]: wb-mqtt-serial.service: Unit entered failed state.
Feb 26 05:30:08 trailer-wb6 systemd[1]: wb-mqtt-serial.service: Failed with result 'signal'.
Feb 26 05:30:09 trailer-wb6 systemd[1]: wb-mqtt-serial.service: Service hold-off time over, scheduling restart.
[cut]
Feb 26 05:30:43 trailer-wb6 systemd[1]: Started Initialize Wiren Board on successful boot.
  1. Ииии… По второму кругу. Срабатывает Input counter:
Feb 26 05:30:43 trailer-wb6 wb-rules[2037]: INFO: [rule info] debug counter 2 change. newValue: 32/32
[cut]
Feb 26 05:30:45 trailer-wb6 wb-mqtt-serial[7128]: INFO: [serial client] device modbus:132 is connected
  1. Вновь сработал:
Feb 26 05:30:48 trailer-wb6 wb-rules[2037]: INFO: [rule info] debug counter 2 change. newValue: 44/32

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

*** Так как есть возможность наблюдать за работой реле (камеры/архив - реле работает на свет, световой сигнал, насосы), могу сообщить:

  1. Реле wb-mr6c_132/K4 (по Input 2 counter) включилось (до перезагрузки оно было выключено) в ~05:30:06, что очень близко по времени с п. 4.
  2. В~05:30:49 резе отключилось, что близко по времени к событию из п.7.

Итого в сухом остатке: в этом конкретно случае Input 2 counter сработал аж четыре раза, но команда изменения состояния до реле добралась всего два ВКЛ-ВЫКЛ (43 секунды)

Так что, всякое возможно…

Перенес ваше сообщение в другую тему, чтобы лучше разобраться в проблеме.
Спасибо за описание. Как я понял, перезагрузка контроллера приводит к изменению счетчика срабатывания входов модуля реле, подключенного после MGE. Это довольно странно.

Чтобы корректно воспроизвести проблему, опишите, пожалуйста, минимальную конфигурацию оборудования, с которой данная проблема воспроизводится, и минимальное правило, с которыми данная проблема присутствует. Опишите по шагам, что вы делаете, что ожидаете и что получаете. Мы соберем тестовый стенд и попробуем воспроизвести проблему.

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

1 лайк

Хорошо.
Как только получится это решить, попробую найти окошко для перезагрузок связки.
Условно, за MGE там такой набор устройств:
31 - MSW2
77 - MRM2-mini
93 - MAP3E
104 - MAI2-mini
110 - M1W2
132 - MR6C
156 - M1W2

По версиям сейчас не подскажу, информация не под рукой.
А что я делаю - да ничего. Всё, что я делаю - наблюдаю за происходящем, кода обращаю на это внимание.

А боковые модули ввода-вывода к контроллеру подключены? Если да, то какие и в каком порядке? Если есть возможность, то пришлите хотя бы архив с диагностической информацией контроллера.