Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРезентация ТАУ / 4_программирование.pptx
Скачиваний:
0
Добавлен:
15.01.2026
Размер:
3.29 Mб
Скачать

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

В качестве операндов могут использоваться булевы переменные. Вторым операндом может быть число (но не численная переменная), которое интерпретируется следующим образом: не равно 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

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

 

 

 

 

Синтаксис

Действие

 

ADD operand1

result := operand1 := operand1 +

 

operand2

operand2

 

SUB operand1

result := operand1 := operand1 –

 

operand2

operand2

 

MUL operand1

result := operand1 := operand1 *

 

operand2

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

 

 

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

 

 

 

 

 

Синтаксис

Действие

 

GT operand1

result := TRUE, если operand1 >

 

 

operand2

operand2

 

 

GE operand1

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

 

 

operand2

operand2

 

 

EQ operand1

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

 

 

operand2

operand2

 

 

NE operand1

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

 

 

operand2

operand2

 

 

LE operand1

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

 

 

operand2

operand2

 

 

LT operand1

result := TRUE, если operand1 <

 

 

operand2

operand2

 

Операторы перехода и вызова функции Техно IL

 

 

 

 

 

 

Синтаксис

Допустим

Действие

 

 

ый

 

 

 

 

модифика

 

 

 

 

тор

 

 

 

JMP имя_метки

C, X

переход к строке с

 

 

 

 

указанной меткой

 

 

CAL

C, X

вызов функции или

 

 

имя_функции(val1, ...

 

функции-блока

 

 

valN)

 

 

 

 

RET

C, X

выход из программы,

 

 

 

 

функции или функции-

 

 

 

 

блока

 

Операторы перехода и вызова функции Техно IL

Определены следующие модификации данных операторов:

JMP, CAL, RET – соответственно оператор безусловного перехода, безусловного вызова и безусловного выхода.

JMPX, CALX, RETX – соответственно оператор условного перехода, условного вызова и условного выхода. Инструкция, содержащая любой их этих операторов, выполняется только тогда, когда result=TRUE, в противном случае игнорируется.

JMPC, CALC, RETC – соответственно оператор условного перехода, условного вызова и условного выхода. Эти операторы следуют непосредственно за оператором сравнения. Инструкция, содержащая любой из этих операторов, выполняется только тогда, когда результат предыдущей операции сравнения истинен (см. выше Операторы сравнения Техно IL), в противном случае игнорируется.

 

VAR VAR_000 : INT := 20; END_VAR

 

VAR VAR_001 : INT := 30; END_VAR

VAR_000 > VAR_001

VAR VAR_002 : BOOL; END_VAR

LD 1

//result := TRUE

 

 

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

Загрузили в аккумулятор

ложен,

 

 

значение переменной

//т.к. (20<30),

Так как результат

VAR_002, так как она не

//значение

 

 

ложен

инициализирована, то по

 

RETC

 

 

умолчанию ее значение false

 

 

мы

LD VAR_002

//result := FALSE

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

VAR_000 < VAR_001

истинен

 

 

//result := TRUE

 

 

 

 

CALC fff(VAR_000)

//вызов функции

 

произойдет

 

 

Техно ST

Язык программирования ST (Structured text) является высокоуровневым текстовым языком.

Он используется как для написания самостоятельных программ, так и для программирования FBD-блоков

Выражения в ST выглядят точно также, как и в языке Pascal:

[variable] := [value];

Инициализа

ция

По умолчанию, все переменные инициализируются нулем. Иное значение переменной можно указать явно при ее объявлении.

Например:

str1: STRING := ‘Hello world’;

Соседние файлы в папке ПРезентация ТАУ