Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gerasimov_a_v_titovcev_a_s_scada_sistema_trace_...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.43 Mб
Скачать

5.5. Логические операторы Техно il

В таблице 2 представлены логические операторы.

Таблица 2

Синтаксис

Допустимый модификатор

Действие

S operand

 

operand := TRUE (см. примечание)

R operand

 

operand := FALSE (см. примечание)

AND operand1 operand2

N

result := operand1 := operand1 AND operand2

OR operand1 operand2

N

result := operand1 := operand1 OR operand2

XOR operand1 operand2

N

result := operand1 := operand1 XOR operand2

Примечание. Оператор выполняется только тогда, когда result = TRUE.

В качестве операндов могут использоваться булевы переменные. Вторым операндом может быть число (но не численная переменная), которое интерпретируется следующим образом: не равно 0 – TRUE; равно 0 – FALSE.

Выполнение операторов R и S не изменяет значения аккумулятора.

Пример

VAR VAR_001 : BOOL := TRUE; END_VAR

VAR VAR_002 : BOOL; END_VAR

VAR VAR_004 : INT := 0; END_VAR

LD 1                 //result:=1

S VAR_002            //VAR_002:=TRUE

R VAR_002            //VAR_002:=FALSE

AND VAR_001 VAR_002  //result:=VAR_001:=FALSE

LD 1                 //result:=1

S VAR_001            //VAR_001:=TRUE

OR VAR_002 VAR_001   //result:=VAR_002:=TRUE

XOR VAR_002 VAR_001  //result:=VAR_002:=FALSE

OR VAR_002 10        //result:=VAR_002:=TRUE

5.6. Арифметические операторы Техно il

В таблице 3 представлены арифметические операторы.

Таблица 3

Синтаксис

Действие

ADD operand1 operand2

result := operand1 := operand1 + operand2

SUB operand1 operand2

result := operand1 := operand1 – operand2

MUL operand1 operand2

result := operand1 := operand1 * operand2

DIV operand1 operand2

result := operand1 := operand1 : operand2

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

Арифметические операторы не допускают использования модификаторов.

Пример

VAR VAR_000 : REAL := 20; END_VAR

VAR VAR_001 : LREAL := 30; END_VAR

ADD VAR_000 10       //result := VAR_000 := 30

MUL VAR_001 9        //result := VAR_001 := 270

SUB VAR_001 VAR_000  //result := VAR_001 := 240

DIV VAR_001 VAR_000  //result := VAR_001 := 8

5.7. Операторы сравнения Техно il

В таблице 4 представлены операторы сравнения.

Таблица 4

Синтаксис

Действие

GT operand1 operand2

result := TRUE, если operand1 > operand2

GE operand1 operand2

result := TRUE, если operand1 >= operand2

EQ operand1 operand2

result := TRUE, если operand1 == operand2

NE operand1 operand2

result := TRUE, если operand1 <> operand2

LE operand1 operand2

result := TRUE, если operand1 <= operand2

LT operand1 operand2

result := TRUE, если operand1 < operand2

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

Операторы сравнения не допускают использования модификаторов.

Операторы сравнения, как правило, предшествуют операторам JMPC, CALC и RETC. Если результат сравнения ложен, инструкции сравнения не изменяют значения аккумулятора, а последующий оператор JMPC, CALC или RETC игнорируется (даже если result = TRUE).

Пример

VAR VAR_000 : INT := 20; END_VAR

VAR VAR_001 : INT := 30; END_VAR

VAR VAR_002 : BOOL; END_VAR

LD 1               //result := TRUE

GT VAR_000 VAR_001 //результат сравнения ложен,

//т.к. (20<30), аккумулятор сохраняет свое

//значение (TRUE)

RETC               //RETC игнорируется

LD VAR_002         //result := FALSE

LT VAR_000 VAR_001 //результат сравнения истинен

//result := TRUE

CALC fff(VAR_000)  //вызов функции произойдет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]