Визуальное программирование на FLprog, Siemens Logo, Profilab Expert

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
подумал, что нет такой темы и решил запилить
может кто не знает про нее и кому-то будет полезно вместо изучения кода

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

флпрог имеет все в комплекте, включая все библиотеки для работы со встроеными популярными мелкасхемами датчиков, индикаторов, расширителей портов

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

потом генерится исходник, открывается ардуиновская иде, выбираете там плату и прошиваете как обычно

b.png

так например выглядит схема, которая меняет цвет одного адресного светодиода в зависимости от температуры + светодиод светит только когда освещенность ниже или выше установленного порога
a.png

так выглядят часы на есп8266 с модулем индикаторов мах7219, где 8 индикаторов
время автоматом берется с сервера времени и обновляется раз в сутки примерно (там это задается все)

1587656446437.png

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

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

благодаря поддержке модбас вы можете прикрутить туда свою панель управления на любой скаде и для андроида есть https://hmi-kascada.ru/

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

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

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

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
продолжим
я тут подумал, что я знаю еще пару сред и решил их тоже докинуть

следущая среда (аналогичная флпрог) это siemens logo
1587766648720.png

сименс производит плк серии симатик с7 и это индустриальные плк, которые ставят на сложных объектах, они управляют процессами на производстве, следят за всякими датчиками и приводами (меня приглашали собирать шкафы управления на сименсах, но платили копейки и я отказался)
штука довольно дорогая, поэтому сименс придумали младшего брата-кастрата под названием лого (наверное косят под лего)
лого это не плк, а программируемое реле
есть такие реле программируемые на включение, а это реле еще может руководствоваться внешними сигналами

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

есть еще платные пакеты софта графических симуляторов для более наглядного тестирования и написания программ
1587768445025.png

вот так можно сделать шкаф управления автомойкой
1587768476033.png

тут можно просимулировать без железки, а можно залить в железку

1587767072913.png

так выглядит версия 8, которая не просто содержит входы и выходы, но еще имеет сетевой разъем и можнотам вебморду простенькую сделать и есть модбас по сети, а вот по рс485 его нет, потому он и кастрат
в серии лого есть модули расширения аналоговых и цифровых входов и выходов, модуль гсм, модуль термопары и модуль шины knx для автоматизации зданий
модули бывают толерантны к 12/24 и 230в

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

вот чтобы все эти ситуации руками не симулировать, то он и придумал симулятор на лого

стоит такой лого порядка 90 евров + модули от 50-60 евров
на али можно купить за 80 баксов и в россию таможня не сдерет ндс, так что смотрите на али
а плк симатик стоит порядка 200 евров и еще модули там всякие надо и полный комплкт выйдет тыщи на 2 уже, а лого выйдет на 500
 
Последнее редактирование:
  • Лойс +1
Реакции: Kelll31

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
все знают такую прогу как sprint layout и splan
но мало кто знает, что эта же контора делает проги для визуального программирования и управления внешними железками разных производителей
Digital-ProfiLab 4.0 и ProfiLab-Expert 4.0

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

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

1587770455662.png

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

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

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

вот какие виджеты есть
1587770805506.png

проги поддерживают т.н. макросы
это когда можно сделать какую-то свою кастомную мелкасхему

1587771709356.png

например вот тут показаны 2 чорные мелкасхемы, которые на панели выглядят как нумерованые светодиоды

на самом деле это макрос, который состоит их 8 светодиодов + на панели налеплен прямоугольник темного цвета и текстовое поле с белыми цифрами ивсе это красиво подогнано
1587771887155.png

я его просто тут уже на части раскидал, чтобы было понятней

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

прога имеет еще всякие плюшки типа отправки почты, запуска файла, писать/читать файлы
посылать управляющие сигналы проге генератора аудио сигналов https://www.electronic-software-shop.com/elektronik-software/audiowave-20.html

1587772737255.png

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

вобщем програ имеет тоже свои ограничения
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
еще один инструмент для создания гуя для вашей железки
например у вас есть какой-то контроллер и вам надо отображать данные с него и управлять им или задать какие-то режимы
все бы хорошо, ибо уже есть модбас и куча скад или хми панелей как под виндовс, так и под андроид
но модбас не поддерживает передачу строк и он довольно старый

поэтому есть MegunoLink
при помощи него можно накидать быстро обычный виндовый гуй со стандартными контролами + графики + компонент таблицы
1587773120890.png

1587773150931.png

поддержка ардуин
  • Arduino Uno
  • Arduino Mega
  • Arduino Ethernet Shield (UDP)
  • Ether Ten (UDP)
  • Arduino Yun
  • Arduino Lillypad
  • Ethermega (UDP)
  • ESP8266 (UDP/TCP)
  • ESP32 (UDP/TCP)
  • Or any device with serial, ethernet, or XBee connectivity.
для работы этой проги надо установить в ардуину библиотеку, точнее она сама ставится при установке этой проги
прога платная и к ней идет еще одна платная приблуда builder, которая позволяет делать .ехе для конечного пользователя

насколько я понял - прога не позволяет писать в файл и воспроизводить звуки и посылать сообщения
это ей минус лютый
 
  • Лойс +1
Реакции: b707 и Wan-Derer

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
решил еще в этот список добавить не совсем визуальное программирование, но тоже можно быстро при помощи него решить некоторые специфичные вопросы, которые конечно решаются в нормальных языках программирования, но там надо много чего изучить

называется инструмент
AutoIt Scripting Language

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

можно так же легко накидать простой гуй в дополнительной проге
1587774301626.png

а вот в режиме гуя тоже самое
1587774345615.png

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

есть даже целая студия для разработки как форм, так и кода скрипта
1587774670325.png

1587774731091.png

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

1587774850823.png

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

1587774997025.png

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

1587775411836.png

прога для посыла название трека на rds кодер укв передатчика в студии
рдс это такая система для укв радио, когда на приемнике видно время, название трека или какая передача идет
а еще там приемник может включаться, когда передается сводка о дорогах
еще я делал эмулятор девайса, который генерирует звук такой похожий на свисток
это обычно слышно за секунду до начала передачи сводки о дорогах и этот звук был придуман в гермашке лет 40 назад и под это дело даже впускали целую мелкасхему декодера из серии тда, которая на выходе давала сигнал на включение приемника вместо кассеты
технология вроде бы до сих пор поддерживается или уже нет (писал я кажется это в 2015)

вобщем autoit это не замена языка программирования, а скриптовой язык для написания какого-то инструмента, который выполняет всякие взаимодействия с окнами прог для виндовса, посылает комбинации кнопок в нужные окна
все это легко сделать тут, нежели в шарпе и тем более с++, я пробовал и не осилил, поэтому загуглил инструмент и нашел autoit

у него очень большая бибиотека встроеных функций, отличный хелп с примерами и разбито по категориями
 
  • Лойс +1
Реакции: kostyamat

kalobyte

★★★✩✩✩✩
1 Янв 2020
725
145
продолжим дальше про флпрог

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

сложные вещи это например экранное меню

экранное меню с энкодером и кнопкой длинное и короткое нажатие

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

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

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

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