Языки программирования ПЛК и программная платформа автоматизации CoDeSys
Языки программирования ПЛК и программная платформа автоматизации CoDeSys
В качестве примера возьмем простейшую задачу: пресс нужно включить после того, как оператор одновременно нажмет две кнопки в течение 1 секунды. Таким образом мы обеспечиваем занятость обеих рук оператора и даем ему время проверить готовность машины. Самое простое решение – соединить контакты двух кнопок последовательно и установить электронное реле с таймером. Если таймер позволяет регулировать время задержки, то такая схема обеспечит некоторую гибкость системы, но не слишком большую.
Любые дополнительные условия, например требование контролировать последовательность нажатий кнопок, поставят нас в затруднительное положение – мы будем вынуждены изменить схему, введя дополнительные реле. Это не сложный вопрос, главное, чтобы необходимость возникала редко.
Но в высококонкурентной производственной среде время выхода на рынок новой продукции имеет решающее значение, поэтому с точки зрения гибкого автоматизированного производства замена оборудования должна производиться быстро и с наименьшими затратами.
Другая проблема заключается в том, что по мере развития производства и появления дополнительных функций (усложняются алгоритмы работы) увеличивается и сложность системы управления).
Любой специалист по автоматизации сталкивается с проблемой построения системы управления устройством в предметной области, с которой он не очень знаком: отсутствие четкого описания задач, а также новые ситуации, возникающие в ходе внедрения устройства, могут сделать успешную реализацию реализация проекта невозможна.
Необходимо было создать устройство управления, которое могло бы менять свой алгоритм работы без изменения схемы подключения системы управления, поэтому возникла логичная идея использовать «жесткую» логику работы (набор реле, регуляторов, таймеров и т.п.) и машины с программно-определяемой операционной логикой. Так появился программируемый логический контроллер (ПЛК). ПЛК впервые был использован в США для автоматизации конвейерного производства в автомобильной промышленности (1969г.).
Поскольку основное определение «программируемого логического контроллера» — «программируемый», почти сразу возникает вопрос: как запрограммировать ПЛК?
Алгоритмические языки программирования того времени были ориентированы на решение вычислительных задач. Профессия программиста считается крайне редкой и сложной, таких специалистов нет ни в одной отрасли. Идеальный вариант — автоматическое преобразование принципиальной схемы релейной машины в программу ПЛК.
Почему нет? Вот как язык релейных схем (RKS или LD на английском языке Ladder Diagram) выглядит в ПЛК. Специалист по процессу может «перерисовать» контрольную карту на дисплее станции программирования ПЛК. Разумеется, схема нарисована не графически, а с использованием обычных символов.
Например, приведенную выше задачу можно запрограммировать следующим образом:
В левой и правой части такой программы мы видим вертикальные силовые шины, соединенные горизонтальными цепями. Схема может состоять из контактов, соединенных параллельно или последовательно, и некоторых дополнительных компонентов, например таймера. Справа каждая цепь заканчивается катушкой реле. Контакты этого реле в свою очередь могут существовать в других цепях. Следовательно, можно создавать довольно сложные схемы, которые функционируют аналогично реальным схемам реле.
Первые станции программирования представляли собой очень большие устройства, для транспортировки которых требовалось несколько человек. Однако ПЛК активно начали заменять более крупные, а главное «жесткие» логические релейные шкафы автоматики.
Физически ПЛК представляет собой один или несколько блоков с определенным набором выходов и входов, соединяющих датчики и исполнительные механизмы (см рисунок 1).
Логика его работы описана в программном обеспечении и выполняется встроенным микропроцессором. Следовательно, один и тот же ПЛК может выполнять совершенно разные функции. Для изменения алгоритма работы не требуется никаких аппаратных модификаций.
Рис. 1. Принцип работы ПЛК
Достижения в области электронных технологий позволили ПЛК достичь удивительной миниатюризации. Сегодня существуют миниатюрные программируемые контроллеры с небольшими дисплеями и встроенными возможностями программирования. Такие контроллеры называются программируемыми реле. Типичными задачами для программируемых реле являются очень простые локальные системы, имеющие до дюжины входов и несколько выходов силовых реле.
Программировать более сложные программы с помощью встроенного пульта непросто. Точно так же мы можем легко ввести текст SMS на клавиатуре нашего телефона, но ввести даже несколько страниц текста, не говоря уже о больших объемах текста, кажется проблематичным. По этой причине появился персональный компьютер (ПК), обеспечивший более комфортные условия работы человека.
Современный ПЛК может заменить десятки контроллеров, сотни таймеров и тысячи реле. Программировать такую систему с помощью ПК совсем несложно. Использование ПК в качестве станции программирования ПЛК является сегодня распространенным решением. Это не только упрощает программирование, но и решает проблемы архивирования проектов, подготовки документации, визуализации и моделирования. Компьютер представляет собой удобный универсальный инструмент для программирования простейших локальных задач на ПЛК, а также автоматизации систем управления технологическими процессами.
Обратите внимание, что говоря о программировании ПЛК, мы всегда возвращаемся к тому, как сделать этот процесс простым и удобным для человека. Кажется, что хорошо запрограммированный ПЛК может работать много лет, не так уж важно, выглядит ли программа красиво, важно, чтобы она работала хорошо.
Читайте также статью: Как застегнуть ремень с двумя кольцами
К сожалению, это не так. Изменения в программе ПЛК требуются часто, иногда непредвиденно. Поэтому он должен быть написан так, чтобы каждый, а не только его автор, мог быстро разобраться в нем и своевременно внести необходимые изменения. Не совсем корректно говорить, что программа написана для ПЛК.
Все программы написаны людьми и предназначены для чтения людьми. Любой инструмент программирования в конечном итоге выдает инструкции микропроцессору в форме машинного кода. Для него не имеет значения, на каком языке написана программа.
Упомянутый выше язык LD был изобретен в период автоматизации реле в США. Популярность ПЛК пришла в Европу несколько позже, когда релейные шкафы были успешно заменены шкафами с логическими микросхемами. Поэтому существует необходимость изобрести другие языки программирования, понятные новому поколению инженеров.
Так в Германии появился простой язык текстовых инструкций, похожий на язык ассемблера (IL). Во Франции появился графический язык (Grafset, современный SFC) для функциональных блок-схем (FBD) и диаграмм высокого уровня для описания фаз и условий трансформации. Также используются языки, используемые для компьютерного программирования (Pascal, Basic). В конце семидесятых годов сложилась чрезвычайно сложная ситуация.
Каждый производитель ПЛК (в том числе и Советский Союз) разработал свой собственный язык программирования, поэтому в ПЛК разных производителей существовали программные несовместимости, а также были и аппаратные несовместимости. Замена ПЛК продукцией других производителей стала огромной проблемой. Покупатели ПЛК вынуждены использовать продукцию только одной компании или тратить силы на изучение другого языка и тратить деньги на нужные инструменты.
Поэтому в 1979 году в рамках Международной электротехнической комиссии (МЭК) была создана техническая экспертная группа, занимающаяся изучением вопросов ПЛК. Ее задача — разработать стандартные требования к оборудованию, программному обеспечению, правилам установки, тестированию, документации и связи с ПЛК.
В 1982 году первый проект стандарта был опубликован как IEC 1131. Из-за сложности итогового документа было решено разделить его на несколько частей: Часть III стандарта «Языки программирования ПЛК» посвящена вопросам программирования”.
Поскольку с 1997 года МЭК перешла на 5-значные имена, в настоящее время правильным названием международной версии стандартной части, посвященной языкам программирования ПЛК, является IEC 61131-3. Рабочая группа МЭК приняла довольно оригинальное решение. Из множества языков программирования ПЛК, существовавших на момент разработки стандарта, были определены 5 наиболее широко используемых языков.
Спецификации этих языков были доработаны таким образом, чтобы стандартизированный набор элементов и типов данных можно было использовать в программах, написанных на любом из этих языков. Такой подход МЭК не раз подвергался критике, но время показало, что это решение было правильным.
Реализация этого метода позволяет привлечь к программированию одного и того же ПЛК специалистов разных областей знаний (и прежде всего разной квалификации): специалистов релейной автоматики (даже электриков), программирующих на ЛД, полупроводниковых схем, владеющих языком FBD. В области автоматического управления есть программисты, использующие язык ассемблера (эквивалент языка IL ПЛК) и язык высокого уровня (язык ST) для написания компьютерных программ, и даже технические специалисты, далекие от программирования, имеют свое собственное программирование инструмент-язык SFC.
структурированный текст
Представляем книги по структурированному тексту (ST) IEC 61131-3. Автор — Сергей Романов
Книга «Изучение структурированного текста IEC 61131-3»: Ссылка на книгу
Видео: «Hello World» для ПЛК. Пишем программу «Самоподхват» в среде CoDeSys 2.3
Внедрение системы программирования МЭК хоть и не позволило нам полностью отказаться от услуг профессиональных программистов (впрочем, мы и не ставили такой цели), но позволило снизить квалификационные требования и, соответственно, стоимость оплаты ПЛК стоимость программистов. Стандартизация языка позволяет (хотя бы частично) решить проблему зависимости пользователей ПЛК от конкретного производителя.
Все современные ПЛК оснащены средствами программирования МЭК 61131-3, что упрощает работу пользователя контроллера (можно использовать ПЛК разных компаний без затрат на переобучение) и одновременно устраняет множество проблем для производителей ПЛК (можно использовать ПЛК других компаний) производителем).
Этот стандарт существенно расширяет возможности рынка труда для специалистов, занимающихся программированием ПЛК. Подобно тому, как автомеханик со стандартным набором инструментов может выполнить ремонтные работы на любой части автомобиля любой компании (кроме нестандартных деталей), так и специалист, выучивший язык МЭК 61131-3, сможет разобраться в программе любого современного ПЛК. Это дает возможность снизить зависимость компании от специалистов по программированию ПЛК и специалистов компании.
Сегодня комплекс CoDeSys немецкой компании 3S-Smart Software Solutions GmbH занимает лидирующие позиции на рынке систем программирования МЭК. Его используют 190 компаний по всему миру, большинство из которых являются ведущими производителями оборудования и/или систем промышленной автоматизации.
В России ПЛК с CoDeSys хорошо известны специалистам, номенклатура продукции, выпускаемой под управлением этих ПЛК, очень широка, включая 5 специальных редакторов для каждого стандартного языка программирования:
- Список инструкций (IL),
- Функциональная блок-схема (ФБД),
- Лестничная диаграмма (ЛД),
- Структурированный текст (СТ),
- Последовательная функциональная схема (SFC).
Редактор поддерживается большим количеством вспомогательных инструментов для ускорения ввода программ. Это помощники по вводу, автоматическое объявление переменных, интеллектуальная коррекция ввода, цветовая подсветка и контроль синтаксиса при наборе текста, масштабирование, автоматическое размещение и соединение графических элементов.
В проекте можно комбинировать программы, написанные на нескольких языках IEC, или использовать один из этих языков. Особых требований к выбору языка нет. Это зависит исключительно от личных предпочтений.
В России самый популярный язык — СТ. Это текстовый язык, который представляет собой слегка адаптированный Паскаль. Вторым по популярности языком является графический язык FBD, за ним следует язык LD. Помимо инструментов подготовки программ, CoDeSys включает в себя встроенные отладчики, симуляторы, инструменты визуализации и управления проектами, конфигураторы ПЛК и сети.
Еще одним неожиданным проявлением неожиданной идеи, развитой пользователями CoDeSys, стало добровольное членство производителей ПЛК, поддерживающих CoDeSys, в некоммерческой организации CoDeSys Automation Alliance (CAA). Идея состоит в том, чтобы превратить производителей промышленной автоматизации, поддерживающих CoDeSys, в партнеров (насколько это возможно на высококонкурентном рынке) и устранить влияние конкуренции производителей на пользователей ПЛК.
Вместо того, чтобы намеренно возводить технические барьеры, чтобы пользователи не могли легко использовать продукты других компаний, члены CAA предпринимают целенаправленные шаги для обеспечения совместимости своих продуктов.
Пользователь может быть уверен, что его приложение CoDeSys будет работать на любом контроллере компании-члена CAA. Пользователь может быть уверен, что используемый им инструмент (CoDeSys) протестирован тысячами пользователей по всему миру. Пользователь может в любой момент обсудить свои трудности и получить реальную помощь от широкого круга коллег, имеющих опыт решения подобных задач.
Брокарев А.Ж., Петров И.В. Компания «ПРОЛОГ»
- Электролитические конденсаторы: устройства, виды, рабочие характеристики, способы устранения неисправностей
- Конструкция и принцип работы магнитного пускателя
- Что такое нулевое положение и фаза?
Подписывайтесь на наш Telegram-канал: Бытовая техника
Здесь можно оставлять комментарии, задавать вопросы и общаться:
Обсудить электротехнические темы
Видео: Программирование ПЛК. Как понять язык LADDER за 5 минут!
Видео: Программирование ПЛК (программируемых логических контроллеров). Введение.
Читайте также статью: Кожух из нержавеющей стали для изоляции железной печной трубы