Каждый переход от шага к шагу связан с логическим условием, называемым
условием перехода (transition condition). Булево выражение для условия
перехода записано рядом с горизонтальной чертой. Если условие
удовлетворено, т.е. соответствующее выражение истинно, происходит
переход и система выполняет следующий шаг.
Язык ST
Текстовый язык высокого уровня, по синтаксису ориентированный на
Pascal. Язык предоставляет булевы и арифметические операторы, а также
конструкции структурного программирования:
IF … THEN … ELSE
CASE …
WHILE … DO
REPEAT … UNTIL
и т.д.
Пример:
VAR X1, X2, X3, Y: END VAR
IF X1=TRUE THEN X2:=FALSE: END IF:
IF X3=TRUE THEN X2:=FALSE ELSE X2:=TRUE: END IF:
Y:=(X1 AND NOT X2) OR X3
END FUNCTION BLOCK
Язык IL
Текстовый язык низкого уровня. Выглядит как язык Ассемблера, но к
архитектуре конкретного процессора не привязан.
Языки IEC 1131-3 содержат богатый набор стандартных функций:
- булевские,
- числовые (ADD, SUB, MOD, ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN,
ASIN, ACOS, ATAN и т.д.),
- преобразования типов,
- сравнения (INSERT, DELETE, REPLACE, FIND и др.),
- а также функции, определяемые производителем и пользователем.
Функциональные блоки:
- синхронизации состояний,
- дифференцирование переднего и заднего фронтов (R.TRIG, F.TRIG),
- счетчики (TP, TON, TOF, RTC),
- и др. функциональные блоки, в том числе определяемые пользователем.
Типы данных:
- битовые строки (BOOL, TYPE, WORD, DWORD, LWORD),
- целые (INT, SINT, DINT, LINT),
- беззнаковые целые (USINT, IDINT …),
- вещественные (REAL, LREAL),
- временные (TIME, DATE, TIME OF DAY, DATE OF TIME),