Правила использования выражений и операторов
Операторы используются в выражениях для получения определенных значений.
Пример выражения: a + b;
Здесь a и b – идентификаторы данных (переменные), "+" – оператор.
Список операторов, которые поддерживает язык программирования SCL, приведен в таблице 3.2.
Таблица 3.2 - Список операторов и их приоритетов в языке SCL
Комбинирование | Название | Оператор | Приоритет |
Скобки | <Выражение> | (…) | |
Арифметические операции | Степень Знак (плюс, минус) Умножение, деление Добавление, вычитание | ** +, – *, /, MOD, DIV +, – | |
Сравнение | Меньше, меньше или ровно Больше, больше или ровно Равно, не равно | <, <= >, >= =, <> | |
Двоичные | Логическое " НЕТ" Логическое "И" "Исключающее ИЛИ" Логическое "ИЛИ" | NOT AND, & XOR OR | |
Присвоение | := |
Операторы, которые относятся к одному классу, выполняются последовательно слева направо.
Выражения разделяются на арифметические, логические и выражение сравнения.
Выражения – это формула, в которой существует определенный порядок вычисления переменной. Этот порядок обычно регулируется с помощью скобок. Результат, полученный при выполнении выражения, может быть присвоен переменной или параметру блока, или может быть использован для проверки критерия условия в инструкции управления.
Арифметическое выражение может составляться или из численных значений, или из их символьных имен. Типы данных, которые допустимы в арифметических выражениях, приведены в таблице 3.3.
Примеры использования арифметических выражений:
Power := Voltage * Current;
Volume := 4/3*PI*Radius**3;
Meanvalue := (Motor[1].Power + Motor[2]. Power)/2;
Solution1 := -P/2 + SQRT(SQR (P/2) – Q);
Таблица 3.3 - Типы данных, допустимые в арифметических операциях
Операция | Оператор | 1 операнд | 2 операнд | Результат |
Умножение | * | ANY_NUM TIME | ANY_NUM ANY_INT | ANY_NUM TIME |
Деление | / | ANY_NUM | ANY_NUM | ANY_NUM |
Деление целых | DIV | ANY_INT | ANY_INT | ANY_INT |
Добавление Вычитание | + | ANY_NUM TIME | ANY_NUM TIME | ANY_NUM TIME |
Возведение в степень | ** | ANY_NUM | INT | REAL |
Логическое выражение объединяет два операнда или выражения, которые относятся к классу типов данных ANY_BIT, согласно логике AND (И), OR (ИЛИ) или XOR (Исключающее ИЛИ).
Примеры:
Q 4.0 := I 1.0 & I 1.1;
Pulses := (Edge_mem_bits XOR ID 16) AND ID 16;
MW 30 := MW 32 AND Mask;
Логическое выражение выдает значение, которое принадлежит к классу типов данных ANY_BIT. Результат логического выражения принадлежит к типу BOOL, если оба операнда также имеют тип BOOL. Если один или оба операндов имеют тип BYTE, WORD или DWORD, то результат будет иметь тот тип данных, который более "требователен" к памяти операнда.
К логическому выражению принадлежит также инвертирование. Эта операция аналогична изменению знака.
Пример:
Automatic AND NOT Manual_on;
Выражение сравнения позволяет получить результат в виде булевого значения – при выполнении условия сравнения результат равняется TRUE (ИСТИНА), при невыполнении результат равняется FALSE (ЛОЖЬ).
Примеры:
Toollarge:= Voltageact > Voltageset;
Warning:= (Voltage*Current) > 20_000;
IF Deviatin > 2_000 THEN Display := 16#F002; END_IF;
Сравниваемые операнды должны принадлежать к одному типу данных или до одному классу типов данных (ANY_INT, ANY_NUM или ANY_BIT).
С помощью операции присвоения значения одна переменная получает значение другой переменной или значение выражения. Слева от оператора присваивания ":=" находится переменная, которая принимает значение переменной, что находится справа от оператора присваивания.
Типы данных, которые находятся с двух сторон от знака присваивания, должны быть идентичными. Исключение представляет только случай явного присваивания типа данных.
Примеры:
Automatic := TRUE;
Deviation := Actualvalue – Setpoint;
Display := INT_TO_WORD (Deviation);
Абсолютные адреса имеют типы данных ANY_BIT, которые обусловлены размером – BOOL, BYTE, WORD, DWORD. Если необходимо назначить другой тип данных, то целесообразно использовать операторы преобразования.
В случае использования массивов можно:
• обращаться к массиву в целом;
• обращаться к части массива;
• обращаться к элементу массива.
При преобразовании типов данных в массивах следует учитывать, что типы данных элементов массивов должны быть согласованы. При этом должны совпадать предельные значения индексов в каждой размерности.
Дата добавления: 2016-12-09; просмотров: 4100;