- •ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ОБРАБОТКИ ДАННЫХ В TRACE MODE 6
- •Языки программирования стандарта IEC(МЭК) 61131-3
- •Вид окна программы «Редактор программ»
- •Аргументы
- •Основные типы данных
- •Техно FBD
- •Функциональные блоки
- •Пример
- •Создание привязки
- •Порядок обработки в первую
- •FBD-программа
- •Техно IL
- •Техно IL
- •Одно и двухадресный режим
- •Конструкция программы на языке Техно IL
- •Значения по умолчанию
- •Операторы обмена с аккумулятором
- •Пример программы
- •Логические операторы Техно IL
- •Логические операторы Техно IL
- •Арифметические операторы Техно IL
- •Операторы сравнения
- •Операторы перехода и вызова функции Техно IL
- •Операторы перехода и вызова функции Техно IL
- •Техно ST
- •Инициализа
- •Конструкц ии языка
- •Арифметические операции
- •Логические операции
- •Операц
- •Конструкция IF – ELSEIF –
- •Конструк
- •Цикл FOR
- •Цикл For
- •Цикл WHILE
- •Цикл REPEAT UNTIL
- •Конструкция CASE
- •Язык SFC
- •LD (Ladder
- •Язык LD позволяет:
- •Контакт
- •Катушка
- •Катушки
- •Катушки
- •Катушка
- •Размещение
- •Размещение блоков
- •Пример
Порядок обработки в первую |
|
очередь определяется |
Порядок |
порядком при размещении |
|
блоков. |
обработки |
Если блоки впоследствии |
|
соединяются с помощью |
FBD |
графических связей, порядок |
|
обработки определяется |
|
потоком данных. |
|
FBD-программа
Для создания FBD-программы и подключения ее к проекту нужно выполнить следующие операции:
1.разместить необходимые функциональные блоки в рабочем поле FBD- редактора;
2.соединить нужные входы и выходы блоков, образовав единую диаграмму;
3.задать аргументы, переменные и константы программы;
4.привязать входы/выходы FBD-диаграммы к аргументам, переменным и константам программы;
5.скомпилировать программу.
Техно IL
Техно IL
•Язык программирования с использованием инструкций IL (Instruction list) является низкоуровневым ассемблероподобным.
•Компьютерные программы, написанные на IL, могут выполнять команды в одноадресном и двухадресном режиме.
•Компилятор не чувствителен к регистру, т.е. инструкции add var_002 и ADD VAR_002
равнозначны.
Одно и двухадресный режим |
||
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 |
