Есть проблема остановки ПЛК, да это бред, но лечится Button'ом в конфигураторе, так и живём матюкая.
Есть событие по которому можно сделать безопасное состояние выходов на ПЛК, нет проблем.
В этот же момент можно по modbus отправить выкл. выходов по RS485, уже знаем что конфигуратор живёт своей жизнью, даже после сброса ПЛК)))
Если же очень критично выкл. выходов и нужен 100% контроль, то устройство должно быть не тупое, а с логикой контроля связи или же любимый метод некоторых форумчан "запитывание" выходов сетевого модуля от выхода самого ПЛК, когда ПЛК загрузился выход вкл. и даёт возможность работать выходам модулям.
Вообще пропасть связь может и при работающем ПЛК, поэтому предусмотреть надо это не только в ПЛК.

Слова "нужен гарантированный рестарт программы" я не понимаю, ПЛК или работает или его вырубает watchDog.

А что с дисконнектом подключения по Ethernet? Это когда до перезагрузки ПЛК не можете к нему подключиться потому что пользуетесь конфигуратором modbus? (да есть и такое, а еще есть самопроизвольное щёлканье выходов даже БЕЗ программы). В двух словах, есть 2 прошивки, на одной (более старой) с ПЛК всё отлично, но довольно часто при выключении программа пропадает (совсем) и есть более поздняя прошивка где при использовании сокетов в конфигураторе к ПЛК подключиться НЕВОЗМОЖНО, ОВЕН обо всём прекрасно знает и сказали что исправлять не собираются(типо нет времени, облако же бабки приносит, а это и так покупают). Но насколько известно на любой прошивке RETAIN не работает и нихера не сохраняет переменные, вроде всё теперь думайте.