Тестирование версии 8.х

Обсуждение ошибок, "хотелок", доработок которые будут в версии 8.х

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

Тестирование версии 8.х

#1

Сообщение support » 03.01.2021{, 20:51}

К 10-ЛЕТИЮ FLPROG.

В этом году исполняется 10 лет со дня выхода первой версии FLProg.

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

FLProg применяется в детских клубах, образовательных и научных учреждениях, инженерами, просто увлеченными людьми. С ориентацией на FLProg проектируются прикладные и универсальные контроллеры, программируемые реле (ПР), программируемые логические контроллеры (ПЛК), распределенные системы управления. Важным партнером является KaScada (г. Чехов).

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

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

Благодарю всех модераторов за бесперебойную работу форума


Разработчик FLProg.


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

31-12-22 Вышла новая версия программы с номером 8.0.1. Подробнее можно посмотреть здесь:https://flprog.ru/news/vyhod-novoj-vers ... -flprog-2/

28-01-23 Вышла новая версия программы с номером 8.1.0. Подробнее можно посмотреть здесь:https://flprog.ru/news/vyhod-novoj-vers ... -flprog-3/

03-04-23 Вышла новая версия программы с номером 8.2.1. Подробнее можно посмотреть здесь:https://flprog.ru/news/vyhod-novoj-versii-programmy-2/
Автор программы FLProg.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Тестирование версии 8.х

#2

Сообщение Phazz » 03.01.2021{, 21:19}

В связи с потолстевшими файлами проектов и блоков предлагаю новый формат сохранения проектов. Упаковывать их архиватором перед сохранением.

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

Аватара пользователя
Serquick
Сержант
Сообщения: 254
Зарегистрирован: 25.11.2019{, 01:07}
Репутация: 46
Откуда: Украина
Имя: Сергей

Тестирование версии 8.х

#3

Сообщение Serquick » 03.01.2021{, 23:05}

В программе есть две кнопки сворачивающие и разворачивающие панели "Дерево проекта" и "Библиотека функциональных блоков".
Screenshot_.png

Когда программа развернута в полноэкранный режим в крайнем левом положении курсора мыши, кнопка "Дерево проекта" не работает, нужно попадать на серую полоску для срабатывания, так же и с "Библиотека функциональных блоков" в крайнем правом положении курсора. Мелочь, но когда открываешь и закрываешь панель раз 20 маленько напрягает :D

И было бы удобней добавить на кнопку ролика мыши как в
Adobe Acrobat Reader при просмотре PDF "Руку" - Рука или круговая панорама, что бы не тянуть нижний ползунок :)

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

Тестирование версии 8.х

#4

Сообщение support » 04.01.2021{, 01:11}

Serquick писал(а):
03.01.2021{, 23:05}
В программе есть две кнопки сворачивающие и разворачивающие панели "Дерево проекта" и "Библиотека функциональных блоков".
Screenshot_.png
Когда программа развернута в полноэкранный режим в крайнем левом положении курсора мыши, кнопка "Дерево проекта" не работает, нужно попадать на серую полоску для срабатывания, так же и с "Библиотека функциональных блоков" в крайнем правом положении курсора. Мелочь, но когда открываешь и закрываешь панель раз 20 маленько напрягает :D

И было бы удобней добавить на кнопку ролика мыши как в
Adobe Acrobat Reader при просмотре PDF "Руку" - Рука или круговая панорама, что бы не тянуть нижний ползунок :)
Что то ничего не понял если честно. Для того что бы свернуть и развернуть панель достаточно кликнуть в любом месте по всей длине свёрнутой панели (достаточно широкая полоса). Да я и не совсем понимаю зачем их так часто разворачивать? Все необходимые функции доступны из контекстного меню схемы. Если какие то действия Вы часто применяете и их нет в контекстном меню - то напишите - добавлю.

Отправлено спустя 7 минут 58 секунд:
Serquick писал(а):
03.01.2021{, 23:05}
И было бы удобней добавить на кнопку ролика мыши как в
Adobe Acrobat Reader при просмотре PDF "Руку" - Рука или круговая панорама, что бы не тянуть нижний ползунок
А это в планах. Но скорее не как в акробате а как в автокаде будет сделано (ну собственно как Вы и описали))))). Я просто в автокаде чаще работаю))))
Автор программы FLProg.

kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10.03.2017{, 09:54}
Репутация: 19

Тестирование версии 8.х

#5

Сообщение kbplug » 04.01.2021{, 09:42}

Добрый день, если в 8 версии планируется развитие СКАДА то очень хотелось бы заполучить инструмент построения и просмотра трендов. Даже не сколько построения, сколько просмотра трендов из СД карты памяти из файла CSV. В идеале было бы разработать некий стандарт записи данных на СД карту чтобы програмный инструментрарий мог понимать его и строить графики, накладая их друг на друга если их несколько в файле.
Я использую запись на СД различных параметров но построение графиков в екселе очень не удобно, они то и нужны не очень часто, но для понимания процессов или сбоев анализ важен.

Bentry
Рядовой
Сообщения: 43
Зарегистрирован: 20.09.2017{, 10:22}
Репутация: 7

Тестирование версии 8.х

#6

Сообщение Bentry » 04.01.2021{, 12:53}

Чаще всего в проектах использую ESP. И прошиваю контроллеры через Web bin файлом.
Хотелось чтобы в программе появилась такая возможность экспорт Bin файла

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Тестирование версии 8.х

#7

Сообщение Phazz » 04.01.2021{, 13:11}

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

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Тестирование версии 8.х

#8

Сообщение Rovki » 04.01.2021{, 14:31}

Phazz писал(а):
04.01.2021{, 13:11}
Причем сразу чтобы кидал файлик по указанному адресу и прошивал. Было бы очень удобно
Без стронних программ ,замечательно. НО кто будет компиляцию проводить и ошибки вылавливать ,имхо без ардуино IDE ни как ...там же бибки ...
Электронщик до мозга костей и не только

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Тестирование версии 8.х

#9

Сообщение Phazz » 04.01.2021{, 16:40}

ну сейчас же есть работа с иде из командной строки. Ну впринципе нужно тоже самое только чтобы в конце брал файл и кидал по указанному адресу

Аватара пользователя
Serquick
Сержант
Сообщения: 254
Зарегистрирован: 25.11.2019{, 01:07}
Репутация: 46
Откуда: Украина
Имя: Сергей

Тестирование версии 8.х

#10

Сообщение Serquick » 04.01.2021{, 18:06}

Что то ничего не понял если честно. Для того что бы свернуть и развернуть панель достаточно кликнуть в любом месте по всей длине свёрнутой панели (достаточно широкая полоса).
Полоса широкая, но она не до самого края окна программы. Между краем программы и серой полосой есть тонкая бела полоса. Вот в крайнем левом или правом положении курсор и попадает на белую полосу и не разворачивается панель :)
Да я и не совсем понимаю зачем их так часто разворачивать? Все необходимые функции доступны из контекстного меню схемы
Вот мой один из проектов
Screenshot_2,0.png
В нем много Флагов и Регистров, вот и приходится "n" количество раз открывать/сворачивать "Дерево проекта". а то много места занимает в развернутом состоянии. Да и только там их можно добавлять на плату и в проект.

"Библиотека функциональных блоков" часто сворачиваю, так как у меня увеличенный масштаб основного окна (зрение не очень), вот для увеличения рабочего пространства и кликаю :) А тянуть нижний ползунок постоянно напрягает. :D Вот была бы "Рука", то она на много упростила жизнь.
32 Кб должно хватить для любых задач!!!

vfv
Сержант
Сообщения: 283
Зарегистрирован: 22.03.2018{, 12:35}
Репутация: 0
Откуда: Самара
Имя: Валерий

Тестирование версии 8.х

#11

Сообщение vfv » 04.01.2021{, 18:43}

Поддерживаю Serquick. То же плохое зрение. Просим руку

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

Тестирование версии 8.х

#12

Сообщение support » 04.01.2021{, 21:05}

Serquick писал(а):
04.01.2021{, 18:06}
В нем много Флагов и Регистров, вот и приходится "n" количество раз открывать/сворачивать "Дерево проекта". а то много места занимает в развернутом состоянии. Да и только там их можно добавлять на плату и в проект.

"Библиотека функциональных блоков" часто сворачиваю, так как у меня увеличенный масштаб основного окна (зрение не очень), вот для увеличения рабочего пространства и кликаю А тянуть нижний ползунок постоянно напрягает. Вот была бы "Рука", то она на много упростила жизнь.
Флаги и регистры доступны из контекстного меню при выборе пункта - 'Вставить глобальную переменную'. Кстати там же можно и создать новую переменную модбас. Так же из контекстного меню можно вставить и новый блок (пункт "Вставить блок"). И ничего не надо сворачивать и разворачивать.
Rjytrcn1.png
Rjytrcn1.png (7.72 КБ) 10973 просмотра
Rjytrcn2.PNG
Rjytrcn2.PNG (31.12 КБ) 10973 просмотра
Отправлено спустя 9 минут 42 секунды:
vfv писал(а):
04.01.2021{, 18:43}
Поддерживаю Serquick. То же плохое зрение. Просим руку
Рука будет.
Автор программы FLProg.

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

Тестирование версии 8.х

#13

Сообщение ecoins » 04.01.2021{, 21:34}

Сформулирую и свои предложения:
1.Все важные параметры блоков должны устанавливаться как внешние входы блоков.
Например блок DS1820 должен иметь вход с номером пина, к которому он подсоединяется.
Номер UART Modbus, номера регистров ModBus и т.д.
Это позволит все параметры проекта определить в первой плате. которая по условию будет выполняться один раз.
Здесь же можно определить и удобные клеммы.
2.Было бы удобно, если бы с клеммы можно было бы не только считывать показания, но и писать туда (коли под неё уже определена переменная).
3.Было бы полезно включить в стандартные блоки простейший планировщик вызова плат-это повысило бы общую культуру распределения ресурсов контроллера в проектах. Даже в самых простых.
Пример некоторых автономных блоков прикладываю.
ПБ_Планирование задач.ubl
(255.98 КБ) 137 скачиваний
4.Отревизировать ПБ сенсоров и устройств, которые включены в состав FLProg. Почти все они"тормозные" из-за использования стандартных библиотек Arduino в которых широко используется оператор delay().
5.Отдельно провести ревизию наработок по протоколам и коммуникационным интерфейсам (в том числе и от избавления delay()) -UART,SPI,i2c,WiFi,NRF2401,ModBus,MQTT,CAN.
Работа не маленькая, но если её сделать командной, то можно добиться серьезных результатов в ограниченное время.

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

Тестирование версии 8.х

#14

Сообщение support » 04.01.2021{, 22:12}

ecoins писал(а):
04.01.2021{, 21:34}
Сформулирую и свои предложения:
1.Все важные параметры блоков должны устанавливаться как внешние входы блоков.
Например блок DS1820 должен иметь вход с номером пина, к которому он подсоединяется.
Номер UART Modbus, номера регистров ModBus и т.д.
Это позволит все параметры проекта определить в первой плате. которая по условию будет выполняться один раз.
Здесь же можно определить и удобные клеммы.
2.Было бы удобно, если бы с клеммы можно было бы не только считывать показания, но и писать туда (коли под неё уже определена переменная).
3.Было бы полезно включить в стандартные блоки простейший планировщик вызова плат-это повысило бы общую культуру распределения ресурсов контроллера в проектах. Даже в самых простых.
Пример некоторых автономных блоков прикладываю.
ПБ_Планирование задач.ubl
4.Отревизировать ПБ сенсоров и устройств, которые включены в состав FLProg. Почти все они"тормозные" из-за использования стандартных библиотек Arduino в которых широко используется оператор delay().
5.Отдельно провести ревизию наработок по протоколам и коммуникационным интерфейсам (в том числе и от избавления delay()) -UART,SPI,i2c,WiFi,NRF2401,ModBus,MQTT,CAN.
Работа не маленькая, но если её сделать командной, то можно добиться серьезных результатов в ограниченное время.
Девайте рассмотрим Ваши предложения
1. Входы служат для изменения параметров, которые можно менять в процессе исполнения программы. Я и так стараюсь для всех таких параметров предлагать варианты константы или входа. Задавать номер пина со входа для того же DS18B20 мне кажется плохая идея. Ведь объявляется данный датчик в секции Declare, ещё до начала работы программы, и честно говоря мне совсем не хочется анализировать схему, искать переменные которые связанны с данным входом, и как то из них выдёргивать значения для объявления данного датчика. Ну и потом - если это вход - значит значение на нём можно поменять и в процессе выполнения. И как Вы видите программную реализацию этого?
Единственно что может быть стоит сделать - в обзоре схемы создать новую ветку с использованными пинами контроллера с указанием блока где данный пин используется. Я над этим подумаю.
2. Для клемм в большинстве случаев не создается переменная (именно для экономии памяти они и были созданы). Переменная для клеммы создается только в том случае, если выход к которому она подключена не имеет своей переменной а значение на нём рассчитывается на лету. Например это блоки базовой логики и математика. Во всех остальных случаях клемма просто передает переменную привязанную к выходу блока к которому она подключена. А в неё пишет блок согласно своей логике, и записывать в неё что то ещё нельзя.
3. Возможно я и займусь этим когда будет возможность.
4,5. Этим я по возможности занимаюсь, постепенно оптимизирую компилятор.

Насчёт команды - все сложнее. Я изучаю наработки пользователей, стараюсь их использовать по мере возможности. Но вот программист я один, и никакой команды именно программистов у меня нет. И вряд ли появится. Я не думаю что среди пользователей программы найдутся программисты на SmallTalk, да ещё и согласные бесплатно поработать. Я честно говоря и сам не хочу исходники публиковать....... Есть опыт во что это выливается. Люди разные бывают..... а потом кашу разгребать не хочется.
Автор программы FLProg.

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

Тестирование версии 8.х

#15

Сообщение ecoins » 04.01.2021{, 22:38}

support писал(а):
04.01.2021{, 22:12}
Девайте рассмотрим Ваши предложения
support писал(а):
04.01.2021{, 22:12}
1. Входы служат для изменения параметров, которые можно менять в процессе исполнения программы. Я и так стараюсь для всех таких параметров предлагать варианты константы или входа. Задавать номер пина со входа для того же DS18B20 мне кажется плохая идея. Ведь объявляется данный датчик в секции Declare, ещё до начала работы программы, и честно говоря мне совсем не хочется анализировать схему, искать переменные которые связанны с данным входом, и как то из них выдёргивать значения для объявления данного датчика. Ну и потом - если это вход - значит значение на нём можно поменять и в процессе выполнения. И как Вы видите программную реализацию этого?
Единственно что может быть стоит сделать - в обзоре схемы создать новую ветку с использованными пинами контроллера с указанием блока где данный пин используется. Я над этим подумаю.
Я не только вижу, но и разработал целый набор блоков. В том числе для ds1820. Общий поход следующий - если номер пина (или адрес, например LCD.i2c) <0, то соответсвующий блок не выполняется.
Это позволяет грузить один и тот же проект на разные контроллеры с разными ресурсами и возможностями (например ESP8266 и ESP32).
Насчет возможности программно поменять значение в процессе проекта. Мы сразу сохраняем это значение при инициализации блока и в последствии значением этого входа не пользуемся.
К сожалению при каждом входе в блок происходит уже ненужное пересчитывание входа блока.
Особо это печально, если входная переменная String - мы пользуемся разными ухищрениями, чтобы избежать этой ситуации.
А вот здесь, если Вы сделаете функцию блока, по которому вход может считываться только по указанию программного кода в блоке, это было бы прорывом... в локальном вопросе. Варианты могут быть разные... Можно эту тему детализировать при необходимости.
support писал(а):
04.01.2021{, 22:12}
2. Для клемм в большинстве случаев не создается переменная (именно для экономии памяти они и были созданы). Переменная для клеммы создается только в том случае, если выход к которому она подключена не имеет своей переменной а значение на нём рассчитывается на лету. Например это блоки базовой логики и математика. Во всех остальных случаях клемма просто передает переменную привязанную к выходу блока к которому она подключена. А в неё пишет блок согласно своей логике, и записывать в неё что то ещё нельзя.

То, что нельзя, это в существующей реализации. Но если уже есть переменная...
Мы сейчас обходим эту ситуацию (когда требуется) - создаем тэг нужной переменной, в первой плате создаем контакт, который привязывается к этой переменной и когда нужно пишем значение в переменную.
Получается громоздко и кол-ва тэгов сбоку растет.
Делали сохранение через структуру - но это и не очень наглядно (имя переменной в формате C++) и не оперативно в использовании.
=============================
Разобью ответ на несколько сообщений - а то получается длинно.

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

Тестирование версии 8.х

#16

Сообщение ecoins » 04.01.2021{, 23:20}

support писал(а):
04.01.2021{, 22:12}
3. Возможно я и займусь этим когда будет возможность.
Приложенный блок (sheduler) автономный. компактный, быстрый и очень простой.
support писал(а):
04.01.2021{, 22:12}
4,5. Этим я по возможности занимаюсь, постепенно оптимизирую компилятор.
Вообще это вопрос только библиотек.
По библиотекам Arduino IDE, которые Вы используете в блоках - уверен, что эта плохая идея, они пишутся больше как демонстрационные и потому проект один блок->один проект работают, а чуть сложнее...
Теперь мы внимательно изучаем библиотеки до их использования - неплохие примеры есть, но в массе всё очень плохо.
Пишем свои библиотеки, стараемся предельно аккуратно и документировано - результаты таковы, что даже очень громоздкие проекты "летают". Все библиотеки и проекты исследуются и использованием хороших логических анализаторов.
support писал(а):
04.01.2021{, 22:12}
Насчёт команды - все сложнее. Я изучаю наработки пользователей, стараюсь их использовать по мере возможности. Но вот программист я один, и никакой команды именно программистов у меня нет. И вряд ли появится. Я не думаю что среди пользователей программы найдутся программисты на SmallTalk, да ещё и согласные бесплатно поработать. Я честно говоря и сам не хочу исходники публиковать....... Есть опыт во что это выливается. Люди разные бывают..... а потом кашу разгребать не хочется.
Про печальный опыт понятно... На это можно по разному смотреть... С большего временного кол-ва подобного и другого опыта смотрю на это сильно иначе.
Насчет команды программистов.
Представляется, что влазить в SmallTalk на данном этапе и ни к чему. Любопытно, но Вы это делаете и лучше, и с удовольствием, креативно и результативно.
А вот дополнить проекты "правильными" библиотеками прозрачными для пользователей - мне представляется хорошей идеей.
Основная идея разрабатываемых нами библиотек - это программные прерывания (нужна задержка по времени-вышли из функции->через некоторое время(когда планировщик распорядился) сново проверили условия продолжения по времени или по тай-ауту и т.д.).
Аппаратные прерывания почти не используем, чтобы обеспечить совместимость с младшей моделью контроллеров AVR328. Один раз только в библиотеке HC-SR04, чтобы не ждать по времени обратного импульса.
--------------
И еще.
Мне кажется это пережившая время идея поддерживать по большинству функциям контроллер AV328(32k/2k).
Это уже устойчивое "вчера" - и разработчик ATMEL уже пятый год как не существует.
Мы сами много усилий прикладываем к оптимизации использованию переменных - реально удается использовать только 1.5к ОЗУ.
Но наши (именно наши) достаточно большие исследования показали, что в условиях применения С++ приводит и к росту программного кода (уже недостаточно 32к бывает часто), и к ощутимому снижению быстродействия - битовые операции когда их много - понемногу, понемногу накапливают задержки по времени. К слову этого нет на STM32, где битовые операции реализуются на аппаратном уровне.
Именно для экономии памяти операции с пинами на AVR328 дрстаточно медленные (в каждом цикле работы создается несколько временных переменных).
Еще с AVR328 медленны операции со временем (millis() и обработка результатов) - 8-ми битный контроллер медленно работает с 32-разрядными переменными.
И совсем медленно и громоздко работа со строками.
-----------
Представляется, что в настоящее время наиболее перспективными и быстро развивающими являются две ветки - ESP32 и STM32 - там бы и сосредоточить усилия. Порог вхождения немного выше - но и возможности большие.
А на проекты с AVR328 сразу накладывать "оговорки" по ограничениям.
Неплохим контроллером остается Mega2560 - но ограничения по быстродействию заложены в его природе.
=====================
Спасибо за развернутый ответ.
Это пожалуй почти первый случай, когда Вы конкретно отреагировали на наши предложения.
Возможно они Вами обычно воспринимаются как несвоевременными и несколько "туманными" (как и многими участниками форума).
Как результат - мы тратим усилия на обходные пути, достигаем поставленных целей. Но эти же усилия могли быть потрачены более рационально и более способствовать развитию FLProg. Продукт (и еще KaScada) который остается уникальным и по целому ряду свойств существенно лучше традиционных софта для ПЛК (те идеи заложены и почти и неизменны более 3-х десятилетий).
==========================
Спасибо.

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

Тестирование версии 8.х

#17

Сообщение support » 04.01.2021{, 23:58}

ecoins писал(а):
04.01.2021{, 22:38}
Я не только вижу, но и разработал целый набор блоков. В том числе для ds1820. Общий поход следующий - если номер пина (или адрес, например LCD.i2c) <0, то соответсвующий блок не выполняется.
Это позволяет грузить один и тот же проект на разные контроллеры с разными ресурсами и возможностями (например ESP8266 и ESP32).
Насчет возможности программно поменять значение в процессе проекта. Мы сразу сохраняем это значение при инициализации блока и в последствии значением этого входа не пользуемся.
Я всё равно не понимаю разницы между заданием номера пина в первой плате которая выполняется один раз (ну то есть тот же самый декларе), и заданием непосредственно в блоке. А минусы вижу. В переменную надо писать цифру соответствующую номеру пина как цифрового, при этом самостоятельно контролировать что этот пин не занят. При выборе пина в блоке, пользователь видит название пина как он нарисован на плате.И при этом видит только те пины, которые может использовать в блоке. Смена контроллера то же обрабатывается, и если при смене контроллера у нового выбранного пина не будет, или он не будет соответствовать требованиям блока - он сбросится - блок станет некорректным, и при проверке проекта будут показаны все некорректные блоки с возможностью прямого перехода к ним.Ну и последующего повторного выбора необходимого. Вы же при смене платформы то же планируете менять пины ручками на первой плате. В новом редакторе блоков то же есть параметр - "Физический пин контроллера", с этими же функциями. Да пока не реализована функция работы с I2C и SPI, но в восьмой версии это будет реализовано. Как - я уже знаю, осталось только прописать в программе.
ecoins писал(а):
04.01.2021{, 22:38}
К сожалению при каждом входе в блок происходит уже ненужное пересчитывание входа блока.
Ну так и основное назначение ВХОДА ,Это изменение значения в процессе выполнения программы - а значит он обязан пересчитываться в каждом цикле. Ведь в каждом цикле происходит может произойти изменение. Только если на входе константа - тогда он не пересчитывается - а вставляется значение константы.
ecoins писал(а):
04.01.2021{, 22:38}
То, что нельзя, это в существующей реализации. Но если уже есть переменная...
Считаем что нет..... Потому что если нужна переменная - то и создаем переменную. А клемма - это просто такая же линия соеденения между блоками как и на плате- только между платами. А создание переменной - это исключительный случай необходимый для компромиса между объёмом занимаемой памяти и реализацией некоторых блоков.

Отправлено спустя 3 минуты 11 секунд:
ecoins писал(а):
04.01.2021{, 23:20}
А вот дополнить проекты "правильными" библиотеками прозрачными для пользователей - мне представляется хорошей идеей.
Основная идея разрабатываемых нами библиотек - это программные прерывания (нужна задержка по времени-вышли из функции->через некоторое время(когда планировщик распорядился) сново проверили условия продолжения по времени или по тай-ауту и т.д.).
Аппаратные прерывания почти не используем, чтобы обеспечить совместимость с младшей моделью контроллеров AVR328. Один раз только в библиотеке HC-SR04, чтобы не ждать по времени обратного импульса.
А вот для этого я и реализую сейчас в первую очередь онлайн хранилище пользовательских блоков, и пользовательских описаний контроллеров. Там будет система оценки, которая позволит которая позволит оценить качество блоков. Ну и естественно самые надёжные будут интегрироваться в программу в качестве базовых.
Автор программы FLProg.

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Тестирование версии 8.х

#18

Сообщение Rovki » 05.01.2021{, 00:11}

На сколько я понял ecoins говорит не только о блоках ,но и переделанных , быстрых библиотеках arduino IDE, в чем уже многие пользователи убедились используя их в больших проектах :smile44:
Электронщик до мозга костей и не только

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

Тестирование версии 8.х

#19

Сообщение support » 05.01.2021{, 00:14}

ecoins писал(а):
04.01.2021{, 23:20}
Это пожалуй почти первый случай, когда Вы конкретно отреагировали на наши предложения.
Возможно они Вами обычно воспринимаются как несвоевременными и несколько "туманными" (как и многими участниками форума).
Как результат - мы тратим усилия на обходные пути, достигаем поставленных целей. Но эти же усилия могли быть потрачены более рационально и более способствовать развитию FLProg. Продукт (и еще KaScada) который остается уникальным и по целому ряду свойств существенно лучше традиционных софта для ПЛК (те идеи заложены и почти и неизменны более 3-х десятилетий).
Вообще я слежу за вашими разработками. И честно говоря - именно посматривая на Ваши блоки я затеялся с новым редактором. Ведь практически только у Вас существует определённая иерархия блоков . То есть планировщик (Если собирать ваши блоки в новом редакторе - от него можно будет отказатся - и его код будет вставляться всегда при использовании хоть одного инстанса) и дальше блоки которые работают под его управлением. Я примерно понимаю идеологию ваших блоков, и считаю ее оптимальной. Но.... у меня две руки, и 24 часа в сутках. И есть задачи которые имеют более высокий приоритет в основной идее проекта. Ведь проект все таки не среда разработки каких то законченных изделий идущая на пике современных решений. Нет. FLProg -это прежде всего образовательный проект дающий ОСНОВЫ промышленного програмирования. Всё остальное - если честно - побочный эффект. Я конечно понимаю что для многих побочный эффект стал основной целью. И поэтому и сделал и пользовательские блоки и редактор описания. И развиваю их. Но если честно - для меня важнее доработать скаду - что бы дать пользователям такие понятия как тренды, база данных, стандартные виджеты. ит.д. Потому как в промышленных системах управления HMI одно из важнейших направлений. Но как всегда - то что хочется сделать сейчас приходится откладывать)))) Как всегда компромис.

Отправлено спустя 3 минуты 24 секунды:
Rovki писал(а):
05.01.2021{, 00:11}
На сколько я понял ecoins говорит не только о блоках ,но и переделанных , быстрых библиотеках arduino IDE, в чем уже многие пользователи убедились используя их в больших проектах :smile44:
Да они есть, и есть отличные блоки на отличных библиотеках. Но все они сейчас размазанны по форуму, по интернету. И для того что бы что то найти и оценить их работу, если не следишь конкретно за этой темой, практически не реально. Вот я и хочу их собрать в одном месте, и иметь возможность отслеживать наиболее удачные, что бы модернизировать встроенные.
Автор программы FLProg.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Тестирование версии 8.х

#20

Сообщение Ingwar » 05.01.2021{, 00:20}

Хорош заниматься прозелити́змом :smile110: :smile171:

Отправлено спустя 3 минуты 6 секунд:
Не нужно в Flprog подобия/зачатков RTOS.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Ответить

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