Языки программирования контроллеров. Особенности применения языков FBD, LD.
УДК 004.418
Ахмерова Алия Ниязовна – старший преподаватель кафедры Систем автоматизации и управления технологическими процессами Казанского национального исследовательского технологического университета.
Аннотация: В статье рассмотрены языки FBD и LD международного стандарта МЭК 61131 для программируемых логических контроллеров. Приведены факторы, влияющие на выбор языка программирования. Рассмотрена реализация программного кода одной и той же задачи на двух графических языка стандарта МЭК 61131 – LD и FBD в среде CoDeSys.
Ключевые слова: Программируемые логические контроллеры, стандарт МЭК-61131, FBD, LD, CoDeSys.
Современные ПЛК (программируемые логические контроллеры) являются ключевым элементом системы управления объектом. Для создания пользовательской программы, задающей алгоритм работы ПЛК, используются специальные языки программирования, регламентированные стандартом МЭК 61131.
МЭК 61131 представляет собой международный стандарт, состоящий из 9 частей, для программируемых контроллеров и связанных с ними периферийных устройств.
В разделе МЭК 61131-3 «Контроллеры программируемые. Часть 3. Языки программирования» приводится описание синтаксиса и обозначений пяти регламентированных языков программирования логических контроллеров: FBD (диаграммы функциональных блоков), LD (релейно-контактные схемы или релейные диаграммы) ST (структурированный текст), IL (список инструкций), SFC (последовательные функциональные схемы).
МЭК 61131-3 является скорее руководством для программирования ПЛК, а не жестким набором правил, которые необходимо неукоснительно соблюдать.
Благодаря наличию нескольких текстовых и нескольких графических языков, пользователь может выбрать наиболее удобный для него язык. На выбор так же влияет специфика решаемой задачи.
На сегодняшний день существуют различные инструментальные среды разработки программ для контроллеров. К инструментальным средам программирования на языках МЭК 61131-3 относятся: ISaGRAF, CoDeSys, MULTIPROG, SIMATIC STEP 7, OpenPCS, SOFTLOGIC, Concept и др.
Рассмотрим особенности применения базовых языков программирования FBD и LD в среде CoDeSys.
LD – «релейные диаграммы» – графический язык, в основе которого лежат принципы работы релейно-контактных схем с возможностью использования различных функциональных блоков при подключении соответствующих библиотек. Язык LD использует жесткую логику, т.е. принимает только два значения «ложь» и «истина», где 0 – «ложь», а 1 – «истина». Символика языка была заимствована из проектирования в области электротехники.
Объектами языка программирования LD являются контакты, катушки и FFB (функции и функциональный блоки), с помощью которых задается структура секции ПЛК. Эти объекты взаимосвязаны через фактические параметры или связи.
Внешний вид LD-секции представлен в виде ступеней. На рисунке 1 приведен фрагмент программы управления освещением в помещении в редакторе LD в CoDeSys.
Рисунок 1. Фрагмент программы в редакторе LD.
Вертикальная линия слева в рабочей области представляет собой «провод с высоким потенциалом», а вертикальная линия справа – «нулевой провод». Между ними располагаются горизонтальные линии, именуемые контактными цепями. Слева по горизонтальным линиям располагаются «коммутаторы электрического тока», соответствующие входным переменным логического типа и дискретным входам. Справа располагаются «потребители электрического тока», соответствующие выходным переменным логического типа и дискретным выходам [3].
Как видно из рисунка 1, язык релейно-контактных схем идеален для простых программ, описывающих дискретную логику. В частности, перемещение объектов. Но для обработки «непрерывных» процессов с множеством аналоговых переменных язык LD не подходит.
В данном случае дискретные входы содержат информацию, поступающую с датчиков, т.е. текущие условия, базовая программа анализирует эти входы и подает соответствующие сигналы на выходы. В редакторе LD могут быть использованы таймеры, счетчики, детекторы передних фронтов, некоторые базовые сравнения или математические операции, но нет возможности использовать сложные функции, к которым можно отнести ПИД-регулирование, тригонометрия, анализ данных, сохраняя при этом читаемость и компактность кода программы, а так же парадигму легкой визуализации.
Другим недостатком является то, что по мере роста объема программного кода, становится сложно читать и интерпретировать сам код из чего следует, что реализация процесса управления от и до на языке релейно-контактных схем – трудная задача [2].
На рисунке 2 приведен фрагмент программы управления освещением в помещении, реализованной уже в редакторе FBD.
Рисунок 2. Фрагмент программы в редакторе FBD.
Язык FBD – «язык функциональных блок-схем» – графический язык программирования, созданный для описания процессов прохождения сигналов и обеспечивающий управление потоками данных всех типов.
Язык FBD похож на электрические схемы, поэтому удобен для не имеющих опыта логического программирования инженеров-схемотехников, которые могут с легкостью составить электрическую схему системы управления на базе «жесткой логики». FBD подходит для управления непрерывными процессами и процессами регулирования.
При программировании на данном языке применяются наборы стандартных библиотек, а так же могут быть использованы собственные функциональные блоки, написанные на языке FBD, на других языках стандарта МЭК 61131-3 или же на языке С. Подобные блоки могут быть многократно использованы в разных частях программы. FBD заимствует символику булевой алгебры.
К преимуществам языка FBD относятся простота создания, наглядность, четкая последовательность, легкая структура команд, надежный и быстрый код. Язык FBD использует такие же команды, как и LD, но сама схема визуально более понятна пользователю, не обладающему знаниями релейной логики.
Язык функциональных блок-схем идеально подходит для создания простых пользовательских программ с использованием цифровых входов и выходов, может применяться в любых приложениях наряду с языком релейных диаграмм или вместо него.
Но при реализации сложной задачи с применением специальных входов и функций программный код может разрастись, включив в себя большое число секций, и, таким образом, потерять свою наглядность.
Также при создании программы на языке FBD требуется предварительная проработка программы в виде четкого прописывания алгоритма работы перед тем, как начать писать код, так как потом будет достаточно сложно внести изменения [2].
Вывод: Каждый из выше рассмотренных языков имеет свои достоинства и недостатки. Если необходимо решить задачу с применением цифровых входов/выходов или же реализовать алгоритм управления для базовых процессов, то подходят оба языка. В то же время LD обеспечивает легкость смены кода впоследствии, в отличие от FBD. Последний, в свою очередь, подходит для работы с непрерывными процессами.
Список литературы
- И.В. Елькин, П.В. Кустарев, Научно-технический вестник,4, 55-62 (2003).
- Понимание языков программирования IEC61131-3: [Электронный ресурс] / – Режим доступа: https://www.proasutp.com/articles/plc/understanding _the_iec61131_3_programming_languages.html), свободный.
- А.А. Игонин, А.Н. Крючков, В.Н. Илюхин, А.Г. Гимадиев Лабораторный практикум по программируемым логическим контроллерам / А.А. Игонин, – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2011. – 75 с.
Интересная статья? Поделись ей с другими:
Siemens | Сименс | Преобразователи частоты и промышленная автоматика Siemens
Концерн Siemens уже несколько десятилетий занимается производством регулируемых электроприводов. Не осталось, пожалуй, ни одной области жизни, где бы они не применялись.
Помимо того, что преобразователи частоты позволяют управлять производительностью отдельных элементов системы, они также позволяют сберечь электроэнергию и сделать инженерные системы более энергоэффективными. В ряде случаев экономия электроэнергии достигает 70%.
Преобразователи частоты SiemensК числу инновационных разработок концерна Siemens относятся надежные и удобные для любого | |
Устройства плавного пуска SiemensУстройства данной серии имеют небольшие габаритные размеры, встроенный шунтирующий контактор | |
Контроллеры SiemensЭто позволит вашему бизнесу не только начать новую жизнь, но и обойти всех возможных конкурентов | |
Регулирующие и смесительные клапаны SiemensВ данном разделе представлены долговечные и надежные клапаны Siemens, совместимые с любыми | |
Автоматические регуляторы перепада давления SiemensУстройства Siemens VSG и Siemens VHG применяется в качестве регуляторов перепада давления или | |
Газовые клапаны SiemensКлапаны Siemens газовые предназначены для применения на газовых теплогенераторах, в | |
Радиаторные клапаны SiemensЭто позволит вашему бизнесу не только начать новую жизнь, но и обойти всех возможных конкурентов | |
Приводы для регулирующих клапанов SiemensВыбирая оборудование из модельного ряда приводов Siemens, Вы получаете полный спектр приводов | |
Приводы для газовых клапанов SiemensПривод Siemens для газовых клапанов служит исполнительным механизмом и обеспечивает выполнение функций | |
Приводы воздушных заслонок SiemensПриводы воздушных заслонок Siemens характеризуются низким энергопотреблением, высокой | |
Сервоприводы SiemensЭлектромоторные приводы Siemens применяются совместно с различными клапанами Siemens | |
Автоматы горения SiemensПриводы воздушных заслонок Siemens характеризуются низким энергопотреблением, высокой | |
Менеджеры горения SiemensМенеджер горения это устройство на основе микропроцессора с соответствующими компонентами для | |
Датчики и сенсоры для горелок SiemensДатчики для контроля пламени газовых и жидкотопливных горелок, а также для проверки наличия искры | |
Датчики для помещений SiemensДатчики перепада давления используются для считывания показаний перепада давления | |
Термостаты комнатные SiemensSiemens выпускает обширный модельный ряд термостатов и температурных регуляторов практически для любых приложений: для частных домов, гостиниц | |
Термостаты капиллярные SiemensЛинейка продукции включает как электромеханические, так и электронные приборы. | |
Контроллеры AlbatrosAlbatros – это контроллеры для автоматизации котельных (линейка RVA) и индивидуальных тепловых пунктов (линейка RVD) | |
Контроллеры SigmagirSigmagir – контроллеры тепловых пунктов. Управление тепловыми пунктами с контуром отопления и ГВС. Оптимизирован для управления температурой в обратной магистрали | |
Контроллеры SyncoРяд контроллеров Synco 100 состоит из температурных контроллеров для прямого монтажа (не требуется панели управления) и контроллеров комнатной температуры | |
Контроллеры универсальные SiemensУниверсальные контроллеры для поддержания комфорта в помещениях при помощи управления системами вентиляции, отопления, кондиционирования и |
Преобразователи частоты Sinamics
Отдельное внимание стоит уделить коммутационной технике и частотным преобразователям. Данные продукты идеально подходят для автоматизации процесса производства каких-либо изделий в различных отраслях промышленности. При этом осуществляется компьютерное управление согласно современным тенденциям и технологиям. Качественные преобразователи частоты Sinamics, которые применяются к различным типам оборудования.
Siemens Sinamics – сегодня это универсальный функционал базирующийся на одной платформе, открытый подход для инжиниринга, широчайший диапазон мощностей, встроенные системы безопасности и самодиагностики, высокая рентабельность и энергоэффективность.
Линейка Sinamics включает в себя:
- Sinamics G110 – привод на малые мощности.
- Sinamics G120 – привод модульной конструкции для средних мощностей.
- Sinamics G110D – компактный и простой привод малой мощности. Децентрализованный.
- Sinamics G120D – привод модульной конструкции для средних мощностей. Децентрализованный.
- Sinamics G130, Sinamics G150 – Универсальные преобразователи на приводы высоких мощностей.
Частотные преобразователи Micromaster
К числу более популярных и универсальных преобразователей частоты можно отнести Micromaster, серия которых уже не первый год находится на данном рынке и остается наиболее запрашиваемым выбором на рынке.
Серия преобразователей частоты Micromaster – это синоним слова «качество». На сегодняшний день компания Siemens выпускает четвертое поколение преобразователей – Micromaster 4.
- Micromaster 420 – Преобразователь частоты, основной задачей которого регулирование скорости стандартных приводов. Применяется в конвейерных системах, упаковочных машинах, насосных станциях, вентиляторном оборудовании
- Micromaster 430 – Преобразователь, предназначенный в основном для работы приводов насосных станций и вентиляторов. Обеспечивается программным обеспечением для решения типовых задач
- Micromaster 440 – Преобразователь частоты с режимом векторного управления с обратной связью. Используется в приводах, где есть необходимость использовать большой диапазон регулирования
Устройства плавного пуска SIRIUS
Софт-стартеры или устройства плавного пуска SIRIUS 3RW осуществляют плавный пуск и останов трёхфазных электродвигателей методом нарастания/спада напряжения. Устройства данной серии имеют небольшие габаритные размеры, встроенный шунтирующий контактор.
Преимущества от использования данных устройств:
- Плавный пуск и останов
- Бесступенчатый запуск
- Уменьшение пиковых токов
- Исключение колебания напряжения в сети
- Разгрузка сети электроснабжения
- Снижение механических нагрузок на привод
- Надёжная коммутация, не нуждающаяся в уходе
- Простота в обслуживании
- Значительная экономия места и объёма электромонтажа по сравнению с традиционными пускателями
3RW30 – Это серия цифровых устройств плавного запуска для асинхронных электродвигателей мощностью от 0,25 до 55 кВт включительно. Этот тип устройств плавного пуска широко используется в холодильном оборудовании, кондиционерах, системах управления насосами, ленточными конвейерами и многих других применениях. За счёт двухфазного управления на протяжении всего разгона ток во всех трёх фазах поддерживается на уровне минимальных значений. Благодаря непрерывному действию напряжения здесь не возникают неизбежные, например, для пускателей типа «звезда–треугольник» пиковые токи и моменты. Применение этих устройств снижает нагрузку на сеть электропитания, тем самым, продлевая ей жизнь.
3RW40 – Устройства плавного пуска SIRIUS 3RW40 обладают такими же преимуществами, как и 3RW30/31. Однако данные модели оснащены функциями, уникальными в данном диапазоне мощности: полупроводниковая защита от перегрузки двигателя и встроенная защита устройства, регулируемые ограничения тока и двухфазный метод управления (баланс полярности).
3RW44 – Помимо плавного разгона/торможения, полупроводниковые устройства плавного пуска SIRIUS 3RW44 предоставляют множество функций для повышенных требований эксплуатации. Устройства плавного пуска SIRIUS 3RW44 характеризуются компактным размерами, благодаря которым возможна экономия пространства и четкая планировка шкафа управления.
Асинхронный двигатель
Электрические асинхронные двигатели с короткозамкнутым ротором – это наиболее распространенные двигатели в современном производстве и промышленности. Основная суть такого электродвигателя – превращение электрической энергии в механическую, с минимальной потерей энергии. Асинхронные двигатели Siemens на данный момент весьма распространены в силу своей надежности и малых энергопотерь, что в свою очередь приводит к экономии средств на запчастях и электроэнергии.
Программируемые логические контроллеры
Из-за стремительного роста конкуренции практически во всех нишах предприятия требуют максимальной степени автоматизации производства. Такое преимущество позволит выбиться в топ и стать лидером на конкретном сегменте рынка.
Но успех автоматизации и бизнеса в целом зависит от грамотного внедрения качественного и надежного оборудования, к числу которых можно отнести программируемые логические контроллеры (ПЛК) и программируемые реле, а также многих других представителей микроконтроллеров.
Siemens Simatic
Несмотря на изменчивость рынка, Simatic не сдает лидирующие позиции, обеспечивая предприятиям надежное и качественное функционирование. При этом данная линейка поддерживает такие популярные протоколы как Ethernet и MPI, Point to Point и PPI, и многие другие. Это позволит вашему бизнесу не только начать новую жизнь, но и обойти всех возможных конкурентов.
В линейку Simatic входят следующие семейства контроллеров:
- Simatic S7-200 – популярная система автоматизации с широчайшим выбором доп. модулей
- Simatic S7-300 – семейство для автоматизации крупных объектов
- Simatic S7-400 – флагман серии, обеспечивающий управление крупными мощностями
- Simatic S7-1200 – новое поколение программируемых контроллеров Siemens
- Siemens LOGO!
Серию недорогих логических модулей представляет Siemens Logo! цена которых намного ниже возможностей и качества, которые предназначены для логической обработки информации и выполнения не сложных программ. Основное преимущество данной серии заключается в гибкости модификации модуля и его невысокой стоимости.
Комплексная автоматизация способна кардинально изменить процесс производства, сделав его более оптимизированным и удовлетворяющим современные требования. Убедитесь в этом, сделав заказ умного оборудования именно у нас.
Новости компании
03.11.2020Интернет-шлюз SINAMICS CONNECT 300Интернет-шлюз для сбора данных через порт USS преобразователя и синхронизации данных с MindSphere, операционной системой Siemens Industrial Cloud | |
03.11.2020Новое сетевое программное обеспечение SINEC INS V1.0 от SiemensПрограммное решение SINEC INS (Infrastructure Network Services) это WEB приложение, которое сочетает в себе различные сетевые инструменты и сервисы. | |
03.11.2020LOGO! теперь с облачным функционалом!Самый маленький контроллер от Siemens в новом обновлении v8.3 получит облачный функционал, который раскроет его с новой стороны! | |
03.![]() Система мониторинга персонала SIWATHРоссийское подразделение Siemens разработало собственную систему по мониторингу персонала на базе носимых устройств типа «Умные часы». |
Руководство для начинающих по программированию ПЛК с использованием LD, FBD и C++
В этой статье мы собираемся использовать три разных языка программирования ПЛК для решения одной задачи. Мы собираемся использовать два языка IEC 61131-3 и язык более высокого уровня под названием C++.
Мы будем использовать PLCnext Engineer для облегчения нашего кодирования, и мы будем запускать наши программы, используя аппаратное обеспечение и ввод-вывод на PLCnext Starterkit.
Пять языков программирования IEC 61131, указанные в стандарте IEC 61131-3, — это лестничная диаграмма, список инструкций, диаграмма функциональных блоков, структурированный текст и последовательная функциональная схема. В нашем упражнении мы будем использовать лестничную диаграмму и функциональный блок.
Ladder Diagram был первым языком, разработанным для программирования ПЛК. Простое объяснение того, почему программирование на лестничных диаграммах стало настолько популярным, заключалось в том, что оно очень напоминало традиционные схемы релейной логики.
Электрики и инженеры одинаково хорошо знакомы с логическими схемами реле и легко адаптируются к лестничным диаграммам.
Раннее программирование релейной схемы включало ввод типичных символов релейного типа в цепь с помощью ручных программаторов, подключенных к ПЛК. Вскоре компьютеры и графические пользовательские интерфейсы значительно упростили этот процесс.
Все было хорошо до тех пор, пока не были разработаны более сложные аппаратные средства ПЛК и устройства ввода-вывода, а для развития не потребовались языки программирования, что привело к появлению функциональных блоков и других языков.
Сейчас мы находимся на этапе истории, когда деятельность ИТ-программистов и программистов ПЛК пересекается.
Более сложные функции нелегко выполнить с помощью традиционных языков IEC 61131-3, для этого требуются языки более высокого уровня, такие как C++, знакомый язык в мире ИТ-программистов.
Например, можно легко создать программы на C++ для создания зарегистрированных данных для помощи в профилактическом обслуживании (PdM). Программу такой сложности невозможно легко создать с помощью лестничной диаграммы.
Хорошо… Мы готовы начать программирование. Начнем с нашей проблемы. Мы хотим, чтобы светодиод включался при нажатии двух нормально разомкнутых кнопочных переключателей.
Наш стартовый комплект имеет кнопочные переключатели, жестко подключенные к входам цифрового модуля ввода. Мы будем использовать один из светодиодных индикаторов на модуле цифрового вывода.
Программирование лестничной диаграммы Сначала мы будем использовать программирование лестничной диаграммы. Наша лестничная диаграмма имеет два разомкнутых контакта, управляемых переключателями SW1 и SW2 в PLCnext Starterkit.
При работе с катушкой выход включит светодиод 1 на модуле цифрового вывода.
Одновременное нажатие переключателей SW1 и SW2 на Starterkit замкнет оба нормально разомкнутых контакта, подаст питание на символ катушки и загорится LED1.
Программирование функциональных блоковХорошо… давайте решим задачу с помощью программирования функциональных блоков.
В отличие от лестничной схемы, схема функциональных блоков или FBD не похожа ни на какую релейную логическую схему или электрическую схему любого типа. Основные блоки FBD основаны на логических операторах, таких как И, ИЛИ и НЕ.
Возвращаясь к нашей проблеме, мы хотим, чтобы светодиод 1 включался при нажатии двух нормально разомкнутых кнопочных переключателей, называемых SW1 и SW2. Ключевое слово в этом предложении — логический оператор И.
Если мы сформулируем нашу проблему немного по-другому, мы получим: SW1 AND SW2 = LED1
Итак, наш FBD для решения нашей проблемы построен вокруг функционального блока AND.
Как вы уже догадались, одновременное использование переключателей SW1 и SW2 на Starterkit приведет к тому, что входные сигналы SW1 и SW2 функционального блока AND перейдут в состояние TRUE.
Это действие приведет к тому, что выход LED1 функционального блока AND перейдет в состояние TRUE, а LED1 на модуле вывода загорится.
Итак, физически разницы в работе между программой LD и программой FB нет.
Конечно, существуют функциональные блоки для других логических операторов, таких как НЕ и ИЛИ.
Программирование на C++Хорошо… давайте перейдем к программированию на C++.
В качестве редактора C++ мы использовали Eclipse IDE. Есть много других возможных вариантов. Поскольку C++ не является языком IEC 61131-3, он не доступен для программирования в PLCnext Engineer.
С помощью нескольких простых инструментов проект C++, созданный в Eclipse, можно импортировать в проект PLCnext Engineer.
Мы должны создать порты INPUT и OUTPUT в проекте C++, что позволит нам подключиться к вводу-выводу Starterkit через PLCnext Engineer.
Создаем порты ВХОДА для SW1 и SW2 и порт ВЫХОД для LED1.
Затем мы пишем настоящую программу на C++.
Символ амперсанда & является логическим оператором AND в C++.
Итак, выражение LED1 = SW1 & SW2 почти точно такое же, как выражение FBD, LED1 = SW1 AND SW2.
Закодированный проект C++ добавляется в библиотеку в PLCnext Engineer, а программа добавляется в основную задачу. Программа приобретает совершенно другой вид внутри PLCnext Engineer.
И последнее, но не менее важное: порты назначаются соответствующим устройствам ввода-вывода в Starterkit. И мы готовы загрузить и запустить нашу программу на C++.
Начнем с того, что переключатели SW1 и SW2 Starterkit не задействованы, следовательно, SW1 и SW2 ЛОЖЬ. LED1 будет выключен на выходном модуле, а LED1 в программе будет FALSE.
Одновременное нажатие переключателей SW1 и SW2 на Starterkit приведет к тому, что порты IN SW1 и SW2 перейдут в состояние TRUE. Это действие приведет к тому, что индикатор 1 порта OUT перейдет в состояние TRUE, что приведет к включению индикатора 1 на модуле вывода.
Сравнение трех языков программированияИтак, физически нет никакой разницы в работе любой из трех программ, которые мы использовали для решения нашей задачи.
Очевидный вопрос: какой язык программирования использовать?
На самом деле нет единственно правильного ответа, поскольку не существует одного лучшего языка программирования ПЛК.
Очевидно, что мы не будем использовать C++ для решения простой задачи, представленной в этом упражнении, поскольку лестничная диаграмма или функциональный блок проще и удобнее.
У каждого языка есть свои сильные и слабые стороны, а также степени пригодности для конкретных приложений, и, конечно же, задача состоит в том, чтобы выбрать правильный язык.
Если вы только начинаете заниматься программированием ПЛК, вы можете улучшить свои навыки, пройдя бесплатный курс по PLCnext от RealPars!
Начиная с основ и заканчивая программированием на релейной логике или C++, вы освоите эту захватывающую новую технологию, когда все будет сказано и сделано.
Phoenix Contact даже выдает официальный сертификат об окончании каждого профессионального курса.
Поиск:
Инженер по автоматизации
Опубликовано 30 января 2023 г.
Тед Мортенсон
Инженер по автоматизации
Опубликовано 30 января 2023 г.
9 0002 В этом сообщении блога вы узнаете о способе мышления, который помог мне получить работу по программированию ПЛК без опыта. Это мой личный опыт как человека, который искал работу в этой сфере, и как работодателя, который просматривает резюме и проводит собеседования с кандидатами для различных проектов. Итак, приступим! Как мы измеряем температуру? Температура является важным измерением для эффективного мониторинга и управления различными промышленными приложениями. Необеспечение точности, неправильное измерение и контроль температуры могут привести к незначительным и неправильным измерениям температуры…
Сегодня мы отправимся с вами в захватывающий мир технологии датчиков температуры, в частности, RTD, термопар и термисторов. Это может показаться громким словом, но не волнуйтесь, мы разберем их для вас в веселой и легкой форме!RTDs: Точные…
Схемы функциональных блоков | Control Engineering
Изображение стоит тысячи слов — известная пословица, утверждающая, что сложные истории можно рассказать с помощью одного неподвижного изображения или что изображение может оказать большее влияние, чем значительный объем текста. Это также точно характеризует цели программного обеспечения на основе визуализации в промышленном управлении.
Функциональная блок-схема (FBD) может заменить тысячи строк текстовой программы. Графическое программирование — это интуитивно понятный способ определения функциональности системы путем сборки и соединения функциональных блоков. Первые две части этой серии оценивали лестничные диаграммы и текстовое программирование как выбор моделей вычислений. Здесь будут обсуждаться и сравниваться сильные и слабые стороны FBD.
Управление выполнением функциональных блоков в сети FBD неявно определяется положением функционального блока в FBD. |
FBD были введены IEC 61131-3 для преодоления недостатков, связанных с текстовым программированием и лестничными диаграммами. Сеть FBD в основном состоит из взаимосвязанных функций и функциональных блоков для выражения поведения системы. Функциональные блоки были введены для удовлетворения потребности в повторном использовании общих задач, таких как пропорционально-интегрально-дифференциальное (ПИД) управление, счетчики и таймеры, в разных частях приложения или в разных проектах. Функциональный блок — это упакованный элемент программного обеспечения, описывающий поведение данных, структуру данных и внешний интерфейс, определенный как набор входных и выходных параметров.
Во многих отношениях функциональные блоки теоретически можно сравнить с интегральными схемами, которые используются в электронном оборудовании. Функциональный блок изображается как прямоугольный блок со входами, входящими слева, и выходами, выходящими справа. См. схему типичного функционального блока с входами и выходами.
Ключевыми особенностями функциональных блоков являются сохранение данных между выполнениями, инкапсуляция и сокрытие информации. Сохранение данных обеспечивается созданием отдельных копий функциональных блоков в памяти при каждом вызове. Инкапсуляция обрабатывает набор программных элементов как единое целое, а сокрытие информации ограничивает доступ к внешним данным и процедуры внутри инкапсулированного элемента. Благодаря инкапсуляции и сокрытию информации разработчики системы не рискуют случайно изменить код или перезаписать внутренние данные при копировании кода из предыдущего управляющего решения.
Функции, диаграммы функциональных блоков
Функция — это программный элемент, который при выполнении с определенным набором входных значений дает один первичный результат и не имеет внутренней памяти. Функции часто путают с функциональными блоками, которые имеют внутреннюю память и могут иметь несколько выходов. Некоторыми примерами функций являются тригонометрические функции, такие как sin() и cos(), арифметические функции, такие как сложение и умножение, и функции обработки строк. Функциональные блоки включают PID, счетчики и таймеры.
FBD — это программа, созданная путем соединения нескольких функций и функциональных блоков, в результате чего один блок становится входом для следующего. В отличие от текстового программирования, для передачи данных от одной подпрограммы к другой не требуются переменные, потому что провода, соединяющие разные блоки, автоматически инкапсулируют и передают данные.
FBD может использоваться для выражения поведения функциональных блоков, а также программ. Его также можно использовать для описания шагов, действий и переходов в последовательных функциональных схемах (ПФС).
Функциональный блок не оценивается, пока не будут доступны все входные данные, поступающие от других элементов. Когда функциональный блок выполняется, он оценивает все свои переменные, включая входные и внутренние переменные, а также выходные переменные. Во время своего выполнения алгоритм создает новые значения для выходных и внутренних переменных. Как уже говорилось, функции и функциональные блоки являются строительными блоками FBD. В FBD считается, что сигналы передаются с выходов функций или функциональных блоков на входы других функций или функциональных блоков.
Выходы функциональных блоков обновляются в результате оценки функциональных блоков. Таким образом, изменения состояний и значений сигналов естественным образом распространяются слева направо по сети FBD. Сигнал также может быть возвращен с выходов функциональных блоков на входы предшествующих блоков. Путь обратной связи подразумевает, что значение внутри пути сохраняется после оценки сети FBD и используется в качестве начального значения при следующей оценке сети. См. сетевую схему FBD.
Управление выполнением функциональных блоков в сети FBD неявно определяется положением функционального блока в FBD. Например, на схеме «FBD network…» функция «Имитатор установки» оценивается после функционального блока «Управление». Порядок выполнения можно контролировать, активируя функциональный блок для выполнения и используя выходные клеммы, которые меняют состояние после завершения выполнения. Выполнение сети FBD считается завершенным только тогда, когда все выходы всех функций и функциональных блоков обновлены.
Сигналы с выходов функциональных блоков могут стать входами для других функций. |
Сильные стороны FBD
Ниже приведены некоторые сильные стороны FBD.
Интуитивный и простой в программировании. Поскольку FBD являются графическими, разработчикам систем без обширного обучения программированию легко понять и запрограммировать логику управления. Это приносит пользу экспертам в предметной области, которые не обязательно являются экспертами в написании конкретных алгоритмов управления на текстовых языках, но понимают логику алгоритма управления. Они могут использовать существующие функциональные блоки для простого создания программ для сбора данных, а также для управления процессом и дискретным управлением.
Многократное повторное использование кода . Одним из основных преимуществ функциональных блоков является повторное использование кода. Как уже говорилось, разработчики систем могут использовать существующие функциональные блоки, такие как PID и фильтры, или инкапсулировать пользовательскую логику и легко повторно использовать этот код во всех программах. Поскольку при каждом вызове этих функциональных блоков создаются отдельные копии, разработчики системы не рискуют случайно перезаписать данные. Кроме того, функциональные блоки также могут быть вызваны из лестничных диаграмм и даже текстовых языков, таких как структурированный текст, что делает их легко переносимыми между различными моделями вычислений.
Параллельное выполнение. С появлением многопроцессорных систем программируемые контроллеры автоматизации и ПК теперь могут выполнять несколько функций одновременно. Языки графического программирования, такие как FBD, могут эффективно представлять параллельную логику. В то время как текстовые программисты используют специальные библиотеки потоков и синхронизации, чтобы воспользоваться преимуществами многопоточности, графические языки, языки FBD и потоки данных (такие как National Instruments LabView) могут автоматически выполнять параллельные функциональные блоки в разных потоках. Это помогает в приложениях, требующих расширенного управления, включая параллельное использование нескольких PID.
Отслеживание выполнения и простота отладки. Графический поток данных FBD упрощает отладку, поскольку разработчики системы могут отслеживать проводные соединения между функциями и функциональными блоками. Многие редакторы программ FBD (например, Siemens Step 7) также предоставляют анимацию, показывающую поток данных, чтобы упростить отладку.
Недостатки FBD
Ниже приведены некоторые недостатки FBD.
Разработка алгоритмов
Низкоуровневые функции и математические алгоритмы традиционно представляются в виде текстовых функций; даже алгоритмы для функциональных блоков традиционно писались с использованием текстового программирования. Кроме того, функциональные блоки абстрагируются от сложностей алгоритма, что усложняет задачу специалистам в предметной области, пытающимся изучить детали передовых методов управления и обработки сигналов.
Ограниченное управление выполнением
Выполнение сети FBD слева направо и подходит для непрерывного поведения. В то время как разработчики систем могут управлять выполнением сети с помощью «переходных» конструкций, а также используя зависимость данных между двумя функциональными блоками, FBD не идеальны для решения задач последовательности. Например, переход от состояния «наполнение бака» к состоянию «перемешивание в баке» требует оценки всех текущих состояний. В зависимости от выходных данных перед переходом в следующее состояние должно выполняться действие перехода. Хотя этого можно достичь, используя зависимость функциональных блоков от данных, такая последовательность может потребовать значительного времени и усилий.
ИТ-интеграция
По мере того, как компании все чаще ищут способы подключения современных производственных цехов к предприятию, подключение к Интернету и базам данных становится чрезвычайно важным. В то время как текстовые программы имеют возможности ведения журнала базы данных и функции управления исходным кодом, FBD, как правило, не могут изначально интегрироваться с ИТ-системами. Кроме того, ИТ-менеджеры часто обучаются только текстовому программированию.
Необходимость обучения
Хотя поток данных интуитивно понятен, его обычно не преподают как модель вычислений. В США инженеров обучают использованию текстовых языков, таких как C++, Fortran и Visual Basic, а технических специалистов обучают работе с релейной логикой или электрическими схемами. FBD требуют дополнительного обучения, поскольку они представляют собой сдвиг парадигмы в написании управляющей программы.
FBD — это графический способ представления управляющей программы и модель программирования потока данных. Интуитивность, простота использования и повторное использование кода FBD делают их очень популярными среди инженеров. FBD идеально подходят для сложных приложений с параллельным выполнением и непрерывной обработкой. Они также эффективно заполняют пробелы в релейной логике, такие как инкапсуляция и повторное использование кода. Чтобы преодолеть некоторые из своих недостатков, инженеры должны использовать смешанные модели вычислений. FBD используются в сочетании с текстовым программированием для алгоритмов и интеграции с ИТ. Пакетные и дискретные операции улучшаются за счет добавления SFC. Модель вычислений SFC решает некоторые проблемы, с которыми сталкиваются FBD, и будет рассмотрена в четвертой части этой серии из пяти частей.
Методы программирования, серия
Схема функциональных блоков является третьей в серии статьи авторов National Instruments, исследующие различные методы программирования программного обеспечения. В первой статье рассматривалась лестничная логика (март 2007 г.
Информация об авторе |
Арун Вирамани — менеджер по продукту, а Тодд Уолтер — менеджер группы National Instruments, |