
- •Алматы 2012
- •Введение
- •Лабораторная работа №1. Знакомство с языком программирования контроллеров unity pro
- •1.1 Основные теоретические сведения
- •1.1.1 Интерфейс пользователя программы Unity Pro
- •1.3 Понятие эмулятор плк
- •1.3 Порядок выполнения лабораторной работы №1. Создание конфигурации контроллера и конфигурации сети.
- •1.5 Контрольные вопросы
- •Лабораторная работа №2 построение систем логического управления на языке ld (ladder diagram)
- •2.2 Пример решения задачи на языке ld
- •2.3 Пример работы комибинированной программы на языке ld c использованием функционального блока
- •2.4 Порядок выполнения лабораторной работы №2. Решение задач на языке ld.
- •2.6 Контрольные вопросы
- •3.1 Основные теоретические сведения
- •3.1.1 Свойства программы fbd
- •3.2 Пример решения задачи на языке fbd
- •3.3 Порядок выполнения лабораторной работы №3
- •3.5 Контрольные вопросы
- •4.1 Основные теоретические сведения
- •4.2 Пример решения задачи на языке st
- •Порядок выполнения лабораторной работы на st
- •Язык программирования il
- •Порядок выполнения лабораторной работы на il
- •4.7 Контрольные вопросы
- •5.1 Основные теоретические сведения
- •5.2 Пример решения задачи на языке sfc
- •Порядок выполнения работы №5 на языке sfc
- •5.5 Контрольные вопросы
- •6.1 Основные теоретические сведения
- •Порядок выполнения работы №6
- •6.4 Контрольные вопросы
- •Список литературы
- •Объектно ориентированное программирование
4.2 Пример решения задачи на языке st
Задача_1 Необходимо решить простейшую задачу на языке ST в которой при нажатии кнопки kn загорается лампочка lam.
1 шаг. Для этого создается новая секция на языке ST. В рабочем поле редактора языка ST необходимо написать следующий код программы.
Lam:=kn;
2 шаг. Создание анимационной таблицы (рисунок 4.1).
3 шаг. Создание операторского экрана (рисунок 4.1).
Рисунок 4.1 Приложение, реализующее пример работы с языком ST
в среде Unity Pro.
Порядок выполнения лабораторной работы на st
Задача_2 Запрограммируйте задачу при которой возможно включение лампочки с помощью двух выключателей, опираясь на программу на языке LD.
Задача_3 Необходимо запрограммировать систему, в которой включение лампочки будет осуществляться кнопкой старт, а выключение кнопкой стоп. Создайте анимационную таблицу и операторский экран.
IF kn1=1 THEN
Lam2:=1;
END_IF;
IF kn2=1 THEN
Lam2:=0;
END_IF;
Язык программирования il
IL (Instruction List) — язык программирования стандарта МЭК 61131-3. Предназначен для программирования промышленных контроллеров. По синтаксису напоминает ассемблер.
Работает быстрее графических языков, является более компактным и потребляет меньше памяти ПЛК. Позволяет очень быстро вводить программу, в последствии ее легче воспроизводить на портативных устройствах, но является менее наглядным, что осложняет процесс поиска ошибок.
Список инструкций составляется из набора инструкций. Каждая инструкция начинается на новой строке и состоит из:
- Оператора.
-Модификатора, если требуется.
-Одного или более операндов, если требуется.
-Метки, как цели перехода, если требуется.
- Комментария к логике, если требуется.
Рисунок 4.2 Пример изображения секции на языке IL
Пример 1: Линейное преобразование: Y(x)=A*x+B
Рисунок 4.3 Реализация примера 1 в среде программирования
Unity Pro
Порядок выполнения лабораторной работы на il
Запрограммируйте запись процедуры а=а+b в одноадресном и двухадресном режиме, используя основные операторы в таблице 4.2 усложните задачу.
А) LD a б) ADD а b
ADD b
ST a
Таблица 4.2 Список операторов IL
№ |
Оператор |
Пояснение |
1 |
2 |
3 |
1 |
LD |
Загрузить значение операнда в аккумулятор |
2 |
LDN |
Загрузить обратное значение операнда в аккумулятор |
3 |
ST |
Присвоить значение аккумулятора операнду |
4 |
STN |
Присвоить обратное значение аккумулятора операнду |
5 |
S |
Если значение аккумулятора TRUE, установить логический операнд |
6 |
R |
Если значение аккумулятора FALSE, сбросить логический операнд |
7 |
AND |
Поразрядное И аккумулятора и операнда |
8 |
ANDN |
Поразрядное И аккумулятора и обратного операнда |
9 |
OR |
Поразрядное ИЛИ аккумулятора и операнда |
10 |
ORN |
Поразрядное ИЛИ аккумулятора и обратного операнда |
11 |
XOR |
Поразрядное разделительное ИЛИ аккумулятора и операнда |
12 |
XORN |
Поразрядное разделительное ИЛИ аккумулятора и обратного операнда |
13 |
NOT |
Поразрядная инверсия аккумулятора |
14 |
ADD |
Сложение аккумулятора и операнда, результат записывается в аккумулятор |
15 |
SUB |
Вычитание операнда из аккумулятора, результат записывается в аккумулятор |
16 |
MUL |
Умножение аккумулятора на операнд, результат записывается в аккумулятор |
17 |
DIV |
Деление аккумулятора на операнд, результат записывается в аккумулятор |
18 |
GT |
Значение аккумулятора сравнивается со значением операнда(>(greater than)). Значение (TRUE или FALSE) записывается в аккумулятор |
19 |
GE |
Значение аккумулятора сравнивается со значением операнда(>=greater than or equal)). Значение (TRUE или FALSE) записывается в аккумулятор |
20 |
EQ |
Значение аккумулятора сравнивается со значением операнда (=(equal)). Значение (TRUE или FALSE) записывается в аккумулятор |
1 |
2 |
3 |
21 |
NE |
Значение аккумулятора сравнивается со значением операнда (<>(not equal). Значение (TRUE или FALSE) записывается в аккумулятор |
22 |
LE |
Значение аккумулятора сравнивается со значением операнда (<=(less than or equal to)). Значение (TRUE или FALSE) записывается в аккумулятор |
23 |
LT |
Значение аккумулятора сравнивается со значением операнда (<(less than)). Значение (TRUE или FALSE) записывается в аккумулятор |
24 |
JMP |
Переход к метке |
25 |
JMPC |
Переход к метке при условии, что значение аккумулятора TRUE |
26 |
JMPCN |
Переход к метке при условии, что значение аккумулятора FALSE |
27 |
CAL |
Вызов программного или функционального блока |
28 |
CALC |
Вызов программного или функционального блока при условии, что значение аккумулятора TRUE |
29 |
CALCN |
Вызов программного или функционального блока при условии, что значение аккумулятора FALSE |
30 |
RET |
Выход из POU и возврат в вызывающую программу |
31 |
RETC |
Выход из POU и возврат в вызывающую программу при условии, что значение аккумулятора TRUE |
32 |
RETCN |
Выход из POU и возврат в вызывающую программу при условии, что значение аккумулятора FALSE |
4.6 Оформление отчета по результатам выполненных работ. Отчет должен включать:
- Решение задач на языке ST и IL.
- Выводы по результатам практикума.
- Пакеты прикладных программ на языке ST и IL с результатами работы.
Литература. 4 осн. [1- 6]