Arduino — всем

в 7:49, , рубрики: arduino, Программинг микроконтроллеров, программирование контроллеров, Промышленное программирование, метки: ,

image

    Достаточно давно на мировом рынке и в нашей стране появилась аппаратная платформа Arduino.

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

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

    Цель проекта — перевести программирование Arduino в область доступную для не программистов, сделать разработку устройств на нем возможной для тех, кто не владеет языками программирования.

    В области программирования промышленных контроллеров уже давно используются языки FBD и LAD. У разных производителей реализация этих языков различна, но с моей точки зрения, наиболее близко подошли к идеалу программисты из “Siemens”, создав пакет «TIA-Portal». В разработке программы «FLProg» я многие идеи черпал оттуда. Так же удачные решения подчерпнуты из программного обеспечения “Schneider Electric” — «Zelio Soft».

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

    Ladder Diagram (LD, LAD, РКС) — язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течет; ложь — если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.

    Программа «FLProg» позволяет работать на обоих языках: и FBD и LAD. При создании нового проекта Вам предложат выбрать язык программирования, в котором вы будете создавать проект и контроллер, на котором этот проект будет реализован.

image

     Проект в «FLProg» представляет собой набор плат, на каждой, из которой собран законченный модуль общей схемы. Для удобства работы каждая плата имеет наименование и комментарии. Так же каждую плату можно свернуть (для экономии места на рабочей зоне, когда работа над ней закончена), и развернуть. Красный индикатор в наименовании платы указывает на то, что в схеме платы есть ошибки.

image

image

     В правой части рабочей зоны расположена библиотека элементов. В схему элементы переносятся простым перетаскиванием. При двойном клике по элементу будет показана информация о нём.

Блоки FBD:

image

Блоки LAD:

image

image

    В верхней части рабочей зоны расположен список Tags (FBD) или установленного оборудования (LAD). Тэги или оборудование переносятся на схему также простым перетаскиванием.

image

image

     После завершением работы над проектом, производится компиляция проекта. После компиляции Вас попросят указать директорию, куда будет сохранен откомпилированный проект, и автоматически откроется программа «Arduino 1.0.5» c загруженным скетчем Вашего проекта. В программе «Arduino 1.0.5» Вам необходимо будет указать номер COM порта, к которому подключен Ваш контроллер, выбрать его тип, и произвести заливку скетча в контроллер.

image

    Скачать программу можно на сайте проекта: flprog.ru. Если будет возможность, я планирую развивать проект. В первую очередь увеличить количество блоков, добавить специализированные блоки часов реального времени (этим занимаюсь в текущий момент), специализированных блоков для дисплеев, сервоприводов и других устройств. Так же в ближайшее время планирую прикрутить к программе симулятор. Подглядел неплохую идею у Mitsubishi. В более далеких планах — отказ от Arduino IDE и переход на чистый С. Мне очень интересно мнение уважаемых хаброжителей о целесообразности этого проекта.

    P.S. Прошу не кидать в меня тухлыми помидорами за оформление хаба и сайта. К сожалению я и Его Величество Дизайн живем на разных полюсах этой планеты. Так же прошу извинения за возможные проблемы с сайтом. Он крутится на простеньком домашнем сервачке на Атоме, и в случае хаброэффекта может лечь.

Автор: totuin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js