Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

FLProg — система визуального программирования для Arduino — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

FLProg — система визуального программирования для Arduino

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

Официальную среду разработки про­грамм для модулей Arduino предла­гают пользователям под названием Arduino IDE (рис. 1).

Рис. 1

Программирова­ние в ней происходит на языке ProcesSing/Wiring — диалекте языка С (скорее, C++). Среда представляет собой, по сути, обычный текстовый редактор с возможностью трансляции текста про­граммы в машинные коды и их загрузки в микроконтроллер модуля. Альтерна­тива Arduino IDE — предназначенная для микроконтроллеров семейства AVR ин­тегрированная среда AVR Studio (рис. 2). Она служит для разработки и отладки программ на языке ассемблера, но к ней можно подключить и компилятор языка С. В 2006 г. она сменила название на Atmel Studio.

Рис. 2

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

  1. Средства расширенного Формати­рования обычного исходного текста раз­рабатываемой программы. Её по-преж­нему пишут на языке С, но в более на­глядном формате. Сейчас таких средств очень много. Самые яркие примеры: Scratch, S4A, Ardublock. Они хороши для начального обучения программирова­нию на языке С, поскольку отлично по­казывают структуру и синтаксис этого языка. Но большие серьезные програм­мы получаются громоздкими. На рис. 3. показан пример программы на языке Scratch.

    Рис. 3

  2. Средства, скрывающие текст и за­меняющие его графическими символа­ми. В них также повторяется структура языка программирования высокого уровня, формируются циклы, переходы, условия. Эти средства тоже очень хоро­ши для первоначального обучения по­строению алгоритмов с последующим переходом к программированию на классических языках. Но они плохо под­ходят для построения больших про­ектов ввиду громоздкости получаемых структур. Примеры таких средств — miniBloq, Algorithm Builder, Flowcode. На рис. 4 показан пример программы, разработанной в среде miniBloq.

    Рис. 4

  3. Средства, основанные на языках FBD и LAD, применяемых в промышлен­ной автоматике. Строго говоря, языки программирования, как таковые, в них не используются. Это, скорее всего, ви­зуальные среды для рисования принци­пиальных и логических схем проектиру­емых устройств. Примеры схем вычис­лительных алгоритмов, построенных с помощью сред проектирования Horizon и FLProg, показаны соответственно на рис. 5 и рис. 6. Тем, кто привык рабо­тать с цифровой техникой, больше по­нравится работать в этих средах, чем разрабатывать программы на классиче­ских языках программирования. Подоб­ные средства хорошо подходят как для изучения импульсной и релейной техни­ки, так и для создания серьёзных про­ектов. В них сконцентрирован много­летний опыт разработчиков программ для промышленных контроллеров. Но начальный уровень знаний, требующий­ся для использования таких средств, значительно выше. Нужно владеть осно­вами электротехники и принципами по­строения электрических схем. Эти сред­ства хороши для инженеров-электриков и электронщиков, которые хотят исполь­зовать микроконтроллеры в своих раз­работках, не изучая для этого классиче­ские языки программирования.

    Рис. 5

    Рис. 6

Рассматриваемая далее программа FLProg основана на языках программи­рования FBD и LAD.

FBD (Function Block Diagram) — гра­фический язык программирования стандарта МЭК 61131-3. Программа представляет собой список цепей, за­полняемый последовательно сверху вниз. Цепи образуют из библиотечных блоков. Блок (элемент) — это подпро­грамма, функция или функциональный блок (И, ИЛИ, НЕ, триггер, таймер, счёт­чик, блок обработки аналогового сигна­ла, математическая операция и т. д).

Каждую цепь составляют из отдель­ных блоков, подключая на экране ком­пьютера к выходу каждого блока вход следующего. Внутри цепи программа выполняет блоки строго в порядке их соединения. Результат, полученный на выходе последнего блока цепи, про­грамма записывает во внутреннюю пе­ременную или подаёт на выход контрол­лера. Пример визуального представле­ния программы на языке FBD показан на рис. 7.

Рис. 7

LAD (Ladder Diagram) — язык релей­ной (лестничной) логики, известный также под названиями LD и РКС.

Синтаксис этого языка удобен для опи­сания логических узлов, выполненных на релейной технике. Язык ориентиро­ван на специалистов по автоматике, ра­ботающих на промышленных предприя­тиях. Он обеспечивает наглядное ото­бражение логики работы контроллера, облегчающее не только собственно про­граммирование и ввод системы в эксплуатацию, но и быстрый поиск неполадок в подключаемом к конт­роллеру оборудовании. Программа на языке ре­лейной логики имеет на­глядный и интуитивно по­нятный инженеру-электрику вид, представляя логические операции в виде электрических цепей с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в такой цепи соответствует результату логи­ческой операции (ток течёт — истина, ток не течёт — ложь). Пример схемы на языке LAD представлен на рис. 8.

Рис. 8

Основные элементы языка LAD — контакты, которые можно уподобить контактным парам реле или кнопок. Контактная пара отождествляется с логиче­ской переменной, а состояние этой пары — со значением пе­ременной. Различают нормаль­но замкнутые и нормально ра­зомкнутые контактные элемен­ты. Их можно сопоставить с нормально замкнутыми и нор­мально разомкнутыми кнопка­ми в электрических цепях.

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

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

В настоящее время существует бога­тый выбор как различных вариантов микроконтроллерных модулей Arduino (рис. 9), так и дополняющих их моду­лей, например, датчиков и исполнитель­ных устройств. Кроме того, в Интернете (например, на сайте http://robocraft.ru/) можно найти огромное число готовых проектов на основе этих модулей и адаптировать их под свои нужды.

Рис. 9

В настоящее время система FLProg работает со следующими версиями мо­дулей: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. Недавно в списке появилась и плата Intel Galileo gen2. В дальнейшем предполагается пополнение и этого списка, возможно, и добавление модулей, основанных на микроконтроллерах STM.

Для создания FLProg был использован опыт программистов фирм Siemens, ABB, Schneider Electric и наработки в их средах программирования. При этом был не­сколько расширен классический функ­ционал языков для работы с промыш­ленными контроллерами путём добавле­ния функциональных блоков, отвечающих за работу с внешними устройствами. Программа работает на компьютерах под управлением ОС Windows и Linux.

Пользовательский интерфейс FLProg устроен так, что проект представляет собой набор виртуальных плат, на каж­дой из которых собран законченный модуль разрабатываемой системы. Каждая плата имеет наименование и снабжена комментариями. Для эконо­мии места в рабочей зоне её можно свернуть, если работа над ней законче­на, а при необходимости вновь развер­нуть и внести коррективы.

Красный индикатор у наименования платы на рис. 10 указывает на то, что в её схеме обнаружены ошибки. После ис­правления ошибок индикатор станет зелёным. Стрелка рядом с комментарием предназначена для свёртки изображения.

Рис. 10

Правое окно рабочей области (рис. 11) отведено для библиотеки элементов. Добавить компонент в проект можно простым перетаскиванием, а двойной щелчок покажет информацию об эле­менте программы. Перечень блоков, предусмотренных в программе, их опи­сание и помощь по работе с програм­мой можно найти на интернет-странице [1]. На интернет-странице [2] имеется перечень периферийного оборудова­ния, поддерживаемого программой. Эти списки постоянно пополняются.

Рис. 11

По мере развития программы плани­руется организация обмена информа­цией по Bluetooth, радиоканалу и интерфейсу RS-485, работа с трехосе­вым гироскопом, люксметром и други­ми датчиками. В дальнейших планах есть разработка SCADA-системы для доступа к системам, разработанным с помощью среды FLProg, с персональ­ного компьютера или мобильного уст­ройства.

Разработанную «принципиальную схему» FLProg переводит на язык Processing/Wiring. По завершении компи­ляции автоматически открывается про­грамма Arduino IDE с загруженным скет­чем проекта. В Arduino IDE необходимо указать COM-порт компьютера, к кото­рому подключён микроконтроллерный модуль, выбрать тип модуля и загрузить программу в его микроконтроллер.

Среду программирования FLProg можно адаптировать к программируе­мым логическим контроллерам, отли­чающимся от модулей Arduino, что поз­волит применять для работы с ними российское программное обеспечение.

ЛИТЕРАТУРА

  1. Создание Help-а для программы FLProg. — URL http://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5Help-%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8BFLProg (23.06 15).
  2. Применяемое в проекте оборудование. — URL http://flprog.ru/FLProg/pid218088913/vdi194000369 (23.06 15).

Автор: С. ГЛУШЕНКО, г. Москва

Exit mobile version