Сделаю я, пожалуй, рекламу одному интересному проекту
FLProg. Узнал о нем я на Хабре, а так как по работе я тесно связан с промышленными контроллерами и FBD и, в общем-то, считаю, что для многих людей блочное программирование вполне может стать заменой обычному написанию кода, проект показался мне очень интересным и многообещающим.
Немножко о том, что есть FLProg. Цель проекта - перевести программирование Arduino в область доступную для не программистов, сделать разработку устройств на нем возможной для тех, кто не владеет языками программирования.
В области программирования промышленных контроллеров уже давно используются языки FBD и LAD. У разных производителей реализация этих языков различна, но с моей точки зрения, наиболее близко подошли к идеалу программисты из “Siemens”, создав пакет "TIA-Portal". В разработке программы "FLProg" я многие идеи черпал оттуда. Так же удачные решения подчерпнуты из программного обеспечения “Schneider Electric” - "Zelio Soft".
FBD (Function Block Diagram) - графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков. Блок (элемент) - это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.
Ladder Diagram (LD, LAD, РКС) - язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании.
Я думаю, если найдется достаточное количество пользователей и энтузиазм автора не угаснет, проект вполне может получить своих поклонников. Программа бесплатная.