- •ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ОБРАБОТКИ ДАННЫХ В TRACE MODE 6
- •Языки программирования стандарта IEC(МЭК) 61131-3
- •Современная редакция стандарта (который с 1997 г. называется IEC 61131) включает:
- •Вид окна программы «Редактор программ»
- •Аргумент
- •Аргументы
- •Основные типы данных
- •Техно ST
- •Инициализац
- •Конструкц ии языка
- •Арифметические операции
- •Логические операции
- •Операции сравнения
- •Конструкция IF – ELSEIF –
- •Конструк
- •Цикл FOR
- •Цикл For
- •Цикл WHILE
- •Цикл REPEAT UNTIL
- •Конструкция CASE
- •Техно FBD
- •Функциональные блоки
- •Пример
- •Создание привязки
- •Порядок обработки в первую
- •FBD-программа
- •Техно IL
- •Техно IL
- •Одно и двухадресный режим
- •Конструкция программы на языке Техно IL
- •Значения по умолчанию
- •Операторы обмена с аккумулятором
- •Пример программы
- •Логические операторы Техно IL
- •Логические операторы Техно IL
- •Арифметические операторы Техно IL
- •Операторы сравнения
- •Операторы перехода и вызова функции Техно IL
- •Операторы перехода и вызова функции Техно IL
- •Язык SFC
- •LD (Ladder
- •Язык LD позволяет:
- •Контакт
- •Катушка
- •Катушки
- •Катушки
- •Катушка
- •Размещение
- •Размещение блоков
- •Пример
Одно и двухадресный режим |
||
a = a + b |
||
Одноадресный режим: |
Двухадресный режим |
|
LD a //загружаем a в |
ADD a b // a = a + b |
|
аккумулятор |
Под аккумулятором в Техно IL |
|
ADD b //result = result |
||
понимается хранилище текущего |
||
ST a //a = result |
результата вычислений |
|
Конструкция программы на языке Техно IL
program
{определение
аргументов} {список команд} end_program
PROGRAM
VAR_INPUT input : REAL; END_VAR
VAR_OUTPUT output : REAL; END_VAR
VAR local_var : REAL; END_VAR VAR const : REAL := 3; END_VAR {список команд}
END_PROGRAM
Значения по умолчанию
Если при определении переменной ее значение не задано, то этой переменной по умолчанию присваивается следующее начальное значение:
•числовая переменная – 0;
•переменная типа BOOL – FALSE;
•переменная типа STRING – пустая строка;
•переменная типа HANDLE – 16#00000000 (0 в формате HEX);
•переменная типа TIME, DATE или DATE_AND_TIME – 0.
Операторы обмена с аккумулятором
|
|
Синтаксис |
Действие |
LD operand |
result := operand – загрузить значение в |
|
аккумулятор |
ST operand |
operand := result – присвоить переменной |
|
значение аккумулятора |
LD |
Загрузить обратное значение операнда в аккумулятор |
|
N |
||
|
||
|
|
|
STN |
Присвоить обратное значение аккумулятора операнду |
|
|
|
Пример программы
VAR VAR_000 |
: INT := 10; END_VAR |
|
VAR VAR_001 |
: BOOL := TRUE; END_VAR |
|
VAR VAR_002 |
: BOOL; END_VAR |
|
LD 8 |
//result := 8 |
|
ST VAR_000//VAR_000 := 8
ST VAR_002 //VAR_002 := TRUE
LD 0 |
//result := 0 |
|
ST VAR_001//VAR_001 |
:= FALSE |
|
LD VAR_001//result := FALSE |
||
ST VAR_002//VAR_002 |
:= FALSE |
|
ST VAR_000//VAR_000 |
:= 0 |
|
Логические операторы Техно IL
|
|
|
Синтаксис |
Допустимы |
Действие |
|
й |
|
|
модификат |
|
|
ор |
|
S operand |
|
operand := TRUE |
R operand |
|
operand := FALSE |
AND operand1 |
N |
result := operand1 := operand1 AND |
operand2 |
|
operand2 |
OR operand1 |
N |
result := operand1 := operand1 OR |
AND a //интерпретируется как result = result AND a, а инструкция |
||
operand2 |
|
operand2 |
ANDN a //интерпретируется как result = result AND NOT a |
||
XOR operand1 |
N |
result := operand1 := operand1 XOR |
operand2 |
|
operand2 |
Логические операторы Техно 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 |
||
|
|||
|
|
//result:=VAR_002:=TRUE |
|
|
OR VAR_002 VAR_001 |
||
|
|
//result:=VAR_002:=FALSE |
|
|
XOR VAR_002 VAR_001 |
||
|
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 |
|
|
