logo
база Уфимского Топливно Энергетического Колледжа / 243

4.5 Описание языка st

ST (Structured Text) - текстовый высокоуровневый язык общего назначения, по синтаксису похожий на Паскаль. Происхождение: Grafcet (Telemechanique-Groupe Schneider). Язык по умолчанию используется для описания действий внутри шагов и переходов.

ST программа - это список ST операторов. Каждый оператор заканчивается точкой с запятой (;). Имена, используемые в исходном коде (идентификаторы переменных, константы, ключевые слова), разделены неактивными разделителями (пробелами, символами окончания строки и табуляции) или активными разделителями, которые имеют определенное значение (например, разделитель ">" означает сравнение "больше чем"). В текст могут быть введены комментарии. Комментарий должен начинаться с " ("и заканчиваться")". Каждый оператор заканчивается точкой с запятой.

Основные операторы языка ST:

оператор присвоения (variable: = expression);

вызов подпрограммы или функции;

вызов функционального блока;

операторы выбора (IF, THEN, ELSE, CASE);

итеративные операторы (FOR, WHILE, REPEAT);

управляющие операторы (RETURN, EXIT);

специальные операторы для связи с такими языками как SFC.

Выражения.

() - для выделения частей выражения с целью изменения приоритета выполнения операций, в их отсутствии используется приоритет по умолчанию;

: = - присваивает переменной значение некоторого выражения или константы:

< переменная >: = <любое выражение или константа >

Переменная должна быть внутренней или входной и иметь один тип с выражением.

Булевы операторы:

NOT, AND, OR, XOR.

Арифметические операторы:

+ (сложение), - (вычитание), * (умножение), / (деление).

Операторы сравнения:

<, >, =, <>, <=, >=.

Оператор RETURN.

RETURN завершает выполнение текущей программы. В блоке операций на языке SFC оператор RETURN обеспечивает конец выполнения блока.

Оператор IF - THEN - ELSE

if < условие1 >

then

< оператор1 >;

< оператор2 >;

elsif < условие2 >

then < список операторов >;

else < список операторов >;

end_if;

Оператор WHILE.

While - это циклическая структура для группы операторов на языке ST, условие продолжения которой вычисляется до каждой итерации.

While < условие > do

< оператор 1 >;

< оператор 2 >;

end_while;

Примечание: так как система программирования и исполнения программ на языке ST является циклически синхронизированной, то исходные переменные не обновляются в течение операции while и, следовательно, изменение состояния входной переменной не может быть использовано для описания условия оператора while.

Оператор REPEAT.

Repeat - циклическая структура, условие продолжения которой вычисляется после каждой итерации.

Repeat

< оператор 1 >;

< оператор 2 >;

until < условие >;

end_repeat;

Примечание аналогичное для while.

Оператор FOR.

for - выполняет ограниченное количество итераций, используя целочисленную переменную (integer) для ограничения.

for < index >: = < min > to < max > by <step > do

< оператор 1 >;

< оператор 2 >;

end_for;

где index - внутренняя переменная, step - шаг изменения переменной.

Оператор CASE.

case - оператор выбора из нескольких возможных вариантов.

case < выражения > do

1: < список операторов 1 >;

2,3: < список операторов 2 >;

5.7: < список операторов 3 >;

else < список операторов else >;

end_case;

Управляющая конструкция case передает управление тому списку операторов, для которого значение константы совпадает со значениям выражения.

Операторы управления таймерными параметрами.

TSTART - пуск обновление таймерной переменной. После выполнения этого оператора таймерная переменная наращивается на каждом временном цикле выполнения программы вплоть до остановки оператором TSTOP, называемого остановка обновления. Операторы TSTART и TSTOP не присваивают значение таймерной переменной.