- •1. Задачи и содержание курса пас. Стадии и этапы создания ас
- •2. Описание функциональной схемы технологического процесса
- •3. Архитектура ас
- •Контроль и, при необходимости, корректирующее воздействие по управлению отдельными, наиболее важными технологическими установками (рабочими центрами);
- •4. Техническое задание на проектирование ас
- •5. Структурные схемы ас
- •6. Функциональные схемы автоматизации
- •7. Выбор контроллерного оборудования
- •8. Выбор средств коммуникации
- •9. Выбор измерительных средств киПиА
- •10. Выбор исполнительных устройств ас
- •11. Состав scada системы
- •12. Проектирование программного обеспечения плк
- •13. Моделирование и симуляция ас
- •14. Проектирование алгоритмического обеспечения
- •15. Проектирование информационного обеспечения
- •16. Принципиальные схемы автоматизации
- •17. Схемы внешней проводки
12. Проектирование программного обеспечения плк
Стандарт IEC 61131-3 описывает синтаксис и семантику пяти языков программирования ПЛК:
SFC (Sequential Function Chart) - графический язык, который используется для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход - набор логических условных выражений, определяющий передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма. Однако, SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта. Происхождение этого языка - Grafcet (Telemechanique-Groupe Schneider).
LD (Ladder Diagram) - графический язык программирования, являющийся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 60-х годах. Ввиду своих ограниченных возможностей язык дополнен привнесенными средствами: таймерами, счетчиками и т.п. Происхождение: различные варианты языка релейно-контактных схем (Allen-Bradley, AEG Schneider Automation, GE-Fanuc, Siemens).
FBD (Functional Block Diagram) - графический язык по своей сути похожий на LD. Вместо реле в этом языке используются функциональные блоки, по внешнему виду - микросхемы. Алгоритм работы некоторого устройства на этом языке выглядит как функциональна схема электронного устройства: элементы типа "логическое И", "логическое ИЛИ" и т.п., соединенные линиями. Происхождение: вариант G- языка прогаммирования LabView.
ST (Structured Text) - текстовый высокоуровневый язык общего назначения, по синтаксису ориентированный на Паскаль. Самостоятельного значения не имеет: используется только совместно с SFC. Происхождение: Grafcet (Telemechanique-Groupe Schneider).
IL (Instruction List) - текстовый язык низкого уровня. Выглядит как типичный язык Ассемблера, что объясняется его происхождением: для некоторых моделей ПЛК фирмы Siemens является языком
Ассемблера. В рамках стандарта IEC 1131-3 к архитектуре конкретного
процессора не привязан. Самостоятельного значения не имеет:
используется только совместно с SFC. Происхождение - STEP 5
(Siemens).
Этот стандарт имеет очевидные преимущества: получение качественного
программного продукта, сопрягамость отдельных программных подсистем на
уровне исходных текстов, независимость от типа операционной системы и от
субъективных особенностей программиста, использование общего языка
общения в среде разработчиков и пользователей программного обеспечения
(ПО) и, наконец, сокращение финансовых затрат на разработку проектов в
целом за счет сокращения времени разработки ПО.
Языки стандарта используются ведущими фирмами изготовителями ПЛК, достаточно распространены и известны специалистам АС. Набор средств разработки обычно исполняется на компьютере проектировщика, например, компьютере типа IBM PC, и состоит из редактора, отладчика и препроцессора, который подготавливает описанный проектировщиком алгоритм к формату, "понятному" ядру-интерпретатору программы проектирования. Этот набор имеет современный пользовательский интерфейс, позволяет тестировать алгоритм в режиме эмуляции и получать листинг алгоритма на языках его описания. В результате проектирования пользовательская программа совместно с ядром-интерпретатором загружается в целевой ПЛК для исполнения. Ядро-интерпретатор, как следует уже из его названия, транслирует пользовательский алгоритм в «машинные команды» во время исполнения. Это позволяет
сконцентрировать машинно-зависимый код и таким образом снизить накладные расходы при переходе на другой ПЛК.
Для исполняющей системы контроллер с загруженной программой может быть представлен в виде, показанном на рисунке 36:
Как только сформулирована задача программирования логики контроллера, то сразу встает вопрос о соответствующем программном инструментарии для решения этой задачи.
Считается, что для специалистов КИПиА наиболее понятен язык LD- релейных диаграмм (Ladder Diagrams). Программа контроллера, написанная на этом языке, представляет собой релейную диаграмму в виде двух вертикальных «шин питания», между которыми располагают горизонтальные цепи, образованные контактами и средством возбуждения исполнительного устройства (обмоткой реле, спиралью лампы и др.). Количество контактов в цепи произвольно, средство возбуждения исполнительного устройства одно. Соответствие операторов программы и элементов релейной логики приведено в таблице 3
Таблица 3 Соответствие ЕСКД обозначений и LD операторов.
LD
ЕСКД
Обозначение
И
о
_Tl
Нормально разомкнутый контакт
Нормально замкнутый контакт
Обмотка реле, исп. устройство
Простая релейно-контактная схема представлена на рисунке, Кнопкой S1 включается контактор K1, который остается включенным своими блок -контактами. Его контактами включается контактор K3, который отключает К1 и включает сигнальную лампочку H1. При повторном нажатии кнопки S1
включается контактор K2. При этом контактор K3 отключается и лампочка H1 гаснет.
Рис. 37. LD- программа релейной схемы
На рис 37б приведена программа, написанная на языке LD. Эта программа вместе с ядром-интерпретатором загружается в целевой ПЛК для исполнения. Ядро-интепретатор во время исполнения протранслирует эту программу в машинные команды. Эти команды будут управлять сигналами вводв/вывода ПЛК и тем самым лампочка Н1 будет вкючаться или выключаться.
