Программируемые логические контроллеры для чайников. Языки программирования ПЛК и программная платформа автоматизации CoDeSys

Одним из ключевых назначений автоматизации является наблюдение за изменением состояния объекта и способность контролировать этот процесс. Снижение процессов изменений приводит к повышению производительности и эффективности. Машинное зрение и управление движением помогают уменьшить изменения и добавить гибкости в современные системы автоматизации. В свою очередь, увеличение гибкости и функциональных возможностей систем автоматического регулирования может поставить некоторые более старые системы на грань возможностей обработки.

В настоящее время программируемые логические контроллеры ПЛК являются нормой в системах автоматизации. Часто к стоимости новых технологий добавляются возможности модернизации оборудования и/или дополнительные возможности по внедрению новых операционных систем. Однако, добавление устройств управление движением или пользовательских модулей ввода в программируемый логический контроллер ПЛК, также может значительно отразится на стоимости всего оборудования.

Относительные затраты, расширяемость, функциональность, а также реализация пользовательских опций – требования к современным промышленным контроллерам. Поскольку запросы к скорости обработки данных, памяти, мощности в последнее время значительно увеличились, сможет ли ПЛК и далее оставаться основным средством автоматизации производственных систем?

Процесс управления

В простейшей своей форме процесс управления состоит из трех основных компонентов – датчика, контроллера, исполнительного механизма. Датчик собирает информацию об управляемом объекте и передает ее контроллеру, который обрабатывает полученные данные и выдает сигнал управления исполнительному механизму. Такая конструкция носит название системы с замкнутым контуром или с обратной связью.

Например, мониторинг газов и температура в азотной печи может играть важную роль для термической обработки, а данные о влажности в помещении или вибрациях не иметь вообще никакого отношения к процессу термической обработки. Добавление последних данных в систему автоматического управления не принесет абсолютно никакой пользы, а только усложнит ее и увеличит стоимость. Можем сделать вывод, что сложность приобретает решающее значение, так как она снижает затраты на проектирование, программирование узлов, устранение неполадок, а также позволяет избежать установки компонентов, которые не несут практической пользы.

После сбора датчиками, информация поступает в контроллер, который играет роль «мозга». Он будет обрабатывать полученную информацию на основании алгоритмов и программ, заданных ему программистом. Если значение не будет укладываться в границы установленных пределов, то контроллер пошлет сигнал на исполнительный механизм для исправления ошибки, и так будет происходить пока ошибка не войдет в допустимые границы. Исполнительный механизм – это мышцы системы автоматического регулирования (САУ). Именно он будет оказывать физическое воздействие на контролируемую систему. Исполнительными механизмами для САУ могут быть различные электроприводы, гидроприводы, пневмоприводы и другие механизмы.

«Контроллер осведомлен о происходящем и может принимать решения. ПЛК бесспорно лидирующая фигура в промышленной автоматизации» — говорит Matteo Dariol, инженер Bosch Rexroth. «Аббревиатура содержит «программируемый логический», так как в начале электронной революции в 1960-1970хх годах управляющие устройства начали строиться с помощью дискретных электронных компонентов. До этого изменение спецификации проекта приводило к перепроектированию и реинжинирингу всей логики управления вместе с изменением физических элементов устройств управления. С появлением программируемого логического контроллера ПЛК усилия по изменению алгоритма управления практически полностью заключаются только в изменении программного обеспечения».

Современные ПЛК являются вполне надежными устройствами, а их языки программирования стандартизированы. Среды разработки программного обеспечения для программируемых логических контроллеров пока не имеют общих единых стандартов, так как все основные игроки рынка электронных компонентов предлагают свои собственные уникальные решения. Программирование, а также поиск и устранение неисправностей в ПЛК может быть даже легче, чем в персональном компьютере ПК, который каждый из нас, казалось бы, знает очень хорошо. Программируемый логический контроллер ПЛК имеет модульную структуру и возможность подключения различных модулей в зависимости от требований проекта: дополнительные порты ввода/вывода, модули безопасности, а также конкретные коммуникационные и это лишь несколько примеров.

Модульная конструкция дает программируемым логическим контроллерам основное преимущество – расширяемость. Есть и другие преимущества, такие как стоимость, простота устройства и прочность конструкции. Такие элементы САУ как реле, периодически нужно осматривать и проводить замену, и тут появляется еще одно преимущество ПЛК – минимум движущихся механических частей. Существуют возможности интеграции с более сложными системами, например с ПК контроллером.

Ограничения ПЛК

ПЛК имеет ограниченную память, программное обеспечение и периферийные возможности, по сравнению с персональным компьютером ПК. Управление движением (например, робототехника или сложная автоматизированная система) требует огромного количества входов/выходов, требующих дополнительных модулей управление ПЛК или внешней электроники. Тем не менее, стоит отметить, что компьютер способен обрабатывать гораздо большее количество информации, причем быстрее, что может значительно уменьшить физический размер и обеспечить необходимую вычислительную мощность для внедрения систем машинного зрения, управления движением и обеспечить быструю обработку больших потоков данных. Постоянный рост обрабатываемой информации связан с постепенным внедрением некоторыми компаниями промышленных интернет вещей IIoT в производственные линии и промышленные объекты, которые требуют больших вычислительных мощностей.

Оригинальные производители оборудования (англ. original equipment manufacturer OEM) способны увеличить производительность оборудования, позволяя машинам одновременно выполнять несколько операций. Максимально интенсивные И/ИЛИ вычисления критически важных процессов, запущенных одновременно, может привести к перегрузке программируемого логического контроллера. Для уменьшения времени обработки критически важных процессов машины могут использовать несколько вычислительных платформ. Как правило, они включают в себя один или несколько контроллеров движения и один или более наблюдающий процессор, который поддерживает интерфейс оператора для программирования, информации работы машины, сбора данных, функции техподдержки. Однако, использование нескольких процессоров является более дорогим. Новое программное обеспечение, ориентированное на платформы ПК, может помочь решить данную проблему, хотя…

ПК не так надежен и ему трудно «выживать» в промышленных условиях, таких как повышенная запыленность и влажность. Использования ПК с боле сложным программным обеспечением или большим количеством программных опций, занимает гораздо больше времени для обучения обслуживающего персонала. Усовершенствованное программное обеспечение может потребовать наличие программиста для проведения технического обслуживания, а также выполнение ремонтных работ и установки обновлений. Программное обеспечение ПЛК может быть базовым, но имеющие свои проверенные временем стандартные языки, которые могут обеспечить долговечность устройства, несмотря на его скорость и линейный характер.

ПЛК обычно используют в отрасли стандартный набор языков программирования (МЭК 61131-3), в том числе LAD диаграммы. LAD диаграммы строятся по аналогии с электрическими схемами, что позволяет значительно упростить обучение персонала, проведения технического обслуживания и ремонта. В большинстве случаев вполне возможно обойтись без программиста. Другой язык из стандарта МЭК 61131-3 — структурированный текст, который похож на язык «высокого уровня». Тем не менее, использование других нестандартных языков высокого уровня, таких как C ++ или Visual Basic, может быть трудно с ПЛК. Только в последнее время новые программные инструменты позволяли пользователям общаться с ПЛК так, как если бы это был обычный ПК.

Последовательная программа ПЛК сканирует все инструкции в каждом цикле. Цикл сканирования занимает примерно 10 мс или чуть больше. После завершения выполнения всех инструкций программа переходит к следующему сканированию. Если инструкция не выполняется в установленное время, то это вызывает сообщение об ошибке и выполнение программы прекращается. Это программное обеспечение жесткого времени может ограничивать продолжительность программы и любые входные сигналы с частотой менее 100 Гц.

Например, если необходимо обрабатывать сигнал от датчика скорости с номинальными оборотами 1200 об/мин (частота сигнала 1200/60 = 200 Гц), микроконтроллер на базе ПЛК не может корректно измерять скорость используя такой вход. Необходима интеграция специального модуля с декодером или счетчиком на интегральных микросхемах, который преобразует сигнал от датчика в нормально-обрабатываемый микроконтроллером. Такие преобразовательные модули часто используются во многих системах. Также стоит отметить и необходимость модулей вывода на примере управление соленоидом с частотой работы ШИМ в 10 кГц. Для управления таким устройством с помощью ПЛК необходим модуль вывода с ШИМ генератором. Добавление таких модулей увеличивает стоимость системы в 2-3 раза.

Следующее поколение ПЛК

Новая система имеет название программируемого контроллера автоматизации (агл. programmable automation controller (PAC)) способного решить некоторые проблемы ПЛК. Некоторые специалисты утверждают, что программируемый контроллер автоматизации (ПКА) более коммерческое название, но это не совсем так. К сожалению, существуют некоторые различие между их определениями, а с технологической точки зрения принципиальные различия между ними найти довольно трудно.

ПКА, как правило, включают в себя функциональные возможности ПЛК. Оба являются цифровыми устройствами, но ПКА предоставляет расширенные возможности программирования и часто имеют более расширенную функциональность, память и периферические способности. ПКА предлагает более сложные архитектурные системы в случае необходимости большей связности вводов/выводов. Более того, он имеет обычно встроенные возможности передачи данных из памяти на USB накопитель, а также часто присутствует возможность прямого взаимодействия с базами данных.

Дополнительные возможности программного обеспечения звучит, конечно, хорошо, однако стоит отметить, что не все ПКА могут поддерживать стандартные языки МЭК 61131-3, что может привести к дополнительным проблемам при программировании и обслуживании.

Существуют различные модели этих устройств. ПКА могут предлагать модели сосредоточенные на системах машинного зрения или другие, предназначенные для одновременного контроля нескольких процессов. Выбор модели или технологии должны учитывать и требования будущего (модернизация и расширение производства), и стандарты (например, безопасности). Планирование может продлить срок службы контроллера путем удовлетворения будущих потребностей, но также и заложить фундамент под использования промышленных интернет вещей IIoT и децентрализованного управления.

ПЛК все еще актуальны, однако, развитие систем машинного зрения, динамических роботизированных процессов и управления движением, стремление к большей автоматизации производства с использованием IIoT, требуют от программируемого логического контроллера значительно большей мощности обработки данных или памяти, которые он не в состоянии обеспечить. Децентрализованная технология может помочь расширить устаревшую линейку путем предложения продуктов типа SoCs и FPGAs, которые обрабатывают информацию непосредственно на самом датчике. Это означает, что добавление сложного процесса к существующей линии может не требовать обязательной установки дорогого ПКА, но будет необходима группа интеллектуальных датчиков, способных самостоятельно хранить и обрабатывать данные своих измерений.

Возможно ли применение обеих вариантов?

Еще более запутывает дискуссию о ПЛК и ПКА то, что возможно построение системы управления без любого из них. Сеть интеллектуальных датчиков и программного обеспечения можно комбинировать для устранения или большей децентрализации программируемых контроллеров во всех цехах предприятия. SoCs является одной из технологий, которые могут децентрализовать процесс. Однако, не стоит забывать, что слишком много протоколов на одном SoCs может привести к увеличению количества циклов проверки, необходимых для проверки процесса или его части, что вызовет режим, аналогичный перегрузке программируемого логического контроллера.

Более того, существует целый ряд технологий, позволяющих совместную работу программируемых логических контроллеров, технологий децентрализации, программируемых контроллеров автоматизации, для максимально эффективной работы предприятия. Необходимо предпринять несколько основных шагов для определения, какие технологии, возможно, будут необходимы.

«Во-первых, нужно понять, какие факторы важны для успешного выполнения операций и уровень устаревания, который допустим для устройства или линии» — говорит Джули Робинсон, менеджер по маркетингу, Rockwell Automation. «После того, как риски определены, пользователи должны разработать стратегию для смягчения и, в конечном счете, устранения этого риска, и планировать первое обновление работы ячеек. Некоторые факторы, влияющие на эти изменения, включают в себя:

  • Совмещение будущих потребностей производства или улучшение текущей производительности;
  • Соответствие последним требованиям безопасности и нормативным документам;
  • Повышение гибкости производственных систем для эффективного расширения производства или обновления оборудования;
  • Повышение эффективности использования активов за счет сокращения простоев;
  • Повышение мер безопасности производства и сохранности оборудования;

Также пользователи должны понимать, какие изменения вносились в оборудование в течении нескольких лет работы завода или фабрики, что должно отображаться на схемах и чертежах.

Точная документация на устаревшее оборудование очень сильно поможет в интеграции нового оборудования. А если децентрализованная платформа уже интегрирована, то документация становится еще более важной. Децентрализованные контроллеры показали меньшее время при установке нового оборудования. В традиционной, централизованной системе, инженеры или обслуживающий персонал должны подключатся к программируемому логическому контроллеру для обнаружения проблем и скачки управляющей программы в случае необходимости. Хорошо спроектированная система должна быть простой в эксплуатации, обслуживании, а также масштабируемой.

Для того, чтобы произвести подключение к децентрализованной системе, специалисты не должны физически ходить «вокруг устройства». Для устранения этой проблемы обслуживающие оборудование компании стараются соединять по несколько систем, которые технологически совместимы. Часто это означает интеграцию старых систем с новыми технологиями и программным обеспечением.

В настоящее время очень малый процент хочет вкладывать в модернизацию работающего оборудования, если оно только не безнадежно устарело. Тем более решения о модернизации в будущем закладываются при проектировании оборудования, а часто проектированием различного оборудования занимается не одна компания, и в будущем при модернизации могут возникать конфликты.

Прежде чем выбрать оптимальную технологию для вашего оборудования важно понимать, что данная технология должна быть совместима с вашими целями не только сейчас, но и в будущем, и предлагает необходимые функции без излишней сложности. Для многих компаний трудно, и в некоторых случаях бессмысленно, содержать экспертов в каждой области, именно поэтому в последнее время начинает набирать обороты промышленные интернет вещей IIoT.

Термины и определения

Разница между ПЛК и ПКА может проникать и в другие технологии. Например, системы на кристалле (СнК), с английского System-on-a-Chip (SoC), встроенные компьютеры (embedded PC) и программируемая пользователем вентильная матрица (FPGA) предлагают собой некоторые технологии, которые способны заменять или расширять возможности программируемых логических контроллеров. Тем не менее, для некоторых технологий пока не существует устоявшихся определений, и ученые спорят о более правильном описании их. Но мы постараемся привести некоторые основные определения.

Программируемый логический контроллер ПЛК

Представляет собой цифровой компьютер, предназначенный для автоматизации промышленных систем. Он специально разрабатывался для работы в жестких условиях эксплуатации, таких как температурные диапазоны, давление, электрические шумы, вибрации и другие неблагоприятные факторы промышленной среды. Он имеет наиболее важную особенность, которая, собственно, и привело его к такой популярности – это жесткая система реального времени.

Режим реального времени

Многие понимают режим реального времени как выполнение задачи «как можно скорее». Но это не так. Система реального времени гарантирует, что все входы, выходы и вычислительные процессы будут обрабатываться за какой-то фиксированный промежуток времени, часто упоминаемый в технической литературе как дедлайн (с англ. deadline – предельный срок). В системах жесткого реального времени нарушение дедлайнов приравнивается к отказу системы. В свою очередь мягкая система реального времени допускает небольшие превышение дедлайнов, но только тогда, когда это приводит к допустимому снижению качества работы системы. Например, видеоконференция. Небольшое запаздывание звука или видео не приведет к катастрофическим последствиям.

При компиляции программы ПЛК, он рассчитывает, есть ли необходимые ресурсы для выполнения пользовательских инструкций, после чего переходит к выполнению поставленной задачи в нужный срок.

Программируемый контроллер автоматизации ПКА

Представляет собой цифровой компьютер, включающий в себя функциональные возможности ПЛК. Программируемый контроллер автоматизации понятие относительно недавнее, появившееся в начале 2000-х. В большинстве случаев ПКА представляет собой эволюцию программируемого логического контроллера. ПЛК является мостом между электрической автоматизацией, построенной на реле, и электромеханической программируемой автоматизацией, где акцент делается на программное обеспечение операций (определение, данное 40 лет назад).

Мягкая система реального времени(softPLC)

Как упоминалось выше, мягкая система реального времени не дает гарантии своевременного выполнения поставленной задачи. По этому, их не применяют для систем управления движением. Вместо этого softPLC предпочтительны для подключения связей завод-цех, человеко-машинных интерфейсов, систем диспетчерского контроля и сбора данных (SCADA). Вполне возможно, для некоторых ПКА быть SoftPLC.

Встраиваемые ПК

Встраиваемый промышленный компьютер это не компьютер общего назначения. Он разработан и оптимизирован для одного пользовательского приложения. Все его компоненты, как правило, размещены на одной плате, включая и микроконтроллеры или микропроцессоры, шины ввода/вывода, память и другие пользовательские микросхемы. Устройство включает в себя даже программное обеспечение или прошивку (прошивка обычно находится в ПЗУ или памяти только для чтения). Встроенные ПК (embedded PC) действительно пересечение между аппаратным и программным обеспечением, поскольку существует тесная взаимосвязь между этими двумя частями – одна не может работать без другой. Проекты с использованием встраиваемых ПК могут реагировать на потребности жесткого или мягкого режима реального времени.

У ПЛК есть несколько основных языков программирования. Во-первых, это что-то похожее на языки программирования высокого уровня. Называется язык структурированного текста (по-буржуйски ST). Исключительно удобная штука, если есть навыки программирования. Собственно, для программистов и придумана. Однако когда ПЛК разрабатывался и внедрялся, профессия программиста (в смысле толкового программиста с хорошей технической подготовкой) была еще более дефицитной, чем в наши суровые времена. Посему практичные янки и весь мир следом разработали несколько видов графических языков. Для электриков создали язык релейных диаграмм (по-буржуйски LD). Ничего в общем сложного – шина входов, шина выходов, между ними – схема из релюшек, нормально замкнутых или разомкнутых, ну и таймеров, конечно, триггеров всяких. Плюс в простоте – была бы схема, а программа напишется. Минус в трудностях работы с аналоговыми сигналами.

Другой вид графических языков – язык функциональных блоков (по-буржуйски FBD). Мне он очень напоминает работу, например, с пакетом Simulink программного комплекса Matlab, товарищу напротив — Vissim. Да, в общем, получить техническое образование ни разу не столкнувшись с такого рода ПО трудно. Основа всего — блоки, соединенные в нужной последовательности линиями связи. Если вы – технарь, пожалуй, наиболее прост для освоения и активного использования. Плюс – наглядность, интуитивная понятность реализуемых алгоритмов. Минусы – работа с циклами. Можно, конечно, но на ST такого рода программки и пишутся легче и короче.
Последний вариант графического языка – алгоритмический (SFC). Это наиболее высокий по уровню графический язык. Каждый его шаг – маленькая (или большая) программа. Очень красивый язык, справедливо обожаемый технологами всех мастей. Позволяет создавать жестко структурированные, удобные для отладки проекты. Минус всего один – браться за его изучение стоит, лишь в достаточной степени освоив язык ST, LD или FBD. Программы для отдельного шага все равно писать на них.

Ах, да. Чуть не забыл. Есть еще что-то похожее на ассемблер. Называется списком инструкций (по-буржуйски IL). Если вы фанат бесконечной работы с аккумулятором – это для вас. Минусы – длинный программный код, хорошо смотрящийся только в приложениях к диссертации, проблемы отладки. Короче в моем понимании – пятое колесо в телеге программирования ПЛК. Могу быть не прав.

Программа или проект?

Давайте сразу отделим котлеты от мух. Тот код, который мы героически пишем – это конечно программа. Вернее, более точно, программа – это код определяющий цикл работы ПЛК. Их у контроллера может быть не одна, не две, а много. Меняться они могут по времени, внешнему или программному событию. То есть программа – вещь достаточно частная. Совокупность же того, что «залито» в контроллер, принято называть проект. Помимо набора программ проект включает в себя подключенные библиотеки, типы данных, визуализации, конфигурации, настройки конкретного ПЛК и многое другое.

С чего начиналась промышленная автоматика? А начиналось все с контактно-релейных схем управления промышленными процессами. Кроме жуткого «шелестения», контактно релейные схемы имели фиксированную логику работы, и в случае изменения алгоритма, необходимо основательно переделать монтажную схему

Бурное развитие микропроцессорной техники, привели к созданию систем управления технологическими процессами на базе промышленных контроллеров. Но это не означает, что реле изжили себя, у них просто своя ниша для применения.

ПЛК – программируемый логический контроллер , представляют собой микропроцессорное устройство, предназначенное для сбора, преобразования, обработки, хранения информации и выработки команд управления, имеющий конечное количество входов и выходов, подключенных к ним датчиков, ключей, исполнительных механизмов к объекту управления, и предназначенный для работы в режимах реального времени.

Принцип работы ПЛК несколько отличается от «обычных» микропроцессорных устройств. Программное обеспечение универсальных контроллеров состоит из двух частей. Первая часть это системное программное обеспечение. Проводя аналогию с компьютером можно сказать, что это операционная система, т.е. управляет работой узлов контроллера, взаимосвязи составляющих частей, внутренней диагностикой. Системное программное обеспечение ПЛК расположено в постоянной памяти центрального процессора и всегда готово к работе. По включению питания, ПЛК готов взять на себя управление системой уже через несколько миллисекунд. ПЛК работают циклически по методу периодического опроса входных данных.
Рабочий цикл ПЛК включает 4 фазы:
1. Опрос входов
2. Выполнение пользовательской программы
3. Установку значений выходов
4. Некоторые вспомогательные операции (диагностика, подготовка данных для отладчика, визуализации и т. д.).

Выполнение 1 фазы обеспечивается системным программным обеспечением. После чего управление передается прикладной программе, той программе, которую вы сами записали в память, по этой программе контроллер делает то что вы пожелаете, а по ее завершению управление опять передается системному уровню. За счет этого обеспечивается максимальная простота построения прикладной программы – ее создатель не должен знать, как производится управление аппаратными ресурсами. Необходимо знать с какого входа приходит сигнал и как на него реагировать на выходах

Очевидно, что время реакции на событие будет зависеть от времени выполнения одного цикла прикладной программы. Определение времени реакции – времени от момента события до момента выдачи соответствующего управляющего сигнала – поясняется на рисунке:

Обладая памятью, ПЛК в зависимости от предыстории событий, способен реагировать по-разному на текущие события. Возможности перепрограммирования, управления по времени, развитые вычислительные способности, включая цифровую обработку сигналов, поднимают ПЛК на более высокий уровень в отличие от простых комбинационных автоматов.

Рассмотрим входа и выхода ПЛК. Существует три вида входов дискретные, аналоговые и специальные
Один дискретный вход ПЛК способен принимать один бинарный электрический сигнал, описываемый двумя состояниями – включен или выключен. Все дискретные входы (общего исполнения) контроллеров обычно рассчитаны на прием стандартных сигналов с уровнем 24 В постоянного тока. Типовое значение тока одного дискретного входа (при входном напряжении 24 В) составляет около 10 мА.

Аналоговый электрический сигнал отражает уровень напряжения или тока, соответствующий некоторой физической величине, в каждый момент времени. Это может быть температура, давление, вес, положение, скорость, частота и т. д.

Поскольку ПЛК является цифровой вычислительной машиной, аналоговые входные сигналы обязательно подвергаются аналого-цифровому преобразованию (АЦП). В результате, образуется дискретная переменная определенной разрядности. Как правило, в ПЛК применяются 8 - 12 разрядные преобразователи, что в большинстве случаев, исходя из современных требований по точности управления технологическими процессами, является достаточным. Кроме этого АЦП более высокой разрядности не оправдывают себя, в первую очередь из-за высокого уровня индустриальных помех, характерных для условий работы контроллеров.

Практически все модули аналогового ввода являются многоканальными. Входной коммутатор подключает вход АЦП к необходимому входу модуля.

Стандартные дискретные и аналоговые входы ПЛК способны удовлетворить большинство потребностей систем промышленной автоматики. Необходимость применения специализированных входов возникает в случаях, когда непосредственная обработка некоторого сигнала программно затруднена, например, требует много времени.

Наиболее часто ПЛК оснащаются специализированными счетными входами для измерения длительности, фиксации фронтов и подсчета импульсов.

Например, при измерении положения и скорости вращения вала очень распространены устройства, формирующие определенное количество импульсов за один оборот – поворотные шифраторы. Частота следования импульсов может достигать нескольких мегагерц. Даже если процессор ПЛК обладает достаточным быстродействием, непосредственный подсчет импульсов в пользовательской программе будет весьма расточительным по времени. Здесь желательно иметь специализированный аппаратный входной блок, способный провести первичную обработку и сформировать, необходимые для прикладной задачи величины.
Вторым распространенным типом специализированных входов являются входы способные очень быстро запускать заданные пользовательские задачи с прерыванием выполнения основной программы – входы прерываний.

Дискретный выход также имеет два состояния – включен и выключен. Они нужны для управления: электромагнитных клапанов, катушек, пускателей, световые сигнализаторы и т.д. В общем сфера их применения огромна, и охватывает почти всю промышленную автоматику.

Конструктивно ПЛК подразделяются на моноблочные, модульные и распределенные. Моноблочные имеют фиксированный набор входов выходов

В модульных контроллерах модули входов – выходов устанавливаются в разном составе и количестве в зависимости от предстоящей задачи

В распределенных системах модули или даже отдельные входа-выхода, образующие единую систему управления, могут быть разнесены на значительные расстояния

Языки программирования ПЛК

При создании системы управления технологического процесса, всегда существует проблема по взаимопониманию программиста и технологов. Технолог скажет «нам надо немного подсыпать, чуть подмешать, еще подсыпать и чуть нагреть». И мало когда следует ждать от технолога формализованного описания алгоритма. И получалось так, что программисту нужно долго вникать в тех. Процесс, потом писать программу. Зачастую при таком подходе программист остается единственным человеком, способным разобраться в своем творении, со всеми вытекающими отсюда последствиями. Такая ситуация породила стремлении создание технологических языков программирования, доступные инженерам и технологам и максимально упрощающим процесс программирования

За последнее десятилетие появилось несколько технологических языков. Более того, Международной Электротехнической Комиссией разработан стандарт МЭК-61131-3, концентрирующий все передовое в области языков программирования для систем автоматизации технологических процессов. Этот стандарт требует от различных изготовителей ПЛК предлагать команды, являющиеся одинаковыми и по внешнему виду, и по действию.

Стандарт специфицирует 5 языков программирования:

  • Sequential Function Chart (SFC) – язык последовательных функциональных блоков;
  • Function Block Diagram (FBD) – язык функциональных блоковых диаграмм;
  • Ladder Diagrams (LАD) – язык релейных диаграмм;
  • Statement List (STL) – язык структурированного текста, язык высокого уровня. Напоминает собой Паскаль
  • Instruction List (IL) – язык инструкций., это типичный ассемблер с аккумулятором и переходам по метке.

Язык LAD или KOP (с немецкого Kontaktplan) похожи на электрические схемы релейной логики. Поэтому инженерам не знающим мудреных языков программирования, не составит труда написать программу. Язык FBD напоминает создание схем на логических элементах. В каждом из этих языков есть свои минусы и плюсы. Поэтому при выборе специалисты основываются в основном на личном опыте. Хотя большинство программных комплексов дают возможность переконвертировать уже написанную программу из одного языку в другой. Так как некоторые задачи изящно и просто решаются на одном языке, а на другом придется столкнуться с некоторыми трудностями

Наибольшее распространение в настоящее время получили языки LAD, STL и FBD.

Большинство фирм изготовители ПЛК традиционно имеют собственные фирменные наработки в области инструментального программного обеспечения. Например такие как «Concept» Schneider Electric, «Step 7» Siemens.

Программный комплекс CoDeSys

Открытость МЭК стандартов привели к созданию фирм занимающихся исключительно инструментами программирования ПЛК.

Наибольшей популярностью в мире пользуются . CoDeSys разработан фирмой 3S. Это универсальный инструмент программирования контроллеров на языках МЭК, не привязанной к какой-либо аппаратной платформе и удовлетворяющим всем современным требованиям.

Основные особенности:
- полноценная реализация МЭК языков
- встроенный эмулятор контроллера позволяет проводить отладку проекта без аппаратных средств. Причем эмулируется не некий абстрактный контроллер, а конкретный ПЛК с учетом аппаратной платформы
- встроенные элементы визуализации дают возможность создать модель объекта управления и проводить отладку, т.е. дает возможность создавать человеко-машинного интерфейса (HMI)
- очень широкий набор сервисных функции, ускоряющий работу программиста
- существует русская версия программы, и русская документация

Литература:
Современные технологии промышленной автоматизации: учебник / О. В. Шишов. Саранск: Изд-во Мордов. ун-та, 2007. – 273 с. ISBN 5-7103-1123-5

Возьмем для примера простейшую задачу: необходимо включить пресс через 1 секунду после одновременного удержания оператором двух кнопок в нажатом состоянии. Таким образом, мы гарантируем, что обе руки оператора заняты и даем ему время на контроль готовности машины. Самое простое решение это соединить контакты обеих кнопок последовательно и поставить электронное реле с таймером. Если таймер допускает регулировку времени задержки, то подобная схема обеспечит некоторую гибкость системы, впрочем не слишком высокую.

Любые дополнительные условия, например требование контроля последовательности нажатий кнопок поставит нас в затруднительную ситуацию - мы будем вынуждены изменить схему, введя дополнительные реле. Это не является сложной проблемой при условии, что такая необходимость возникает крайне редко.

Но в условиях конкурентного производства время выхода нового продукта на рынок имеет решающее значение и поэтому когда речь идет о гибком автоматизированном производстве, переналадка оборудования должна выполняться быстро, с минимальными затратами.

Дополнительной проблемой является увеличение сложности системы управления по мере развития производства и появления дополнительных функций (усложнения алгоритма работы).

Любой специалист по автоматизации сталкивался также с проблемой построения системы управления для оборудования в той предметной области, которая ему недостаточно знакома: отсутствие четкой постановки задачи, появление новых условий по мере внедрения оборудования может сделать невозможной успешную реализацию проекта.

Необходимо было создать управляющее устройство, алгоритм работы которого можно было бы менять, не переделывая монтажную схему системы управления, и в результате возникла логичная идея заменить системы управления с «жесткой» логикой работы (совокупность реле, регуляторов, таймеров и т.д.) на автоматы с программно заданной логикой работы. Так родились программируемые логические контроллеры (ПЛК) . Впервые ПЛК были применены в США для автоматизации конвейерного сборочного производства в автомобильной промышленности (1969 г.).

Поскольку в определении «программируемый логический контроллер» главным являлось «программируемый», то практически сразу возник вопрос, как программировать ПЛК?

Алгоритмические языки программирования компьютеров того времени были ориентированы на решение вычислительных задач. Профессия программиста считалась исключительно редкой и трудной, таких специалистов не было ни на одном производстве. Идеальным вариантом могла бы стать автоматическая трансляция принципиальных схем релейных автоматов в программы для ПЛК.

Почему бы и нет? Так в ПЛК появился язык релейно-контактных схем (РКС или LD в английских источниках Ladder Diagram) . Специалист-технолог мог “перерисовать” схему управления на дисплее программирующей станции ПЛК. Естественно схема изображалась не графически а посредством условных символов.

Например, описанная выше задача могла бы быть запрограммирована так:

Слева и справа в такой программе мы видим вертикальные шины питания, соединенные горизонтальными цепями. Цепи могут состоять их контактов и некоторых дополнительных элементов (например, таймер) соединенных параллельно или последовательно. Справа каждая цепь заканчивается обмоткой реле. Контакты этого реле могут в свою очередь присутствовать в других цепях. Таким образом, можно составить достаточно сложную схему аналогичную по функциональности реальной релейной схеме.

Первые программирующие станции представляли собой весьма громоздкие устройства, транспортируемые силами нескольких человек. Тем не менее, ПЛК активно начали заменять еще более громоздкие и главное обладающие “жесткой” логикой шкафы релейной автоматики.

Физически ПЛК представляет собой один или несколько блоков, имеющих определенный набор выходов и входов, для подключения датчиков и исполнительных механизмов (см. рис.1).

Логика его работы описывается программно и выполняется встроенным микропроцессором. В результате, абсолютно одинаковые ПЛК могут выполнять совершенно разные функции. Для изменения алгоритма работы не требуется каких либо переделок аппаратной части.

Рис. 1. Принцип работы ПЛК

Развитие электроники привело к потрясающей миниатюризации ПЛК. Сегодня существуют миниатюрные программируемые контроллеры, оснащенные небольшим дисплеем и встроенными возможностями программирования, подобные контроллеры получили название программируемых реле. Типовые задачи программируемых реле - очень простые локальные системы, имеющие до десятка входов и несколько силовых релейных выходов.

Написать более сложную программу с помощью встроенного пульта непросто. Аналогично мы легко можем набрать текст SMS на клавиатуре сотового телефона, но даже ввод нескольких страниц текста, не говоря уже о больших объемах, представляется проблематичным. Для этого существуют персональные компьютеры (PC), предоставляющие гораздо более комфортабельные условия работы человека.

Один современный ПЛК способен заменить десятки регуляторов, сотни таймеров и тысячи реле. Используя PC запрограммировать такую систему совсем не сложно. Применение PC в качестве программирующей станции ПЛК является сегодня доминирующим решением. Это не только упрощает программирование, но и решает задачи архивирования проектов, подготовки документации, визуализации и моделирования. Компьютер дает удобный универсальный инструмент как для программирования простейших локальных задач на ПЛК, так и для АСУ ТП.

Обратите внимание что, говоря о программировании ПЛК, мы все время возвращаемся к тому, как сделать этот процесс простым и удобным для человека. Казалось бы, однажды запрограммированный ПЛК будет работать годами и не очень важно будет ли его программа выглядеть красиво, главное чтобы она хорошо работала.

К сожалению, это не так. Необходимость изменения программы в ПЛК возникает регулярно иногда и непредвиденно. Поэтому, написана она должна быть так, чтобы любой человек, а не только ее автор мог в ней быстро разобраться и оперативно внести необходимые доработки. Говорить о том, что программы написаны для ПЛК, не вполне корректно.

Все программы написаны человеком и предназначены для чтения человеком. Любые инструменты программирования дают в конечном итоге микропроцессору инструкции в его машинных кодах. Для него нет разницы, на каком языке написана программа.

Упомянутый выше был изобретен в США в период релейной автоматизации. В Европу мода на ПЛК пришла несколько позднее, когда релейные шкафы были уже успешно заменены на шкафы с логическими микросхемами. Поэтому возникла необходимость изобретения других языков программирования понятных новому поколению инженеров.

Так в Германии появились языки простых текстовых инструкций напоминающих ассемблер (IL). Во Франции возникли графические и высокоуровневые диаграммы описания этапов и условий переходов (Графсет, современный SFC). Применялись также языки, используемые для программирования компьютеров (Pascal, Basic). В конце семидесятых годов сложилась крайне сложная ситуация.

Каждый изготовитель ПЛК (в том числе и в СССР) разрабатывал собственный язык программирования, поэтому ПЛК разных производителей были программно несовместимы, кроме того существовала проблема аппаратной несовместимости. Замена ПЛК на продукт другого изготовителя превратилась в огромную проблему. Покупатель ПЛК был вынужден использовать изделия только одной фирмы либо тратить силы на изучение разных языков и средства на приобретение соответствующих инструментов.

В итоге в 1979 году в рамках Международной Электротехнической Комиссии (МЭК) была создана специальная группа технических экспертов по проблемам ПЛК. Ей была поставлена задача выработать стандартные требования к аппаратным средствам, программному обеспечению, правилам монтажа, тестирования, документирования и средствам связи ПЛК.

В 1982 году был опубликован первый черновой вариант стандарта, который получил наименование МЭК 1131. Ввиду сложности получившегося документа, было решено разбить его на несколько частей, вопросам программирования посвящена третья часть стандарта “Языки программирования ПЛК”.

Поскольку с 1997 года МЭК перешел на 5 цифровые обозначения, в настоящее время правильное наименование международной версии части стандарта посвященной языкам программирования ПЛК - МЭК 61131-3. Рабочей группой МЭК было принято достаточно оригинальное решение. Из всего многообразия существовавших на момент разработки стандарта языков программирования ПЛК были выделены 5 языков, получивших наибольшее распространение.

Спецификации языков были доработаны, так что стало возможным использовать в программах написанных на любом из этих языков стандартизованный набор элементов и типов данных. Такой подход МЭК не раз подвергался критике, но время доказало правильность этого решения.

Реализация подобного подхода позволила привлечь к программированию одного и того же ПЛК специалистов различных областей знаний (и что особенно важно - различной квалификации): специалистов по релейной автоматике (и даже электриков), программирующих в LD, специалистов в области полупроводниковой схемотехники и автоматического регулирования для которых привычен язык FBD, программистов, имеющих опыт написания программ для компьютеров на языке ассемблера (ему соответствует язык IL для ПЛК), на языках высокого уровня (язык ST), даже далекие от программирования специалисты-технологи получили свой инструмент программирования - язык SFC.

Хотя внедрение МЭК систем программирования и не позволило полностью отказаться от услуг профессиональных программистов (впрочем такая цель и не ставилась), но зато позволило снизить требования к квалификации и соответственно затраты на оплату труда программистов ПЛК. Стандартизация языков позволила (по крайней мере, частично) решить проблему зависимости пользователя ПЛК от конкретного изготовителя.

Все современные ПЛК оснащаются средствами МЭК 61131-3 программирования, что упрощает работу пользователям контроллеров (можно использовать ПЛК различных фирм без затрат на переучивание) и одновременно снимает ряд проблем для изготовителей ПЛК (можно использовать компоненты ПЛК других изготовителей).

Стандарт существенно расширил возможности на рынке труда специалиста, занимающегося программированием ПЛК. Подобно тому как автомеханик, имеющий стандартный набор инструментов, может браться за ремонт любого узла (кроме нестандартных) машины любой фирмы, так и специалист, изучивший языки МЭК 61131-3 сможет разобраться с программой любого современного ПЛК. Это позволило уменьшить как зависимость фирмы от специалиста по программированию ПЛК, так и специалиста от фирмы.

На сегодняшний день лидирующие позиции на рынке МЭК систем программирования занимает немецкой компании 3S-Smart Software Solutions GmbH. Его применяют 190 компаний во всем мире, большинство из этих компаний - ведущие изготовители оборудования и/или систем промышленной автоматизации.

В России ПЛК с CoDeSys хорошо известны специалистам, диапазон продукции, выпускаемой под управлением этих ПЛК огромен CoDeSys включает 5 специализированных редакторов для каждого из стандартных языков программирования:

    Список Инструкций (IL),

    Функциональные блоковые диаграммы (FBD),

    Релейно-контактные схемы (LD),

    Структурированный текст (ST),

    Последовательные функциональные схемы (SFC).

Редакторы поддержаны большим числом вспомогательных инструментов, ускоряющих ввод программ. Это ассистент ввода, автоматическое объявление переменных, интеллектуальная коррекция ввода, цветовое выделение и синтаксический контроль при вводе, масштабирование, автоматическое размещение и соединение графических элементов.

В одном проекте можно совмещать программы, написанные на нескольких языках МЭК либо использовать один из них. Никаких особых требований по выбору языка нет. Он обусловлен исключительно личными предпочтениями.

В России наиболее популярен язык ST. Это текстовый язык, представляющий собой несколько адаптированный Паскаль. Второе место по популярности занимает графический язык FBD, далее следует язык LD. Помимо средств подготовки программ, CoDeSys включает встроенный отладчик, эмулятор, инструменты визуализации и управления проектом, конфигураторы ПЛК и сети.

Воплощением еще одной неожиданной идеи, коллективно сформированной пользователями CoDeSys, стало добровольное объединение изготовителей ПЛК, поддерживающих CoDeSys, в некоммерческую организацию CoDeSys Automation Alliance (САА). Суть идеи в том, чтобы превратить изготовителей средств промышленной автоматизации, поддерживающих CoDeSys, в партнеров (насколько это возможно на конкурентном рынке) и нейтрализовать последствия конкуренции между изготовителями для пользователей ПЛК.

Вместо намеренного создания технических препятствий, не позволяющих пользователям легко использовать продукты другой компании, члены САА целенаправленно принимают меры призванные обеспечить совместимость своих продуктов.

Пользователь может быть уверен, что его прикладная CoDeSys-программа будет работать в любом контроллере любой компании являющейся членом САА. Пользователь может быть уверен, что используемые им инструменты (CoDeSys) проверены тысячами пользователей во всем мире. Пользователь всегда может обсудить свои затруднения и получить реальную помощь от широкого круга коллег, имевших опыт решения подобных задач.

Брокарев А.Ж., Петров И.В. Компания "ПРОЛОГ"