Цитата Сообщение от FPavel Посмотреть сообщение
Добавлю примечание.

Сразу не обратил внимание, что команда сброса ошибки bResetAlarm получила приоритет и при подаче на "исправный" ПЧВ прервёт команду пуск bSetStart.
Наверное, нужно усложнить условие (bResetAlarm and 0bStateFault), тогда на исправный ПЧВ команда сброса не отправится.
Или записывать конкретный бит в слово wSetCmd (.0 - пуск, .2 - сброс и т.д.) во избежание прерывания других команд.