Язык il программирования контроллеров плк

Язык il программирования контроллеров плк

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

Какие программы может выполнять промышленный контроллер? Ответ прост: практически любые. Современный контроллер свободно программируем, т.е. предоставляет разработчику возможность создавать пользовательские программы произвольной структуры без ограничений их функциональности, будь то программа управления пастеризатором на молочном комбинате или управление колонной ректификации на НПЗ. По сути, единственным ограничением здесь может быть объем свободных ресурсов контроллера.

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

Современные средства разработки чрезвычайно функциональны и предлагают разработчику множество возможностей:

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

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

3. Инструменты для автоматизированного документирования разработанной программы в соответствие с принятыми стандартами.

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

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

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

Какие языки используются для программирования промышленных контроллеров? Ниже приведен краткий обзор языков стандарта.

Язык LD

Язык LD (LAD, Ladder) является графическим языком разработки, программа на котором представляет собой аналог релейной схемы. Пример программы на данном языке приведен на рис. 1. По идеи авторов стандарта, такая форма представления программы облегчит переход инженеров из области релейной автоматики на ПЛК.

К недостаткам данного языка можно отнести то, что по мере увеличения количества «реле» в схеме она становится сложнее для интерпретации, анализа и откладки. Еще один недостаток языка LD заключается в следующем: язык, построенный по аналогии с релейными схемами, может быть эффективно использован только для описания процессов, имеющих дискретный (двоичный) характер; для обработки «непрерывных» процессов (с множеством аналоговых переменных) такой подход теряет смысл.

Рис. 1. Язык релейных диаграмм LD.

Язык FBD

Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.

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

Рис.2. Функциональная схема FBD.

Язык SFC

Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с другими языками (обычно с ST и IL), является графическим языком, в котором программа описывается в виде схематической последовательности шагов, объединенных переходами. Язык SFC построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131-3. Пример программы на языке SFC приведен на рис. 3.

Наиболее простым и естественным образом на языке SFC описываются технологические процессы, состоящие из последовательно выполняемых шагов, с возможностью описания нескольких параллельно выполняющихся процессов, для чего в языке имеются специальные символы разветвления и слияния потоков (дивергенции и конвергенции, в терминах стандарта IEC 61131-3).

Шаги последовательности располагаются вертикально сверху вниз. На каждом шаге выполняется определенный перечень действий (операций). При этом для описания самой операции используются другие языки программирования, такие как IL или ST.

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

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

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

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

Рис. 3. Язык последовательных функциональных схем SFC.

Язык ST

Язык ST (Structured Text, Структурированный Текст) представляет собой язык высокого уровня, имеющий черты языков Pascal и Basic. Данный язык имеет те же недостатки, что и IL, однако они выражены в меньшей степени. Пример программы на языке ST приведен на рис. 4.

С помощью ST можно легко реализовывать арифметические и логические операции (в том числе, побитовые), безусловные и условные переходы, циклические вычисления; возможно использование как библиотечных, так и пользовательских функций. Язык также интерпретирует более 16 типов данных.

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

Рис. 4. Язык структурированного текста ST.

Язык IL

Язык IL (Instruction List, Список Команд) представляет собой ассемблероподобный язык, достаточно несложный по замыслу авторов стандарта, для его практического применения в задачах промышленной автоматизации пользователем, не имеющим, с одной стороны, профессиональной подготовки в области программирования, с другой стороны, являющимся специалистом в той или иной области производства. Однако, как показывает практика, такой подход себя не оправдывает.

Ввиду своей ненаглядности, IL практически не используется для программирования комплексных алгоритмов автоматизированного управления, но часто применяется для кодирования отдельных функциональных блоков, из которых впоследствии складываются схемы FBD или CFC. При этом IL позволяет достичь высокой оптимальности кода: программные блоки, написанные на IL, имеют высокую скорость исполнения и наименее требовательны к ресурсам контроллера.

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

Пример программы на языке IL приведен на рис. 5.

Рис. 5. Язык инструкций IL.

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

Язык CFC

Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это дальнейшее развития языка FBD. Этот язык был специально создан для проектирования систем управления непрерывными технологическими процессами.

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

Рис. 6. Среда проектирования на языке CFC системы Simatic PCS7.

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

Источник

Языки программирования PLC: LD, FBD, SFC, ST, IL, CFC

Контролер – это управляющее устройство. Действительно функциональным он становится только тогда, когда вы создаете и запускаете программу по его использованию.

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

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

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

Функционал средств разработки

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

Какой функционал предлагает среда разработки?

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

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

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

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

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

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

SFC ( Sequential Function Chart) – может использоваться с языками ST и IL, он также основан на графике. Принцип его построения близок к образу конечного автомата, данное условие относит его к самым мощным языкам программирования.

Технологические процессы, в данном языке, построены по типу определенных шагов. Структура шагов состоит из вертикали, которая идет сверху вниз. Каждый шаг – это конкретные операции. Описать операцию можно не только с помощью SFC, но и с помощью ST и IL.

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

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

ST ( Структурированный Текст) – относится к языкам высокого уровня и имеет много сходного с Pascal и Basic.

ST позволяет интерпретировать более шестнадцати типов данных и имеет возможность работать с логическими операциями, циклическими вычислениями и т.д.

Небольшим недостатком можно определить отсутствие графической среды. Программы представлены в виде текста и данное условие усложняет освоение технологии.

IL ( Список Команд) – язык подобен Ассемблеру, обычно используется для кодировки блоков по отдельности. Плюсом является то, что данные блоки имеют большую скорость работы и низкую требовательность к ресурсам.

CFC ( Continuous Flow Chart) – относится к языкам высокого уровня. В принципе – это явное продолжение языка FBD.

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

Каждый блок – это управление определенным технологическим процессом. Здесь идет основной уклон на технологический процесс, математика уходит на второй план.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector