Восстановление состояний выходов

Здравствуйте, к контроллеру WB7 подключены модули WBIO-DO-R10A-8, с помощью wb-rules или просто в web интерфейсе задаются состояния выходов этих модулей, при выключении контроллера и последующем запуске эти состояния сохраняются. Как изменить такое поведение?

Добрый день.
Как раз состояния выходов WBIO не сохраняются. Опишите пожалуйста подробнее что делаете (настраиваете) и что ожидаете.

Проверил на чистом контроллере, никаких настроек и правил. После перезагрузки контроллер включает выходы, которые были включены до перезагрузки. Включает реально, не только ползунки в web интерфейсе. Не получается загрузить видео, выдает ошибку, как еще можно отправить?

Видео не нужно, в конфиге /etc/mosquitto/mosquitto.conf включен persistence?

Да, есть такое. Необходимо отключить?

Да, отключите и перезапустите брокер (или контроллер).

Изменил конфиг, перезагрузил контроллер, не помогло.

обновите контроллер до актуальнго релиза, дайте диагностический архив - буду воспроизводить.

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

У коллеги дома та же проблема.


diag_output_AG3AW5BK_2022-09-05-16.29.57.zip (129.1 КБ)

Так, и еще - состояния именно восстанавливаются после включения выключенного контроллера или просто не меняются при перезагрузке?

Проверил еще раз, это происходит в любом случае.

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

Есть какие-либо результаты? У нас проект приостановился.

Добрый день.
сервис wb-mqtt-gpio сохраняет актуальные состояния в /var/lib/wb-mqtt-gpio/libwbmqtt.db и при (пере)запуске читает их оттуда.
А что за задача? это поведение в актуальном релизе не настраивается.

Управление движением транспорта (реверсивным) через КПП предприятия с визуализацией на рабочем месте управляющего. При запуске после отключения электричества все светофоры должны гореть красным.

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

Однако контроллер куплен, щит собран, софт почти налажен. Давайте решать проблему.

Создал багрепорт.

Напишите правило для сброса состоянии на необходимое при запуске контроллера.

Да, тоже как вариант. Ну или (проще) удаление файла до запуска wb-mqtt-gpio, можно в его же стартовом скрипте описать.

Я не просто так обратился в техподдержку, решение в виде “костыля” сделать можно. Вы предлагаете правилом перезаписать состояние выходов, однако есть вероятность, что wb-mqtt-gpio успеет их установить в прежнее состояние до того, как правило выполнится. В нашем случае ничего страшного не случится, светофоры включатся в прежнее состояние и сразу же переключатся в нужное (все красные).

На производстве есть задачи где такое поведение контроллера может привести к разрушению линии и даже к гибели людей. Я понимаю, этому контроллеру там не место, но хочется чтобы ребята двигались в правильном направлении. :slightly_smiling_face:

В случае удаления файла командой из стартового файла сервиса - не успеет.

тут согласен.

Есть ли новости по теме?

Внес изменения в файл /etc/systemd/system/wb-homa-gpio.service, вот его содержимое:

Это не решило проблему.