Программирование ПЛК
Для того, чтобы автоматизировать процессы управления на промышленных объектах, были созданы специальные устройства – программируемые логические контроллеры (ПЛК).
Благодаря развитой системе входов/выходов они легко и быстро управляют разными подключенными устройствами и значениями: от температуры и давления до измерения длительности и фиксации фронтов. Несмотря на обширный функционал и высокую производительность, взаимодействие с контроллерами для пользователя максимально упрощено. В этой статье мы рассмотрим основные принципы работы такого оборудования, а также способы программирования контроллеров различных марок.
Что такое ПЛК: устройство и принцип работы
Перед тем, как начать рассматривать методы программирования, важно понять назначение и конструктивные особенности ПЛК. В целом, данное устройство можно назвать миниатюрным персональным компьютером с определённым набором функций. Контроллер включает в себя несколько главных элементов:
- ходы – порты, через которые поступает важнейшая информация для дальнейшей обработки и корректировки работы. В любом аппарате реализованы три вида таких элементов: дискретные, аналоговые и специальные. Один дискретный вход в 1 бит способен воспринимать лишь один бинарный сигнал. Полученные биты можно читать и изменять из оперативной памяти устройства. Аналоговые входы служат для передачи значений температуры, давления, веса, положения, скорости перемещения или частоты оборотов. Специальные используются при трудностях в получении сигналов – с их помощью можно измерять длительность, фиксировать фронты, подсчитывать импульсы;
- центральный блок, куда входит центральный процессор, память и система коммуникаций. Каждый элемент может иметь различные параметры – в зависимости от этого будут изменяться выполняемые задачи. Так, для создания межсетевых шлюзов и управления в малопроизводительных ПЛК подойдут 8-разрядные микропроцессоры. МП могут быть также очень мощными, включая двухъядерные и четырехъядерные;
- выходы – также делятся на несколько типов. Нагрузкой для дискретных выходов может стать силовой пускатель, лампа, соленоид, индикатор, пневматический клапан, реле. Аналоговые выходы преобразуют числовые значения в непрерывные сигналы, чтобы запустить процессы в подключённом оборудовании. Специальные формируют частотно-импульсные или широтно-импульсные сигналы, управляют специфической техникой.
Не менее важным аппаратом при автоматизации промышленных процессов является сенсорная панель оператора (популярные производители: KInco, Овен, Siemens). С её помощью можно быстро получать всю необходимую информацию от контроллера. Так, она запускает/останавливает оборудование, помогает выбирать режимы работы, вводить новые рецептуры, следить за изменениями в значениях от датчиков. Её довольно легко купить как в Москве, так и в любых других городах России.
Принцип работы ПЛК заключается в периодическом опросе входных данных. Огромное значение для функционирования имеет системное ПО контроллера – оно управляет работой узлов, обеспечивает взаимосвязь составляющих частей, проводит внутреннюю диагностику. ПО располагается в постоянной памяти и готово к работе через несколько миллисекунд после включения.
После того, как опрос входов закончился, начинается работа пользовательской программы: контроллер делает всё, что от него хотят. После этого управление устройством переходит вновь на системный уровень: устанавливаются значения выходов и проходят вспомогательные операции.
Одним из ведущих производителей панелей оператора и контроллеров является компания KInco – китайская корпорация, соединяющая в своей продукции бюджетную стоимость и оптимальное качество. Производством подобного оборудования занимаются и отечественные производители: подбирать устройства необходимо при совместимости их параметров.
За счёт продуманной технологии, соответствующих драйверов, наличия системного программного обеспечения программистам нет необходимости узнавать внутреннее устройство контроллера – это значительно облегчает программирование.
Общие сведения о программировании
С первого взгляда может показаться, что программировать контроллеры – очень трудно. Однако для простой и комфортной разработки программ уже созданы все необходимые условия.
Стандарт МЭК-61131-3
Долгое время технологам и программистам не удавалось прийти к компромиссу и разработать оптимальные программы для автоматизации промышленных систем: ни один из них не мог поделиться необходимой информацией просто и понятно. В связи с этим были созданы специальные технологические языки программирования, которые стали доступны инженерам и технологам.
Международная Электротехническая Комиссия разработала стандарт МЭК-61131-3, в котором соединены все передовые достижения в области технического программирования. На сегодняшний день он поддерживает 5 языков.
Sequential Function Chart (SFC)
Этот графический язык программирования позволяет написать программы последовательного управления технологическим процессом при помощи близких к диаграммам состояний. Большое распространение получил в SCADA/HMI пакетах. В качестве основы для языка используются:
- состояния (может быть активно сразу несколько) – в них выполняются определённые действия;
- переходы с заранее заданными логическими условиями;
- альтернативное/параллельное ветвление алгоритма, при котором возможны переходы из начального к другим состояниям при определённых условиях;
- остановка процесса.
Function Block Diagram (FBD)
Основой для программы является список цепей, выполняющихся сверху вниз. Специалист может использовать как готовые библиотечные блоки, так и собственные (обязательно написаны на FBD или других языках стандарта). Под блоками подразумевается подпрограмма, функция или функциональный блок (различные математически операции, таймеры, условия, счётчики).
С помощью этого языка можно создать быстрый и надёжный код – простота внутренней структуры команд и жёсткая последовательность помогают инженерам быстрее разобраться в основных принципах. В то же время существует множество дополнительных реализаций с расширениями/ограничениями.
Ladder Diagrams (LАD)
Язык релейно-контактной логики, полностью ориентированный на инженеров автоматизации. Логические операции представляются в виде электрической цепи с замкнутыми или разомкнутыми контактами. Если ток протекает – это обозначает истину, если же нет – ложь. Здесь также присутствует огромное разнообразие иных версий, которые расширяют стандартные наборы команд. Однако с этим важно быть осторожным: реализации часто могут приводить к несовместимости программ с контроллерами различного типа.
Statement List (STL)
В отличие от трёх предыдущих, STL представляет собой текстовый язык программирования. Его используют для того, чтобы создавать операторные части логического блока. В его основе лежат команды, а также адреса, на которые они действуют. В целом, язык схож с Ассемблером и подходит для более сложных кодов/программ.
Instruction List (IL)
В основе этого языка, так же, как и в Ассемблере, лежат переходы по меткам и аккумулятор. С его помощью можно описать функции, функциональные блоки и программы, шаги и переходы. Простота и особенности не позволяют использовать его для реализации сложных алгоритмов с множеством разветвлений. Однако с ним легко взаимодействовать и создавать оптимизированные коды для реализации критических секторов программ.
В целом, все программные языки схожи с логикой функционирования обычных реле – это облегчает работу программистам.
Среды программирования для разных ПЛК
Для того, чтобы пользователи могли максимально пользоваться инструментами языков МЭК, была создана специальная среда программирования CoDeSys. Она удовлетворяет всем современным требованиям: предлагает возможности для визуализации, имеет бесплатную лицензию, переведена на русский язык (с учётом документации). Именно в этой среде разрабатываются программы для ПЛК Овен.
Некоторые производители могут самостоятельно создавать среды программирования для своей продукции. Рассмотрим несколько из них.
Siemens
Siemens – одна из старейших немецких компаний (дата основания – 1847 год), выпускающая товары в сфере энергетического оборудования, электротехники, специализированных услуг в сфере промышленности. Программирование выпускаемых ими контроллеров происходит в специальных средах. Одна из них, TIA Portal, позволяет разрабатывать конфигурации, отлаживать компоненты систем, налаживать коммуникационные сети, организовывать панели операторов.
В большинстве случаев процесс программирования начинается только после монтажа и настройки контроллера. Перед началом работы необходимо разобраться с тем, где расположены входы и выходы. Далее начинается построение блоков – своеобразных функций, которые преобразуют полученную информацию от входов в нужные данные на выходе. Примером самого простого блока являются логические операции. Блоки соединяются между собой при помощи специальных элементов – таким образом, получается готовая схема. После её внедрения в логический контроллер включается режим программирования, где и организуется нужная программа.
Delta
Для того, чтобы запрограммировать ПЛК Delta, следует воспользоваться специальным пакетом WPLSoft – в нём соединены языки LD, SFC и IL. Весь процесс происходит построчно, пользователь последовательно создаёт ступенчатые диаграммы, которые составляют общую программу.
Он доступен практически любому специалисту как по своему простому функционалу, так и по техническим характеристикам: для его работы не нужно большое количество ресурсов персонального компьютера.
Schneider Electric
Schneider Electric представляет широкое разнообразие сред программирования для своего оборудования: coStruxure Machine Expert, EcoStruxure Machine Expert HVAC, Unity Pro, Zelio Soft. Готовые программы чаще всего применяются в вентиляционном/упаковочном оборудовании, системах кондиционирования, конвейерных линиях и станках и др.
Mitsubishi
Одну из самых многофункциональных и мощных сред программирования предлагает для своих клиентов компания Mitsubishi – пользователям доступна среда GX Works2 нового поколения. Она поддерживает довольно большое количество языков: IL, LD, SFC, LD, FBD, ST.
Продвинутая среда значительно расширяет возможности программистов. С её помощью они могут задавать параметры функциональных модулей, использовать различные библиотечные блоки, проще и быстрее проводить диагностику/отладку.
В зависимости от выбранного программного обеспечения иоборудования программирование может сильно отличаться: в некоторых случаях для
работы потребуется компилятор и программатор, в некоторых процесс будет происходить
автоматически. В любом случае важно ознакомиться с приложенной к аппарату
инструкцией – производители подробно объясняют все особенности создания
программ.