WB-MWAC v.1, FW 1.26.0: L2 остаётся постоянно включённым при сухом F2 после переключения режима 5→3→5

Здравствуйте.

Обнаружил странное поведение индикации на WB-MWAC v.1.

Оборудование:

  • модель: WB-MWAC v.1 (WBMWAC);

  • firmware: 1.26.0;

  • bootloader: 1.2.2;

  • Modbus-адрес: 154;

  • подключение через Modbus TCP gateway 192.168.232.201:502;

  • датчик протечки подключён к F2;

  • режим F2: HR13=5;

  • тип датчика: HR526=0, нормально открытый (NO).

Последовательность событий:

  1. На датчик F2 попала вода. Сработала авария, загорелся индикатор L2, краны закрылись.

  2. Пока датчик оставался мокрым, сбросил аварию:

./modbus_client --debug -mtcp -a154 -c1 -r2 \
  -t0x05 -o1000 -p502 192.168.232.201 0
  1. Открыл кран K1:
./modbus_client --debug -mtcp -a154 -c1 -r0 \
  -t0x05 -o1000 -p502 192.168.232.201 1
  1. Поскольку датчик долго оставался мокрым и авария срабатывала повторно, на время устранения временно отключил обработку F2:
./modbus_client --debug -mtcp -a154 -r13 \
  -t0x06 -o1000 -p502 192.168.232.201 3
  1. Полностью высушил датчик и вернул F2 в режим датчика протечки:
./modbus_client --debug -mtcp -a154 -r13 \
  -t0x06 -o1000 -p502 192.168.232.201 5

После этого возникло несогласованное состояние:

  • F2 показывал 0;

  • Alarm был 0;

  • Cleaning Mode был 0;

  • повторной аварии не происходило;

  • НО! индикатор L2 продолжал гореть непрерывно, не мигая;

  • повторная запись coil2=0 после высыхания датчика L2 не погасила.

Регистры устройства в этом состоянии:

coils 0..3 (K1, K2, Alarm, Cleaning) = [1,0,0,0]
discrete 0..5 (S1..S3, F1..F3)       = [0,0,0,0,0,0]
HR13                                  = 5
HR526                                 = 0
IR36, F2 Counter                      = 20, значение не менялось

Mapping-матрица F2:

HR416..423 = [4,4,8,0,0,0,0,0]

То есть при замыкании F2 должны отключаться K1/K2 и включаться Alarm; при размыкании действий нет.

Согласно документации, постоянно горящий L2 означает активный F2, а после высыхания ранее сработавшего датчика L2 должен мигать. Поэтому сочетание F2=0, Alarm=0 и постоянно горящего L2 выглядит недокументированным.

Удалось восстановить нормальное состояние следующим образом:

  1. Повторно перемкнул датчик F2.

  2. Сработала авария.

  3. L2 перешёл из постоянного свечения в мигание.

  4. Снова выполнил запись coil2=0:

./modbus_client --debug -mtcp -a154 -c1 -r2 \
  -t0x05 -o1000 -p502 192.168.232.201 0

После этого L2 погас, устройство вернулось в нормальное состояние.

Предполагаю, что состояние индикации L2 залипло из-за последовательности:

срабатывание мокрого F2
→ сброс Alarm при активном F2
→ HR13: 5→3
→ высыхание F2 в режиме 3
→ HR13: 3→5

Вопросы:

  1. Является ли это известной ошибкой firmware 1.26.0?

  2. Есть ли документированный способ очистить состояние L1–L3 без повторного срабатывания датчика, режима влажной уборки или перезагрузки устройства?

  3. Можно ли добавить обработку такого перехода, чтобы при включении режима 5 состояние индикатора заново синхронизировалось с фактическим состоянием входа?

  4. Нужны ли дополнительные регистры, логи или сведения о ревизии/партии устройства для воспроизведения?

Добрый день!

Благодарю за подробное описание!

Вышеописанное поведение пока не подходит под существующий список известных неисправностей.

Кроме этих регистров нет:

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

Да, уточните, пожалуйста, номер партии и серийный номер модуля.

И сообщите, вы управляете модулем без контроллера?

К сожалению, модуль сейчас смонтирован и довольно проблематично получить доступ к его торцу, чтобы прочитать эту информацию. Скажите, если это критически важно — я попробую что-то придумать.
По modbus я вижу следующие значения:
R270: 0x0002
R271: 0x6f94

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

Да, управляю без контроллера.

Благодарю! По серийному номеру я узнаю недостающую информацию и подготовлю ответ на ваш вопрос.

Добрый день!

Разбираюсь с вашим вопросом. Пробую воспроизвести.

К сожалению, на имеющимся у меня WB-MWAC v.2 mwac0 FW 1.26.0 не воспроизводится.

У вашего устройства верная сигнатура: wbmwacG – версия прошивки 1.26.0 должна подходить без ошибок. https://wiki.wirenboard.com/wiki/WB-MWAC\_:\_Changelog

Убедитесь, что вы верно выбрали прошивку – именно для сигнатуры wbmwacG : S3 Bucket Listing Generator

Передал багрепорт разработчикам.

Да, прошивка верная.

Я сейчас повторно несколько раз воспроизвёл проблему.
Минимальный сценарий такой:

  • Убедиться, что вход F2 в режиме 5
    ./modbus_client --debug -mtcp -a154 -r13 -t0x06 -o1000 -p502 192.168.232.201 5
  • Замкнуть датчик и не размыкать его
  • Сработает авария, загорится L2
  • Cбросить аварию
    ./modbus_client --debug -mtcp -a154 -c1 -r2 -t0x05 -o1000 -p502 192.168.232.201 0
  • Перевести вход F2 в режим 3 (датчик должен быть всё время замкнут, L2 всё ещё горит)
    ./modbus_client --debug -mtcp -a154 -r13 -t0x06 o1000 -p502 192.168.232.201 3
  • Разомкнуть датчик F2 — L2 остаётся гореть
  • Перевести F2 в режим 5 — L2 остаётся гореть, хотя я ожидаю, что он должен потухнуть, т.к. датчик разомкнут
    ./modbus_client --debug -mtcp -a154 -r13 -t0x06 -o1000 -p502 192.168.232.201 5

Благодарю! Добавлю к репорту!

Здравствуйте! Разработчики сообщили, что баг починили. Фикс доступен в прошивке 1.26.2 в testing.

Спасибо!