Similar presentations:
Программирование промышленных контроллеров ОВЕН ПЛК в пакете CoDeSys V2.3
1. Программирование промышленных контроллеров ОВЕН ПЛК в пакете CoDeSys V2.3
2. Архитектура промышленных контроллеров
Контроллером в системах автоматизации называют устройство, выполняющее управлениефизическими процессами по заданному в нем алгоритму с использованием информации, получаемой
от датчиков и выводимой в исполнительные устройства.
Под архитектурой контроллеров
понимают совокупность общих
структурных и логических подходов
к созданию аппаратных средств,
программного обеспечения и
принципов организации
взаимосвязанной работы их
компонентов.
Архитектура = Взаимодействие*(железо + системное ПО + прикладное ПО)
3. Аппаратные средства
Процессорный модуль включает:• Процессор
• Память
• Сторожевой таймер
• Часы реального времени
Периферийные модули:
• Дискретные модули ввода
• Дискретные модули вывода
• Аналоговые модули ввода
• Аналоговые модули вывода
• Коммуникационные модули
Способы объединения модулей
(системная шина, сети)
Программные средства
Прикладное программное обеспечение
Системное программное обеспечение
4. Взаимодействие программных и аппаратных средств
Прикладная программа выполняется циклически:рабочий цикл контроллера
время реакции
Входы
Входные
регистры
Физические
входы
Выходы
Выходные Физические
регистры
выходы
Функции системного программного обеспечения
1. Чтение состояния входов.
2. Выполнение кода программы пользователя.
3. Запись состояния выходов.
4. Обслуживание - аппаратных ресурсов ПЛК (диагностика),
- ресурсов прикладной программы (таймеры, счетчики),
- средств обмена по сети.
5. Монитор системы исполнения.
6. Контроль времени цикла.
5. Программно-технический комплекс компании ОВЕН
Контроллеры
Операторные панели
Модули ввода-вывода
Сети
6. Контроллер ПЛК150-220.У-М
220 - питание ~220 ВИ - аналоговые выходы ПЛК150/154 ЦАП Iвых = 4...20 мА
У - аналоговые выходы ПЛК150/154 ЦАП Uвых = 0...10 В
А - аналоговые выходы ПЛК150/154 универсальные ЦАП 4…20 мА / 0...10 В
L - объем памяти ввода/вывода 360 байт (Low license)
M - объем памяти ввода/вывода не ограничен (Med. license)
7. Состав учебного стенда
Задание значенийна дискретных входах
Задание значений входного
и измерение выходного
напряжения
Пакет CoDeSys
Пакет «Конфигуратор ИП320»
Контроль значений сигналов
на дискретных входах и выходах
8. Стандарт МЭК 61131 Программируемые контроллеры (Programmable Controllers) принят IEC (МЭК) в 1992 г. в пяти частях:
Стандарт МЭК 61131 Программируемые контроллеры(Programmable Controllers)
принят IEC (МЭК) в 1992 г. в пяти частях:
1. Общая информация.
2. Требования к оборудованию и испытаниям.
- электрические, механические и функциональные требования для промышленного контроллера и связанных с ними
периферийных устройств;
- условия эксплуатации, хранения и транспортирования;
- методы испытаний и процедуры, которые должны использоваться для проверки соответствия характеристик промышленного
контроллера и связанных с ним периферийных устройств установленным требованиям.
3. Языки программирования.
4. Руководства пользователя.
5. Разработка сообщений.
ГОСТ Р 51840–2001 (МЭК 61131–1–92) «Программируемые контролеры. Общие положения и
функциональные характеристики».
ГОСТ Р 51841–2001 - адаптированная часть стандарта МЭК 61131–2.
В настоящее время службами Госстандарта России проводятся работы по адаптации остальных разделов
МЭК 61131.
В Украине в 2002 г. был принят стандарт ДСТУ 4108–2002,
в республике Беларусь – СТБ IEC 61131–2–2010.
9. Стандарт МЭК 61131-3 Programming languages
Общие требования стандарта к языкам.В настоящее время стандарт МЭК 61131-3 поддерживает пять языков
технологического программирования:
Ladder Diagrams (LD) – язык релейных диаграмм;
Function Block Diagram (FBD) – язык функциональных блоковых диаграмм;
Statement List (ST) – язык структурированного текста;
Instruction List (IL) – язык инструкций.
Sequential Function Chart (SFC) – язык последовательных функциональных
блоков;
На чем можно программировать еще?
С
Continuous Flow Chart (CFC) – язык непрерывной потоковой схемы
…
10. Общие элементы языков
Система команд
Форматы данных (элементарные или базовые типы)
Ключевое слово
Диапазон
BOOL
0, 1
SINT, INT, DINT
-128 .. 127, -32768 .. 32767,
-2147483648 .. 2147483647
BYTE, WORD, DWORD
0 .. 255, 0 .. 65535,
0 .. 4294967295
REAL, LREAL
-1.2x 10-38 .. 3.4x 1038
-2.3x 10-308 .. 1.7x 10308
STRING
1 .. 255 символов
Организационные блоки программы (POU):
1. Программы
2. Функции
3. Функциональные блоки
Пример
FALSE, TRUE, 0, 1
0, 24453
-38099887
8450
16#2102
1.34996
2.8377E-15
`Emergency Stop`
11. Пакеты по созданию проектов
Что такое проект?Хранится в одном файле Name.pro
Содержит программные компоненты, ресурсы, визуализации…
Два подхода к созданию пакетов:
«Фирменные» пакеты от производителей контроллеров
для программирования только их контроллеров
TIA Portal (Siemens)
CX (Omron)
Пакеты, в которых можно программировать контроллеры
различных производителей
CoDeSуs (Smart Software Solutions - 3S)
Что такое Target Files (файлы целевой конфигурации)?
12. Типовая структура пакетов программирования
13.
Главное окно CoDeSуsГлавное меню
и панель инструментов
Область
определения
переменных
Редактор программы
Менеджер объектов
Окно состояний
Строка статуса
14. Связь с ПК
12
3
Контроллеры на производстве
получают
IP-адрес 10.0.6.10
15. Настройки ПК для связи с контроллером
Работа с контроллером в одной подсети16. Начало работы в CoDeSys
1. Создайте новый проект2. Выберите целевую платформы
В нашем стенде
3. Задайте имя POU
(основная программа в CoDeSys
по умолчанию всегда PLC_PRG)
и выберите язык
4. Сохраните проект
17. Задание времени цикла
Задание длительности минимального и максимального цикла контроллера18. Глобальные, сетевые и локальные переменные
Конфигурирование контроллераЭто задание состава и определение способов использования средств контроллера:
- соотнесение физических входов-выходов и имен переменных в программе
(автоматически устанавливается формат вводимых в программу переменных);
- настройка параметров входов и выходов;
- включение в состав используемых средств сетевых компонентов и задание их параметров;
- определение и описание сетевых переменных.
Глобальные, сетевые и локальные переменные
Все переменные, определенные при конфигурировании контроллера, автоматически становятся глобальными
19. Правила задания имен переменных
Буквы и цифры английского языка.
Имя должно начинаться с буквы.
Только одинарные подчеркивания.
Без пробелов.
Нельзя использовать зарезервированные слова МЭК и операторы
(AND, VAR, WORD, PROGRAM и т.д.).
Регистр букв не различается.
In1, Lamp, Datchik,
Temp_dvig
Так можно
TON, 1_step
In1, in1, IN1
Воспринимается
как одна переменная
Так нельзя
20. Базовые операции языка CFC
Вход – вызов переменнойВыход – запись переменной
Элемент – вызов оператора
Инверсия
Set/Reset – операции установки / сброса значения
EN/ENO – добавление разрешающего входа
Комментарий
21. Операторы присваивания
ОператорCFC
ST
LD / ST
X := A;
LDN / ST
X := NOT(A);
LD / S
IF A THEN
X := TRUE;
END_IF
LD / R
IF A THEN
X := FALSE;
END_IF
22.
Логические операторыОператор
CFC
ST
NOT
X := NOT(A);
AND
X := A AND B;
OR
X := A OR B;
XOR
X := A XOR B;
Для набора программы с операторами (функциональными блоками)
вставьте элемент
(по умолчанию AND) и исправьте функцию на нужную.
23. Отладка и запуск проекта
1 Компиляцияможно использовать
клавишу F11
2 Режим эмуляции зайти в меню «Онлайн»
и поставить галочку в пункте «Режим эмуляции».
3 Запуск проекта на исполнение
- «Онлайн» – «Подключение» или Alt+F8 или иконка
Зайти в меню «Онлайн» и выбрать пункт «Старт»
(использовать клавишу F5 или
).
Внимание:
- выполнение операции «Подключение» приводит
к автоматическому выполнению компиляции;
- если не установлен режим эмуляции,
то проект будет записываться и выполняться в контроллере.
- после подключения все элементы программы выделяются
«пожирнее» и появляется команда «RETURN» (ВОЗВРАТ),
подчеркивающая, что программа будет выполняться
циклически
- появятся отображения текущих значений переменных и
значений на выходах функциональных блоков
24. Создание загрузочного проекта
“Онлайн”/“Создание загрузочного проекта”
Используется для того,
чтобы сделать код проекта
автоматически загружаемым
при перезапуске ПЛК.
При перезапуске (включении)
контроллера этот проект
будет начинаться
выполняться автоматически.
25. Первый пример создания программы
26. Поток данных
Порядок выполнения операций устанавливается сам по мере вводапрограммы. Если после внесения изменений он у Вас поменялся,
то Вы вновь можете устанавливать порядок в соответствии
с потоком данных (слева-направо/сверху-вниз)
Порядок выполнения программы
(поток данных)
27. Работа с Ассистентом ввода
Если переменные описаны Вами в конфигурации контроллера, то присвоить их именапрограммным компонентам поможет Ассистент ввода.
28.
При отладке проекта Вы можетезаписывать текущие значения переменных
или фиксировать их на все время выполнения программы.
29. ЗАДАНИЕ: Создание дешифратора
Система управления включает в себя три датчика. При срабатываниилюбых двух (и только двух) датчиков должен активизироваться один из
дискретных выходов контроллера.
30. Реализация дешифратора
31. Визуализация
В CoDeSys V2.3 используется в процессе отладки или при представлении проектаДобавление объекта визуализации
Задание имени объекту визуализации
32.
Создание графических примитивовДобавление в примитив текста
33.
Задание основного и «тревожного» цвета примитиваСвязывание примитива
с переменной программы
34.
Связывание примитива (значения, соответствующейвходной переменной) с действием
Визуализацию Вы можете запускать
как в режиме «Эмуляции»,
так и в режиме «Онлайн».
35. Пример: управление котлом
Необходимо реализовать:Включение сигнализации при возникновении любой из аварий.
Отключение котла при возникновении любой из аварий.
Включение котла с кнопки, при условии отсутствия аварий.
Отключение котла с кнопки.
36. Решение примера с котлом
37. Операторы сравнения
Используются для работы со всеми типами данныхОператор
CFC
EQ
AB-
NE
AB-
GE
AB-
GT
AB-
LE
AB-
LT
AB-
EQ
NE
GE
GT
LE
LT
ST
-X
X := (A = B);
-X
X := (A <> B);
-X
X := (A >= B);
-X
X := (A > B);
-X
X := (A <= B);
-X
X := (A < B);
При определении типа блока (алгебраической операции) вместо аббревиатуры
можно использовать простые символы: =, <>, >=, >, =<, <.
38. Арифметические операторы
Выполняют алгебраические операции над целыми числами(INT, WORD) и числами с плавающей запятой (REAL)
Оператор
CFC
ADD
A1-
SUB
A4-
MUL
AB-
DIV
A8-
ADD
SUB
MUL
DIV
ST
-X
X := A + 1;
-X
X := A - 4;
-X
X := A * B;
-X
X := A / 8;
При определении типа блока (алгебраической операции) вместо аббревиатуры
можно использовать простые символы: +, -, *, /.
39. Операторы выбора
• Предназначены для ограничения и выбора значений• Используются с любыми типами данных
Оператор
CFC
MIN
AB-
MAX
A1-
LIMIT
SEL
MUX
-8A5-
A10B-
A010B-
MIN
MAX
LIMIT
-X
-X
-X
ST
X := MIN(A,B);
X := MAX(A,1);
X := LIMIT(-8,A,5);
X = -8 if A < -8
X = 5 if A > 5
SEL
-X
X := SEL(A,10,B);
X = 10 if A is FALSE
X = B if A is TRUE
MUX
-X
X := MUX(A,0,10,B);
X = 0 if A is 0
X = 10 if A is 1
X = B if A is 2
40. Оператор move и разрешающий вход EN
Move присваивает значение слева переменной справа.Используются с любыми типами данных.
При появлении значения TRUE на входе En
операция выполняется, иначе операция игнорируется.
Вход EN используется с любыми операторами и POU.
41. Описание локальных переменных
Ассистент ввода – F2Объявление переменной
42. Пример
43. Пример: управление клапаном
Необходимо реализовать:1.Плавное увеличение и уменьшение степени открытия клапана (pol)
с внешних кнопок (plus или minus);
1.Выдачу управляющего сигнала 4-20 мА (out) с выхода ПЛК на клапан;
2.Отображение степени открытия клапана (pol) в процентах;
3.Сигнализацию о достижении концевых положений (zakr и otkr);
44. Решение примера с клапаном
45. Пример: управление светом в комнате
На входе установлены два дискретных датчика: один снаружи комнаты, другой
внутри. Человек входя или выходя, перекрывает собой по ширине оба датчика.
Когда срабатывает сначала внешний датчик, затем внутренний, это означает, что
человек зашел в комнату. Когда срабатывает сначала внутренний датчик, затем
внешний, это означает, что человек вышел из комнаты.
Необходимо определять количество людей, находящихся в комнате. Пока в
комнате есть хотя бы один человек, свет должен быть включен. Если из комнаты
вышел последний человек свет должен быть выключен.
46. Задача 1: Свет
Программирование ОВЕН ПЛК в среде CoDeSys 2.3Задача 1: Свет
47. Временная диаграмма
Программирование ОВЕН ПЛК в среде CoDeSys 2.3Временная диаграмма
48. Решение примера:
49. Предопределенные функциональные блоки (Библиотеки)
• Библиотека состоит из объектов, которые могутбыть использованы в различных проектах.
• В библиотеку могут входить программные компоненты, списки
переменных, визуализации и пр.
• Пользователь может создавать и использовать
собственные библиотеки.
• Стандартные библиотеки Standard.lib и Util.lib
50. Подключение библиотек
51. Работа с библиотечными функциональными блоками
Библиотека хранит исходники ФБ, в
проекте используются экземпляры этих
исходных ФБ.
Один и тот же ФБ в проекте может
иметь несколько экземпляров,
работающих одинаково и независимо
друг от друга.
Каждый экземпляр должен иметь
уникальное имя (как и любая
переменная).
Экземпляр ФБ объявляется аналогично
тому, как это делается с локальными
переменными.
Допускается в рамках одного цикла
ПЛК несколько раз обращаться одному
и тому же экземпляру ФБ. При этом в
конце цикла учитываются изменения,
произведенные при последнем вызове
экземпляра.
52. Триггеры
Стандартная библиотека Standard.libТриггеры
53. Standard.lib Счетчики
54. Standard.lib Таймеры
55. Временные типы данных
ТипОписание
Пример
TIME
Используются для
выражения
интервалов времени
T1:=T#5h45m10s9ms
T2:=T#100ms
DATE
Используются для
выражения даты
DATE#1996-05-06
d#1972-03-29
Используются для
выражения времени
суток
TIME_OF_DAY#15:36:30.123
tod#00:00:00
Используются для
выражения даты и
времени суток
DATE_AND_TIME#1996-0506-15:36:30
dt#1972-03-29-00:00:00
TIME_OF_DAY
DATE_AND_TIME
56. Работа с таймерами
57. Пример: управление котлом
Необходимо реализовать:Включение сигнализации при возникновении любой из аварий
Отключение котла при возникновении любой из аварий (реализовать проверку
устойчивости срабатывания датчиков – отсутствия дребезга)
Включение котла с кнопки, при условии отсутствия аварий.
Отключение котла с кнопки.
58. Реализация примера
59. Пример
• Включение насоса производится с кнопки.• Включение насоса производится на 10 с, после чего он
отключается. Отключение происходит даже при удержании
кнопки или ее повторном нажатии в течении этих 10 с.
• Осуществляется подсчет числа включений.
60. Решение примера
61. Пример: управление светом в комнате
На входе установлены два дискретных датчика: один снаружи комнаты, другой
внутри. Человек входя или выходя, перекрывает собой по ширине оба датчика.
Когда срабатывает сначала внешний датчик, затем внутренний, это означает, что
человек зашел в комнату. Когда срабатывает сначала внутренний датчик, затем
внешний, это означает, что человек вышел из комнаты (используйте детекторы
фронта).
Необходимо определять количество людей, находящихся в комнате (подсчет
произвести с помощью реверсивного счетчика)
Пока в комнате есть хотя бы один человек, свет должен быть включен. Если из
комнаты вышел последний человек свет должен быть выключен через 5 с
(используйте таймер).
62. Решение примера
63. Работа с аналоговыми входами и выходами
Работа с унифицированным входным сигналомВыбор типа входного сигнала и его масштабирование
Выбор выходного сигнала при заказе
64.
Установка в качествевходного датчика термопары
Установка в качестве
входного датчика термопары
65.
Установка в качествевходного датчика терморезистора
Медный 100М
0 оС – 100 Ом
100 оС – 142,8 Ом
W = 1,428
Pt1000
0 оС – 1000 Ом
1000 оС – 1385 Ом
W = 1,385
66. Пример по масштабированию входного и выходного аналогового сигнала и реализации простейшего релейного регулятора
Измерение температуры осуществляется с помощью датчика напряжения на
аналоговом входе. Напряжению 0 В соответствует температура 100 оС,
напряжению 10 В соответствует температура 1000 оС.
Сформировать переменную TEMPER, отображающую температуру
Сформировать на аналоговом выходе напряжение, соответствующее
температуре. Значению температуры 100 оС соответствует напряжение в
1 В, значению 1000 оС – 2 В;
Включать исполнительный механизм после уменьшения температуры ниже
уровня первой уставки UST1 (UST1 по умолчанию равна 100 градусов).
Выключать исполнительный механизм при выходе температуры выше
уровня второй уставки UST2 (UST2 по умолчанию равна 150 градусов).
Все масштабные преобразования выполнить программно.
67.
68. Язык ST
69. Условный оператор If в языке ST
IF «условие» THEN«действие1»;
«действие2»;
«действие3»;
…
ELSE
«действие4»;
«действие5»;
…
END_IF
Логическая переменная или выражение
Операции, которые необходимо
производить при выполнении условия
Иначе
Операции, которые необходимо
производить при НЕвыполнении условия
Окончание описания условия
70. Язык LD
Берет свое «начало» от релейных схем71. Функциональные блоки в LD
Работа с функциональными блоками в LD не отличается от работы с ними в других языках72. Язык IL
Привычен для специалистов, знакомых с программированием на ассемблере.Но в отличии от ассемблера, как и другие языки программирования контроллеров,
является языком высокого уровня.
Сопоставление одних и тех же действий в программах
на языках LD, IL и CFC
73. Операторы преобразования типов данных
Для каждой пары типов данных используется отдельный оператор.В названии оператора сначала указывается исходный тип данных,
а затем тип результата.
74. Регулировка интервалов с помощью потенциометра
75. Стандартная библиотека Util.lib
Примеры функциональных блоков библиотекиГенератор прямоугольных импульсов запускается
по входу ENABLE = TRUE.
Длительность импульса задается TIMEHIGH,
длительность паузы TIMELOW
Входы: ENABLE типа BOOL, TIMELOW и
TIMEHIGH типа TIME. Выход OUT типа BOOL
Контролирует принадлежность значения входа IN
заданному диапазону.
Если значение на входе IN:
превышает предел HIGH,
то выход О = TRUE;
меньше предела LOW,
то выход U = TRUE;
лежит в пределах между LOW и HIGH
(включительно), то выход IL = TRUE
Входы IN, HIGH и LOW типа INT,
выходы О, U и IL типа BOOL
76. Пример: управление котлом
Необходимо реализовать:Включение сигнализации (должна мигать лампа) при возникновении любой из аварий
Отключение котла при возникновении любой из аварий (реализовать проверку
устойчивости срабатывания датчиков – отсутствия дребезга)
Включение котла с кнопки, при условии отсутствия аварий.
Отключение котла с кнопки.
77. Реализация примера
78. Пример. Формирование импульсов
Сигнал на аналоговом входе меняется в приделах от 0 до 10 В.При изменении сигнала на аналоговом входе от 4 до 10 В
необходимо изменять скважность выходных импульсов в
диапазоне от 20 до 50 %. Период импульсов – 1 с.
79. Решение примера
80. Типы POU
• Функция: < FUNCTION >Имеет один или более входов, один выход, рекурсии не
допустимы
• Функциональный блок:<FUNCTION_BLOCK >
Имеет произвольное число входов и выходов. Имеет
внутреннюю память. Для каждого функционального блока
можно объявить несколько экземпляров
•Программа: < PROGRAM >
Подобна функциональному блоку, но имеет один глобальный
экземпляр
81. Функция
• Не имеет внутренней памяти.• Локальные переменные
инициализируются при каждом вызове.
• Функция возвращает значение, через
свой идентификатор. Функция имеет тип!
• Удобна для реализации комплексных
вычислений.
• Не рекомендуется использование
глобальных переменных в функции.
82. Создание функции
Задание имени итипа (формата) результата
83. Не забывайте указывать, какие переменные являются входными (VAR_INPUT) Выходной переменной является переменная с именем и
форматом функции84. Функциональный блок
• Все переменные функционального блокасохраняют значения
• При создании экземпляра функционального
блока создается новая копия переменных
функционального блока. Копия кода
функционального блока не создается.
• Рекомендуется для программирования
повторно используемого кода, например,
счетчиков, таймеров, триггеров и т.д.
85. Программа
• Все переменные сохраняют свои значения• Используется для структурирования
приложения
86. Все программные компоненты должны вызываться прямо или косвенно из главной программы PLC_PRG.
Вложенность программных компонентоВсе программные компоненты должны
вызываться
прямо или косвенно из главной программы
PLC_PRG.
87. Пример. Система пожарной сигнализации здания
В здании две одинаковые комнаты.
В каждой комнате установлено три пожарных датчика
(d11, d12, d13 и d21, d22, d23), кнопка ручного
включения сигнализации (tr1 и tr2) и кнопка ручного
отключения сигнализации (sb1 и sb2).
Для каждой комнаты предусмотрена сигнальная лампа
(lamp1, lamp2). Сигнализация пожара (alarm) является
общей для обеих комнат.
Если в комнате срабатывает хотя бы один из датчиков,
то загорается сигнальная лампа для соответствующей
комнаты. Лампа гаснет, если все датчики в комнате
отключены.
Если в комнате срабатывает любые два из трех
датчиков, то включается пожарная сигнализация.
Сигнализация работает до тех пор, пока ее не отключат
соответствующей кнопкой.
Сигнализация может быть включена кнопкой проверки
вне зависимости от состояния датчиков.
Анализ срабатывания двух датчиков из трех реализовать с помощью функции
Обработку всех сигналов для каждой из комнат реализовать с помощью функционального
блока
88.
89. Пример: автоматический ввод резерва
На объекте 2 группы насосов, по 2 насоса в каждой группе (n1, n2, n3 и n4).В каждой группе один насос рабочий, второй в резерве.
Если срабатывают любые 2 из 3-х технологических датчиков (d1, d2, d3),
то необходимо переключить насосы в каждой группе
с работающего на резервный
Используйте функциональные блоки и функции
Проверка срабатывания
датчиков пусть выполняется
с помощью функции LOG2_3
Принятие решений в
одинаковых группах
двигателей пусть
осуществляется с помощью
функционального блока
Nasos
90. Решение примера
91. Работа с реальным временем
Командная строкабраузера
Время
и дата
для контроллера
задаются в
ПЛК Браузере
92. Импортирование функционального блока realtime
93. Функциональный блок realtime
Формат всех переменных UINT94. Пример «Управление лампой по времени суток и дням недели»
Лампа должна быть включена в рабочие дни недели(с понедельника до пятницы) с 8.00 до 19.00,
а в субботу и воскресенье с 9.00 до 20.00
95. Решение примера
96. Смена тагет-файла
В «Настройках целевой платформы» выберите нужную платформу (контроллер)97.
Подтвердите,что Вам нужна
стандартная конфигурация
выбранного контроллера
После этого необходимо конфигурацию вручную прописывать вновь!