Давайте введём терминологию
ОБЪЕКТ - это например ЗАДВИЖКА (GATE) у которого может быть 4-ре состояния 0 (00) - СТОП, 1 (01) - открывается, 2 (10) - закрывается, 3 (11) - в аварии
СОСТОЯНИЕ - то что протекает во времени. Единица информации Сет или два бита.
СОБЫТИЕ - это срабатывание дискретного датчика или переход из одного состояния в другое. Происходит мгновенно, во времени не протекает. Единица информации Бит.
Для любой задачи известен набор датчиков (событий), которые могут произойти.
1. Исходя из известных событий необходимо определить СОСТОЯНИЕ объекта
IF событие1 оr событие2
GATE = 0
END
IF событие1 and событие2
GATE = 1
END
IF событие2 and событие3
GATE = 2
END
IF событие4 оr событие5
GATE = 3
END
Следующий этап - это написание алгоритма перехода из одного состояния в другое. Благодаря возможностям языка ST, состояние может участвовать в логике как событие. То есть если задвижка закрывается, то состояние ЗАКРЫТИЕ может рассматриваться как событие GATE.2=true
Это простейший случая для одного ОБЪЕКТА. Таких объектов может быть несколько, например 3 задвижки и в этом случае можно в алгоритме анализировать в каком состоянии находится ОБЪЕКТЫ
IF GATE1.3=true оr GATE3.3=true
GATE3 = 3
END





Ответить с цитированием