Моделирование НДА с использованием Codesys

Автор работы: Пользователь скрыл имя, 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
Список литературы. . . . . . . . . . . . . . . .

Содержимое работы - 1 файл

Отчет о преддипломной практике.doc

— 1.45 Мб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ПЕНЗЕНСКИЙ  ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра вычислительной техники

 

 

 

 

 

 

ОТЧЕТ

о прохождении  преддипломной практики

Тема  практики

Моделирование НДА с использованием CODESYS

Выполнил

Студент гр. 08вв1 Будаговский Д. А.

Проверил

Дубинин В. Н.

Место прохождения

Кафедра вычислительной техники


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

©г. Пенза, 2013

Содержание

Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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:

  • M срабатывает, если срабатывают A, B, но не срабатывает C;
  • M срабатывает, если срабатывают A, С, но не срабатывает B;
  • M срабатывает, если срабатывает A, но не срабатывает B, C.

Условия срабатывания для HL:

  • HL срабатывает, если срабатывает A, но не срабатывают B и C;
  • HL срабатывает, если срабатывает B, но не срабатывают A и C.

Таблица срабатываний будет  выглядеть следующим образом:

Таблица 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