Автор работы: Пользователь скрыл имя, 10 Апреля 2013 в 22:35, отчет по практике
Язык LD (Ladder Diagram) – графический язык, основанный на принципах релейно-контакт-ных схем (элементами релейно-контактной логики являются: контакты, обмотки реле, вертикальные и горизонтальные перемычки и др.) с возможностью использования большого количества различных функциональных блоков. Язык релейных схем существует со времен Т. Эдисона и адарптирован к ПЛК в начале 1970-х годов. Символика этого языка была заимствована из проектирования в области электротехники.
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Элементы языка LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2. Представление автомата в виде структурированного текста. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Объявления переменных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.2. Листинг программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
3. Построение схемотехнических элементов с использованием языка LD. . . . . . . . . . . . . . . . . . . .7
3.1. Пример СЛУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Сдвигающий регистр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. 4-разрядный счетчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Моделирование автомата с помощью лестничных диаграмм. . . . . . . . . . . . . . . . . . . . . . . . . . . .14
5. Язык функциональных блоков (FBD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
5.1. Реверсивный счетчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
5.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2. Реализация автомата на языке FBD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6. Язык IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1. Кодовый замок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
6.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2. Реализация автомата на языке IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7. Моделирование автомата на языке CFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
8. Реализация автомата на языке SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9. Комбинированные схемы на языке LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
10. Реализация и моделирование иерархических устройств на CODESYS. . . . . . . . . . . . . . . . . . .35
10.1. Реализация функционального блока АЛУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10.2. Реализация главного модуля. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
10.3. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Список литературы. . . . . . . . . . . . . . . .
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра вычислительной техники
ОТЧЕТ
о прохождении преддипломной практики
Тема практики |
Моделирование НДА с использованием CODESYS |
Выполнил |
Студент гр. 08вв1 Будаговский Д. А. |
Проверил |
Дубинин В. Н. |
Место прохождения |
Кафедра вычислительной техники |
©г. Пенза, 2013
Содержание
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Элементы языка LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2. Представление автомата
в виде структурированного
2.1. Объявления переменных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.2. Листинг программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
3. Построение схемотехнических элементов с использованием языка LD. . . . . . . . . . . . . . . . . . . .7
3.1. Пример СЛУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Сдвигающий регистр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. 4-разрядный счетчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Моделирование автомата с помощью лестничных диаграмм. . . . . . . . . . . . . . . . . . . . . . . . . . . .14
5. Язык функциональных блоков (FBD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
5.1. Реверсивный счетчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
5.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2. Реализация автомата на языке FBD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6. Язык IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1. Кодовый замок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
6.1.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2. Реализация автомата на языке IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.1. Реализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.2. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7. Моделирование автомата на языке CFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
8. Реализация автомата на языке SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9. Комбинированные схемы на языке LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
10. Реализация и моделирование иерархических устройств на CODESYS. . . . . . . . . . . . . . . . . . .35
10.1. Реализация функционального блока АЛУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10.2. Реализация главного модуля. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
10.3. Отладка и тестирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Цель практики: освоение лестничных (LD) диаграмм, моделирование НДА с помощью CODESYS.
Введение
Язык LD (Ladder Diagram) – графический язык, основанный на принципах релейно-контакт-ных схем (элементами релейно-контактной логики являются: контакты, обмотки реле, вертикальные и горизонтальные перемычки и др.) с возможностью использования большого количества различных функциональных блоков. Язык релейных схем существует со времен Т. Эдисона и адарптирован к ПЛК в начале 1970-х годов. Символика этого языка была заимствована из проектирования в области электротехники.
Достоинствами языка LD являются: представление программы в виде электрического потока (близок специалистам по электротехнике), наличие простых правил, использование только булевых выражений. Он имеет большой круг пользователей, рационален для ручной оптимизации специфических критических мест кода.
Структура LD-секции соответствует ступеням для действий переключателей реле.
Объекты языка программирования LD обеспечивают средства для структурирования организационной единицы ПЛК (секции) в некоторое количество контактов, катушек и FFB. Эти объекты взаимосвязаны через фактические параметры или связи.
1. Элементы языка LD
Контакты. Контактом является LD-элемент, передающий состояние горизонтальной связи левой стороны на правую. Это состояние – результат конъюнкции состояния левой стороны связи и состояния ассоциированной с контактом переменной или прямого адреса. Контакт не изменяет значение связанной переменной.
Рис. 1. Типы контктов
В нормально разомкнутых контактах (рис. 1A) состояние левой стороны копируется вправо, если связанная переменная имеет значение TRUE. Иначе состояние правой стороны будет FALSE.
В нормально замкнутых контактах (рис. 1B) состояние левой стороны копируется в правую, если связанная булева переменная находитс в состоянии FALSE. Иначе состояние правой стороны будет FALSE.
В контактах для обнаружения передних фронтов (рис. 2C) правая связь устанавливается в TRUE для одного программного цикла, если имеется переход ассоциированной переменной из FALSE в TRUE, и левая связь имеет состояние TRUE в это же самое время. Иначе состояние правой связи будет FALSE.
В контактах для обнаружения задних фронтов (рис. 2D) правая связь устанавливается в TRUE для одного программного цикла, если имеется переход связанной булевой переменной изTRUE в FALSE, и левая связь находится в состоянии ON в это же время. Иначе состояние правой связи будет FALSE.
Рис. 2. Типы катушек
Катушки. Катушка является LD-элементом, передающим состояние левой связи вправо без каких-либо изменений. В этом процессе значение связанной переменной или прямого адреса будет изменено.
В катушках (рис. 2A) состояние левой связи копируется вправо и в связанную переменную.
Катушки обычно следуют за контактами или блоками EFB, но они могут также сопровождаться контактами.
В инвертированных катушках (рис. 2B) состояние левой связи копируется вправо, но перед записью этого значения в связанную переменную оно инвертируется.
В катушках установки (рис. 2С) связанная булева переменная устанавливается в TRUE, если слева было значение TRUE. Иначе значение переменной остается неизменным.
В катушках сброса (рис. 2D) связанная переменная устанавливается в FALSE при левом значении TRUE. Иначе она останется неизменной.
В катушках для обнаружения передних фронтов (рис. 2E) связанная булева переменная будет установлена в TRUE для одного программного цикла, если имеется переход состояния левой связи из FALSE в TRUE.
В катушках для обнаружения задних фронтов (рис. 2F) связанная переменная будет установлена в TRUE для одного программного цикла, если имеется переход левого состояния из TRUE в FALSE.
2. Представление автомата в виде структурированного текста
Программа CODESYS поддерживает несколько языков программирования ПЛК. Вначале рассмотрим представление в виде структурированного текста. Попробуем протестировать автомат на рис. 3.
Рис. 3. Пример НДА
2.1. Объявления переменных
PROGRAM PLC_PRG
VAR
S0: BOOL := TRUE;
S1: BOOL := FALSE;
S2: BOOL := FALSE;
S3: BOOL := FALSE;
S4: BOOL := FALSE;
S5: BOOL := FALSE;
NS0: BOOL;
NS1: BOOL;
NS2: BOOL;
NS3: BOOL;
NS4: BOOL;
NS5: BOOL;
END_VAR;
VAR_INPUT
X1: BOOL;
X2: BOOL;
X3: BOOL;
X4: BOOL;
END_VAR;
VAR_OUTPUT
Y0: BOOL;
Y1: BOOL;
Y2: BOOL;
Y3: BOOL;
Y4: BOOL;
END_VAR;
2.2. Листинги программы
NS0 := S0 AND NOT X1;
NS1 := S0 AND X1 OR S1 AND NOT X2;
NS2 := S0 AND X1 OR S1 AND NOT X1 AND X2;
NS3 := S1 AND X2 OR S2 AND X1 OR S3 AND NOT X3 OR S4 AND X4 OR S5 AND X4;
NS4 := S2 AND NOT X1 OR S3 AND X2 AND X3 OR S4 AND NOT X4 OR S5 AND NOT X4;
NS5 := S2 AND X1 AND NOT X2;
Y0 := NS0;
Y1 := NS1 OR NS5;
Y2 := NS2 OR NS4;
Y3 := NS3 OR NS5;
Y4 := NS3 OR NS4;
S0 := NS0;
S1 := NS1;
S2 := NS2;
S3 := NS3;
S4 := NS4;
S5 := NS5;
2.3. Отладка и тестирование
Рис. 4. Вид окна отладки в CODESYS
Окно отладки имеет вид, как показано на рис. 4. Чтобы задать значение входной переменной на определенном шаге, нужно установить это значение в столбце Подготовленное значение и нажать CTRL + F7. Очередной шаг выполняется по команде CTRL + F5.
Рис. 5. После первого шага
Зададим X1 = TRUE (как показано на рис. 4) и выполним шаг. Активировались состояния S1 и S2 (рис. 5), выходные сигналы Y1 и Y2. Теперь зададим X1 = FALSE, X2 = TRUE. Установятся состояния S2, S3 и S4, выходные сигналы Y2, Y3, Y4 (рис. 6).
Рис. 6. После второго шага
Далее зададим X1 = TRUE, X2 = FALSE, X4 = TRUE. После выполнения очередного шага установятся состояния S3 и S5, выходные сигналы Y1, Y3, Y4.
Рис. 7. После третьего шага
3. Построение схемотехнических элементов с использованием языка LD
Теперь попробуем построить некоторые схемотехнические элементы на CODESYS с помощью языка LD.
3.1. Пример СЛУ
Приемные элементы: кнопка пуска SB, реле уровня SL, реле температуры SK, и исполнительные элементы: асинхронный двигатель M и маломощная сигнальная лампа низкого напряжения HL. Приемные элементы, вырабатывающие дискретные сигналы, подключены к катушкам электромагнитных реле A, B и С. Установленных на входах СЛУ и имеющих достаточное количество замыкающих и размыкающих контактов для синтеза самого логического блока.
Условия срабатывания для M:
Условия срабатывания для HL:
Таблица срабатываний будет выглядеть следующим образом:
Таблица 1. Условия срабатывания.
A |
B |
C |
M |
HL |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
Построим функции M(A, B, C) и HL(A, B, C).
3.1.1. Реализация на CODESYS
Теперь реализуем это устройство на CODESYS с использованием языка LD. Ниже приводятся листинг объявлений и LD-диаграмма (рис. 8).
PROGRAM PLC_PRG
VAR
A: BOOL;
B: BOOL;
C: BOOL;
HL: BOOL;
KM: BOOL;
END_VAR
VAR_INPUT
SB: BOOL;
SK: BOOL;
SL: BOOL;
END_VAR
Рис. 8. LD-диаграмма устройства
3.1.2. Отладка и тестирование
Для начала зададим комбинацию, при которой срабатывает только M (например, A = TRUE, B = = TRUE, C = FALSE). Видим, что M = TRUE, a HL = FALSE (рис. 9).
Рис. 9. Сработало только M
Далее введем такую комбинацию, чтобы сработали как M, так и HL. Такая комбинация только одна: A = TRUE, B = FALSE, C = FALSE.
Рис. 10. Сработали M и HL
Информация о работе Моделирование НДА с использованием Codesys