Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
Еще хуже ситуация при аварийной остановке цикла - продолжение, как правило, если программа на SFC..
Не надо делать на SFC главную программу PLC_PRG. Это типовая ошибка. Ее стоит написать на ST или LD, а уже в ней организовать вызов 2 десятка SFC подпрограмм и их сброс по авариям. Еще красивее распараллеливаться задачами. Блок SFC можно объявлять Retain и он при рестарте продолжит там, откуда слетел.

SFC язык шикарный, если научиться правильно применять. Например, у компании Бош все их прикладные программы самых разнообразных машин в CoDeSys написаны строго на связке ST-SFC. Иное запрещено. Это самые красивые, читабельные и сопровождабельные программы из того, что вообще доводилось видеть.