SCADA система «Соната». Технологические программы. Язык ST (Structured Text)

1.

Российская академия наук
Федеральное государственное унитарное предприятие
Экспериментальный завод научного приборостроения
со Специальным конструкторским бюро
SCADA система «Соната»
Технологические программы.
Язык ST (Structured Text).
г. Черноголовка Московская обл.

2.

SCADA система «Соната»
Языки программирования
Технологические программы
Консольные программы
ST – циклические программы
(Aplication.ST.Console)
LUA – смешанные (событийноциклические программы,
Application.LUA)
FBD (+ST) – событийные
программы
(Application.IEC.Console)
Мнемосхемы
FBD (+ST) – событийные
программы
(Application.IEC.Window)

3.

SCADA система «Соната»
Циклические программы на языке ST
Программа на языке ST представляет собой множество элементов организации
программы (POU).
Элемент организации программы:
функция – элемент программы, не сохраняющий свое состояние между
вызовами
функциональный блок – элемент программы, сохраняющий свое состояние
между вызовами
программа
Элемент программы представляет собой набор переменных (входных, выходных,
вход/выход) и тело блока, представляющего собой набор инструкций языка ST,
каждая из которых относится к одной из следующих групп:
присваивание
выбор
цикл
вызов функционального блока
Программа выполняется циклически с определенной периодичностью, задаваемой
разработчиком.

4.

SCADA система «Соната»
Типы данных
Логические, битовые:
BOOL – логический (TRUE или FALSE)
BYTE – однобайтовый битовый (0..255)
WORD – двухбайтовый битовый (0..65535)
DWORD – четырехбайтовый битовый (0.. 4294967295)
Целые знаковые:
SINT – целое со знаком, 1 байт (-128..127)
INT – целое со знаком, 2 байта (-32768..32767)
DINT – целое со знаком, 4 байта
LINT – целое со знаком, 8 байт
Целые беззнаковые:
USINT – целое без знака, 1 байт (0..256)
UINT – целое без знака, 2 байта (0..65535)
UDINT – целое без знака, 4 байта
ULINT – целое без знака, 8 байт
Вещественные:
REAL – вещественное, 4 байта
LREAL – вещественное, 8 байт
Дата и время:
DT – дата и время
DATE – дата
TOD – время суток
TIME – продолжительность
Строка: STRING (длина строки до 511 символов)

5.

SCADA система «Соната»
Литералы
Логические литералы: TRUE, FALSE
Числовые литералы: ТИП#ЗНАЧЕНИЕ
Если целая константа записана без типа (ТИП# отсутствует), то такая константа
имеет тип INT
Если вещественная константа записана без типа, то такая константа имеет тип REAL
Во всех остальных случаях префикс обязан присутствовать
Числа можно представить в двоичной, восьмеричной и шестнадцатеричной форме:
2#00111001, 8#12756, 16#AB56FE. Данные формы необходимо дополнительно
типизировать: WORD#16#AB56FE
Строковые литералы: ‘ЗНАЧЕНИЕ’ (строка в одинарных кавычках)
Литералы даты и времени:
дата и время: DT#1970-06-25-11:25:33
дата DATE#1970-06-25
время суток: TOD#11:25:33
продолжительность: TIME#10d1h20m30s250ms
Литералы цвета: #AARRGGBB

6.

SCADA система «Соната»
Инструкция присваивания
ПЕРЕМЕННАЯ := ВЫРАЖЕНИЕ;
ПЕРЕМЕННАЯ – локальная переменная элемента программы, либо глобальная
переменная технологической программы.
ПЕРЕМЕННАЯ и ВЫРАЖЕНИЕ обязаны иметь один и тот же тип. Преобразования
типов по умолчанию отсутствуют.
ВЫРАЖЕНИЕ содержит константы, переменные, операции и вызовы функций.
Операции языка ST (в порядке убывания приоритета):
•унарные операции (-, NOT)
•возведение в степень (**)
•умножение, деление, остаток (*, /, MOD)
•сложение, вычитание (+, -)
•сравнение (<, <=, >=, >)
•равенство, неравенство (=, <>)
•логическое, либо побитовое «И» (AND)
•логическое, либо побитовое «Исключающее ИЛИ» (XOR)
•логическое, либо побитовое «ИЛИ» (OR)
Запрос элемента структуры: ИМЯ_ПЕРЕМЕННОЙ.ИМЯ_ПОЛЯ
Запрос элемента масива: ИМЯ_ПЕРЕМЕННОЙ[ИНДЕКС], где ИНДЕКС типа INT.

7.

SCADA система «Соната»
Вызов функций
Вызов функций возможен только в выражении.
Синтаксис: ИМЯ_ФУНКЦИИ(аргумент1, аргумент2, …, аргумент N)
Возможен как формальный, так и неформальный синтаксис передачи параметров.
Формальный синтаксиc – произвольный порядок параметров:
Передача входного параметра: имя_параметра := выражение
Передача выходного параметра: имя_параметра=>переменная
Передача параметра вход/выход: имя_параметра := переменная
Входные и выходные параметры могут отсутствовать
Возможна инверсия выходного параметра: NOT имя_параметра=>переменная
Неформальный синтаксис:
Порядок параметров определяется декларацией функции
Последние входные параметры могут отсутствовать

8.

SCADA система «Соната»
Инструкции выбора
Условная инструкция:
IF условие THEN
набор инструкций
ELSIF условие THEN
набор инструкций
ELSE
набор инструкций
END_IF;
Условие представляет собой выражение логического типа.
Инструкция выбора:
CASE выражение OF
значения:
набор инструкций
ELSE
набор инструкций
END_CASE;
Значения могут задаваться как в виде перечисления (значение1, значение 2), так и
интервалом (значение1..значение2). Типы всех значений должны совпадать.

9.

SCADA система «Соната»
Циклы
Цикл FOR:
FOR переменная := нач_значение TO конечное_значение BY приращение DO
инструкции цикла
END_FOR;
Переменная, начальное значение, конечное значение и приращение должны быть одного и того
же целого типа.
BY может отсутствовать.
Начальное значение, конечное значение и приращение вычисляются один раз в начале цикла.
Цикл WHILE:
WHILE условие
инструкции цикла
END_WHILE;
Цикл выполняется, пока условие истинно.
Цикл REPEAT:
REPEAT
инструкции цикла
UNTIL условие;
END_REPEAT;
Цикл выполняется, пока условие не станет истинным.

10.

SCADA система «Соната»
Вызов функциональных блоков
Синтаксис: ИМЯ_БЛОКА(аргумент1, аргумент2, …, аргумент N);
Для вызова блока необходимо создать переменную, тип которой соответствует
типу вызываемого блока.
На уровне программы переменные типа функционального блока могут быть
только внутренними.
Возможен как формальный, так и неформальный синтаксис передачи параметров.
Формальный синтаксиc – произвольный порядок параметров:
Передача входного параметра: имя_параметра := выражение
Передача выходного параметра: имя_параметра=>переменная
Передача параметра вход/выход: имя_параметра := переменная
Входные и выходные параметры могут отсутствовать
Возможна инверсия выходного параметра: NOT имя_параметра=>переменная
Неформальный синтаксис:
Порядок параметров определяется декларацией функции
Последние входные параметры могут отсутствовать

11.

SCADA система «Соната»
Редактирование переменных функции

12.

SCADA система «Соната»
Редактирование тела функции

13.

SCADA система «Соната»
Редактирование переменных блока

14.

SCADA система «Соната»
Редактирование тела блока
English     Русский Правила