Долго поднимается опрос встроенных модулей при старте

WB7.3.4. На борту модули ввода WBIO-DI-WD-14 и вывода WBIO-DO-SSR-8.
Исполнительная система MS4D 1.3.3.16440.
При включении ПЛК входы модуля WBIO-DI начинают опрашиваться с задержкой в секунд 5-10. Всё это время алгоритм уже в работе и у объектов срабатывают ошибки.
Проблема возникает при подаче питания. Если загружать ППО в ПЛК, то модули после загрузки поднимаются сразу же.
Есть решение данной проблемы?

Добрый день.
Пришлите диагностический архив, версию ПО контроллера.
Совсем не понял вашу проблему. Укажите, где установлена Master SCADA. На отдельном сервере или на самом контроллере?

Уточните, с задержкой 5-10 сек. от чего?

Алгоритм где “крутится”?

Как я понял проблема проявляется только при подаче питания, а при перезагрузке нет? Или неверно понял?

приложен диагностический архив, доступен только сотрудникам поддержки
(256,6 КБ) - перезагрузка по питанию ~ в 15:00

MasterScada установлена на контроллере.

5-10 сек с момента запуска исполнительной системы. В момент включения к ПЛК подключена панель HMI и среда разработки MS4D, в которой вижу состояние входов (все false), а после 5-10 сек входы принимают фактическое состояние.
В алгоритме ПЛК работают таймауты, длинной 2 секунды и формируется ошибка оборудования, потому что все входы были в false некорое время с момента включения ПЛК.

Алгоритм крутится в ПЛК.

Проблема проявляется при подаче питания и при перезагрузке штатно (через WEB-GUI). Но при перезагрузке исполнительной системы (при загрузке проекта) проблем нет.

Думается, что исполнительная система запускается раньше, чем опрос модулей.

Да, так как обработкой входов-выходов занимается сервис wb-mqtt-gpio, у него в зависимостях брокер mosquitto. То есть - фактические значения доступны уже после его запуска.

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

Может более правильным будет запускать пользовательское приложение только после запуска всех сервисов?
Как бы ПЛК Industrial.

Да, отправлю разработчикам МастерСкады.

День добрый!
Ответ МПСофт:
На текущий момент выставить задержку для основной задачи невозможно. Мы уточним вопрос у разработчиков, но в ближайшее время это не будет реализовано, если возможно в целом. Рекомендуем Вам выставить задержки просто в самих алгоритмах и в дальнейшем работать с ними.

Прошу взять вопрос на рассмотрение. Писать задержки внутри алгоритма - это костыль.
То, как себя ведет ПЛК - это, как минимум, не правильно. Пользовательское приложение должно быть запущено только после запуска всех сервисов, интерфейсов и периферий ПЛК.

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

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

сервиса mplc?

Да, его. Как один из вариантов.

Что для этого надо сделать?

Для этого можно, например, настроить в службе mplc запуск после wb-mqtt-gpio и mosquitto. Если данная настройка приводит к тем же проблемам, то тогда можно попробовать настроить запуск службы mplc через механизм таймеров запуска службы.

Можно получить от вас инструкцию как это сделать?

Готовой инструкции у меня нет, т.к. конкретно для MS4D подобной настройки не приходилось делать.
Одна из первых ссылок в интернете для подобной настройки.

Для справки.
В mplc 1.3.8 добавили настройку при инсталляции --use-systemd: “Отключает генерацию скрипта init.d и активирует генерацию скрипта systemd. Вместо конфигурационного файла init.d для запуска RT будет использоваться systemd.” Wiki
После переустановки mplc становится доступен /etc/systemd/system/mplc4.service
Корректную работу mplc в такой конфигурации удалось получить с версии прошивки wb-2404 и выше.