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

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

В первую очередь требуется.....

Оптимизация отрисовки схемы в проекте для контроллера
81
28%
Расширение возможностей скады
27
9%
Добавление поддержки контроллеров STM.
117
41%
FLProg IOT сервер
46
16%
Свое направление (описание в теме)
14
5%
 
Всего голосов: 285

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#1

Сообщение support » 06.11.2018{, 12:47}

На сегодняшний день, в программе FLProg получился более менее законченный функционал как для контроллеров Arduino, так и для контроллеров ESP8266. Конечно, пока хватает и косяков, и недоделок, и хотелок. Но все они так сказать «не глобальные», и вполне могут быть исправлены и реализованы, как у нас на работе говорят «в порядке текущей эксплуатации».
Я понял, что пришло время, определится, а что глобального делать дальше? Почитав форум и сопоставив пожелания пользователей со своими возможностями, знаниями, да и честно говоря, желаниями, я выделил следующие возможные направления.

1. Оптимизация отрисовки схемы в проекте для контроллера. Честно скажу, логика отрисовки не сильно изменилась с первых версий программы. Конечно, регулярно я её “подлатываю”, ставлю новые «костыли», но всё это половинчатые меры. С той поры и у меня появились новые знания, много новых решений было отработанно на Скаде. И теперь по-хорошему надо просто переписать отрисовку с нуля. Скорее всего, это улучшит отзывчивость системы, позволит ввести фишки вроде масштабирования, позиционирования окна на неисправных блоках, поиск блоков, переменных на схеме, переход на переменную. Ориентировочное время реализации 2 – 3 месяца.

2. Расширение возможностей скады. После выхода скады, меня удивило практически полное отсутствие обратной связи по ней. Ни сообщений об ошибках, ни какого-то либо активного обсуждения на форуме. Я решил, что как говорится «не стрельнуло». Но когда я сообщил о приостановке работы над скадой, то получил много пожеланий о развитии скады. Я так понимаю необходимо просто «прокачать» скаду. Сроки реализации оценивать сложно, это скорее плановый процесс, который будет развивать скаду от версии к версии. Но вот насколько он важен?

3. Добавление поддержки контроллеров STM. Ну, тут объяснять не надо, и так понятно. Какое то количество плат на различных контроллерах STM у меня уже есть. Базовые принципы вроде разобрал, но работы всё равно очень много. Ориентировочно интеграция займёт 3 - 5 месяцев.

4. FLProg IOT сервер. Это совершенно новая моя идея, и сейчас я озвучиваю её в первый раз. Родилась она после изучения форума, ну и рассмотрения систем вроде MajorDoMo, Openhab, ioBroker, IoTManager. Сейчас все эти системы очень популярны, и востребованы. Поизучав «матчасть», честно говоря, мне ни одна не понравилась. Ну конечно это моё личное мнение, не хочу развивать холивар. Но с моей точки зрения, всё-таки они в большинстве своём во первых громоздкие, во вторых очень тяжелы в установке, требуют определённых знаний и умений в настройке, да и вообще нужен бубен шамана. Ну и конфигурирование этих систем всё-таки требует знания программирования (пускай и на уровне скриптов). Я считаю, что это не наш путь. Я решил (ещё на этапе создания Скады) немного расширить слоган проекта. Теперь это “Iot для непрограммистов”. При создании скады я пользовался принципом “компьютер – как контроллер”. Почему бы его не применить и для Iot сервера (ну или облака если хотите).
Теперь сама суть идеи. Это будет новый тип проекта (что ни будь вроде «Iot сервер»). Он так же будет иметь своё дерево, в котором можно будет создавать страницы веб интерфейса, будет ветка схемы, и ветка мастеров. Сервер будет являться Modbus TCP слейвом для устройств. Страницы вэб интерфейса будут создаваться по принципу, который сейчас используется для создания вэб интерфейса настройки ESP8266 только более расширенному. Схема будет использовать привычный нам язык FBD ( и LAD – возможно, ещё не решил).
Подключение к устройствам будет происходить по протоколу Modbus TCP. Сервер будет слейвом, устройство мастером. Это во первых позволит устройству кроме общения с сервером общаться с другими устройствами (слейвами) напрямую, во вторых исключит необходимость проброса портов и белого IP, поскольку инициатором соединения будет устройство. Переменные модбас можно будет использовать в логической схеме сервера, и в веб интерфейсе сервера. Кроме того в вэб интерфейсе сервера конечно можно будет использовать любые переменные схемы. Ну, в общем, по аналогии со скадой.
При компиляции проекта будет создаваться набор файлов на PHP и папок с ресурсами (скриптами, стилями, картинками) которые необходимо будет закинуть на сервер. В случае с PHP в качестве сервера может быть что угодно, арендованный хостинг, отдельный компьютер, малинка, апельсинка. Это может быть как сервер в интернете, так и локальный сервер в сети. Со временем, скорее всего, появится возможность создавать свои виджеты и блоки по аналогии с пользовательскими блоками на С, но только на PHP. Естественно с возможностью обмена ими и составления своих библиотек. Время реализации – ну не знаю…. Думаю за пару - тройку месяцев бетку можно выпустить, ну а потом только расширять.


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

Ну и что точно будет сделано в ближайшее время.
1. Естественно IR управление для ESP8266
2. Возможность подключения к облаку Kascada. Пока разбираюсь с этим.
3. Реализация работы ESP с RemoteXY (надеюсь получится)
4. Ну и по мере необходимости устранение найденных ошибок

Так что голосуем, пишем свое мнение, для меня оно очень важно.
Автор программы FLProg.

Аватара пользователя
magpit
Лейтенант
Сообщения: 382
Зарегистрирован: 01.10.2017{, 12:55}
Репутация: 16
Имя: Сергей

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

#201

Сообщение magpit » 21.11.2018{, 15:07}

Напишу и я. Можете меня минусовать или банить и т.п
По работав с несколькими проектами чуть не получил нервный срыв.
Не от того что, что то не получается а из за самой программы.
Я думаю что у всех подобное происходит. Созревает в голове проектик и тут начинается...
Можно отнести это к доработке ядра программы.
1). Начнём с надписей: Надпись в надписи не редактируется- считается почему то блоком!? Хотелки: Было бы как в ворде не плохо .
2). При перетаскивании блоков всё сбивается в кучу это полный атас. Хотелки: Выравнивание по сетке - будет проще.
3). Тэги верхней панели вообще бы затёр. Но это ИМХО. ( На любителя) Меня лично ограничивает видеть картину в целом.
4). Чем больше проект тем сильнее тормозит :helpme:
5). И забыл про интерфейс Хотелки: Встроенные указатели (стрелки несущие надпись). Очень помогают вспомнить, где что делалось.
6). Доработать строку состояния например; панель что справа перемещать в строку состояния. Это даст больше пространства экрана.
Ну пока всё.
Ждём закидывания помидорами :smile225:
Последний раз редактировалось magpit 21.11.2018{, 17:25}, всего редактировалось 1 раз.

Anydy

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

#202

Сообщение Anydy » 21.11.2018{, 16:32}

NOVOsystems писал(а):
21.11.2018{, 07:40}
Anydy
Есть предложение.
Гляньте вот эти библиотеки,это ваша вроде тема.
https://github.com/stm32duino/STM32Exam ... ation/MQTT
А у меня Discavery несколько штук я тебе и Сергею если надо могу по плате выслать.
Присылайте, не откажусь потестировать Discavery, хоть у меня и есть самые дешевые платы STM32, Сергею тоже ...или мне а я ему перешлю....если предложение в силе адрес в ЛК сообщу.
По ссылке выше посмотрю....

Аватара пользователя
NOVOsystems
Рядовой
Сообщения: 13
Зарегистрирован: 12.08.2018{, 21:32}
Репутация: 1
Откуда: Лукоморье
Имя: Cальвадор

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

#203

Сообщение NOVOsystems » 21.11.2018{, 16:50}

Договорились. Две штуки 407х discavery. Жду адрес. :smile9: Там ST-link встроенный на отдельном чипе,можно будет малышей шить.
Кто "малышей" голых будет покупать,берите сразу ST-link,самый дешевый. Вроде как Arduino IDE только с ним прошивает STMы.

Anydy

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

#204

Сообщение Anydy » 21.11.2018{, 17:02}

NOVOsystems писал(а):
21.11.2018{, 16:50}
Вроде как Arduino IDE только с ним прошивает STMы.
Нет, прошивал через обычную ардуину, с замкнутым на землю ресетом
Сейчас отправлю в ЛК адрес

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#205

Сообщение ivanpost » 27.11.2018{, 08:57}

Очевидно, что STM - для профессионалов и энтузиастов, они активнее пишут. Поэтому рейтинг STM высокий. AVR-ESP - для начинающих и любителей. Для применения с электрооборудованием stm только хают. AVR ки есть до 16 к рам + 128 к флэш. У меня комбинация Atmega128 + ESP-12. 250 рублей вместе платой. Не верю, что когда то не хватит этих ресурсов, если не хватит, значит Симатик нужен...
Отладка графики явно будет способствовать росту числа пользователей.
В качестве концентратора, имхо, можно использовать роутер с OpenWrt+Флешка+sqlite. Скетчи на питоне для этого можно начать писать за пару недель изучения питона с нуля. рас-оранж-пи для этого тоже пойдет (и код переносимый!) но роутер то уже есть, его как точку доступа используешь.

Evgesha
Лейтенант
Сообщения: 525
Зарегистрирован: 29.10.2015{, 09:57}
Репутация: 20
Откуда: Kazakhstan
Имя: Evgesha

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

#206

Сообщение Evgesha » 27.11.2018{, 17:59}

ivanpost писал(а):
27.11.2018{, 08:57}
Для применения с электрооборудованием stm только хают. AVR ки есть до 16 к рам + 128 к флэш. У меня комбинация Atmega128 + ESP-12. 250 рублей вместе платой.
Можно схему, печатку, а прошиваете в флпрог?
ПОМОЩЬ ПРОЕКТУ FLPROG:
http://flprog.ru/pomoshh-proektu/

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#207

Сообщение ivanpost » 27.11.2018{, 20:07}

Evgesha, На алике ищете ATmega128 (60р/шт) ATMEGA128 PCB empty board (63 руб/шт) Esp-12F (103 р) d1 mini (148р) + макетка
Изображение
Выставляю как Мега. Прошивки грузятся, говорят, чтото не совпадает по контактам... Но пока ничего не менял. Мне надо 2 ком-порта i2c и 1wire. Вроде все включается...
Эти бы все avr ки в текущую базу добавить... 644 люди хвалят. 1281 совместима с 128, 1284 с 644... в них памяти еще больше.

Отправлено спустя 1 час 40 минут 18 секунд:
Кстати, один из вариантов развития - улучшить симбиоз avr и esp. Где avr выступает как "надежный" многопортовый контроллер, ответственный за рабочую задачу, а, не всегда стабильный esp - как средство коммуникации, отображения, оповещения. Сейчас, оба продукта - как бы сами по себе, соединить в один проект - сложновато, или надо пользоваться сторонними прошивкам esp.
Не хватает:
- ota перепрошивки для avr
- прозрачного и квази-прозрачного моста uart-wi-fi
- упрощенного диагностического взаимодействия (передача переменных, параметров).

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#208

Сообщение ivanpost » 27.11.2018{, 23:15}

av, сорри, за офтоп. Но может, кому надо, памяти 328, как мне мало...
https://ru.aliexpress.com/store/product ... 94e4stE2Ag
https://ru.aliexpress.com/item/AVR-deve ... 33edVqX024
https://ru.aliexpress.com/item/Free-Shi ... 33edVqX024
Ещё

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

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

#209

Сообщение ecoins » 28.11.2018{, 11:36}

По поводу того, что с ростом программы она начинает тормозить.
Скорее всего это не связано с быстродействием процессоров AVR.
Приведу три исследованные причины:
1. Отсутствие в FLProg организации параллельных процессов в явной форме. Это преодолевается средствами FLProg - добавляется не сложный пользовательский блог и библиотека. Работаю уже больше года так, недавно вновь отшлифовал эту библиотеку, оформил функции работы со временем в RT_HW_Time.h
2. Пользователи используют доступные стандартные библиотеки, не придавая наличие в них операторов delay() - добавил несколько таких блоков и все тормозит не зависимо от быстродействия процессора. Лидерами задержек являются блоки DHT, DS1820, HC-SR04, LCD. Дальномер вообще в некоторых режимах способен подвесить процессор на секунды.
Решение - использовать библиотеки и блоки на них без использования delay().
3.Работа со строчными переменными отнимает много времени. Причем если на вход есть строковая переменная, она ВСЕГДА!!! копируется в строковую переменную в блоке. Работу со строковыми переменными можно выносить в отдельные платы и вызывать их по мере необходимости и редко. Возможным решением проблемы было бы, если Автор в числе типов входных переменных смог бы внести тип указатель на адрес переменной.
-----
После этого большие проекты работают быстро и еще у процессора остается много-много свободного времени.

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

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

#210

Сообщение grin-mpx » 28.11.2018{, 15:37}

ecoins писал(а):
28.11.2018{, 11:36}
По поводу того, что с ростом программы она начинает тормозить.
По большому счету речь про тормоза не ардуин, а самой программы flprog на больших проектах.

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

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

#211

Сообщение ecoins » 29.11.2018{, 01:24}

Это общее и бездоказательное утверждение - код FLProg это исходник на С++. Если использовать delay() и не проверенные “тормозные” библиотеки, то можно подвесить и очень быстродействующий вычислитель на любом языке.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

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

#212

Сообщение kulibinsvv » 29.11.2018{, 05:21}

ecoins писал(а):
29.11.2018{, 01:24}
Это общее и бездоказательное утверждение - код FLProg это исходник на С++. Если использовать delay() и не проверенные “тормозные” библиотеки, то можно подвесить и очень быстродействующий вычислитель на любом языке.
Неужели трудно внимательно прочитать про что идёт речь?
И уж если вы такой специалист, то не говорите, что Wiring = C++. Прочитайте документацию на Arduino.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Anydy

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

#213

Сообщение Anydy » 29.11.2018{, 05:35}

Я вот тоже не понял причем здесь delay и библиотеки, это касается кода который программа Flprog собирает для Arduino IDE на языке Wiring, как этот код будет работать в микроконтроллере это одно, а как программа Flprog работает на компьютере это другое....

Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07.01.2018{, 13:47}
Репутация: 4

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

#214

Сообщение benic » 29.11.2018{, 06:54}

Вставил oled дисплей, память закончилась. На меге или покрупнее AVRах строить ширпотребные проэкты, устройства не камильфо.
Понимаю что использование FLprog влечет увеличение количества переменных( уходят на вх и вых блоков). Более мощный, дешевый, распространенный чип необходим.
Вложения
photofacefun_com_1543462870.jpg

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

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

#215

Сообщение ecoins » 29.11.2018{, 07:16}

Неплохо представляю, что за код генерит FLProg. На мой взгляд всё очень изящно сделано, коды для работы с временем положил в основу функций своих библиотек. Некоторое время отнимают функции типа digitalWrite - гурманы для экономии нескольких микросекунд могут использовать прямое обращение к портам.
Мне не удалось найти изъянов в коде C++, генерируем FLProg.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

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

#216

Сообщение kulibinsvv » 29.11.2018{, 09:02}

ecoins, я вам уже писал, что FLProg не генерирует кода С++. Не вводите людей в заблуждение. Если Wiring похож по синтаксису на С, то это не значит что FLProg генерирует код С++. Wiring - это ближе к Java. И хочется отметить, что С далеко не С++.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#217

Сообщение Sancho » 29.11.2018{, 10:05}

kulibinsvv, Не злорадствуйте, если пишите на чистом си.
Ещё
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

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

#218

Сообщение kulibinsvv » 29.11.2018{, 10:25}

Sancho, я не пишу ни на С, ни на С++, ни на Wiringe и злорадствовать не собирался. Я слишком давно работаю с микроконтроллерами в плане схемотехники. За статью, спасибо. Правда, я не со всеми размышлениями автора согласен. Но это совсем другая тема. :smile225:
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

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

#219

Сообщение ecoins » 29.11.2018{, 14:30}

Flprog, C, C+, Wiring, Java:
Wiring - это C++ c добавлением некоторых функций, упрощающих работу с аппаратными средствами и соответственно поддерживающих совместимость с разными моделями контроллеров. Например setup(), loop(), digitalWrite(), millis() и т.п. Этих функций немного и использовать их не обязательно, можно использовать свои функции для работы с аппаратными ресурсами контроллеров.
Подключение части библиотек ограничено из-за их ограниченной памяти, но других особенных ограничений нет.
FLProg генеририт код на Wiring (то есть по сути C++), пользовательские блоки и библиотеки могут писаться на чистом C++. В пользовательских блоках он реализован минималистично, потому там писать приходится писать аккуратно. Например каждую переменную объявлять приходится в отдельной строке и прочие штучки, создающие легкий дискомфорт. Лучше сложные вещи оформлять в библиотеки и подключаться к их функциям из пользовательски блоков.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

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

#220

Сообщение kulibinsvv » 30.11.2018{, 07:13}

Люблю пользоваться первоисточниками!
Wiring WikiПоказать
Wiring.png
Wiring.png (11.67 КБ) 3019 просмотров
Welcome to the Wiring Wiki!
И ещё один интересный дипломный проект: Wiring: Prototyping Physical Interaction Design
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Ответить

Вернуться в «Темы от автора»