СТРУКТУРА ПРОГРАММЫ. СТАНДАРТНЫЕ БИБЛИОТЕКИ. ОСНОВНЫЕ ОПЕРАТОРЫ. ТИПЫ ДАННЫХ
Язык программирования контроллеров ST относится к классу текстовых языков высокого уровня и является в настоящее время самым распространенным языком программирования промыш- ленных контроллеров. Этот язык уходит корнями в такие из- вестные языки программирования, как Pascal и C. Язык ST удобен для написания больших программ и работы с аналоговыми сигналами и числами с плавающей точкой.
Структурированный язык управления SCL (Structured Control Language) также является текстовым языком программирования и представляет собой язык структурированного текста ST, адаптиро- ванный для программирования контроллеров линейки моделей Simatic производства фирмы Siemens.
Синтаксис языка ST
Для начала рассмотрим простой пример: запрограммируем функцию ограничителя Delimiter, которая должна ограничивать входные величины, адаптируя их к заданному диапазону значений (между верхним и нижним пределами); кроме того, в примере мы запрограммируем вызов этой функции в организационном блоке. Ниже приведен текст программы:
FUNCTION Delimiter : INT VAR_INPUT
MAX : INT; //максимальное значение
IN : INT; //входное значение
MIN : INT; //минимальное значение
END_VAR BEGIN
IF IN>MAX THEN Delimiter:=MAX; //адаптация к верхнему зна- чению
ELSIF INELSE Delimiter:=IN; //допустимое входное значение
END_IF; END_FUNCTION
ORGANIZATION_BLOCK Mainjprogram VAR_TEMP SINFO : ARRAY [1..20] OF BYTE; END_VAR
BEGIN
Result:=Delimiter (MAX:=Maximum, IN:=INPUT_VALUE, MIN:=Minimum);
END_ORGANIZATION_BLOCK
Пример программы начинается с объявления типа блока огра- ничителя Delimiter (функция FC) и типа для значения функции (INT). Далее следует описание параметров блока: параметры MAX (максимальное значение, верхняя граница), IN (величина входного сигнала) и MAX (максимальное значение, нижняя граница) объяв- ляются входными параметрами (INPUT), относящимися к типу данных INT. Сама программа следует за разделом объявления пе- ременных. В соответствии с программой, если входная величина IN больше, чем заданная максимальная величина, то функция прини- мает значение, равное максимальной величине. Если это не так, и входная величина IN меньше, чем заданная минимальная величина, то функция принимает значение, равное минимальной величине. Если оба рассмотренных случая не дали положительного результа- та, то функция принимает значение, равное входной величине IN.
Теперь мы запрограммируем вызов этой функции в организаци- онном блоке Main Program. При вызове в организационном блоке Main Program функции ограничителя Delimiter ее значение при- сваивается глобальной переменной Result («Результат»); теперь эта переменная будет содержать в себе значение Input_value, ограни- ченное предельными значениями Maximum и Minimum.
Как видно из приведенного примера, ST-программа – это список ST-выражений. Выражения обеспечивают получение определен- ных значений. Выражение может включать в себя один адрес дан- ных (одну переменную) или несколько адресов данных (несколько переменных), которые объединяются с помощью операторов. Пример:
a + b;
здесь a и b – это адреса данных (то есть, переменные), «+» – это оператор.
Имена, используемые в исходном коде (имена переменных, кон- станты, ключевые слова), разделены неактивными разделителями (пробелами, символами окончания строки и табуляции) или актив- ными разделителями, которые имеют определенное значение (на- пример, разделитель «>» означает сравнение «больше чем»). В текст могут быть введены комментарии. Комментарий должен начинать- ся с символа «//» и заканчиваться в конце строки. Каждый оператор заканчивается точкой с запятой («;»). Основные операторы языка ST:
оператор присваивания (x := 5);
вызов подпрограммы или функции;
вызов функционального блока;
операторы выбора (IF, THEN, ELSE, CASE);
итеративные операторы (FOR, WHILE, REPEAT);
управляющие операторы (RETURN, EXIT);
специальные операторы для связи с такими языками как SFC.
Скобки используются для того, чтобы отделить подчасти выра- жения и явно определить приоритетность операций.
Достарыңызбен бөлісу: |