Как установить flprog на windows 10

Устанавливая и используя данное ПО, Вы соглашаетесь с условиями Лицензионного соглашения.

Устанавливая и используя данное ПО, Вы соглашаетесь с условиями Лицензионного соглашения.

Внимание!

Начиная с версии 7.3.0 программа FLProg сохраняет все свои файлы в кодировке Unicode, ранее использовалась кодировка Windows-1251. В связи с этим переходом более старые версии программы не смогут открыть файлы созданные в программе версии 7.3.0. и старше.

Была создана программа CodeConverter для преобразования файлов нового стандарта в старый. При этом те символы, которые не поддерживается кодировкой Windows-1251 будут заменены на пробел.

Скачать программу можно здесь


Программа FLProg версия 7.3.8

Дата релиза — 2021-07-06 19:59:15

Инсталлятор программы для операционной системы Windows 32.

SetupFLProg_7.3.8_Win32.exe (471.21 MБ)

MD5 — 719771cf8f0349eb968c4c85a7527aa7

Количество загрузок — 13866


Портативная версия программы для операционной системы Windows 32.

PortableFLProg_7-3-8_Win32.zip (823.7 MБ)

MD5 — 22717927e1ca3f338ee91dbe7d313114

Количество загрузок — 3937


Пакет обновления ( С версии 7.3.7 и старше до версии 7.3.8 Windows 32.

UpdateFLProg_7-3-7_To_FLProg_7-3-8_Win32.zip (79.01 MБ)

MD5 — 2524cd096ff329d444ae73d49c9497ad

Количество загрузок — 806

Распаковать архив в папку с установленной программой заменяя существующие файлы


Инсталлятор программы для операционной системы Windows 64.

SetupFLProg_7.3.8_Win64.exe (470.96 MБ)

MD5 — aabbb9e3958cd466c5c44e7f60ac6d77

Количество загрузок — 21676


Портативная версия программы для операционной системы Windows 64.

PortableFLProg_7-3-8_Win64.zip (824.96 MБ)

MD5 — 21a66ee1257e935591ed170a9031397d

Количество загрузок — 9307


Пакет обновления ( С версии 7.3.7 и старше до версии 7.3.8 Windows 64.

UpdateFLProg_7-3-7_To_FLProg_7-3-8_Win64.zip (80.25 MБ)

MD5 — 1f36a8cd0f8bd037651abd844961537e

Количество загрузок — 1875

Распаковать архив в папку с установленной программой заменяя существующие файлы


Инсталлятор программы для операционной системы Windows XP.

SetupFLProg_7.3.8_WinXP.exe (469.63 MБ)

MD5 — aa16715c9cded9650b2298a58360d040

Количество загрузок — 928


Портативная версия программы для операционной системы Windows XP.

PortableFLProg_7-3-8_WinXP.zip (822.9 MБ)

MD5 — 87359bea471e8e2239fc5987f6120c08

Количество загрузок — 696


Пакет обновления ( С версии 7.3.7 и старше до версии 7.3.8 Windows XP.

UpdateFLProg_7-3-7_to_FLProg_7-3-8_WinXP.zip (79.01 MБ)

MD5 — 7fabe7d43804e4d0473143f9586ce3fb

Количество загрузок — 337

Распаковать архив в папку с установленной программой заменяя существующие файлы


Портативная версия программы для операционной системы Linux 32.

FLProg_7-3-8_Linux32.tar.gz (832.39 MБ)

MD5 — 2c6c65073f5cc13c3c13ce6c56ad3d83

Количество загрузок — 615

Распаковать в любую директорию и запустить файл FLProg. Подробности по установке программы в файле ReadMe.


Пакет обновления ( С версии 7.3.7 и старше до версии 7.3.8 Linux 32.

UpdateFLProg_7-3-7_To_FLprog_7-3-8_Linux32.tar.gz (75.12 MБ)

MD5 — 785290eb1823c7bd94c156b9bf114b0e

Количество загрузок — 211

Распаковать архив в папку с установленной программой заменяя существующие файлы


Портативная версия программы для операционной системы Linux 64.

FLProg_7-3-8_Linux64.tar.gz (828.75 MБ)

MD5 — 86c67452b9fae4fbea9a1ca9c0a09e2f

Количество загрузок — 1338

Распаковать в любую директорию и запустить файл FLProg. Подробности по установке программы в файле ReadMe.


Пакет обновления ( С версии 7.3.7 и старше до версии 7.3.8 Linux 64.

UpdateFlprog_7-3-7_To_Flprog_7-3-8_Linux64.tar.gz (75.6 MБ)

MD5 — e4c351677cf44920f0762c76b56c30a8

Количество загрузок — 304

Распаковать архив в папку с установленной программой заменяя существующие файлы


Автор публикации


715

Комментарии: 15Публикации: 384Регистрация: 04-02-2018

Опубликовано: 04.01.2017 16:07



Введение

Приветствую всех посетителей нашего портала, сегодня у нас обзор бесплатной программы под названием FLProg. Узнал я о ней из письма одного из наших посетителей, который попросил уделить ей внимание и по возможности поучаствовать в ее развитии. Собственно сегодня я ее скачаю и попробую написать пару демонстрационных схем, попутно комментируя и выделяя как плюсы программы, так и её минусы. Сразу оговорюсь, что я успел прочесть пару статей о данной программе и немного просмотреть ее официальный сайт, но саму программу я скачиваю впервые. Так же я поверхностно знаком c FBD и LAD, делали большой проект автоматизации завода лет шесть назад, правда программировали контроллеры на STL и SCL, но для общего развития и, понимая, я читал так же и об других, таких как FBD, LAD, GRAPH 7.

Теперь немного поговорим о самой программе. FLProg — это альтернативная среда разработки, эдакая обертка над Arduino IDE позволяющая программировать и задавать логику микроконтроллеру на двух дополнительных языках: FBD и LAD. Оба этих языка стали популярными благодаря старшим братьям микроконтроллеров — промышленным контроллерам от фирмы Siemens, гиганта в мире промышленных контролёров, заслуженно занимающий одно из лидирующих мест. Собственно автор программы частенько на это ссылается, будь то скриншоты контроллеров взятых с официального сайта Сименса или иконками, взятыми из программы Step7.

Немного информации из википедии (Хотя бы бегло прочтите, лишним не будет).

  • FBD – Графический язык программирования
  • LAD — Язык релейной (лестничной) логики.

На этом со вступлением мы закончим и перейдем к скачиванию и установке программы.

Скачивание и Установка

И так, переходим на официальную страницу скачивания программы. И видим мы тут первый ее плюс. Программа кроссплатформенная. Здесь есть несколько вариантов ОС, это Linux и Wondows. К сожалению дистрибутива, для Mac OS — нет, но мне она и не нужна (Минус не ставлю, но некоторым это не понравиться). Скачаем мы с вами портативную версию под Windows (Второй плюс, наличие портативной версии, порой удобней таскать все с собой, ну например на флэшке). Переходим по нескольким страницам, после чего попадаем в Яндекс.Диск и наконец скачиваем программу (Первый минус, в место прямых ссылок игра в прятки, дизайн сайта и вложенность запутывает). И так, после того как мы скачали последнюю версию (FLProg 2.2) и распаковали ее куда нам надо, приступим к ее изучению.

Первый запуск

После запуска нас приветствует главное окно программы с минимальным интерфейсом.

FLProg - Главное окно

В главном окне мы видим стандартное меню, и несколько кнопок (Открыть, закрыть, сохранить проект и тд).

Создадим свой первый проект. И по традиции ардуинщиков это будет стандартный Blink (моргание 13-м светодиодом).

Нажимаем кнопку «Создать новый проект» и в открывшемся окне выбираем FBD и Arduino UNO.

FLProg - Новый проект

 Проект создан, можно приступать.

Пример «Blink» на FBD

FLProg - FBD

Что мы тут видим. Окно поделенное на несколько оконных блоков. Предназначение левого мне неизвестно, но вот два центральных и правое выглядят знакомо.

  • Центральное верхнее — настройка портов и создание дополнительных переменных.
  • Центральный нижний  — само рабочее поле, где мы будем размещать наши блоки.
  • Правый — Список готовых блоков.

Первым делом мы настроим наши порты, а точнее только порт под номером 13 на котором распаян светодиод на плате Arduino UNO.

Кликаем в верхнем центральном блоке по надписи «Выходы» — «Добавить выход». В открывшемся окне выбираем «Тип» — Цифровой, «Номер контакта» — 13, «Имя» — любой текст (в примере — pin13). Все остальные поля игнорируем.

После того как мы нажмем на кнопку «Готово» и окно закроется, в списке появиться выход с наименованием «pin13». Перетаскиваем надпись на рабочее поле.

Вот  что в итоге у нас получилось.

FLProg - Добавление порта

Ищем в списке готовых блоков нечто похожее на таймеры или хотя бы delay. Таких «таймеров» оказалось два, и оба являются эдакими обертками с дополнительным функционалом. 

Блок «Timer» в разделе «Таймеры» — который как мы понимаем из названия и должен быть таймером, на самом деле оказалось реле задержки включения/выключения, использующее для своей работы таймер но не как не являющееся им. За это однозначно минус, наименования не соответствует работе блока.

Последний блок «Generator» в разделе «Таймеры» уже боле менее понятен и как раз впишется в наш пример. Предназначение блока создавать импульсы с заданной длительностью и паузой. Этот блок и будет включать и выключать наш светодиод.

Перетаскиваем блок в рабочее поле и соединяем его выход «Q» с блоком порта «pin13».

FLProg - Блок Generator

Теперь нам надо зайти в настройки блока генератора. И в настройках выбрать:

Тип генератора: Симметричный мультивибратор. (Вам не кажется, что подобные названия заставляют задуматься и как минимум прочитать мануалы?).

Длина импульса: Константа — Миллисекунды — 1000.

И тут мы видим, что блок поменял свое наименование с G-S на GS-M. То есть авторы решили не делать кучу блоков, а по возможности объединить их, и изменив тип блока мы по сути получили совсем другой блок работающий иначе чем первоначальный. Это еще один минус. Надо читать мануалы и настраивать блоки (Хорошо, что у программы мануалы есть и довольно таки неплохие, за это плюс). Я понимаю, что авторы решили упростить и не плодить кучу блоков, но это затруднило, например их поиск, и заставляет читать мануалы, настраивать, и тестировать так ли блок работает, как я его настроил.

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

Кликаем правой кнопкой мыши на входе «EN» блока G-SM и выбираем пункт «Вставить константану». В открывшемся окне выбираем «True» и жмем «Готово».

FLPog - FBD Blink

Все, на этом наш пример Blink закончен, осталось лиши загрузить все в Arduino нажав на кнопку «Компилировать проект». После чего откроется Arduino IDE (Почему-то старая версия 1.6.3) в которой мы увидим созданный FLProg скетч. Грузим скетч в Ардуинку и проверяем.

Ну и давайте теперь посмотрим, какой Си код у нас в итоге получился.

bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
void setup()
{
pinMode(13, OUTPUT);

}
void loop()
{



if (1) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;}
 if (_gen1I) {  if ( _isTimer ( _gen1P , 1000 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}
digitalWrite(13, _gen1O);




}
bool _isTimer(unsigned long startTime, unsigned long period )
  {
  unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
  }

На первый взгляд у нас тут какая-то не отформатированная каша, но это только на первый взгляд.

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

Теперь давайте отформатируем его вручную и разберемся что там к чему.

// Объявление переменных для работы генератора.
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;

void setup()
{
  // Настройка 13-го порта как выход.
  pinMode(13, OUTPUT);
}

void loop()
{
  // Первая строка. Инициализация таймера и его включение/выключение.
  // Если генератор включен (Напоминаю мы вставили константу чтобы он работал всегда, но это может быть например и порт и некая переменная).
  if (1) 
  {
    // Если генератор не был инициализирован, то включаем его и выставляем переменные.
    if (!_gen1I)
    {
      _gen1I = 1;
      _gen1O = 1;
      _gen1P = millis();
    }
  }
  else
  {
    // Выключение генератора
    _gen1I = 0;
    _gen1O = 0;
  }

  // Вторая строка. Логика самого генератора. Переключения и запоминание переменных.
  // Если генератор включен.
  if (_gen1I)
  {
    // Проверка на необходимость переключения генератора в асинхронном режиме.
    if (_isTimer(_gen1P, 1000))
    {
      _gen1P = millis();
      _gen1O = !_gen1O;
    }
  }
  
  // Третья строка. Работа с портом.
  digitalWrite(13, _gen1O);
}

// Дополнительная функция, реализующая таймер.
bool _isTimer(unsigned long startTime, unsigned long period )
{
  // Получение текущего времени.
  unsigned long currentTime;
  currentTime = millis();
  // Проверка, наступило ли время переключения.
  // Функция так же содержит проверку на переполнение переменной, таким образом таймер может работать непрерывно и долго.
  if (currentTime >= startTime)
  {
    return (currentTime >= (startTime + period));
  }
  else
  {
    return (currentTime >= (4294967295 - startTime + period));
  }
}

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

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

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

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

С наилучшими пожеланиями и с прошедшим вас новым годом.



Программа является визуальной средой программирования плат и микроконтроллеров Arduino. С ее помощью пользователи могут создавать схемы для управления устройствами.

Дата обновления:

01.01.2021

Версия Windows:

Windows 7, Windows 8, Windows 8.1, Windows 10

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

Проект

После запуска приложения необходимо выбрать язык FBD или LAD, а также тип контроллера. Пользователи могут ознакомиться с кратким описанием платы. Поддерживаются устройства Arduino ATMega, ESP8266, ESP32 и Intel.

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

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

Компиляция

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

Особенности

  • приложение можно скачать и использовать бесплатно;
  • утилита представляет собой визуальную среду программирования плат Arduino;
  • есть возможность создавать электрические и логические схемы;
  • доступна встроенная библиотека компонентов;
  • пользователи могут настраивать параметры каждого блока;
  • программа совместима с актуальными версиями Windows.

468 Мб (скачиваний: 4600)

Роблокс Студио Роблокс Студио

Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатно

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

ver 0.549.0.5490632

SDK Platform Tools SDK Platform Tools

Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатно

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

ver 31.0.3

Construct Classic Construct Classic

Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

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

ver 1.2

IntelliJ IDEA IntelliJ IDEA

Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

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

ver 2020.3.3

SharpDevelop SharpDevelop

Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

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

ver 5.1.0

UltraEdit UltraEdit

Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

Утилита позволяет создавать и редактировать текстовые документы. Имеется поддержка системы вкладок и встроенный FTP клиент для передачи файлов на внешние серверы.

ver 28.00.0.14

TortoiseSVN TortoiseSVN

Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

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

ver 1.14.1

ERWin ERWin

Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 Бесплатная

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

ver 7.3.3.1773

Последняя русская версия ФЛПрог

  • 1
  • 2
  • 3
  • 4
  • 5
  • Категория: Проектирование и моделирование
  • Год выпуска: 2022
  • Издатель: flprog.ru
  • Платформа: Windows
  • Тип издания: лицензия
  • Язык интерфейса: русский (RUS) / английский (ENG)
  • Версия: 7.3.8
  • Лекарство: не требуется

Скачать Flprog
471 Mb

212 | 156

С данной страницы посетители могут бесплатно скачать Flprog. Это среда визуального программирования устройств Adruino.

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

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

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

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

Системные требования

ОС: Windows 11 / 10 / 7 / 8
Процессор: Intel или AMD
ОЗУ: 1 Gb
HDD: 1 Gb

Установка ФЛПрог на компьютер

  1. Запустить установочный файл
  2. Установить приложение, следуя его подсказкам
  3. Начать использование.

Скриншоты

Видеообзор

Похожие файлы

Отзывы: 0

Цель IDE

Используя программную среду Arduino IDE, можно, основываясь лишь на знаниях C++, решать самые разные творческие задачи, связанные с программированием и моделированием.

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

Интерфейс сравнительно простой в освоении, его основой является язык C++, поэтому освоить инструментарий могут даже начинающие программисты.

Arduino IDE - описание, где скачать

Как работает Arduino IDE?

Работа с Arduino IDE практически ничем не отличается от работы в любой другой среде разработки программного обеспечения за исключением того, что создаваемые программы выполняются не на компьютере, а на специальной плате:

  • Создаваемый пользователем код программы компилируется в двоичный файл-прошивку (скетч).
  • Путем вызова соответствующей функции компилятора прошивка переносится (записывается) на плату, подключенную к компьютеру через USB-интерфейс (или другой — зависит от платы).
  • Загруженная на плату микропрограмма сразу же начинает работать — процесс программирования на этом заканчивается.

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

Где скачать Arduino IDE

Скачать нужную версию можно в таблице выше. Выберите нужную операционную систему и файл для инсталляции.

Сама программа предоставляется с открытым исходным кодом. Все базовые инструменты распространяются бесплатно — достаточно выбрать версию, соответствующую операционной системе. С описаниями (на английском языке) можно ознакомиться на странице официального сайта https://www.arduino.cc/en/main/software, а сами ссылки на нужную версию смотрите в таблице выше.

После выбора нужной операционной системы и нужного файла установки вы попадете на страницу скачивания (см. ниже), где вам просто нужно будет нажать «Just Download» для начала скачивания.

Arduino IDE на русском языке

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

Полный список выпущенных локализаций представлен на этой странице: https://playground.arduino.cc/Main/LanguagesIDE. Русский язык входит в список.

Русский язык входит в список языков Arduino IDE.

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

FilePreferencesLanguage(Файл → Настройки → Язык)

и выбрать русский язык в списке.

Установка Arduino IDE Windows / Linux

После скачивания установочного файла .exe программа сама создаст необходимые папки для хранения скетчей и библиотек в папке пользователя Мои документы. Изначально Arduino IDE 1.8.6 содержит только стандартные библиотеки. Для работы с отдельными модулями вам дополнительно потребуется скачивать и устанавливать необходимые файлы библиотек для подключения модулей к плате Arduino.

Видео. Установка Arduino IDE в Windows 7 / Win 10

Видео. Установка Arduino IDE в Ubuntu / Debian / Mint

Установка среды

Установка программной среды Ардуино довольно несложный процесс. После того как вы выбрали и скачали нужную версию необходимо запустить установку через файл arduino.exe.

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

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

Далее выбираем папку для установки.

Если установщик предложит установить USB-to-serial драйвер — жмем Установить.

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), так и дополняющих их моду­лей, например, датчиков и исполнитель­ных устройств. Кроме того, в Интернете (например, на сайте https://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 https://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 https://flprog.ru/FLProg/pid218088913/vdi194000369 (23.06 15).

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

Настройка IDE

Для соединения платы с компьютером используется USB-порт. Программирование не требует специального оборудования, сама плата компактна и имеет малый вес.

Шаг 1

Соединяем плату Arduino с компьютером.

Шаг 2

Переходим в:

Пуск → Панель управления → Диспетчер устройств

Находим «Порты COM и LPT» и видим нашу плату на COM2.

Вполне вероятно, что вы ничего не увидите. В большинстве случаев проблема в том, что вы купили плату на чипе CH340G. В таком случае нужно воспользоваться решением из нашей статьи.

Шаг 3

Запускаем Arduino IDE и переходим в:

Инструменты → Порт

Выбираем порт COM2 (или тот, который получился у вас на шаге выше).

Шаг 4

Выбираем плату.

На этом с настройкой закончено. Теперь у вас настроена Arduino IDE и вы можете приступить к разработке своих проектов.

Автоматизация и робототехника очень плотно входит в нашу жизнь. Интернет-магазины буквально ломятся от всяких различных плат, контроллеров, компьютеров, датчиков и т.д. Самые бюджетные платы из всех это преимущественно Arduino. У них своя собственная среда разработки, которая требует каких-то элементарных навыков программирования. А что делать «Непрограммистам»?  Технологам например? Или человеку, который хочет внедрить узел автоматики или собрать инкубатор за «Дёшево»? Как раз существует для Arduino графическое программирование, то есть с помощью функциональных блоков.

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

А о графическом языке программирования. Ну о

стандартах МЭК

вы наверное уже знаете, для непосвящённых есть отдельная статья.

Для плат Arduino тоже разработана среда, в которой можно писать технологические программы, не зная тонкостей строения кода. Имя среды разработки — FLprog.

Как-то я косвенно писал о ней в своих статьях. Сегодня мы рассмотрим поподробнее.


Установка и запуск среды разработки FLprog

Заходим на официальный


сайт FLprog


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

Далее следует стандартная установка пакетов программ.

Запускаем:

Нам предлагаю выбрать проект для SCADA или для контроллера. Для начала рассмотрим проект для контроллера:

Тут в принципе есть два языка программирования по стандарту МЭК — лестничные диаграммы, релейная схема (LD), либо графические блоки (FBD). Кому как удобно, кто как привык. Я выбираю FBD.

С левой стороны дерево проектов, посередине полотно, с правой стороны свойства и все необходимые элементы.

Чем-то очень напоминает вот это (оболочка CoDeSyS 3.5)

Или вот это (оболочка Owen Logic ПР110)


Делаем первый проект на FLProg

Ну что же, первый проект мы с вами уже настроили. Осталось добавить несколько элементов, скомпилировать, связаться с Arduino UNO, залить проект и радоваться.

Давайте попробуем просто помигать 13 светодиодом на плате, самое простое.

После того, как всё добавили и связали, можно соединяться с нашей платой и пробовать.

На самом деле в этой среде достаточно много возможностей. Тут можно подцепить дополнительные модули или контроллеры по Modbus — протоколу.

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

Заметьте, я сейчас рекламой не занимаюсь. Я НЕ РЕКЛАМИРУЮ данную среду разработки. Деньги мне за неё не платили. И я не являюсь одним из разработчиков дистрибутива. Я пишу об FLProg потому, что продукт достаточно качественный и хороший.

Программа — бомба!! Спасибо ребятам за такой продукт. Всё достаточно наглядно, понятно и доступно. В принципе в этой программе сможет с лёгкостью разобраться любой.

Удачных вам проектов! До встречи в следующих статьях.

С уважением, Гридин Семён

Программирование

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

Содержание

  1. Обзор программы
  2. Особенности
  3. Скачать

Обзор программы

FLProg представляет собой специальную программу, которая помогает программировать контроллер. Только отличается она от многих аналогов тем, что делается это при помощи визуального контакта. Проще говоря, вы создаёте электронные схемы внутри самой программы, которые сказываются на работе самого контроллера.

Использовать эту программу рекомендуется тем, кто разбирается в программировании. Новичкам будет достаточно трудно.

Особенности

  • Постоянное обновление. Программа активно обновляется своим творцом. Исправляются ошибки, многие неточности, убираются неисправности. Благодаря этому пользователь может легко управлять процессами;
  • Надёжность. FLProg является одной из самых надёжных программ в данной сфере, предоставляя своему владельцу не только безопасность, но и помогает легко управлять контроллером;
  • Работа с разными языками. Существуют специальные визуальные языки, с которыми сталкиваются многие программисты. Это FBD и Ladder. И примечательно, что данная программа работает с каждым из них;
  • Бесплатно. Все функции и возможности программы предоставляются совершенно бесплатно. Любой пользователь может легко управлять рабочими процессами.

Скачать

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

Пароль к архивам (если он есть): novice-user

Программирование микроконтроллеров, DIY или Сделай сам, Разработка робототехники, Промышленное программирование


Рекомендация: подборка платных и бесплатных курсов PR-менеджеров — https://katalog-kursov.ru/

На Хабре достаточно давно не освещался проект FLProg. Это связанно с отсутствием времени на написание статей, да и моими собственными личными проблемами. Но проект не умер, он живёт и развивается. В среднем раз в месяц выходит очередная версия программы. Со времени последней публикации была полностью переделана отрисовка схемы (благодаря этому были устранены фризы при отрисовке), появилась система Cross Reference для проекта, и система анализа проекта на ошибки. Непосредственно сам код программы, был перенесён на более свежую версию языка программирования. Благодаря этому в положительную (с моей точки зрения конечно, ну и пользователи меня поддерживают) сторону изменился интерфейс программы. Добавились многие интересные блоки. Реализовано масштабирование схемы и поиск блоков.

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

Теперь пришла пора решать вторую проблему – это платы контроллеров.

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

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

Итак, начнём.

Открываем программу FLProg. В меню «Инструменты» выбираем пункт «Редактор пользовательских описаний контроллеров».

Открывается окно редактора описаний.

Пользовательские описания можно объединять в библиотеке с любой глубиной вложенности. Поэтому сначала создадим библиотеку описаний.

Зададим имя библиотеки.

После чего создадим в библиотеке описание контроллера.

И назначим ему имя:

При создании описания контроллера мы сразу попадаем на ветку общих параметров.

Здесь мы можем изменить имя, задать тип центрального процессора, задать размер EEPROM, изменить номер версии описания.

Поскольку плата ShloTiny сделана на базе контроллера ESP8266 то его и выбираем. При выборе контроллера автоматически проставляется соответствующий ему объём EEPROM. При необходимости это значение можно изменить. Номер версии по умолчанию для нового описания устанавливается 1.

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

Так же в этой ветке можно написать текстовое описание контроллера, помогающее при его выборе.

Для применения внесённых изменением перед переходом на другую ветку параметров контроллера необходимо нажать кнопку «Применить». Если этого не сделать, изменения не будут сохранены.

Теперь рассмотрим принципиальную схему платы ShloTiny.

У платы имеется три цифровых входа, три цифровых выхода, аналоговый вход, и вход для сенсора. Итого восемь выводов платы.

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

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

На этой ветке, можно прописать альтернативное имя вывода, которое будет выводится в программе. В случае его отсутствия, в программе будет выводится надпись PinN где N номер вывода в списке выводов. Я рекомендую записывать в поле альтернативного имени надпись к нему на плате. Это облегчит понимание, к какому выводу производится обращение. Для описываемой платы занесём туда значение Input1 в соответствие с принципиальной схемой. Так в этой ветке можно прописать индивидуальное описание вывода, например для указания особенностей его применения. При необходимости, так же можно задать псевдоним вывода, который будет выводится в программе в скобках после названия вывода.

После внесения изменений не забываем нажать кнопку «Применить». По такому же принципу поименуем остальные выводы.

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

Каждому выводу можно назначить следующие функции.

  • I2C – функция одного из выводов шины I2C (SDA или SCL).
  • SPI – функция одного из выводов шины SPI (MISO, MOSI, SCK, SS).
  • UART – функция одного из выводов интерфейса UART (RX или TX).
  • Функция аналогового входа
  • Функция аналогового выхода (в программе FLProg пока не используется, задел на будущее).
  • Функция цифрового входа/выхода.

Назначим выводу 1 функцию цифрового входа/выхода. При назначении выводу новой функции (ещё не настроенной) в дереве контроллера появится ветка «Ошибки» и весь путь до ветки некорректной функции окрасится красным. На ветке «Ошибки» можно посмотреть список ошибок найденных в описании контроллера.

В данном случае на вводе 1 в функции «Цифровой вход/выход» не задан номер этого ввода как цифрового. Переходим на ветку данной функции (в будущем я планирую сделать прямой переход на нужную ветку при клике на ошибку).

Согласно принципиальной схеме платы вывод «Input1» подключен к пину GPIO2 контроллера. Это значение вводим в поле «Номер цифрового входа». При компиляции проекта это значение будет вставляться в код. Поскольку использование данного ввода в качестве вывода не предусмотрено, то снимаем чекбокс «Может использоваться как выход». Как всегда нажимаем кнопку «Применить». Таким же образом настраиваем остальные два цифровых входа. Затем переходим к выводу аналогового входа «ADC1» и добавляем ему функцию «Аналоговый вход».

В настройках этой функции необходимо указать номер данного вывода как аналогового входа. В соответствии со схемой это 0 (в ESP8266 он один).

Затем переходим к настройке вывода «1WIRE». Здесь добавляем к нему функцию цифрового входа/выхода, но запрещаем его использование как входа, так и как выхода. В результате он будет доступен для выбора только в блоках сенсоров, и не доступен при создании входов, выходов.

Настройка выходов «К1» — «К3» аналогична настройкам входов «Input1» – «Input3» только в случае выходов мы запрещаем им использоваться в качестве входа.

Переходим к ветке «Изображения». В ней мы можем добавить загружаемые в описание контроллера изображения, например с внешним видом контроллера, распиновкой и т.д.

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

Изображение добавляется с помощью кнопки «Добавить изображение».

После выбора и загрузки изображения (поддерживается только формат PNG), для каждого изображения создается отдельная ветка в дереве. В этой ветке можно задать имя для загруженного изображения, которое будет показываться в информации о контроллере.

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

Переходим к ветке «Стандартные блоки».

На этой ветке показаны блоки, которые могут быть представлены в библиотеке стандартных блоков программы в соответствии с текущими настройками программы. Что это значит. Часть стандартных блоков программы предназначены только для определённых видов ЦП. И их наличие зависит от выбранного процессора. Так же блоки, рассчитанные на работу с SPI, I2C, UART появятся в этом списке, только если на выводах контроллера будут добавлены соответствующие функции. Блоки, рассчитанные на работу с EEPROM, появятся, только если размер EEPROM заданный на ветке общих параметров контроллера будет больше нуля, или на выводах контроллера будет добавлена функция I2C. По умолчанию, все блоки в библиотеке запрещены к использованию (отмечены оранжевым цветом). Разрешить к использованию можно как отдельный блок, так и целиком папку блоков, выделив необходимую ветку и нажав кнопку «Разрешить», или из контекстного меню.

При разрешении блока или папки блоков к показу в программе они окрашиваются в черный цвет.

Запрещение к показу блока или отдельной папки производится аналогично.

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

Запретим к использованию в программе моторы, часы реального времени, дисплеи, блоки ИК управления, датчики (кроме датчиков DS18B20 и DHT22 –поскольку разработчик платы пока заявил только об их поддержке), микросхемы расширений и пьезо динамик.

То же самое сделаем и для языка LAD

Не забываем после внесения изменений применять их.

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

Пока только коротко скажу что ветка «Специальные блоки» служит для загрузки в описание пользовательских блоков, которые будут показаны в библиотеке стандартных блоков в программе при использовании данного контроллера. Ветка «Специальный код» служит для записи кода, который всегда будет вставляться в компилируемы код, а ветка «Специальные библиотеки», служит для загрузки в описание контроллера библиотек, которые будут, выгружается в папку libraries ArduinoIDE, с которой работает программа.

После всех изменений, сохраняем библиотеку описаний контроллера.

Теперь попробуем использовать созданное нами описание контроллера.
В программе FLProg создаем новый проект для контроллера.

Открываем окно выбора контроллера.

И выбираем созданное нами описание.

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

Так же можно посмотреть и остальные параметры

После выбора контроллера подтверждаем его выбор:

В результате откроется основное рабочее окно проекта, настроенное в соответствии с выбранным контроллером.

В цели данного поста не входит задача обучения работы с программой FLProg. Это достаточно хорошо описано в моих предыдущих постах, на сайте проекта, и на форуме проекта. Кроме того сейчас на ютубе уже достаточно много каналов, где выложены видео уроки по работе с программой. Например, очень хороший канал «Ключь к Ардуино», как раз сейчас ведёт серию уроков, с очень хорошей подачей материала.

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

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

Затем создаем цифровой выход. Здесь так же доступны только разрешённые выводы.

Собираем схему что бы при нажатии кнопки на Input1 (Вход 1) включалось реле К1 (Реле1).
Так же вытаскиваем на схему в отдельную плату блок для чтения информации с датчика DS18B20.

Заходим в настройки блока. При создании новой шины OneWire мы видим, что для выбора доступны все цифровые входы/выходы. Это недоработка в версии 6.0. Но поскольку, эта версия всё таки имеет статус бэта, то это простительно. В версии 6.1 будет дана возможность запрета использования пина в качества датчика, сенсора или для микросхем расширения. Кроме того в следующем посту я расскажу другой способ решения этой проблемы. Пока выбираем вывод 1WIRE.

Настраиваем датчик для задания адреса через массив.

Вставляем новую плату перед первой, и вытаскиваем на неё блок «Сканирование шины OneWire».

Настраиваем его на ту же шину OneWire, и на тот же массив, на которые настроен блок чтения с датчика DS18B20.

Собираем схему однократного запуска сканирования шины при запуске контроллера, используя блок R триггера (выделение переднего фронта).

На плате с блоком чтения данных с датчика DS18B20 собираем схему включения/отключения реле с гистерезисом. Для этого используем два компаратора, и SR триггер. Благодаря этой схеме, реле 2 будет включатся при понижении температуры ниже 10 градусов, и выключаться при повышении температуры выше 20 градусов.

Запускаем схему на компилирование.

В результате полученный код откроется в Arduino IDE. В качестве платы, выбираем NodeMCU, на которой установлен тот же чип, что и на ShloTiny. Проверка кода показывает, что он корректен, и его можно загружать.

Код, полученный в результате компиляции

#include <OneWire.h>
extern "C" {
#include "user_interface.h";
}
OneWire  _ow13(13);
byte _FLPArray133289689[9];
unsigned long _d18x2x1Tti = 0UL;
float _d18x2x1O = 0.00;
bool _trgr1 = 0;
bool _bounseInputD2S = 0;
bool _bounseInputD2O = 0;
unsigned long _bounseInputD2P = 0UL;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
bool _sowb1_needScan = 0;
bool _sowb1_ost = 0;
bool _sowb1_Out_1 = 0;

void setup()
{

  pinMode(2, INPUT);
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);

  _bounseInputD2O =  digitalRead(2);

}
void loop()
{


  bool  _bounceInputTmpD2 =  (digitalRead (2));

  if (_bounseInputD2S)
  {
    if (millis() >= (_bounseInputD2P + 40))
    {
      _bounseInputD2O = _bounceInputTmpD2;
      _bounseInputD2S = 0;
    }
  }
  else
  {
    if (_bounceInputTmpD2 != _bounseInputD2O )
    {
      _bounseInputD2S = 1;
      _bounseInputD2P = millis();
    }
  }




  //Плата:1
  if (1) {
    if (_trgrt1I) {
      _trgrt1 = 0;
    } else {
      _trgrt1 = 1;
      _trgrt1I = 1;
    }
  } else {
    _trgrt1 = 0;
    _trgrt1I = 0;
  };
  if (_sowb1_needScan) {
    if ( _oneWireSeach (_FLPArray133289689, _ow13)) {
      _sowb1_Out_1 = 1;
    }
    _ow13.reset_search();
    _sowb1_needScan = 0;
  }
  if (_trgrt1) {
    if (! _sowb1_ost) {
      _sowb1_ost = 1;
      _sowb1_needScan = 1;
      _sowb1_Out_1 = 0;
    }
  } else {
    _sowb1_ost = 0;
  }

  //Плата:2
  digitalWrite(12, !(_bounseInputD2O));

  //Плата:3
  if (_isTimer(_d18x2x1Tti, 1000)) {
    _d18x2x1Tti = millis();
    _d18x2x1O =  _readDS18_ow13(_FLPArray133289689, _FLPArray133289689[8]);
  }
  if (((_d18x2x1O)) > (20)) _trgr1 = 0;
  if (((_d18x2x1O)) < (10)) _trgr1 = 1;
  digitalWrite(14, _trgr1);






}

bool _isTimer(unsigned long startTime, unsigned long period )
{
  unsigned long currentTime;
  currentTime = millis();
  if (currentTime >= startTime) {
    return (currentTime >= (startTime + period));
  } else {
    return (currentTime >= (4294967295 - startTime + period));
  }
}
float _convertDS18x2xData(byte type_s, byte data[12])
{
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s)
  {
    raw = raw << 3;
    if (data[7] == 0x10) {
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  }
  else
  {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw & ~7;   else if (cfg == 0x20) raw = raw & ~3;  else if (cfg == 0x40) raw = raw & ~1;
  }
  return  (float)raw / 16.0;
}
float _readDS18_ow13(byte addr[8], byte type_s)
{ byte data[12];
  byte i;
  _ow13.reset();
  _ow13.select(addr);
  _ow13.write(0xBE);
  for ( i = 0; i < 9; i++) {
    data[i] = _ow13.read();
  }
  _ow13.reset();
  _ow13.select(addr);
  _ow13.write(0x44, 1);
  return _convertDS18x2xData(type_s, data);
}
bool _oneWireSeach (byte array[], OneWire ow )
{
  byte temp[8];
  byte i;
  if ( !ow.search(temp)) {
    return false;
  }
  if (OneWire::crc8(temp, 7) != temp[7]) {
    return false;
  }

  switch (temp[0]) {
    case 0x10:
      array[8] = 1;
      break;
    case 0x28:
      array[8] = 0;
      break;
    case 0x22:
      array[8] = 0;
      break;
    default:
      return false;
  }

  for ( i = 0; i < 8; i++) {
    array[i] = temp[i];
  }
  return true;
}

> Описание контроллера ShloTiny для программы FLProg

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

Сергей Глушенко

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

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

ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА

С чего всё началось и как развивалось

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

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

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

Как дела обстоят сейчас

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

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

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

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

В то же время давно существуют среды программирования адаптированные под обычного инженера – электронщика, ну или просто электрика. Я имею в виду среды программирования промышленных контроллеров. ПЛК. Они позволяют создавать программное обеспечение для контроллеров на языках FBD и LAD. Собственно говоря, как таковыми языками они не являются. Это, скорее, графические среды для рисования принципиальных или логических схем.

FBD (Function Block Diagram)

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

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

Ladder Diagram (LD, LAD, РКС)

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

Такой подход оказался очень удобным для легкого вхождения в разработку систем АСУ инженеров-электриков и электронщиков. Разрабатывая проекты установок, они могли легко привязать работу этих установок к алгоритмам работы контроллера. В обслуживании этих установок на объекте также лучше, когда существующий обслуживающий персонал может легко проверить работу системы АСУ, найти проблему. И при этом нет необходимости вызывать по каждому пустяку программиста из «Центра». И это подход себя оправдал. На сегодняшний день почти все системы промышленной автоматики созданы с помощью таких средств разработки.

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

Такая среда разработки есть у Siemens, ABB, Schneider Electric… да и практически у всех производителей ПЛК. Казалось бы, идеальное решение для любителей самоделок. Но, как всегда есть «но». Все эти среды программирования привязаны к промышленным контроллерам определённого производителя. И цены на эти контроллеры мало вдохновляют. Очень редко какой семейный бюджет позволит приобрести контроллер ценой в несколько десятков тысяч рублей.

Зато платы Arduino идеально подходят для самодельщиков и кулибиных, на которых наша страна всегда была, есть и будет богата. Но, опять «но». Программируются эти платы на языке C. Для большинства этих умнейших людей, с очень прямыми руками, растущими из положенного места, язык С. это китайская азбука. Они могут придумать, нарисовать, собрать, отладить и запустить сложнейшие схемы, но If, For, Case, Void и т.п. — это не для них. Конечно, можно почитать инструкции в интернете, поиграться какое-то время, помигать светодиодом с помощью примера. Но для более серьезного применения необходимо детальное изучение языка. А зачем им это?

Они не собираются быть профессиональными программистами. У них другой путь. Они что-то придумали. Да, это проще и красивее собрать с помощью микроконтроллера, но становится для этого программистом, потратив месяцы на изучение языка? Нет, конечно. Собирают по старинке, попроще, конечно, но в своей области.

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

На основании всех этих выкладок и был создан проект FLProg. Основная идея проекта – совместить принципы промышленного программирования с дешевизной и удобством Arduino. Проект предлагает новый уровень абстракции с довольно смелым заявлением –

Чтобы программировать микроконтроллеры не обязательно знать языки программирования!

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

Проект состоит из двух частей.

Первая часть -это десктоп-приложение FLProg, представляющее собой графическую среду программирования плат Arduino.

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

Начнем по порядку

Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графичес­ких языков FBD и LAD, которые являются стандартом в области программирования промыш­ленных контроллеров. При создании программы я постарался максимально использовать наработки программистов Siemens, ABB, Schneider Electric в их средах программирования.

Я немного расширил классический функционал этих языков, добавив функциональные блоки, отвечающие за работу с внешними устройствами. Они являются «обертками» над библиотеками, предназначенными для работы с ними. Программа работает на компьютере под управлением OS Windows. Но энтузиастами из сообщества пользователей программы была опробована возможность запуска программы по ОС Linux. Этому посвящена статья на сайте проекта, которую можно прочитать по ссылке:

http://flprog.ru/FLProg/pid144781676/vpi19538946

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

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

Вот список плат Arduino, поддерживаемых программой на сегодняшний день:

  Arduino Diecimila
Arduino Duemilanove
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

В скором времени ожидается пополнение в семействе поддерживаемых плат. Arduino Due уже в пути, а плату Intel Galileo (gen.2) обещал предоставить руководитель лаборатории интернета вещей при Санкт-Петербургском Государственном университете телекоммуника­ций им. проф. М.А. Бонч-Бруевича. Со временем, по мере приобретения, планируется поддержка плат основанных на контроллерах STM.

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

 FLProg - система визуального программирования плат Arduino
Вид окна программы в режиме языка FBD.
 
 FLProg - система визуального программирования плат Arduino
Вид окна программы в режиме языка LAD.

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

Вот список блоков доступных на сегодняшний день.

FBD:

Базовые элементы

[XOR]
[AND]
[OR]
[Bounce]

Специальные блоки

[Scale]

Триггеры

[SR]
[TT]
[RS]
[Rtrig]

Таймеры

[Generator]
[Timer]

Счетчики

[Counter]
[SpeedCounter]

Математика

[SUM(+)]
[MUL(*)]
[SUB(-)]
[DIV(/)]
Алгебра
[SIN]
[COS]
[TAN]
[ABS]
[SQ]
[SQRT]
[MIN]
[MAX]
[POW]
[RANDOM]

Сравнение

[Comparator]

Com –порт

Send
SendVariable
ReceiveVariable

Переключатель

[SWITCH]
[MUX]
[DMS]

Моторы

ServoMotor
StepMotor

Часы реального времени

[Alarm]
[GetTime]
[SetTime]

Дисплеи

Дисплей на чипе НD44780
Подсветка дисплея на чипе НD44780 I2C
Блок декодирования семисегментного индикатора

Строки

Сложение строк

Датчики

[Ultrasonic HC-SR04]
[DHT11, DHT21, DHT22]
[DS18x2x]
[IR Ressive] [BMP-085]

SD карта

Запись переменной на SD карту
Выгрузка файла с SD карты

Конвертация типов

Преобразование строк
Преобразование Float в Integer

Микросхемы расширений

Расширитель выводов 74HC595

Операции с битами

Шифратор
Дешифратор
Чтение бита
Запись бита

Разное

Матричная клавиатура
Пьезодинамик

EEPROM

Запись в EEPROM
Чтение из EEPROM

Коммуникации

SendVariableFromCommunication
RessiveVariableFromCommunication
WebServerPage
WebClient

LAD:

Базовые блоки

Контакт
Катушка
Защита от дребезга
Выделение переднего фронта

Специальные реле

Двустабильное реле
Реле времени
Генератор
Реле сравнения

Алгебра

SIN
COS
TAN
ABS
MAX
MIN
SQ
SQRT
POW
RANDOM

Аналоговые блоки

Масштабирование
Математика
Счетчик
Аналоговый переключатель
Переключатель много к одному
Переключатель один ко многим
Аналоговый вход контроллера
Аналоговый выход контроллера
Вход аналогового соединителя
Выход аналогового соединителя
Скоростной счетчик

CommPort

Передача в ComPort
Передача переменной через Comm port
Прием переменной через Comm port

Моторы

Сервомотор
Шаговый двигатель

Часы реального времени

Получить данные
Будильник
Установка времени

Дисплеи

Дисплей на чипе HD44780
Блок управления подсветкой дисплея на чипе HD4480 I2C
Блок декодирования семисегментного индикатора

Строки

Сложение строк

Датчики

Ультразвуковой дальномер HC-SR04
Датчик температуры и влажности DHT11 (DHT21, DHT22)
Датчик температуры DS18x2x
IR Ressive
BMP-085

SD карта

Запись переменной на SD карту
Выгрузка файла с SD карты

Конвертирование типов

Конвертация строк
Преобразование Float в Integer

Микросхемы расширений

Расширитель выводов 74HC595

Операции с битами

Шифратор
Дешифратор
Чтение бита
Запись бита

Разное

Матричная клавиатура
Пьезодинамик

EEPROM

Запись в EEPROM
Чтение из EEPROM

Коммуникации

Блок отправки переменной через коммуникации
Прием переменной через коммуникации
Страница Web сервера
Web клиент

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

Список периферийного оборудования, поддерживаемого программой, доступен на сайте проекта по ссылке:

http://flprog.ru/FLProg/pid218088913/vdi194000369

 FLProg - система визуального программирования плат Arduino
Датчики температуры и влажности DHT11, DHT21, DHT22.

Для части оборудования в разделе на сайте присутствуют обзорные статьи, облегчающие понимание применения его в программе.

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

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

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

Где скачать FLProg?

В рамках проекта существует сайт http://flprog.ru. Основная задача сайта – дать возможность пользователям скачать последнюю версию программы, узнать о нововведениях и изменениях.

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

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

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

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

http://flprog.ru/

Понравилась статья? Поделить с друзьями:
  • Как установить get pip py на windows
  • Как установить flatout 2 на windows 10
  • Как установить geonics 2013 на windows 10 x64
  • Как установить flask python на windows 10
  • Как установить fivem для гта 5 на windows 10