Блок Диспетчер задач (ecoins)

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

Блок Диспетчер задач (ecoins)

#21

Сообщение ecoins » 27.09.2021{, 16:17}

Dryundel писал(а):
27.09.2021{, 12:21}
Повторюсь, наработки Ваши классные, интересные, местами инновационные. Хромает лишь подача и стремление все это объединить в одну библиотеку. По моему мнению, это не делает проект лучше.
Спорное утверждение.
Мы интенсивно работаем над совершенствованием проекта.
Наш коллега начал выкладывать продукт на GitHub с подробным описанием, но пока только на английском.
-----
Ваш вклад в наши разработки значимый, но мог бы быть существенно большим.

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

Блок Диспетчер задач (ecoins)

#22

Сообщение ecoins » 27.09.2021{, 18:12}

GDAN7777 писал(а):
27.09.2021{, 17:04}
Справку оформите по человечески.
К каждому модулю в библиотеке есть описание. Читали?
Есть примеры. Смотрели?
-----
Последняя библиотека пользовательских блоков - это собственная "Эко-среда", иная парадигма с возможностями которые в явной форме не предоставляют стандартные блоки (быстродействие, "горячее" подключение сенсоров и устройств) и среда Arduino (мультиплатформенность).
Если эти возможности Вам избыточны, то тогда и изучать эти блоки не стоит.
--------
P.S. Установим денежный приз для тех, кто стандартными средствами сможете сделать проекты тестов в последних постах ветки "Разработки ecoins" быстрее.
viewtopic.php?t=5426&start=1280#p106626
Испытания на Arduino Nano.

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

Блок Диспетчер задач (ecoins)

#23

Сообщение ecoins » 27.09.2021{, 19:16}

GDAN7777 писал(а):
27.09.2021{, 18:41}
Вы лучше приз установите для того, кто создаст хорошее справочное пособие с примерами.
Давайте еще раз попробуем разобраться:
1.В первом посте ветки "Разработки ecoins" размещены библиотеки RT_HW_BASE.h и библиотека пользовательских блоков ecoins (ПБ) - диспетчеры, сенсоры, регистры, счетчики, генераторы, работа с LCD, работа с консолью и пр. Для использования всех этих ПБ достаточно в Arduino IDE подключить эту единственную библиотеку. Какие-нибудь пояснения в первом посте требуются, чтобы иметь доступ к ПБ ecoins?
2.Например блок сенсора DHT22. К нему есть описание. Он сразу готов к работе с тестовым пином. Его просто поменять в параметрах пользователя. Или сделать внешним - во всех тестах так и сделано. Что-нибудь еще надо добавлять в описании?
3.Или диспетчер - он имеет описание и сразу готов к работе. Есть дополнительные настройки - они понятны из меню настройки блока.
Есть примеры использования. Что-то еще надо добавлять в описание?
4.Управление дисплеем LCD HD44780. Имеет описание, состоит всего-лишь из двух блоков - настройки и вывода. Работает с интерфейсами i2c,SPI, программный SPI (три пина), 4-х разрядная шина данных (6 пинов), 8-ми разрядная шина данных (10 пинов).
Поддерживает разные форматы дисплеев, в том числе и на двух чипах 40x4.
Поддерживает вывод переменных bool,char,8,16,32 целые, float, String и еще ряд дополнительных форматов. Осуществляет форматирование в пределах выделенного поля и прочее, прочее, прочее.
Есть тестовые примеры.
По удобству, простоте и быстродействию мне не известно ничего даже близко похожее.
Что-то требуется в менять в описании?
5.Счетчик. Заменяет стандартный, но гораздо проще в использовании. Просто вытягивается блок и он уж работает в режиме "Пила".
Нужен другой режим - просто меняется в меню.
Что-то нужно добавить в описании?
-----
Если Вы содержательно ответите на сформулированные вопросы - это будет полезным вкладом в развитии нашей работы.

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

Блок Диспетчер задач (ecoins)

#24

Сообщение bsn » 27.09.2021{, 21:12}

nalnik писал(а):
27.09.2021{, 19:32}
Простите - но достали меня блоки для двадцати летних дисплеев и более новых датчиков для старья, еще и постоянные изменения к ним.
Зря Вы так.
Вброс негативной энергии ничего не изменит.
Просто негатива станет ещё больше.
Обычный банальный совет: не нравится тема, дык и фиг с ней - не читайте её.
А кому есть, что по теме сказать - пусть и обсуждают.
"Водитель и пассажиры, будте взаимно вежливы". :)
Вложения
Херлуф Бидструп.gif
Херлуф Бидструп.gif (18.68 КБ) 1336 просмотров

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

Блок Диспетчер задач (ecoins)

#25

Сообщение ViktorPetrov » 27.09.2021{, 22:59}

Здравствуйте ув.ecoins, пожалуй лучше ,прокомментировать один из примеров с диспетчером задач ,так легче отследить последовательность задач и перехода между циклами и вопросов будит меньше .
С уважением Виктор.

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

Блок Диспетчер задач (ecoins)

#26

Сообщение ecoins » 28.09.2021{, 02:05}

ViktorPetrov писал(а):
27.09.2021{, 22:59}
Здравствуйте ув.ecoins, пожалуй лучше ,прокомментировать один из примеров с диспетчером задач ,так легче отследить последовательность задач и перехода между циклами и вопросов будит меньше .
С уважением Виктор.
Самое упрощенное использование "Диспетчера" можно посмотреть в посте #1328 ветки "Разработки ecoins".
Посмотрите, задайте вопросы.

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

Блок Диспетчер задач (ecoins)

#27

Сообщение ViktorPetrov » 28.09.2021{, 12:12}

ecoins писал(а):
28.09.2021{, 02:05}
Самое упрощенное использование "Диспетчера" можно посмотреть в посте #1328 ветки "Разработки ecoins".
Посмотрите, задайте вопросы.
Проверяем:
условия выполнения свободных задач: номера оперативных,быстрых ,медленных и фоновых задач равны 0(если номера =0 выполняются,если №=1,2, и т.д. не выполняются) .
цикл1:плата1
цикл2:плата1
цикл3:плата1
цикл4:плата1
цикл5:плата1,плата2
цикл6:плата1
цикл7:плата1
цикл8:плата1
цикл9:плата1
цикл10:плата1,плата3
цикл11:плата1
цикл12:плата1
цикл13:плата1
цикл14:плата1
цикл15:плата1,плата4
цикл16:плата1
цикл17:плата1
цикл18:плата1
цикл19:плата1
цикл20:плата1
цикл21:плата1
цикл22:плата1
цикл23:плата1
цикл24:плата1
цикл25:плата1
количество свободных задач 25 номера последовательно изменяются в циклах.
далее алгоритм повторяется с начала (начинает выполнение с цикла1),т.е когда номер свободной задачи будит равен нулю.
Коментарии: подчеркнул в новой справке (Вариант2);
в старой справке: Номер задачи будет меняться от 1 до 25 (по умолчанию) и «держаться» один цикл программы (Вариант1).

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

Блок Диспетчер задач (ecoins)

#28

Сообщение ecoins » 28.09.2021{, 14:08}

ViktorPetrov писал(а):
28.09.2021{, 12:12}
количество свободных задач 25 номера последовательно изменяются в циклах.
далее алгоритм повторяется с начала (начинает выполнение с цикла1),т.е когда номер свободной задачи будит равен нулю.
Понятно или есть вопросы? Описания от версии к версии уточняются и корректируются...
Чтобы визуально наблюдать как меняются номера задач, можно на выход подключить блок вывода на консоль.
Если наблюдать изменение быстрых, фоновых и медленных задач, то торможение проекта не должно быть.
Важно понимать, что в каждом цикле только один из номеров становится не равным 0.
Если несколько задач готовы к выполнению, то выбирается наиболее приоритетная - по выходам диспетчера это сверху вниз.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Блок Диспетчер задач (ecoins)

#29

Сообщение tolochko » 28.09.2021{, 14:13}

ecoins писал(а):
27.09.2021{, 19:16}
5.Счетчик. Заменяет стандартный, но гораздо проще в использовании. Просто вытягивается блок и он уж работает в режиме "Пила".
Нужен другой режим - просто меняется в меню.
Что-то нужно добавить в описании?
[/quo
Вот вопрос по счетчику а именно по вх начальное значение
В стандартном есть еще вх SP по переднему фронту которого значение записывается
А как работает ваш блок

Отправлено спустя 1 минуту 31 секунду:
Немного не правильно скопировал

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

Блок Диспетчер задач (ecoins)

#30

Сообщение ecoins » 28.09.2021{, 14:56}

tolochko писал(а):
28.09.2021{, 14:14}
Вот вопрос по счетчику а именно по вх начальное значение
В стандартном есть еще вх SP по переднему фронту которого значение записывается
А как работает ваш блок
Он работает при каждом входе в блок, когда на входе этого блока EN=1.
Это удобно, когда счетчик используется в плате, которая вызывается с заданной периодичностью, например 100 мс (быстрая задача), или 1 сек (медленная задача).
В проектах чаще всего удобно счетчики использовать платах, которые управляются как "Свободная задача".
В этом случае для тактирования счетчика на вход EN надо подавать сигнал типа "Событие".
Такой сигнал может быть получен с помощью стандартного генератора + выделитель фронта, например RTrig.
Удобнее использовать многофункциональный генератор ecoins - у него есть настраиваемые выходы типов меандр и событие.
Успехов.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Блок Диспетчер задач (ecoins)

#31

Сообщение tolochko » 28.09.2021{, 15:11}

Понял спасибо

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

Блок Диспетчер задач (ecoins)

#32

Сообщение ecoins » 28.09.2021{, 17:31}

Обращу внимание, что FLProg реализован на двух языках - русском и английском.
Благодаря этому у FLProg есть пользователи не только из постсоветского пространства.
Продвигая собственную "Эко-среду" (некоторым на форуме этот термин не нравится) ecoins не скрывает свои амбициозные цели -
создание инструмента для профессиональных систем автоматизации ориентированных на инженеров без опыта программирования.
Наши цели в основном совпадают с декларируемыми целями FLProg.
И пока нас предметно не опровергнут, считаем что создаваемый продукт в использовании лучше, с большими возможностями (и бесплатен) по сравнению с системами программирования PLC разных производителей.
И потому амбиции у нас интернациональны... В том числе и с прицелом на англоязычных специалистов.
-------------------------------------
P.S. Прикладывали неоднократные усилия по привлечению участников форума к разработке библиотек.
Для этого пишем их максимально просто и обильными русскими комментариями.
Сотрудничество не сложилось, а вот комментариев типа "это никому не нужно", "от ecoins один вред", "исключить ecoins из форума" и уже много.
Замечено, что подобные комментарии исходят от одних и тех же участников, в том числе и со званиями "полковник", очень высокой репутацией (>300), которые объединяются в группы и в этот момент их действия чем-то напоминают действия "Волчьей стаи" (термин из 2-ой мировой войны).
--------------------------------------
Мне пришлось пройти суровую школу Академии наук СССР.
В работе пришлось противостоять и академикам, и докторам, и профессорам, и директорам ведущих институтов.
Меня не смущают подобные нападки, их природа мне понятна, и она не лицеприятна для их авторов...
Мое полное имя Нижаде-Гавгани Энвер Асланович. Работал в Научно-Исследовательском Центре по Технологическим Лазерам (НИЦТЛ АН СССР).
Продолжайте "упражняться" в своей "без содержательности"...
--------------------------------------
P.S. "Эко-среда" и библиотеки ecoins безусловно ориентированы на FLProg.
Значительные изменения были произведены при появлении нового редактора.
Написано на C++.
И все созданные продукты абсолютно независимы от FLProg.
Опытные программисты предпочитают делать проекты с их использованием непосредственно в среде Arduino IDE.
В этом случае у разработчика имеются дополнительные возможности, которые пока не просто реализовать в среде FLProg.
----------------------------------------
Спасибо.

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

Блок Диспетчер задач (ecoins)

#33

Сообщение Dryundel » 28.09.2021{, 18:10}

ecoins писал(а):
28.09.2021{, 17:31}
P.S. Прикладывали неоднократные усилия по привлечению участников форума к разработке библиотек.
Для этого пишем их максимально просто и обильными русскими комментариями.
Сотрудничество не сложилось, а вот комментариев типа "это никому не нужно", "от ecoins один вред", "исключить ecoins из форума" и уже много.
Замечено, что подобные комментарии исходят от одних и тех же участников, в том числе и со званиями "полковник", очень высокой репутацией (>300), которые объединяются в группы и в этот момент их действия чем-то напоминают действия "Волчьей стаи" (термин из 2-ой мировой войны).
Ну не нагнетайте Подполковник. Ваша репутация красноречиво говорит об отношении к Вам на форуме. Многие оценили Ваши рекомендации. И даже если кому то использование библиотек вашего коллектива, по каким то причинам не нравится, это не повод делать пессимистические выводы.

Да. Не все блоки из библиотеки удобны для среднестатистического пользователя FLProg. Ну так это не от того что они плохо работают, наоборот работают замечательно. А от того что с ними сложно разбираться. Но и это не все трудности. В первую очередь хочется чего то постоянного, монументального. Такого, которое если работало на ранних версиях библиотек, то работало бы и на свежих релизах.

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

А вот обвинять других в том что они не хотят воспитывать вашего ребенка, по меньшей мере не правильно.
Вот что Вы предложили в замен помощи? Я не про какие то барыши говорю. Что сейчас пользователи имеют от того, что когда то помогали Вам? Неработающие на новых библиотеках проекты, созданные ранее? Это награда?

Ладно, извините за резкость последнего абзаца. Ну так уж я это вижу. Могу и ошибаться. :)

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

Блок Диспетчер задач (ecoins)

#34

Сообщение ecoins » 28.09.2021{, 21:28}

GDAN7777 писал(а):
28.09.2021{, 21:11}
На вас здесь никто не нападает,большинство просто указывают на ваши недоработки.Почему вы не хотите прислушаться к нам,как к конечным потребителям вашего продукта?Вам полфорума талдычет об этом уже не один год.....
Тех кто "талдычет" я стараюсь не слушать.
На все содержательные замечания и предложения стараемся реагировать.
И вновь Вы написали что-то общее - не о конкретной проблеме, не о конкретном блоке, а о том "что полфорума...."
---
И Вам конкретно уже не один раз писал, чтобы Вы посмотрели последние блоки и описания, однако...
Вы предлагаете прислушаться к Вас как "к конкретным потребителям вашего продукта".
Но Вы не из этой группы - потребители пользуются и задают конкретные вопросы.
Вы же предпочитаете "талдычить в стае".
Выше написано о тех кто "талдычет".

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Блок Диспетчер задач (ecoins)

#35

Сообщение WildCat » 27.12.2022{, 17:50}

ecoins,
Здравствуйте.
В своих изысканиях дошел до применения диспетчера задач.

Переложил прошивку с esp32 на atmega 2560.
На есп было ~8.000 циклов в сек, на меге та же программа ~700 циклов.
Применил диспетчер, на меге стало 10.000 циклов )))
Результат впечатляет, но есть вопросы.

Есть ли какие-то рекомендации, какие процессы на какие задачи назначать? Этот вопрос не совсем понятен.
У меня плата с регистрами ввода/вывода на быстрой задаче. И работают как-то криво.

Вообще, не совсем понятно, как определять приоритет задач для оптимизации.
Можете просветить?

skrickis
Рядовой
Сообщения: 86
Зарегистрирован: 05.02.2017{, 12:02}
Репутация: 9

Блок Диспетчер задач (ecoins)

#36

Сообщение skrickis » 27.12.2022{, 19:03}

WildCat писал(а):
27.12.2022{, 17:50}
не совсем понятно, как определять приоритет задач для оптимизации.
тоже интересует этот вопрос а то мутное представление как правильно организовать дипечер задач :smile453:

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

Блок Диспетчер задач (ecoins)

#37

Сообщение ecoins » 28.12.2022{, 04:04}

WildCat писал(а):
27.12.2022{, 17:50}
Вообще, не совсем понятно, как определять приоритет задач для оптимизации.
Можете просветить?
Могу, но очень и очень схематично - это лучше принять как есть...
1.Каждый даже самый простой блок FLProg отнимает mcs (иногда ms) . Если все платы выполняются без условий, то и все блоки соответственно выполняются в каждом цикле loop(). Практически нет блоков которые выполняются меньше mcs - 10,20, 100 и более mcs.
Например вроде простая функция analogRead на AVR занимает >130mcs. И их этих небольших но никчемных с точки зрения проекта(например ни так часто можно опрашивать ADC (7 кГц вряд-ли нужно - а если нужно, то другие технические средства привлекаются) очень быстро набегает ОДНА МИЛЛИСЕКУНДА - а это уже ограничивает частоту вызова 1кГц.
2. Самое простое решение - используйте диспетчер и только свободные задачи - сразу получите ощутимый результат.
3.Если Вы используете блоки ecoins, то они оптимизированы по времени и использование свободных задач в основном решает проблему. Условно каждая плата в большом проекте будет вызываться 1 раз в 100-500mcs.
4.Есть заведомо медленные операции (сильно проявляется на контроллерах AVR) - это строковые операции, их лучше выделять в медленные задачи. Совершенно неожиданно оказалась очень медленными операциями записи переменных float в регистры ModBus - так программного оказалось реализовано. Их тоже лучще в медленные (или быстрые) записывать.
5.В действительности чаще всего вызываются "свободные" задачи - термин пускай не смущает, он создан ecoins, долго искали название, остановились на этом. В операционных системах есть термин фоновая задача, он у нас тоже используется, но это не то.
6.Для оптимизации быстродействия есть есть встроенный инструмент - вывод на LCD HD44780 (можно и на Nextion) - библиотеки ecoins для этих устройств очень быстрые и "не тормозят".
==================
Простой ВЫВОД - ВСЕГДА вставляйте во ВСЕ проекты диспетчер задач и все платы выполняете по условиям. На простых проектах начинайте со СВОБОДНЫХ задач, во многих случаях этого бывает достаточно.

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Блок Диспетчер задач (ecoins)

#38

Сообщение WildCat » 28.12.2022{, 04:48}

ecoins, более-менее ясно, спасибо.

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Блок Диспетчер задач (ecoins)

#39

Сообщение WildCat » 13.02.2023{, 17:21}

ecoins, здравствуйте. Ещё вопрос появился.

Вот скажем, блок фазового регулятора стоит или нет ставить в плату, которая управляется диспетчером? Не будет ли ошибок регулирования?
В фазорезке же время считается, а диспетчер по сути плату отключает.

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

Блок Диспетчер задач (ecoins)

#40

Сообщение ecoins » 13.02.2023{, 17:36}

WildCat писал(а):
13.02.2023{, 17:21}
Вот скажем, блок фазового регулятора стоит или нет ставить в плату, которая управляется диспетчером? Не будет ли ошибок регулирования?
В фазорезке же время считается, а диспетчер по сути плату отключает.
Наверное лучше вызывать без условий в каждом цикле.
Даже если цикл проекта 30 мкс, то при заданных по умолчанию кол-во 50, период вызова будет 1500мкс, для 50 кГц это значительно для 50гц(полупериод =100мс).
Зависит и от процессорв и о проекта,, лучше замерять - ведь что-то другое может тормозить.... Можно и кол-во свободных задач уменьшить не необходимых нескольких штук.
Хорош и вариант - свободная задача по условию "не равно 0"

Ответить

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