Режим сплошного чтения (регистр 114) - проблемы при записи

Вопрос перекочевал из чата. Думаю, будет полезно многим.

Обновившись на bullseye в поисках решения для увеличения скорости работы Modbus, приступил к записи “1” в регистр 114, ради чего и всё затевалось.
Первое моё удивление - после перегрузки по питанию регистры обнулились.
Ок, посмотрел в карту регистров - оказывается, надо записывать двойку, чтобы значение сохранялось.
Хорошо, давайте запишем двойки. Первые примерно 40 устройств (внешние устройства) всё шло гладко:
прочитано - “0”
записано - “2”
прочитано - “2”

Потом пошли щитовые устройства, с несколькими - всё было так же. Начались релейные модули WB-MR*:
прочитано - “0”
записана - “2”
прочитано - “1”
Что единицу, что двойку записываю - читаю “1”.

В итоге я написал в чат, там Александр подсказал, что так и должно быть: двойка должна “превращаться” в единицу. Я проверил: двойку перезагрузку по питанию устройства держат, а вот единицы (записанные через двойки) - обнуляются. Что-то не так.

В итоге по устройствам:

  1. записывается “2” - читается “2”, сохраняется после перезагрузки:
    WB-MAP3E (2.5.1), WB-MIO (1.6.0), WB-MCM8 (1.5.2), WB-MSW v.3 (4.29.5), WB-M1W2 (4.29.5).

  2. записываю “2” - читается “1”, обнуляется после перезагрузки:
    WB-MR6C v.2 (1.19.2), WB-MR6CU v.2 (1.19.2), WB-MDM3 (2.6.5).

На всех устройствах загрузчик - 1.2.2. На всякий случай уточню: устройств одного типа - несколько, датчиков - около 30, релейных модулей - около 20. Все они ведут себя одинаково.

Хотелось бы понять - какое в итоге поведение задумано?
Что я понял из карты регистров - “2” должна сохранять режим сплошного чтения регистров включенным после перезагрузки. Для устройств, которые превращают “2” в “1” - оно обнуляется. Соотвественно, “2”-ка ничего не сохраняет. Питание устройств у нас резервируется, конечно, но это всё равно не выход, питание иногда приходится отключать, ну и вообще - всякое бывает…

P.S. С большим нетерпением ждали стабильного релиза для обновления. Проблема была в детекции коротких нажатий входов, отвязанных от реле (сценарные и всякие мастер кнопки). Очередь опроса была слишком большая, несмотря на все попытки разграничить время опроса для каналов/входов с разным приоритетом. Выключатели сенсорные, в итоге короткие нажатия WB7 просто не успевал замечать в 3-х случаях из 4-х. Были разные мысли о замене на WBIO, разные “костыльные” решения, но надежда на обновление всё же была. Первые впечатление после обновления всего и вся после пары-тройки часов использования - чудо: проблема с выключателями исчезла, отклик мгновенный. Будем тестировать ещё, но пока эффект очень положительный. В очередной раз восхищаюсь командой Wirenboard!

Сообщаю, что с прошивкой 1.20.0 на устройствах WB-MR* проблема ушла - записывается двойка и читается двойка в 114-ый регистр.
Перезагрузку по питанию не проверяли, правда, надеюсь, всё ок.
На WB-MDM3 пока обновлений не было, проблема остаётся.

Должно быть исправлено в 2.6.5 прошивке. Какая стоит сейчас?

Прошивка - 2.6.5.
Причем на момент написания топика о проблеме такая прошивка и была, обновлений не было.
Сейчас попробовал обновиться принудительно, безрезультатно (записываю 2, читается 1):

Все остальные устройства из сообщения топика - читается двойка на текущий момент.

Думаю в понедельник отвечу.
У разработчиков узнаю.

На другом объекте сегодня столкнулись с такой же проблемой с устройством WB-MRGBW (прошивка 3.3.4).
Там же есть WB-MDM3 (2.6.5) - та же проблема, что и на предыдущем объекте.

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

Доброго дня!

Извините, я не совсем понял: что значит работает как и должно?
В устройствах WB-MRGBW (fw 3.3.4) и WB-MDM3 (fw 2.6.5) значение регистра 114 не сохраняется после перезагрузки по питанию. Так и должно быть?

Да, так и должно быть. В текущие версии прошивок еще не добавлено. Документацию - исправим.

1 лайк

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.