Разработки ecoins

Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Разработки ecoins

Сообщение support »

Думаю стоит и мне высказать свое мнение по этому вопросу.

Прежде всего, хочу поблагодарить ecoins за постоянную финансовую помощь проекту. Реально, очень помогает. Спасибо большое ребята.

Так же я хочу, извинится, что пропал из жизни сообщества, на какое то время. У меня на основной работе аврал (две турбины подряд вышли на плановое обслуживание), а на «второй» работе нарисовался срочный заказ, и приходится осваивать новую для себя среду Телемеханика лайт. Так что и по вечерам времени нет. И еще недельку – полторы как минимум я буду занят.

По поводу темы данной ветки. Идея очень интересная, по возможности буду встраивать допиленные библиотеки в основной функционал. Тем более она пересекается с моими планами в ближайшем будущем. Сейчас (ну когда появляются небольшие окошки) я работаю над интеграцией контроллера ESP32 в программу. Для этого в первую очередь в виду особенностей этого контроллера придётся переделывать описатели контроллера. У меня есть идея сразу заложить в описания пинов номера регистров входов – выходов, и в компиляторе избавится от DigitalRead, DigitalWrite. Кроме того есть идея под соусом переделки описателя контроллера сделать инструмент для создания пользовательских описаний контроллеров. То есть будет возможность самостоятельно добавить контроллер в собственную библиотеку. Не знаю пока точно, получится у меня это или нет, но я постараюсь. Из библиотек ecoins я постараюсь выдернуть номера регистров (мне кажется это будет проще, чем самому искать и изучать даташиты - ребята всё уже сделали), ну и обновлю библиотеки очищенными от ecoins. Если всё получится – то через месяц выйдет новая бета версия с номером 6.0, где будет, надеюсь, редактор описателей контроллеров (непосредственно поддержка ESP32 запланирована на версию 6.1), и обновлённые библиотеки.

Вторая больная тема – доступ к переменным проекта из пользовательских блоков у меня запланирована на седьмую версию, после окончания работ над ESP32 и возможно STM. В этой ветке этот вопрос то же подымался, я прекрасно понимаю актуальность этого вопроса, и даже продуманны пути решения. Но всё упирается в количество времени, которого не хватает. На седьмую версию у меня планы по коренной переработке пользовательских блоков, и в принципе основные направления уже продуманы и расписаны. Как говорится – осталось только самая малость - реализовать)))))
Автор программы FLProg.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

Благодарим support за #141
С учетом изложенного, приложим усилия для оптимизации и формализации базовых библиотек и пользовательских блоков.
После этого повторим учебные примеры.
Автору признательность за:
1) далеко идущие планы;
2) их последовательную и тщательную реализацию.
-----
Пользуясь случаем, обращаю внимание на проблему, с которой мы сталкиваемся и которая существенно влияет на быстродействие программы (ранее об этом писалось):
Сейчас блоки написаны таким образом, что по входам в них сразу создается переменная - независимо от того, используется она в текущем цикле блока, или нет.
Например, если блок UART выводит значение 1 раз в сек, то входная переменная String создается все равно при каждом входе в блок. Работа с переменными String, особенно на 8-ми разрядных контроллерах отнимает приличное время. Когда переменных много, непроизводительные задержки набегают. Если бы можно преодолеть эту проблему (разные способы, в т.ч. и обращение к переменной по адресу), это существенно упростило бы требования к манипуляциям по реальному времени.
----
И еще - не повредило бы добавить переменную соответствующую uint16_t - обосновывать здесь не буду, но часто сталкиваемся с этим и приходиться применять int32_t.
-------
Спасибо.
fsergei70
Капитан
Сообщения: 860
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Разработки ecoins

Сообщение fsergei70 »

ecoins писал(а): 11 июл 2019, 06:09 Результат - моргает светодиод на пине 12, периодически в UART направляются сообщения.
0600_Базовый пример диспетчера задач.flp
Это только у меня открывается пустой проект?
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

fsergei70 писал(а): 12 июл 2019, 09:41
ecoins писал(а): 11 июл 2019, 06:09 Результат - моргает светодиод на пине 12, периодически в UART направляются сообщения.
0600_Базовый пример диспетчера задач.flp
Это только у меня открывается пустой проект?
0600_Базовый пример диспетчера задач.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Разработки ecoins

Сообщение Sancho »

[ref]ecoins[/ref], Ну как так-то? Столько ошибок в самом начале. Параметры не прописан в "RT_Task - Диспетчер задач" правильно.
Только что модифицировали? Нельзя-же так в популярной теме...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

Sancho писал(а): 12 июл 2019, 11:59 [ref]ecoins[/ref], Ну как так-то? Столько ошибок в самом начале. Параметры не прописан в "RT_Task - Диспетчер задач" правильно.
Только что модифицировали? Нельзя-же так в популярной теме...
Выскакивают ошибки при компиляции? Какие?
fsergei70
Капитан
Сообщения: 860
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Разработки ecoins

Сообщение fsergei70 »

В блоке RT_Task есть флаги reset - cброс и permit - разрешение для внешних программ. Если я правильно понимаю должны быть соответствующие выходы?

Отправлено спустя 2 минуты 30 секунд:
Описания автора в большинстве блоков нет. Я понимаю что для автора блоков и так все ясно и понятно. А нам пока не очень.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

Уважаемый
fsergei70 писал(а): 12 июл 2019, 12:46 В блоке RT_Task есть флаги reset - сброс и permit - разрешение для внешних программ. Если я правильно понимаю должны быть соответствующие выходы?

Отправлено спустя 2 минуты 30 секунд:
Описания автора в большинстве блоков нет. Я понимаю что для автора блоков и так все ясно и понятно. А нам пока не очень.
Если не трудно, закомментируйте эти строки (reset и permit). Я сейчас как раз работаю над описанием и удобным внешним видом.
Попозже выложу.
Спасибо.

//----Описание автора
ДИСПЕТЧЕР ЗАДАЧ.
Флаги контроля:
control - инвертируется при каждом входе. Может быть использован для логического анализатора.
Флаги инициализации диспетчера (могут быть считаны блоком RT_Task+):
reset - cброс для внешних программ. Устанавливается на один цикл через 10ms после первого включения.
permit - разрешение для внешних программ. Устанавливается через 2ms после завершения сигнала сброс.

Флаги управления задачами (генерятся через цикл после установки флага permit):
При каждом выполнении диспетчера создается только одно из событий со следующим приоритетом:
ms_10 - каждые 10мс;
fast - каждые 25 мс (deafult). Оно меняется на ПЕРИОД БЫСТРЫХ ЗАДАЧ (параметр пользователя), если он >=0;
slow - каждые 250 мс (deafult). Оно меняется на ПЕРИОД МЕДЛЕННЫХ ЗАДАЧ (параметр пользователя), если он >=0;
ms100 - каждые 100 мс;
back - если нет событий выше.
---------------------------------------------------------------------------------------
Событие - это переменная, которая принимает не нулевое значение на один цикл вхождения в диспетчер.
Совместно с ДИСПЕТЧЕРОМ ЗАДАЧ рекомендуется использовать блок GenNum,
который из входного события генерит события в виде номером задач.
Последний раз редактировалось ecoins 12 июл 2019, 13:06, всего редактировалось 2 раза.
fsergei70
Капитан
Сообщения: 860
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Разработки ecoins

Сообщение fsergei70 »

Все блоки не смотрел Но при редактирование блоков GenNum и GenPulse назначения входов блоков прописаны, но только чтоб эту информацию просмотреть нужно блок открыть в редакторе. а так ничего не видно.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Разработки ecoins

Сообщение Sancho »

ecoins писал(а): 12 июл 2019, 12:23
Sancho писал(а): 12 июл 2019, 11:59 [ref]ecoins[/ref], Ну как так-то? Столько ошибок в самом начале. Параметры не прописан в "RT_Task - Диспетчер задач" правильно.
Только что модифицировали? Нельзя-же так в популярной теме...
Выскакивают ошибки при компиляции? Какие?
Sancho писал(а):Параметры не прописан в "RT_Task - Диспетчер задач" правильно.
Вот здесь:[spoiler]
error_1001.png
[/spoiler]
И, как следствие, тут всплывает:
[spoiler]
error_1002.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 860
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Разработки ecoins

Сообщение fsergei70 »

[ref]ecoins[/ref], Как использовать аналоговые входы. В частности интересует STM32, в нем ацп 12 битный. Ну и примерчик бы с modbus был бы кстати.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

Вот здесь:[spoiler]error_1001.png[/spoiler]
И, как следствие, тут всплывает:
[spoiler]error_1002.png[/spoiler]
Если не трудно - закомментируйте пока эти строки.
Последний раз редактировалось ecoins 12 июл 2019, 13:13, всего редактировалось 1 раз.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

С аналоговыми входами (и выходами) будем работать - решаемо.
С мультиплатформенностью, в которой меняются UART - есть проблемы, локально решаем. C Modbus с примером - на следующей неделе.uote]
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Разработки ecoins

Сообщение Sancho »

Sancho писал(а): 12 июл 2019, 13:01 Если не трудно - закомментируйте пока эти строки.
Зачем, просто нужно "Вставить имя параметра" правильно, а не писать вручную.
было[spoiler]
error_1001.png
[/spoiler]
стало
[spoiler]
error_1003.png
[/spoiler]Уверен, что это опечатка/ошибка из-за переноса кода в блок и не внимательности. Плавали, знаем :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 860
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Разработки ecoins

Сообщение fsergei70 »

Тип переменной выходов счетчика стоит int, как тогда они считают допустим с шагом 0,1? Или шаг должен быть целым числом. Не плохо было бы добавить в описание диапазон счета.
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Разработки ecoins

Сообщение krom23 »

Скриншот 12-07-2019 140931.png
Отправлено спустя 27 минут 5 секунд:
Решил проблему, с 4й страници из под видео скачал блоки и заменил шедулер от туда. Заработало. Да и от туда же обновил бильботеки.
Извеняюсь за контрпродуктивную критику. Ну слишком быстро инфа обновляется, не поспеваем. :smile44:
ЗЫ. Както странно посты по теме мигрируют, админы, ало.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

fsergei70 писал(а): 12 июл 2019, 13:21 Тип переменной выходов счетчика стоит int, как тогда они считают допустим с шагом 0,1? Или шаг должен быть целым числом. Не плохо было бы добавить в описание диапазон счета.
шаг только целое число, ведь это счетчик. Но всегда можно результат поделить на 10 и получить дробное.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

#155-> Уверен, что это опечатка/ошибка из-за переноса кода в блок и не внимательности. Плавали, знаем :)
Морскому капитану (Sancho): Вы правы. :yes:
Тема открывалась как демонстрация возможности реального времени и мультиплатформенности, а коснулись и пользовательских блоков.
Сейчас ускоренно идет работа по компоновки блоков для управления задачами (счетчик тоже в этой теме) - выложим с описанием.
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Разработки ecoins

Сообщение krom23 »

Админы, родненькие, что за миграция постов по теме? :shok:
Sancho писал(а):Скрины есть? Я не в курсе.
чтобы не писать пост, тут спросил
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

Разработки ecoins

Сообщение ecoins »

Сделали демонстрационный проект.
Для детско-юношеской академии инновационного развития (ДЮАИР) к учебному году оформили блоки.
Оформили и доработали библиотеки EIS RT.
Это делается для детей и потому профессионалы либо не проявят интерес, либо будут снисходительны :smile453: .
В проекте параллельно работают два дисплея Lcd 20х4 и 16х2, по прерываниям два дальномера HC-SR04, датчик DHT22, вывод на консоль, вывод в расширитель вывода MCP23017, отдельно моргает светодиод "живучесть", к отдельным задачам прикреплены еще пару светодиодов, отдельной задачей счетчики, которые отображаются на дисплеях. На дисплеях в в вернем левом углу моргают звездочки.
Вообщем много параллельных процессов.
Некоторые процессы при выполнении изредка занимают значительное время (например DHT22 раз в 2,5 сек. - 4.2 мс). DHT22 перевести на прерывания, но пока вроде и так не плохо.
В среднем цикл loop() на Mega2560 в пределах 65-100мкс, иногда больше - будем считать в среднем 90мкс.
На ESP32 -от 7мкс. В основном отнимает время обмен по i2c c Lcd - в примерах выставлена высокая скорость обновления (200 мс) быстроменяющихся демонстрационных счетчиков.
В любом случае периодичность задач (быстрых - 25мс и медленных 250 мс) не сбиваются, что хорошо видно на логическом анализаторе (вторая и третья линия).
Все устройства (датчики, Lcd, mcp23017) поддерживают режим "горячего" подключения.
1301_Базовый пример_Mega_ESP_STM32_12.07.19.flp
К примеру 1301.JPG
Обновленные библиотеки прикреплены в первом посте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Закрыто

Вернуться в «Команда ecoins»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя