LS-Sb89577
.pdfМИНОБРНАУКИ РОССИИ
__________________________________________
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
__________________________________________
ОСНОВЫ РАЗРАБОТКИ СИСТЕМ ДИСПЕТЧЕРСКОГО
КОНТРОЛЯ И УПРАВЛЕНИЯ
Методические указания к лабораторным работам по дисциплине
«Проектирование автоматизированных производственных комплексов и систем»
Санкт-Петербург Издательство СПбГЭТУ «ЛЭТИ»
2013
УДК 528.5-529(075)
Основы разработки систем диспетчерского контроля и управления: Методические указания к лабораторным работам по дисциплине «Проектирование автоматизированных производственных комплексов и систем» / Сост.: Е. С. Филатова, Д. М. Филатов. СПб.: Изд-во СПбГЭТУ
«ЛЭТИ», 2013. 36 с.
Содержат программы и методики выполнения лабораторных работ, посвященных конфигурированию и программированию промышленных логических контроллеров (ПЛК) на языках стандарта МЭК 61131-3 на примере ПЛК ЭЛСИ-ТМ, разработке человеко-машинных интерфейсов на базе программного комплекса InfinitySuite, а также практическим вопросам организации взаимосвязи ОРС-сервера и ПЛК.
Предназначены для студентов, обучающихся по направлению «Управление в технических системах».
Утверждено редакционно-издательским советом университета
в качестве методических указаний
© СПбГЭТУ «ЛЭТИ», 2013
Лабораторная работа №1
ПРОГРАММИРОВАНИЕ ПЛК В СРЕДЕ OPENPCS
Цель работы: получение навыков разработки программ на языках стандарта IEC 61131-3 и их отладка в PLC-симуляторе OpenPCS 2004.
1.1. Основные сведения
Стандарт IEC 61131-3 описывает синтаксис и семантику пяти языков программирования промышленных логических контроллеров (ПЛК) – языков, ставших широко известными за более чем 30-летнюю историю их применения в области автоматизации промышленных объектов:
1.LD (Ladder Diagram) – графический язык программирования, являющийся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде объединенных в цепи контактов, расположенных между двумя вертикальными шинами питания. Для расширения возможностей языка LD в структуру программы возможно добавление функций и функциональных блоков, реализованных на других языках стандарта.
2.FBD (Functional Block Diagram) – графический язык программирова-
ния. Программа, написанная на данном языке, по сути своей напоминает принципиальную схему электронного устройства. В отличие от LD «проводники» в FBD могут передавать сигналы любого типа (логический, аналоговый, время и т. д.).
3.ST (Structured Text) – текстовый высокоуровневый язык общего назначения, по синтаксису представляющий собой адаптированный Паскаль. Вместо процедур Паскаля в ST используются компоненты программ стандарта IEC.
4.IL (Instruction List) – текстовый язык низкого уровня, дословно – список инструкций. Выглядит как типичный язык ассемблера. В рамках стандарта IEC 61131-3 к архитектуре конкретного процессора не привязан. Язык IL позволяет работать с любыми типами данных, вызывать функции и функциональные блоки, реализованные на любом языке.
5.SFC (Sequential Function Chart) – графический язык, используемый для описания алгоритма работы программы в виде шагов (step) и переходов (transition) между ними. Шаг представляет собой определенный набор дей-
3
ствий над переменными. Переход – это набор условных логических выражений, разрешающий передачу управления к следующей паре шаг-переход. SFC имеет возможность распараллеливания алгоритма. Диаграммы SFC являются высокоуровневым наглядным графическим инструментом, однако в конечном счете, действия нижнего уровня необходимо будет писать на других языках стандарта.
В рамках данной лабораторной работы для создания программ на языках стандарта IEC 61131-3 будет использоваться программное обеспечение OpenPCS, разработанное фирмой Infoteam. OpenPCS представлен в виде двух частей: набора средств разработки и исполняемого на целевом ПЛК ядраинтерпретатора. Комплекс средств разработки устанавливается на компьютере проектировщика и состоит из редактора, отладчика и препроцессора, который подготавливает описанный проектировщиком алгоритм к формату, «понятному» ядру-интерпретатору. Программный комплекс имеет современный пользовательский интерфейс, позволяющий тестировать алгоритмы в режиме эмуляции и получать листинг алгоритма на языках его описания. После создания пользовательская программа совместно с ядроминтерпретатором загружается в целевой ПЛК для исполнения.
Рис. 1.1. Адресное пространство симулятора SmartSIM
Для описания переменной, которая будет представлять физический вход или выход, необходимо использовать специальный синтаксис. Например,
4
булевская (BOOL) выходная (Q) переменная Motor, имеющая физический адрес (0.0) в адресном пространстве некоторого устройства, должна быть описана следующим образом: Motor AT %Q0.0 :BOOL; .
В рамках данной лабораторной работы в качестве такого устройства будет выступать программный симулятор контроллера. Адресное пространство симулятора представлено на рис. 1.1.
Область адресов I0.0 до I3.7 соответствует входным сигналам, а область адресов от Q0.0 до Q3.7 соответствует выходным переменным.
1.2.Программа работы
1.2.1.Реализация программы «Старт-стоп» на языке FBD
Так как это графический язык, ориентированный на создание программ, по виду похожих на принципиальную блочную схему, будет уместным привести задачу именно в таком графическом виде (рис. 1.2).
Up_In |
|
|
|
|
S |
Q |
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
T |
|
|
|
|
OR |
||||
|
|
|
|
|||||
|
|
|
|
|
|
|
R |
|
Reset
Down
OR R Q
T
S
Down_In
Рис. 1.2. Реализация алгоритма «Старт-стоп» на логических элементах
В этой схеме переменная Down примет значение, равное единице, только в том случае, если подан сигнал на переменную Down_In, и переменные Up_In и Reset равны нулю. Данный алгоритм имитирует, например, работу лифта, где невозможно одновременное перемещение и вверх и вниз.
Запустите OpenPCS и создайте новый проект (File → New → Projects → Empty Project) с именем Familiya (ваша фамилия, конечно) в рабочей директории. Путь к проекту не должен содержать имен файлов и папок с кириллицей.
Создайте новую программу на FBD (File → New) с именем FBD1, а на предложение о добавлении созданной программы к активному ресурсу от-
5
ветьте отказом. Включите сетку через контекстное меню (правая кнопка мы-
ши) View → Hide Print Page Boundaries.
В редакторе переменных VAR опишите локальные переменные (табл. 1.1):
Таблица 1.1
Название сигнала |
Аппаратный адрес |
Тип переменной |
|
|
|
Up_In |
AT%I0.0 |
Bool |
|
|
|
Reset |
AT%I0.1 |
Bool |
|
|
|
Down_In |
AT%I0.2 |
Bool |
|
|
|
And1 |
Нет |
Bool |
|
|
|
And2 |
Нет |
Bool |
|
|
|
Up _Control |
AT%Q0.0 |
Bool |
|
|
|
Down _Control |
AT%Q0.2 |
Bool |
|
|
|
Также опишите функциональные блоки RS-триггеров (в сущности, это подпрограммы-процедуры) T1 :RS и T2 :RS. Т1 – имя функционального блока, RS – его тип.
Соберите в редакторе кода схему (см. рис. 1.2) при помощи вызова соответствующих функциональных блоков Insert → Function Block или Insert → Function. Назначьте входам – входные, а выходам – выходные переменные, также назначьте переменные для функциональных блоков. Соедините блоки, выбрав мышкой необходимые выводы и применив инструмент Insert → Connection. Проверьте созданную программу на синтаксические ошибки File
→ Check Syntax.
Проверьте, что у вас существует активный ресурс и он не содержит программ (вкладка Resources). Признак активного ресурса – ярко-зеленый цвет. Настройте ресурс для работы со симулятором промышленного контроллера, вызвав для него контекстное меню и выбрав «Properties». В панели Hardware Module выберите infoteam SmartSIM, а в панели Network Connection – Simulation.
Перейдите на вкладку Files и свяжите написанную программу с активным ресурсом через контекстное меню (Link to Active Resource).
Откомпилируйте активный ресурс, связанный с вашей задачей (программой) PLC → Build Active Resource. При компиляции будет создан исполняемый код *.PCD и сгенерированы сведения о наличии ошибок и предупреждений.Свяжитесь с «контроллером» (симулятором) PLC→ Online и загрузите в симулятор код. Запустите симулятор кнопкой «run» и проверьте работоспособность программы.
6
1.2.2. Реализация программы «Старт-стоп» на языке ST
Остановите работу симулятора (кнопка «stop»), закройте его и разорвите соединение (PLC → Offline). Создайте новый файл ST с именем ST1. Поскольку ресурс для работы со симулятором уже создан, то все последующие задачи будут добавляться к нему.
Вредакторе переменных VAR опишите локальные переменные аналогично предыдущему упражнению, но назначьте им другие аппаратные адреса.
Вредакторе кода введите текст программы:
And1: =Up_In and not (Down_Control);
T1 (Set: =And1, Reset1: =Reset | Up_Control: =Q1);
Здесь переменной And1 присваивается результат логического умножения (and) переменной Up_In и инверсного (not) значения переменной Down_Control. Далее входу установки триггера T1 в единичное состояние Set присваивается переменная And1, входу сброса триггера Reset1 присваивается переменная Reset. После разделителя | идет описание выхода Q1, которому присвоена переменная Up_Control. Две строчки этой программы описывают логику работы верхней половины схемы (см. рис. 1.2). Самостоятельно допишите программу.
Проверьте программу на синтаксические ошибки, откомпилируйте и проверьте ее работоспособность на симуляторе ПЛК (теперь должны выполняться обе программы FBD1 и ST1 в разном адресном пространстве симулятора).
1.2.3. Реализация программы «Старт-стоп» на языке IL
Остановите работу симулятора, закройте его и разорвите соединение (PLC → Offline). Создайте новый файл IL с именем IL1.
Таблица 1.2
Программный код |
Комментарий |
|
|
|
|
LDN Down_Control |
Инвертированная загрузка (LDN) переменной Down_Control… |
|
|
||
|
|
|
AND Up_In |
и ее логическое умножение на переменную Up_In |
|
|
||
|
|
|
ST AND1 |
Сохранение (ST) результата умножения в переменную |
|
AND1_IL |
||
|
||
CAL T1 (Set: =AND1, |
Вызов (CAL) функционального блока, реализующего RS- |
|
триггер и присвоение его входам-выходам переменных |
||
Reset1: =Reset | |
||
|
||
Up_Control: =Q1) |
|
|
|
|
|
|
7 |
В редакторе переменных VAR опишите аналогичные локальные переменные, но с другими аппаратными адресами.
Напишите программу «Старт-стоп» (табл.1.2). Допишите программу самостоятельно.
Откомпилируйте программу, загрузите код в симулятор, запустите его и проверьте работу по аналогии c предыдущими упражнениями.
1.2.4. Реализация программы «Старт-стоп» на языке LD
Остановите работу симулятора и создайте новый файл LD с именем LD1. Поскольку язык графический, редактор выглядит довольно специфично
(рис. 1.3).
Рис. 1.3. Фрагмент редактора кода языка LD
Элемент, показанный на рис. 1.3, носит название элементарная сеть – это заготовка для создания элемента программы.
Опишите переменные, назначив им уникальные аппаратные адреса. Составьте в редакторе кода программу, реализующую алгоритм работы
программы «Старт-стоп». Добавление элементов в сеть, их редактирование и присвоение им соответствующих переменных осуществляется через контекстное меню. Добавление новой сети осуществляется при помощи меню Insert → Network. Фрагмент программы, полностью идентичный коду ST в пункте 3 упражнения 2, приведен на рис. 1.4.
Рис. 1.4. Фрагмент программного кода языка LD
Допишите остальную часть программы, откомпилируйте ее, загрузите в симулятор, запустите его и убедитесь в работоспособности всех четырех про-
8
грамм в адресном пространстве симулятора.
Создайте аналогичную программу «Старт-стоп» на языке SFC.
1.3. Содержание отчета
Отчет должен содержать выполнение всех пяти упражнений лабораторной работы:
−краткое описание особенностей языка программирования стандарта МЭК 61131-3, на котором реализована программа;
−алгоритм работы программы;
−описание созданных переменных;
−тексты программ с комментариями.
9
Лабораторная работа №2
КОНФИГУРИРОВАНИЕ И ПРОГРАММИРОВАНИЕ ПЛК ЭЛСИ-ТМ
Цель работы: изучение основ конфигурирования и программирования ПЛК ЭЛСИ-ТМ.
2.1. Основные сведения
Процесс создания конфигурации контроллера ЭЛСИ-ТМ подразумевает определение состава модулей контроллера, настройку их свойств, создание и маршрутизацию сигналов.
Первым шагом при конфигурировании контроллера является определение количества и типа модулей, необходимых для выполнения поставленной задачи. При добавлении модулей в конфигурацию стоит обратить внимание на то, что существуют два типа модулей: аппаратные и программные. Номер позиции аппаратного блока в конфигурации строго определяется его положением на коммутационной панели контроллера. Номер позиции программного модуля может быть произвольно выбран из предложенного списка позиций. В табл. 2.1 представлено краткое описание аппаратных модулей контроллера ЭЛСИ-ТМ, которыми оснащены индивидуальные исследовательские стенды в лаборатории. Табл. 2.2 содержит краткое описание программных модулей, используемых при выполнении лабораторных работ.
|
|
Таблица 2.1 |
Название модуля |
Позиция |
Краткое описание |
TP 502 024DC |
– |
модуль источника питания |
TC 505 P300 ETHE |
0 |
модуль центрального процессора |
TN 503 COM 485 |
1 |
Модуль связи (RS-232/RS-485) по протоколу Modbus- |
|
|
master |
TA 516 8IDC E |
3 |
модуль измерения аналоговых входов (8 каналов) |
TD 501L 32I 024DC |
4 |
Модуль измерения дискретных входов (32 входа) |
TD 501L 32I 024DC |
5 |
Модуль выдачи дискретных выходов (32 выхода) |
|
|
Таблица 2.2 |
|
|
|
Название модуля |
|
Краткое описание |
main |
Системный служебный модуль |
|
opcs |
Модуль поддержки прикладной программы в |
|
|
среде OpenPCS |
|
mbstcp |
Программный модуль поддержки протокола Modbus TCP/IP в ре- |
|
|
жиме Slave |
|
Следующим этапом конфигурирования контроллера является настройка
10