- •Часть 3
- •Введение
- •Языки программирования плк
- •1 Общие сведения по изучению промышленных контроллеров
- •2. Лабораторные работы
- •2.1. Лабораторная работа №1. Изучение блоков плк. Прямое управление – управление кнопками
- •2.2 Лабораторная работа №2. Изучение работы пневматических распределителей с электроуправлением. Схемы включения распределителей
- •2.3. Лабораторная работа №3. Схемы управления пневматическим цилиндром с применением распределителей различных типов
- •2.4.2. Часть 2. Логическая операция инверсия («не»). Реализация логической функции и электроконтактными устройствами.
- •2.4.1. Часть 1. Логическая операция повторения. Реализация логической функции при помощи плк.
- •2.5.1 Часть 1. Логическая операция дизъюнкция («или»). Реализация логической функции с помощью плк при использовании до 3 входных сигналов.
- •2.5.2 Часть 2. Логическая операция конъюнкция («и»). Реализация логической функции с помощью плк при использовании до 3 входных сигналов
- •2.6. Лабораторная работа №6. Применение логических операций при управлении исполнительным механизмом. Управление от нескольких входных сигналов
- •2.6.1. Часть 1. Применение логических операций дизъюнкция «или»
- •2.6.2. Часть 2. Применение логической операции конъюнкция («и»)
- •2.6.3.Часть 3. Разработка пневматических и электрических схем управления пневматическими исполнительными механизмами при реализации логических функций различного типа
- •2.7. Лабораторная работа №7. Реализация электрических схем «с самоподхватом»
- •2.8. Лабораторная работа №8. Схемы пневмоприводов с дискретным управлением по положению. Применение датчиков положения гирконового типа в схемах управления. Сборка схем.
- •2.9. Лабораторная работа №9. Изучение блока программируемого логического контроллера. Реализация функции задержки по времени на плк
- •2.10. Лабораторная работа №10. Изучение блоков плк. Таймер с задержкой отключения
- •2.11. Лабораторная работа №11. Схемы пневмоприводов с дискретным управлением по положению. Применение плк и датчиков положения в схемах управления. Сборка схем
- •2.12. Лабораторная работа № 12. Разработка схем с управлением несколькими исполнительными механизмами. Последовательное управление
- •2.13. Лабораторная работа №13. Разработка схем с управлением несколькими исполнительными механизмами с использованием плк. Последовательное управление
- •2.14. Лабораторная работа №14. Разработка схем циклического управления исполнительными механизмами
- •2.15. Лабораторная работа №15. Разработка схем циклического управления исполнительными механизмами с использованием таймера
- •2.16 Лабораторная работа №16 Изучение методов программирования для управления непрерывными аналоговыми электрическими сигналами
- •2.18.Лабораторная работа №18. Ступенчатое регулирование скорости при использовании аналогового датчика положения штока пневмоцилиндра
- •2.19.Лабораторная работа №19. Плавное регулирование скорости движения штока пневмоцилиндра при использовании аналогового датчика положения штока
- •2.21. Лабораторная работа №21. Задание гармонического закона движения пневмоцилиндра. Исследование частотных характеристик привода
Введение
Промышленные контроллеры [1,2], или программируемые логические контроллеры (ПЛК), являются широко распространенными средствами автоматизации в составе систем контроля и управления работой промышленного оборудования.
Любая машина, способная автоматически выполнять некоторые операции, имеет в своем составе управляющий контроллер – модуль, обеспечивающий логику работы устройства. Контроллер – это мозг машины. Естественно, чем сложнее логика работы машины, тем «умнее» должен быть контроллер.
Технически контроллеры реализуются по-разному. Это может быть механическое устройство, пневматический или гидравлический автомат, релейная или электронная схема или даже компьютерная программа.
Контроллеры, выполненные на основе реле или микросхем с жесткой логикой, невозможно научить делать другую работу без существенной переделки. Очевидно, что такой возможностью обладают только программируемые логические контроллеры (ПЛК), Идея создания ПЛК родилась практически сразу с появлением микропроцессора, т. е. 30 лет назад.
Физически, типичный ПЛК представляет собой блок, имеющий определенный набор выходов и входов, для подключения датчиков и исполнительных механизмов. Логика управления описывается программно на основе микрокомпьютерного ядра. Абсолютно одинаковые ПЛК могут выполнять совершенно разные функции. Причем для изменения алгоритма работы не требуется каких-либо переделок аппаратной части. Аппаратная реализация входов и выходов ПЛК ориентирована на сопряжение с унифицированными приборами и мало подвержена изменениям.
Задачей прикладного программирования ПЛК является только реализация алгоритма управления конкретной машиной. Опрос входов и выходов контроллер осуществляет автоматически, вне зависимости от способа физического соединения. Эту работу выполняет системное программное обеспечение. В идеальном случае прикладной программист совершенно не интересуется, как подсоединены и где расположены датчики и исполнительные механизмы. Мало того, его работа не зависит от того, с каким контроллером и какой фирмы он работает. Благодаря стандартизации языков программирования прикладная программа оказывается переносимой. Это означает, что ее можно использовать в любом ПЛК, поддерживающем данный стандарт.
Программируемый контроллер — это программно управляемый дискретный автомат, имеющий некоторое множество входов, подключенных посредством датчиков к объекту управления, и множество выходов, подключенных к исполнительным устройствам. ПЛК контролирует состояния входов и вырабатывает определенные последовательности программно заданных действий, отражающихся в изменении выходов.
Изначально ПЛК предназначались для управления последовательными логическими процессами, что и обусловило слово «логический» в названии ПЛК. Современные ПЛК помимо простых логических операций способны выполнять цифровую обработку сигналов, управление приводами, регулирование, функции операторского управления и т. д.
Языки программирования плк
Языки программирования [3,4] ПЛК во многом определяются конкретными приложениями, а также требованиями современных сложных распределенных систем управления.
Историческое развитие ПЛК привело к возникновению разных решений, связанных с конкретным производителем и в той или иной степени удовлетворяющих общим стандартам (DIN 19239, 19237, 40719 Part 6 и VDI 2880). Для унификации программ, разрабатываемых для различных контроллеров, в 1993 году Международная электротехническая комиссия (МЭК) приняла на ПЛК международный стандарт IEC 1131 (в настоящее время действует IEC 61131-3), третья часть которого имеет дело с языками для ПЛК. В него вошли пять языков:
LD (Ladder Diagram) - вариант класса языков релейно-контактных схем;
FBD (Functional Block Diagram) - аналогичен функциональной схеме электронного устройства с использованием логических элементов;
SFC (Sequential Function Chart) - язык диаграммного типа, аналогичный блок-схемам алгоритмов;
ST (Structured Text) — текстовый высокоуровневый язык общего назначения, по синтаксису напоминает Паскаль;
IL (Instruction List) - текстовый язык низкого уровня, по синтаксису напоминает Ассемблер.
Языки LD и FBD являются данью традициям (т. е. аппаратным аналогам этих языков - релейным схемам).
Язык LD - графический язык, основанный на принципах релейно-контактных схем (элементами релейно-контактной логики являются: контакты, обмотки реле, вертикальные и горизонтальные перемычки и др.) с возможностью использования большого количества различных функциональных блоков.
Язык релейных схем существует со времен Т. Эдисона и адаптирован к ПЛК в начале 70-х годов прошлого века. Символика этого языка была заимствована из проектирования в области электротехники.
Достоинствами языка LD являются: представление программы в виде электрического потока, наличие простых правил, использование только булевых выражений. Язык LD имеет большой круг пользователей, рационален для ручной оптимизации специфических критических мест кода.
Язык FBD - это полностью графический язык высокого уровня, обеспечивающий управление потоками данных. Позволяет использовать очень мощные алгоритмы, вызов функций и функциональных блоков, имеет большую библиотеку блоков, удовлетворяет непрерывным динамическим процессам, хорош для сложных вещей подобных ПИД-регуляторам.
FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD более эффективен для представления структурной информации, чем язык релейно-контактных схем.
Язык IL является языком низкого (машинного) уровня, что существенно облегчает, например, условный или безусловный вызов функциональных блоков и функций, выполнение назначений и условных или безусловных переходов внутри секции, похож на Ассемблер. Язык IL позволяет создавать высокоэффективные и оптимизированные функции. Его можно рекомендовать для написания наиболее критических мест в программе.
Ассемблероподобные языки использовались для программирования компьютеров в 50-е годы XX века и все еще предлагаются некоторыми изготовителями ПЛК. Корни языка IL лежат в языке STEP компании Siemens. IL можно программировать с помощью любого текстового редактора.
Язык ST является языком высокого уровня (типа Паскаля). Был популярен в середине 70-х годов XX века для сложных компьютерных приложений. Служит для создания процедур со сложной логикой. Может использоваться как в главных программах, так и в теле функции или FBD, а также для описания действий внутри элементов редакторов SFC или FlowChart. Обладает высокой читабельностью исходного кода: ключевые слова, такие, как AND, OR, NOT, IF, TEEN, ELSE, WHILE (и т. д.) легко понимаемы; прост в сопровождении, если имена переменных понятны, имеются комментарии, код хорошо структурирован.
Язык SFC предложен в 1979 году как графический язык, предназначенный для описания функций последовательных операций и позволяющий однозначное определение желаемого поведения системы управления. Удобен для описания, как последовательных процессов, так и пакетных или параллельных процессов, легко комбинируется с другими языками (язык спецификаций). Обеспечивает улучшение понимания оборудования при формировании модели приложения. Обладает развитыми механизмами синхронизации. Использует простые динамические правила.
Диагностика языка SFC позволяет обнаружить ошибки проекта до того, как приложение тестируется в режиме реального времени. Интерактивно анимируемый язык SFC также служит для облегчения диагностики оборудования и ошибок системы управления и после ввода в действие. Использование языка SFC как диагностического инструмента может уменьшать среднее время устранения таких неполадок. SFC широко принят как стандарт в Европе.
Программирование логики ведется с применением языков SFC, LD, FBD, IL, ST, а также дополнительных интерактивных редакторов для описания переменных, определений и конфигурации ввода/вывода.
Все языки программирования контроллеров взаимоувязаны - для них стандарт определяет единые модели ПО, связных функциональных блоков и модель собственно программирования. Стандартизированы общие элементы этих языков и, прежде всего, используемые символы, типы данных и переменные. Определены функции и функциональные блоки, их декларации, наборы стандартных функций и функциональных блоков, понятия программ на этих языках. Стандарт определяет и такие общие элементы, как конфигурации, ресурсы, пути доступа, задачи. Все это дает возможность программирования на любом из этих языков с обеспечением генерации кодов единой программы. Языки программирования определены в стандарте таким образом, что допускают разработку приложений на их смеси, которая впоследствии собирается в единую исполняемую программу. Кроме того, стандарт открыт для использования других языков программирования. И, наконец, в стандарте рассмотрена специфика каждого из языков.
