Электротехнический интернет-журнал Electrik.info

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


Схемы подключения | Принципиальные схемы | Электроснабжение
Розетки и выключатели | Автоматы защиты | Кабель и провод | Монтаж электропроводки Ремонт электротехники | Молодому электрику

Электрик Инфо » В помощь начинающим электрикам, Книги и видеокурсы по электротехнике и электронике, Промышленное электрооборудование, Программируемые логические контроллеры » Языки программирования ПЛК и программная платформа автоматизации CoDeSys
Количество просмотров: 55053
Комментарии к статье: 10


Языки программирования ПЛК и программная платформа автоматизации CoDeSys


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

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

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

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

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

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

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

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

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

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

язык релейно-контактных схем

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

 

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

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

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

Принцип работы ПЛК

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

Structured Text

Представляем книгу по Structured Text (ST) МЭК 61131-3. Автор - Сергей Романов

Книга "Изучаем Structured Text МЭК 61131-3": Ссылка на книгу

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

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

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

комплекс CoDeSys

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

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

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

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

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

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

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

CoDeSys

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

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

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

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

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

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

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

Популярные публикации:

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

Подписывайтесь на наш канал в Telegram: Домашняя электрика 



Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Язык функциональных блоковых диаграмм (FBD) и его применение
  • Язык программирования ПЛК Structured Text (ST) и его применение
  • Анимированная визуализация технологических процессов в CodeSys
  • Использование ОВЕН ПЛК в системах автоматического управления освещением
  • Язык релейных диаграмм LD (Ladder diagram) и его применение
  • Схемы пуска электродвигателя на языке лестничных диаграмм LD для ПЛК
  • Видеокурс по работе с контроллером ОВЕН ПЛК110 в среде CODESYS2.3
  • Программируемые логические контроллеры для домашней автоматизации
  • Как Factory I/O можно использовать для изучения программирования контроллер ...
  • Обучение программированию контроллеров: автоматизация технологических проце ...
  • Категория: В помощь начинающим электрикам, Книги и видеокурсы по электротехнике и электронике, Промышленное электрооборудование, Программируемые логические контроллеры

    ПЛК, Контроллеры управления, Промышленная автоматизация

      Комментарии:

    #1 написал: Сергей Горяйнов |

    Полезная статья! 

      Комментарии:

    #2 написал: Zahar |

    Кому нужна вся эта история. Даёшь конкретику!!! 

      Комментарии:

    #3 написал: Андрей |

    Спасибо, было интересно. А конкретику познаешь в работе))

      Комментарии:

    #4 написал: Рустам |

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

      Комментарии:

    #5 написал: Мансур |

    Изложено здорово, просто понятно. Молодец! Спасибо! Желательно хочется продолжения по разным вопросам и направлениям, повседневным, нужным.

      Комментарии:

    #6 написал: Максим Сувалкин |

    Когда я научился программировать на языке структурированного текста (ST, Structured Text), для меня открылись совершенно новые возможности программирования, особенно он подходит для программирования более сложных вычислений, программирования и баз данных. На языке ST это занимает гораздо меньше времени, программа обычно понятнее и проще. Поэтому он подходит для программ, где требуется много вычислений и меньше входов и выходов. Помимо программирования ПЛК, я также делаю визуализацию панелей HMI. Я всегда стараюсь сделать визуализацию максимально простой для оператора, чтобы не нужно было вводить ненужные параметры и чтобы она была настолько интуитивно понятной, что каждый мог справиться с операцией даже без руководства.

      Комментарии:

    #7 написал: Виктор |

    Хороший инженер по автоматизации, помимо стандартных языков МЭК, должен также знать один или несколько языков высокого уровня. Раньше в нем не было необходимости, но теперь это основа для ввода новых проектов и возможность автоматизации некоторых повторяющихся задач. Производители средств автоматизации все чаще сообщают о дополнительных возможностях, связанных со знанием языков высокого уровня. Например: операционная система контроллеров WAGO - Linux. Это позволяет вам писать свои собственные библиотеки на C или C ++, а затем вызывать их из Codesys. Для повторяемых и масштабируемых проектов это отличный вариант сэкономить время и привлечь инженеров по автоматизации с высоким уровнем языковых навыков. Хорошо, означает ли это, что я могу писать сценарии на Python? Конечно! На уровне операционной системы драйверов WAGO вы можете писать сценарии, поддерживающие заданную функциональность, например протокол MQTT и создание файлов CSV. Кто-то спросит: а зачем мне это делать из Codesys? Да, но некоторые функции могут быть написаны на Python быстрее - помните, что это язык высокого уровня с бесконечным количеством библиотек для анализа данных, обработки файлов, связи и т. д. Python в Codesys 3.5 также можно использовать для автоматизации определенных повторяющихся задач на уровне графического интерфейса GUI, то есть мы можем автоматически добавлять драйвер в проект, карты ввода-вывода и многое другое. Еще упомяну язык C ++. Очень важный язык в связи с тем, что многие производители систем SCADA могут писать сценарии на этом языке. Кроме того, если вы хотите расширить свои компетенции в области автоматизации за счет знания систем SCADA, язык C ++ наверняка вам очень поможет.

      Комментарии:

    #8 написал: Александр |

    Можно программировать ПЛК разными способами. Каждый способ подходит для разных типов приложений. Основные языки программирования определены стандартом IEC 61131-3. Гибкость языков программирования в CODESYS относительно велика. Конечно, каждому разработчику подходит что-то свое. Некоторые люди любят кодировать и писать тексты, а другие предпочитают ясность или логичное графическое расположение. Кстати, очень правильно написано в предыдущем комментарии, что классических языков программирования ПЛК не всегда может быть достаточно, поэтому алгоритмы управления разрабатываются на современных объектно-ориентированных языках, таких как C++ или C#.

      Комментарии:

    #9 написал: Роберт |

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

      Комментарии:

    #10 написал: Сергей |

    CoDeSys — программная платформа для автоматизации, поддерживающая несколько языков программирования программируемых логических контроллеров (ПЛК). Наиболее популярными языками программирования для ПЛК являются текстовые языки, такие как список инструкций (IL) и структурированный текст (ST), и графические языки, такие как функциональные блок-схемы (FBD) и лестничные диаграммы (LD). CoDeSys 3.5 поддерживает все эти языки. CoDeSys Automation Server — это облачная платформа для автоматизации, которая обеспечивает удаленный мониторинг данных ПЛК, обновления программного обеспечения, резервное копирование проектов и параметров, контроль версий и планирование удаленного обслуживания. CoDeSys Professional Developer Edition — новый продукт платформы CoDeSys, включающий поддержку UML-диаграмм классов и состояний, интеграцию с системой контроля версий Subversion, статический анализатор кода и профилировщик кода. 

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Электрик Инфо на Яндекс Дзен

     

    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки
    Андрей Повный - все статьи автора



    Copyright © 2009-2024 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.