ВРЕМЯ ЦИКЛА или что убивает ваш проект.

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

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#101

Сообщение ecoins » 19.09.2021{, 14:23}

В дополнении к философии о практике:
чуть позже выложу любопытные(меня удивили) сравнительные результаты быстродействия на разных контроллерах:
1.Nano (16мГц) 39 500(циклов в сек);
2.ESP8266(80мГц) - 55 000;
3.ESP32(240мГц) - 114 000;
4.STM32F103C(72мГц) - 106 000;
5.STM32F411CУ(84мГц) - 190 000;
------
Предварительные выводы:
1.Частота процессора не единственный фактор влияющий на быстродействие.
2.Архитектура имеет значение.
3.8 разрядные процессоры AVR вполне себе... Ограничением для использования Nano остаются малые объемы памяти, а вот MEGA2560 очень даже хорошо. К слову на этих контроллерах удобнее всего отлаживать программы (так в ecoins и делают) - быстрая компиляция, компактный код, быстрая загрузка.
4."Правильный" подход к проектированию имеет значение...
--------
Dryundel писал(а):
19.09.2021{, 12:42}
Вот ecoins я бы сравнил с хлеборобом.
Подпись: ecoins - то хлебороб, то ли пахарь (в смысле землю пашет - плуг с лощадкой впереди :smile171: ).
Dryundel писал(а):
19.09.2021{, 12:42}
Вряд ли он будет создавать конечные устройства.
Это не совсем так. Вернее совсем не так. Как-то писал, что мы в действительности не очень хорошо знаем друг друга и потому суждения могут быть не точны, а иногда и неверны.
--------
В FLProg ecoins действительно "засиделся" - много исследований, мало практических предложений.
Для себя объясняем это желаем иметь и для своей деятельности продукт просто используемый инженерами, детьми, физиками и профессиональными (те для кого это основной вид деятельности) программистами.
Большой путь пройден, несколько раз фиксировали промежуточные результаты, когда-то зафиксируем и крупный промежуточный результат.
--------
Dryundel писал(а):
19.09.2021{, 12:42}
И если бы его усилия обрели какие то конечные, заверенные формы в виде конкретных библиотек, цены бы ему небыло.

Конечные продукты есть, но Вы по каким-то причинам избегаете ими пользоваться.
Раньше объясняли это отсутствием описания, сложность использования - это уже давно сильно не так.
---------
Dryundel писал(а):
19.09.2021{, 12:42}
А пока приходится пользоваться трудом других "хлеборобов", библиотеки которых работали вчера, работают сегодня и с большой вероятностью будут работать завтра. Пока что ecoins этим похвастаться не может.
Мы не хвастаем. Просто проекты, основанные на наших методах работают без тормозов и устойчиво (даже если где-то контакты плохие), поддерживают горячее пере подключение устройств(в том числе и на i2c, в том числе и на LCD)и многое, многое другое.
---------
Когда-то я предлагал объединить усилия для совершенствования наших разработок.
Вы с коллегами по форуму потребовали от ecoins доказательств того что это перспективно, нужно и прочее. То есть Вас надо было убедить... Кто-то прямо ставил вопросы, вроде "А что нам за это будет?".
Отвечу (немного резко) - останетесь с большим богатством которое у Вас уже есть, не потратите свои драгоценные усилия на то, во что Вы не верите и не хотите верить.
И будете ждать пока Сергей персонально для Вас будет переделывать старые блоки.
Иногда это звучит вроде того, что он Вам обязан - Вы ведь потратили драгоценного "себя" на освоение его программы...
Нормальный, здоровый, распространенный взгляд, жизненная позиция...
ecoins её не разделяет.
--------
Спасибо.

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#102

Сообщение Dryundel » 19.09.2021{, 15:09}

ecoins писал(а):
19.09.2021{, 14:23}
когда-то зафиксируем и крупный промежуточный результат.
ecoins писал(а):
19.09.2021{, 14:23}
но Вы по каким-то причинам избегаете ими пользоваться.
Именно отсутствие фиксации конечного результата и останавливает.
Пока в теме про разработки ecoins будут появляться диалоги типа.:
- А вот вчера работало, а сегодня нет. Почему?
- Ну ка дайте проект. Ща глянем. Ща поправим.
Буду считать проект сырым для использования.
Ибо на ваш труд накладывается мой, на мой чей то другой. В итоге и ошибки накладываются друг на друга, умножая многократно проблемы и еженедельное переписывание кода для подстройки под новую "промежуточную фиксацию" вдохновения не прибавляют.
Ну как то так.
А разработки классные, интересные и местами инновационные.
Жаль что надо пока ждать.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#103

Сообщение Утвш » 20.09.2021{, 17:37}

Может у кого-то найдется время посмотреть, что можно сделать для увеличения быстродействия. Проверка по рекомендациям поста 2, количество циклов составило всего 40 за 30 сек. Или это все, что можно получить без изучения С++?
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 455
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 28
Имя: Виктор

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#104

Сообщение ViktorPetrov » 20.09.2021{, 18:30}

Утвш, В посте 9 ,есть ссылка на тему с примером Из жизни Серёги

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

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#105

Сообщение ecoins » 20.09.2021{, 19:43}

Утвш писал(а):
20.09.2021{, 17:37}
Может у кого-то найдется время посмотреть, что можно сделать для увеличения быстродействия. Проверка по рекомендациям поста 2, количество циклов составило всего 40 за 30 сек. Или это все, что можно получить без изучения С++?
Посмотрел.
Рекомендации:
1.Отказаться от стандартных блоков Nextion.
2.Отказаться от работы со строками.
3.Отказаться от стандартных блоков LCD HD44780.
4.Использовать планировщик вызова плат.
-----------
Думаю быстродействие будет на уровне 40-50тыс. циклов loop() в сек.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 455
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 28
Имя: Виктор

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#106

Сообщение ViktorPetrov » 20.09.2021{, 21:07}

ecoins писал(а):
20.09.2021{, 19:43}
Посмотрел.
Рекомендации:
1.Отказаться от стандартных блоков Nextion.
2.Отказаться от работы со строками.
3.Отказаться от стандартных блоков LCD HD44780.
4.Использовать планировщик вызова плат.
-----------
Думаю быстродействие будет на уровне 40-50тыс. циклов loop() в сек.
Результат в впечатляющий,но можно и посмотреть в "ширь" отказаться от "железа"(Nextion и LCD) и посылать данные в HMI_KaScada ,это не критика ,это более оптимальный вариант .

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#107

Сообщение Утвш » 21.09.2021{, 23:13}

ViktorPetrov писал(а):
20.09.2021{, 21:07}
отказаться от "железа"(Nextion и LCD)
Конечно это самый оптимальный вариант, но к сожалению это невозможно.
ecoins писал(а):
20.09.2021{, 19:43}
2.Отказаться от работы со строками.
Отказался от сложения строк - ничего не дало. Вообще отказаться от строк не могу. Хочу выводить показания на контрольный дисплей.
ecoins писал(а):
20.09.2021{, 19:43}
Отказаться от стандартных блоков LCD HD44780.
Там стоят блоки которые выставлял Dryundel. Они не грузят.
ViktorPetrov писал(а):
20.09.2021{, 21:07}
Отказаться от стандартных блоков Nextion.
ViktorPetrov писал(а):
20.09.2021{, 21:07}
Использовать планировщик вызова плат.
А вот тут меня ждал сюрприз. Установил вместо штатных блоков Nextion блоки от Калинникова Н. и запланировал работу плат поочередно через 400 мск и скорость выросла в 4 раза. Не супер что-то, но мне достаточно. Всем спасибо.

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

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#108

Сообщение Sancho » 22.09.2021{, 11:50}

Утвш,
Утвш писал(а):
21.09.2021{, 23:13}
Всем спасибо.
Предлагаю, в контексте названия темы, не останавливаться, а продолжить разбираться с проблемой по возможности штатными средствами.
Начнём с анализа.За основу проект из поста 103.
Старая плата 2Показать
2021-09-22_09-51-37.png
Сбор данных от датчиков и их передача.
Теги модбас - это переменные, посему выходы с блоков float to int задублированы.
Присвоение этих переменных идёт в каждом цикле, хотя данные от датчиков не обновляются.
Для присвоения данных каждой переменной происходит обработка впередистоящей функции - т.е. чтобы присвоить двум переменным значения float->int выполняется дважды!
На плате 4 - каждый цикл собираем строки.
Немного переделаем.
Добавим генератор 1 на один цикл для опроса, плата 1.
плата 1Показать
2021-09-22_11-33-16.png
Уберём встроенные таймеры с блоков получения, подключим к нашему опросу
плата2Показать
2021-09-22_11-35-12.png
Уберём триггер, добавив новую переменную для инициализации массива адресов датчиков
плата 3Показать
2021-09-22_13-14-56.png
Сделаем опрос датчиков и присвоение значений по нашему сигналу, автоматически убрав таймеры в блоках
плата 4Показать
2021-09-22_11-40-20.png
Немного модифицируем плату с потоком
Плату вывода на дисплей разобъём на две - в одной будем после опроса собирать данные, в другой их отображать.
платы 6 и 7Показать
2021-09-22_11-43-15.png
Если ещё посмотреть файл от панели некстион, немного переделать - отправлять данные одним пакетом, а там разбирать, получится ещё шустрее.
Просьба сравнить результат с изначальным - явного прироста не будет, но курочка по зёрнышку клюёт
Nextion,NodeMCU,Cloud_01.rar
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#109

Сообщение Dryundel » 22.09.2021{, 13:55}

Sancho писал(а):
22.09.2021{, 11:50}
Предлагаю, в контексте названия темы, не останавливаться, а продолжить разбираться с проблемой по возможности штатными средствами.
Просто отлично!
Предложение принимается.
Всех кто в силах помочь новичкам с тормозами призываю подключаться.
Со своей стороны, буду заносить ссылки на самые интересные моменты в начало темы. Пост #4 "РАЗБОР ПОЛЁТОВ"
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Alias
Лейтенант
Сообщения: 469
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#110

Сообщение Alias » 22.09.2021{, 17:55}

Может еще и платы опроса датчиков и состояния Nextion запускать по условию?
Я в своих проектах на первой плате ставлю генератор с делителем и переменные для вызова плат через свои интервалы. У ecoins это называется диспетчер задач. Очень сильно разгружает процессор, как я полагаю.
Вот как сейчас, например, на 4 плате в каждом цикле опрос температуры, преобразование в инт, контроль изменения. Я бы 1 раз в секунду поставил. Плату 2, кстати, тоже не чаще.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 455
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 28
Имя: Виктор

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#111

Сообщение ViktorPetrov » 22.09.2021{, 18:55}

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

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#112

Сообщение Утвш » 22.09.2021{, 19:01}

Sancho писал(а):
22.09.2021{, 11:50}
Предлагаю, в контексте названия темы, не останавливаться, а продолжить разбираться с проблемой по возможности штатными средствами.
Если получится, то это было бы просто здорово.
Sancho писал(а):
22.09.2021{, 11:50}
Просьба сравнить результат с изначальным
К сожалению, никаких изменений.
Nextion,NodeMCU,Cloud_01.rar
Как уже писал, по рекомендациям поста 105, я заменил штатные блоки Nextion и запланировал работу плат. Получилось вот так:
NodeMCUтестCloud 4.rar
Кстати, для экономии места сложил блок замера количества циклов. Все по рекомендации уважаемого Dryndel (пост 2)
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
ingener
Лейтенант
Сообщения: 522
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 15
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#113

Сообщение ingener » 14.10.2021{, 11:52}

Dryundel, возможно ли добавить к набору блоков LCD 2.18 еще и ресет дисплея?
Или скомбинировать его с блоком подсветки?
Просто хочется применить их в проекте, где всегда при старте движения каретки возникает помеха, вызывающая абракадабру на дисплее.
Бороться с помехой бесполезно.
Поэтому придется сначала гасить подсветку, затем старт каретки, потом ресет абракадабры, затем включение подсветки.

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#114

Сообщение Dryundel » 14.10.2021{, 13:40}

ingener писал(а):
14.10.2021{, 11:52}
Dryundel, возможно ли добавить к набору блоков LCD 2.18 еще и ресет дисплея?
Я подумаю.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
ingener
Лейтенант
Сообщения: 522
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 15
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#115

Сообщение ingener » 14.10.2021{, 15:19}

да вроде разобрался
RESET_LCD_2.18_(Code_-_Basic).ubi
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
ingener
Лейтенант
Сообщения: 522
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 15
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#116

Сообщение ingener » 23.11.2021{, 15:11}

после обновления IDE до версии 1.8.16 блок дисплея не компилируется -
1816.JPG
в версии 1.8.13 компилируется нормально.
русификация отключена.
в чем засада? :smile37:
Для скачивания вложений Вы должны быть зарегистрированы.

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

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#117

Сообщение Phazz » 23.11.2021{, 15:17}

А сообщение ошибки можно увидеть?

Аватара пользователя
ingener
Лейтенант
Сообщения: 522
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 15
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#118

Сообщение ingener » 23.11.2021{, 15:24}

Phazz,
C:\Users\AND\AppData\Local\Temp\flprog\pr18\pr18.ino: In function 'void setup()':
pr18:20:14: error: 'class LiquidCrystal_I2C' has no member named 'init'
_rusLCD1.init();
^
Несколько библиотек найдено для "LiquidCrystal_I2C.h"
Используется: C:\Users\AND\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Не используется: C:\Users\AND\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2
exit status 1
'class LiquidCrystal_I2C' has no member named 'init'

PS - забыл уточнить, это все на ESP32

aidar_i
Полковник
Сообщения: 2093
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 295
Откуда: Уфа
Имя: Айдар
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#119

Сообщение aidar_i » 23.11.2021{, 16:08}

ingener писал(а):
23.11.2021{, 15:24}
C:\Users\AND\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Значит удалите эту библиотеку.

Аватара пользователя
ingener
Лейтенант
Сообщения: 522
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 15
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#120

Сообщение ingener » 23.11.2021{, 16:33}

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

Ответить

Вернуться в «Букварь»