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

У программистов в качестве первого урока принято использовать “Hello World”, у программистов микроконтроллеров помигать светодиодом, ну а у электриков и электронщиков собрать схему управления контактором. Поскольку основными пользователями программы как раз они и являются, собирать на первом уроке будем как раз данную схему.



Стандартная схема управление контактором



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



Роль контактора в данной тестовой схеме выполняет светодиод «Контактор». Теперь попробуем запрограммировать контроллер.
Запускаем программу FLProg, нажимаем кнопку «Создать новый проект».



Откроется окно выбора контроллера и языка программирования проекта.



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

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

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


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

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

Для начала создадим проект на языке LAD.

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




Рабочее окно программы FLProg на языке FBD состоит из нескольких полей:
  1. Основное меню программы
  2. Дерево проекта (в данном уроке оно не используется, его рассмотрим в последующих уроках)
  3. Дерево установленного оборудования. В нём представлено оборудование (промежуточные реле, реле времени, генераторы…), которое используется в проекте. В новом проекте в нём присутствуют только входы и выходы контроллера.
  4. Библиотека блоков. В ней находится оборудование, которое возможно применить в проекте. В данном уроке нас будет интересовать только папка «Базовые блоки»
  5. Область схемы, в которой и будет собственно рисоваться схема. Схема в FLProg представляет собой набор плат с оборудованием.


Для начала вытащим на область схемы контакты кнопок. Это возможно сделать двумя путями.

  • Перетащить соответствующий вход из папки «Свободные входы–выходы контроллера» дерева установленного оборудования на область схемы
  • Перетащить блок «Контакт» из папки «Базовые элементы» библиотеки блоков.


В результате на схеме появится УГО (условно – графическое обозначение) контакта. В случае перетаскивания его из дерева установленного оборудования контакт окажется сразу привязанным к цифровому входу – выходу платы. Если блок контакта был вытащен из библиотеки элементов, он будет абстрактным контактом без какой – либо привязки.



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



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



На закладке «Надпись к блоку» пишем название кнопки, что бы оно отображалось на схеме.



На закладке «Информация» можно посмотреть информацию о данном устройстве.



Таким же способом вытаскиваем остальные кнопки и контакты реле перегрузки.



После этого перетаскиваем из библиотеки блоков устройство «Катушка». Так же двойной клик на нём и открывается окно параметрирования катушки.



Назначаем катушку промежуточным реле «К1» дважды кликнув на соответствующем пункте списка.
Теперь надо выставить состояние контактов.
В программе FLProg состояние контакта соответствует уровню на привязанном входе платы. Если на входе платы 0 – контакты разомкнуты, если 5В – замкнуты. Поскольку кнопки в соответствии со схемой подключены к GND и включены встроенные подтягивающие резисторы, при замкнутой кнопке на входе платы будет 0, а при отпущенной кнопке 5В. В соответствии с этими правилами выставляем соответствие контактов. Это можно так же сделать двумя путями.
  • Дважды кликнув на контакт и выбрав нужное состояние в редакторе блока
  • Кликнуть правой кнопкой по контакту и в выпавшем меню выбрать нужный пункт.

Должно получиться вот такое состояние контактов (противоположное типовой схеме по описанной ранее причине)



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



Для создания блок-контакта контактора можно перетащить контакт К1 из дерева установленного оборудования на схему.



В результате должна получиться вот такая схема. Я думаю, любой электрик поймёт её работу (с учётом инвертирования состояния контактов привязанных к входам платы Ардуино).



Таким образом, первая плата закончена. Назовем её «Плата управления». Для того что бы присвоить название плате делаем двойной клик по её заголовку.



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



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



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



Катушки с привязанными выходами платы соотносятся так: при включении катушки в проекте на выходе платы Ардуино будет 5В при выключении 0
Затем перетаскиваем из дерева установленного оборудования необходимые контакты (два контакта промежуточного реле, и контакт входа реле перегрузки), после чего рисуем необходимую схему и называем плату «Управление выходами».



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



Загрузка в контроллер для обоих языков одинакова, так что мы рассмотрим её в конце урока, а пока создадим аналогичный проект на языке FBD.

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


Создадим новый проект на языке FBD.



Поля 1, 2, 4, 5 в окна программы аналогичны полям на языке LAD. Поле 3 здесь содержит дерево тэгов (входов, выходов и переменных). Здесь нет предварительно созданных входов, их нужно создавать при необходимости. Для создания нового входа нужно нажать кнопку «Добавить вход» или дважды кликнуть по пункту «Добавить вход» в дереве тэгов.



Откроется окно создания входа



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



Таким же образом добавляем все необходимые входы



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



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



Выбираем тип переменной Boolean и заполняем параметры



Блоки входа на языке FBD соответствуют реальным выходам платы, следующим образом. Когда на реальном входе 0 – на выходе блока – False, когда на входе платы 5B на выходе блока True.
Для запоминания состояния контактора используем RS триггер. Его надо перетащить из папки «Триггеры» библиотеки блоков на рабочее поле схемы.



RS-триггер
RS-триггер, или SR-триггер — триггер, который сохраняет своё предыдущее состояние при нулевых входах и меняет своё выходное состояние при подаче на один из его входов единицы.
При подаче единицы на вход S (от англ. Set — установить) выходное состояние становится равным логической единице. А при подаче единицы на вход R (от англ. Reset — сбросить) выходное состояние становится равным логическому нулю.
При логическом нуле на обоих входах на выходе удерживается последнее состояние. При логических единицах на обоих входах в случае RS триггера выход устанавливается в логический ноль, а в случае SR триггера в логическую единицу.


Для того что бы включился контактор необходимо подать на вход S сигнал со входа «Пуск». Для этого перетаскиваем из дерева тэгов вход «ПУСК» на рабочую область схемы. Если вспомнить о том, что при нажатии кнопки Пуск на вход платы подаётся логический 0, то понятно, что необходимо инвертировать сигнал с кнопки. Для этого наведём курсор на вход S триггера и кликнем правой кнопкой мыши. В открывшимся меню в пункт выберем «Инвертировать»



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



Остановка контактора происходит если:
Нажата кнопка «СТОП» (лог.1 на блоке входа «Стоп» ) ИЛИ нажата кнопка «АВАРИЙНЫЙ СТОП» (лог.1 на блоке входа «Аварийный стоп» ) ИЛИ сработало тепловое реле (лог.1 на блоке входа «КТ1» ). Значит, нам нужен блок ИЛИ с тремя входами.

Перетаскиваем его из библиотеки блоков из папки «Базовые блоки».



По умолчанию у блока ИЛИ два входа. Для того что бы добавить третий, выделяем блок и нажимаем кнопку «Добавить вход».



Переносим необходимые входы из дерева тэгов и соединяем со входами блока ИЛИ. А выход блока ИЛИ соединяем с входом R триггера.
Затем забираем из дерева тэгов переменную «Состояние контактора» и выход триггера соединяем со входом этой переменной. Должна получиться такая схема:



На этом закончим первую плату и назовём ее, как и на LADе – «Плата управления».
После чего создадим новую плату и сразу назовём её «Управление выходами».
Далее создадим выходы платы в соответствии со схемой. Для этого надо кликнуть на кнопку «Добавить выход» дли сделать двойной клик на пункте «Добавить выход» в дереве тэгов. Выходы создаём цифрового типа.





Перетащим на вторую плату созданные выходы, вход КТ1 и переменную «Состояние контактора» Затем соединим блоки в соответствии со схемой. Необходимые воды блоков инвертируем.



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



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



В программе Arduino-IDE выбирается плата, порт и производится заливка в контроллер скетча.

Комментарии (42)


  1. kalbasa
    28.01.2016 05:52

    занятно
    после контроллеров сименс, в частности их ПО разработки программ для контроллера, слово «плата» вместо «network» немного глаз коробит
    ну а в целом надо попробовать ваше ПО
    планируете внедрить остальные языки МЭК 61131-3?


  1. totuin
    28.01.2016 05:54

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


  1. Syzd
    28.01.2016 07:20

    Если честно ваш проект типа программирования схемами выглядит дико для человека пришедшего в мир Ардуино со стороны программирования. Мне легче написать код, это для меня и быстрее и понятнее. И не скажу что я не понимаю эти линии и элементы схем, я свободно читаю несложные схемы и их реализую.Тот же eagle и proteus попробовал и реализовал некоторые проекты. Но FLprog вызывает стойкое отвращение. Подумайте об этом. Для кого ваша программа, для вымирающего вида старой школы, для профи разрабатыващих для Сименса? Для одних слишком сложно, для других слишком просто. Если вы позиционируете свое приложение для ардуинщиков, то вот вам ответ: не буду пользоватся — сложно и неэффективно.


    1. totuin
      28.01.2016 09:15

      Сразу видно как человек относится к окружающему миру. Я ПРОГРАМИСТ — это проффесия будущего, а остальные динозавры и отмирающие проффесии.
      А вот теперь посмотрите. Вы сидите в комнате которая освещается лампочками, которые питаются от общей сети, которая запитана от электростанций. Кто Вам всё это обеспечил. Те же электрики, которые собирали проводку, и линии питания, электронщики которые разрабатывали системы управления сетями, электростанциями. Разработчики и эксплуатационники систем АСУ, которые работают именно на языках LAD и FBD. Вся промышленная автоматика написана на этих языках, та что вас обеспечивает, кормит, одевает и обувает. Вот как раз для этих электриков электронщиков, и АСУ-шников рассчитана программа FLProg. И поверьте — это далеко не вымирающий класс специалистов, и я подозреваю этих людей как бы не больше «истинных» программистов.


      1. Syzd
        28.01.2016 15:32

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


    1. totuin
      28.01.2016 09:18

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


    1. blinild
      28.01.2016 10:34

      У меня есть товарищ — он ладит с электроникой и схемотехникой, но никак не может начать осваивать код. С удовольствием зашел в мир МК с FLProg.
      Несмотря на то что FLProg еще несколько сыроват, им можно пользоваться (хотя, местами довольно сложно).


    1. SeregaSher
      28.01.2016 15:47

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


  1. renat85
    28.01.2016 10:00

    Поддерживаю автора. Использую с первых выпусков, и как могу учавствую в развитии проекта. И очень надеюсь что проект и дальше будет развиваться. Он дает многим людям, далеким от программирования, возможность создать своими руками проект на Arduino который им требуется и на который бы они не решились, если бы пришлось писать код. Не всем даются языки в изучении, но много творческих людей, которые без данного ПО не смогли бы реализовать свой потенциал. Да и не нужно для дома для семьи сидеть и корпеть над кодом. Проект не коммерческий и никто не заявляет его для создания промышленных решений. Также как сама платформа Arduino не предназначена для этого Конкретно себе я делаю умный дом с применением OpenHab, Arduino и FLProg, причем весьма успешно. Чего стоит только один модуль автозапуска ДГУ. Благодаря ему, я теперь спокойно сплю на даче, и не бегаю в 4 утра в ветер и дождь заводить дизель, в случае пропадания основной подачи электричества. Заметьте при этом обошелся он мне в разы дешевле конторского решения. Обратившись бы в компанию с «ушлыми» программистами боюсь бы остался без штанов.


  1. Alexeyslav
    28.01.2016 11:10

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


    1. totuin
      28.01.2016 11:22

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


      1. kalbasa
        28.01.2016 15:54

        это медаль с двумя сторонами… всегда есть ваше мнение как создателя и мнение народа кто будет пользоваться вашим созданием… тут надо скорее на форуме было изначально обсуждать такие вопросы… я обычно если разрабатываю визуализацию, то прошу критику народа… конструктивную критику!!!… причём народа далёкого от визуализации… так всё будет более менее приближено к реальным условиям эксплуатации этой визуализации… всегда руководствуюсь в таких моментах старым выражение «только в споре рождается истина!»… и вы знаете… вся визуализация всегда на объектах встречалась на ура… потому что изначально уже прошла критику и была оптимизирована с точки зрения людей которые бы работали с данной визуализацией


        1. totuin
          28.01.2016 16:01

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


          1. kalbasa
            28.01.2016 16:09

            это правильно. не надо забывать про конечного пользователя. а на счёт мега программистов не парьтесь. у них вечно самооценка завышена в виду ограниченности информации о том что изначально электронщики проектируют железяку. а уже только потом они смогут чего-то там напрограмировать. удачи вам с проектом. надеюсь вырастет ваша программа до уровня ТИА ПОРТАЛА от сименса :))


            1. totuin
              28.01.2016 16:14

              Ну вообще — то с TIA-Portal я многие идеи и таскаю )). Я восхищен этим продуктом, и много в нем работаю по основной работе


              1. kalbasa
                28.01.2016 16:17

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


                1. totuin
                  28.01.2016 16:22

                  Ну я работаю с Шнейдером, Овеном, АВВ, Митсубиси да и почти со всеми производителями. Как говорится «Что закажут то и делаем». С кодесис немного работал, а вот что такое " исаграф" не знаю.


                  1. kalbasa
                    28.01.2016 16:27

                    исаграф это среда разработки для контроллеров ICP DAS. чем-то напомнила мне рисование в визио :))


                    1. totuin
                      28.01.2016 16:28

                      Интересно — поищу. Пока не сталкивался с такими


                      1. kalbasa
                        28.01.2016 16:29

                        1. totuin
                          28.01.2016 16:30

                          Спасибо


                          1. kalbasa
                            28.01.2016 18:12

                            а у вас в программе предусмотрена визуализация отладки ладдера как у сименса?


                            1. totuin
                              28.01.2016 18:14

                              К сожалению пока нет. В планах есть но не на ближайшее будущее. Уж больно сложная задача


                              1. kalbasa
                                28.01.2016 18:20

                                ну фиг знает… мне почему-то этот процесс видится как просто передача инфы в ком порт тем же «принт» / «write». ну а дальше транспортируйте добытую инфу с ком порта в вашу программу. ну это при односторонней отладке только для визуализации. про обратную передачу инфы вопрос не стоит. думаю было бы очень наглядно и показательно.


  1. GarryC
    28.01.2016 12:31

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


    1. totuin
      28.01.2016 12:40

      Во первых: это ОБУЧАЮЩИЙ пост, основное предназначение которого показать принципы работы в программе. Я с таким же успехом мог взять так горячо любимый всеми Blink но он дал бы меньше информации.

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

      Ну и в третих: это действительно тема для отдельного большого разговора. Надеюсь мне удастся уговорить участников форума пользователей программы FLProg поделиться своими знаниями и написать здесь несколько статей на эту тему


      1. GarryC
        28.01.2016 13:03

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


        1. totuin
          28.01.2016 14:08

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


      1. Syzd
        28.01.2016 15:36

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


        1. totuin
          28.01.2016 15:56

          Да пожалуйста:

          Блинк


          Вывод температуры и давления на двухстрочный дисплей подключённый по I2C


          Нажимаем кнопку «Компилировать» и всё работает


          1. Syzd
            28.01.2016 16:50

            Уже получше и понятнее. Посмотрю как будет время. Тогда еще вопрос к чему такая строгость интерфейса? Может BMP085 может выглядеть как датчик, а двухстрочный экран как реальный дисплей? Ориентир Fritzing и Proteus. Опять же если код так просто генерируется, не была бы эффектна ваша программа что пользователь собрав электронную схему сразу бы получал готовую прошивку?image


            1. totuin
              28.01.2016 17:26

              не была бы эффектна ваша программа что пользователь собрав электронную схему сразу бы получал готовую прошивку

              А логика работы программы? Возьмем урок данный урок. Подключенны три кнопки и контактор (ну ладно — светодиод), плюс три светодиода. Как описать их работу?
              Ну а визуальная разработка схемы у меня планируется. Даже есть уже кое какие наработки. Но пока до этого далеко, поскольку это будет завязано с симулятором, а симулятор — это сложно.


              1. Syzd
                28.01.2016 17:52

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


                1. renat85
                  28.01.2016 20:05

                  Вам шашечки или ехать? Не путайте логическое описание работы программы блоками и «гламурное» рисование физической схемы картинками компонентов. Если брать подход Fitzing, схема будет не читаемой, в приведенном вами выше примере вот точно будет не понятно что куда и зачем. Кстати вопрос вдогонку, как планируете на вашей схеме отображать переменные, условия, массивы, конвертации типов? На Гиктаймс в последнее время полно статей о начальном визуальном программировании STM32, так вот почему-то в них никто не высказывает фи на тему что нужно залезть в кучу непонятных многоуровневых меню и натыкать там что-то мышкой. Там почему-то тру программисты сидят молча. Я предлагаю каждому кто кричит «фу школота нанинада» сделайте свое, выложите а мы оценим. ИМХО проект достоен внимания и уважения, ничего близко похожего и бесплатного не существовало до недавнего времени. Да и платного то же.


                  1. Syzd
                    29.01.2016 07:18

                    Схемы тоже бывают разные, к примеру не черные траурные рамки, а со скругленными углами, с градиентами и прочее. Вот к примеру поиском первое что понравилось нашел OcBlocks (ни разу не пользовался, но графика интерфейса интереснее чем FLProg) image Зацените, подумайте, может стоит повернутся лицом к большему числу пользователей, на дворе не 2000 год, а уже 2016 год. Я не сколько беспринципно критикую, сколько предлагаю. Прогу вашу посмотрю в ближайшее время. Может сами возможности лучше чем интерфейс. Насчет, сначала добейся — потом критикуй. Делать инструмент для создания прошивок микроконтроллеров пока нет знаний и нет и необходимости. Быстро собрал схему, написал код в стандартной IDE Ардуино и вперед пользоватся своим продуктом. Пока я просто выбираю инструменты из предложенных в интернете. Варианты ухода от стандартного Ардуино IDE Для меня скорее в продвинутые редакторы кода + Fritzing+Proteus (для эмуляции)+Eagle(KiCAD?, PCad?) (для создания готовых плат и заказа в Китае), а не FLProg.


              1. GreyPhantom
                28.01.2016 22:49

                А вот симулятор- было бы хорошо.
                Вообще- неплохо было бы сделать среду наподобие Codesys 2.х- я имею ввиду поддержку других языков MЭК (FBD- для начинающих едва ли не проще LD, в смысле понимая), визуализацию(для отладки- «самое оно»), может еще что-то...- не знаю.


            1. The_Skull
              29.01.2016 08:02

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


          1. Syzd
            28.01.2016 17:49

            я вот про эту схему имел ввиду, вашу с температурным датчиком и 2х строчным экраном.
            Как у вас логика описывается, выставлением кучи галочек в формах? А то по вашему коментарию я подумал что достаточно нарисовать данную схему.


          1. Syzd
            30.01.2016 08:57

            Попробовал сам нарисовать схему с BMP085, программа долго ругалась что неправильный блок, выяснил что это дисплей, все стер, настроил только дисплей, скомпилировал отдельно, потом добавил преобразование и датчик, скомпилировал еще раз. Получился код в стандартном IDE Ардуино. О качестве кода спорить не буду, наверное хорош, раз программой пользуются. Но! По сути FLprog конструктор кода, который чуть более понятен схемотехникам из-за специфики их работы, а не программа которая пригодится всем и каждому. То есть я не нашел сильной разницы от того чтобы скачать готовый пример идущий с большинством библиотек ардуино, кучи проектов в интернете для ардуино с описанием схем и FLProg в котором надо сначала собрать 1 из 1000 возможных в конструкторе комбинации схем, настроить используемые входа и выхода, указать необходимые преобразования, а потом получить example код. Как новичек во FLProg я бы хотел не видео, а 20-100 примеров идущих в комплекте программы. Ну и опять тестирование в живую программы, не вызвало радости своим архаичным интерфейсом программ. Если и требуется сохранить такой дизайн для схемотехников, так как им так понятнее, то можно сделать 2 скина (1 схемотехника, 2 современный (детский можете назвать)) в котором на поле схемы рисуется не черный квадрат с входами и выходами а png картина датчика). Время на реализацию конечно будет затрачено много без особой выгоды для схемотехников которые ждут реализации поддержки кучи других электронных компонентов, но сама программа выиграет от прихода новых пользователей.


        1. totuin
          28.01.2016 16:03

          Кстати на сайте есть видео уроки по всем интересующим Вас вопросам


  1. fuji1604
    29.01.2016 10:01

    Поддерживаю программу, сам программирую промышленные контроллеры в степ7 и кодесис, но для личного пользования такие контроллеры дороговаты, с Arduino-IDE как то тяжко давалось программирование ардуинок, медленно и неуверенно. Когда нашел эту программу, радости не было предела. Быстро накидал нужную программку, загрузил, работает по сей день. Позже начал более подробно изучать возможности программы. Нравятся готовые блоки для различных датчиков, очень удобно. Разработчику респект и уважуха!


  1. Jyxee
    30.01.2016 15:05

    Занимаюсь промышленной автоматикой. Работал некоторое время проектировщиком систем АСУ. И могу сказать это лучшая реализация среды программирования на FBD и LAD для начинающих. Программа не перегружена различными настройками под железо и другими различными сложностями. Действительно пользователю проще освоить языки FBD И LAD чем С++. У себя дома собрал на Ардуино контроллер управления электрокотлом. Контроллер через твердотельные реле управляет тремя тэнами по 2 кВт и насосом, работает по расписанию, имеет двухстрочный дисплей с кнопками, может работать с внешними устройствами по Modbus RTU и Ethernet. Программа для контроллера создана в FLProg.
    Да FLProg еще несколько сыровата, но я думаю многие скажут автору за нее ОГРОМНОЕ СПАСИБО!
    Тем же пользователям которым удобнее работать в Arduino IDE и в других средах c C++ могу сказать, вас никто не заставляет у вас свое видение вы профессионалы.
    Если программа работает без сбоев и помещается в памяти контроллера (вопрос оптимальности кода не стоит) то какая разница в какой среде она написана?
    Большинство пользователей программы интересует практическая сторона — их устройства должны работать.