что даёт разделение схем по платам ?

Вопросы от новичков
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

к примеру у меня на одной плате находится 4 одинаковые схемы исполнения
и я так понимаю что бы четвёртая начала исполняться ардуина должна исполнить поэтапно первые три

а если я создам 4 платы для каждой схемы то теоретически ардуина будет исполнять все 4 схемы одновременно как бы паралельно ?
если так то если ей не хватит вычислительной мощности то будут лаги и ошибки в работе ?
Аватара пользователя
Phazz
Полковник
Сообщения: 3128
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

что даёт разделение схем по платам ?

Сообщение Phazz »

не параллельно, а последовательно. Если контроллеру не хватает вычислительной мощности, то программа просто медленней выполняется.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

что даёт разделение схем по платам ?

Сообщение Alias »

Разделение проекта на отдельные платы позволяет гибко использовать вычислительные ресурсы. Например, у вас есть куча датчиков, реле, сложных формул пересчета функций многочисленных алгоритмов. Зачем все это гонять каждый цикл? Что за миллисекунды может такого произойти, чтобы это было оправданно?
Действительно, можно датчики вынести на отдельную плату, которая будет исполняться каждые - допустим - десять секунд. Информацию выводить на дисплей ежесекундно, отдельными платами щелкать разными реле, пересчитывать сложные функции ежеминутно и так далее. Кроме того, на отдельных платах удобно размещать то, то вызывается только по конкретным событиям.
Перебор? Возможно, но я этим активно пользуюсь.
Sanbi4
Рядовой
Сообщения: 76
Зарегистрирован: 30 окт 2019, 17:58
Имя: Сергей

что даёт разделение схем по платам ?

Сообщение Sanbi4 »

иными словами - каждая плата может выполняться по какому-либо условию.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

у меня 4 шима
в какой то момент может 1 работать в какой то все 4
2020-06-05_165001.png
если раскидать их по платам то что бы они работали нужно вводить для каждой платы переменную
если я правильно понял то созданную переменную "запуск платы" мы подключает к кнопке "вкл" и плата включается запуская шим
2020-06-05_165816.png
тока не понятно выполнение по условию это значит один раз выполнить ? или оно будет выполняться по условию пока будет присутствовать единица а какой тогда смысл в цикличности пункта ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

что даёт разделение схем по платам ?

Сообщение Ingwar »

Di123 писал(а): 05 июн 2020, 13:10 или оно будет выполняться по условию пока будет присутствовать единица а какой тогда смысл в цикличности пункта ?
Выполняться в цикле, это когда плата проверяет условие цикла и если есть разрешение, выполняется только эта плата, игнорируя все другие.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

ясно
а можно тогда какнибудь присвоить 14 номеру первый номер компиляции
а то получается что сначала все блоки пробегутся а потом только спросят у платы а можно ли было это делать
2020-06-05_175835.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

По моему мнению хорошим решением с ответом на уже поставленные и в будущем возникающие вопросы является использование во всех вновь создаваемых проектах планировщик задач (диспетчер), который управляет временем и последовательностью (или по каким то произвольным требованиям) вызовом задач.
Задача - это одна или несколько плат (их удобнее размещать одну за другой) с одним и тем же условием выполнения.
Желательно, чтобы диспетчер обеспечивает вызов только одной задачи в каждом цикле loop().
----------
Такой диспетчер не сложно написать самостоятельно.
--------
Мы уже давно и всегда используем собственный диспетчер задач ecoins во всех проектах не зависимо от их размера.
Последний раз редактировалось ecoins 05 июн 2020, 16:02, всего редактировалось 1 раз.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

что даёт разделение схем по платам ?

Сообщение Ardudue »

Di123 писал(а): 05 июн 2020, 14:00 а можно тогда какнибудь присвоить 14 номеру первый номер компиляции
поставить слева в верху
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

Di123 писал(а): 05 июн 2020, 14:00 а то получается что сначала все блоки пробегутся а потом только спросят у платы а можно ли было это делать
Посмотрел повнимательнее проект.
Узким местом у него является вывод в каждом цикле 4-х сообщений в дисплей - операция медленная, особенно если дисплей работает через i2c.
Для контроллеров AVR (UNO,Nano,MEGA) ощутимое время процессор тратит и на работу со строковыми переменными.
Работу со строковыми переменными и дисплеем правильно разнести по другим платам, которые вызывать последовательно с периодом порядка 100 мс.
Для визуального восприятия дисплея это почти мгновенное обновление.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

[ref]Ardudue[/ref], где именно там слева вверху

[ref]ecoins[/ref], тоесть эти 4 дисплея перенести каждый на свою плату и добавить переменную включения
типо так ?
2020-06-06_095651.png
а где выставлять опрос плат 100мс
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

Да, примерно так. Но лучше использовать готовый планировщик и проектировать через следующую парадигму:
"В каждый момент времени выполняется одна задача (без учета того, что может работать по прерываниям). После завершения задачи или её части (они должны по времени занимать немного, например не более 10 мс), управление возвращается планировщику, а он вызывает следующую задачу."
В FLProg имеются возможности выполнения плат по условиям (Вы его применяете), которые позволяют реализовать этот механизм.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

да пока перестало всё работать
я лиш сделал условие и она не запускается плата
убираю условие платы всё работает
2020-06-06_141406.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

что даёт разделение схем по платам ?

Сообщение Ingwar »

Di123 писал(а): 06 июн 2020, 10:14 я лиш сделал условие и она не запускается плата
Самая распространенная ошибка...
Итак, вопрос - переменная "запуск платы" при включении питания содержит 1 или 0? Если "0" ("вкл" притянут к +), то плата не будет выполняться и соответственно нет опроса кнопки...
Значит что, - условия выполнения должны находится вне управляемой платы (за редким исключением чтения из еепром или иной разовой операции).
И не забывайте, что все значения на плате "замораживаются" в том состоянии, в котором плата находилась до отключения и не сбрасываются сами волшебным образом.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

при включении питания содержит 0
переделал по вашему теперь работает включение первой платы если на второй подать единицу
2020-06-07_083256.png
только перестал работать теперь шим после того как я сделал разрешение записи на него
притом самое невероятное что единица физически отсутствует на переменной включения хотя вторая плата видит что единица есть раз включает первую плату
тоесть я вижу что загорается дисплей и блок маштабирования работает на нём отоброжая показания процентной состовляющей
притом самое забавное что единица физически отсутствует и на второй плате неважно включен выключатель или нет но приэтом вторая плата понимает включен он или нет
это баг такой ?

Отправлено спустя 9 минут 58 секунд:
попробовал запитать шим от компаратора но тут тоже какой то баг ибо если включить и выключить то шим отключается не до конца и еле еле горит светодиод на его месте то есть оптрон будет приоткрыт немного
теоретически возможно выключатель в потенциометре уже выключился но сам ползунок находится на дорожке в конце но это не важно я же ведь на второй плате сказал что бы всё выключилось на первой плате
2020-06-07_085100.png
Отправлено спустя 8 минут :
и вообще то что я убрал переменную включения с первой платы но приэтом она вкючается получается вторая плата даёт примение не к первой плате а ко всему проекту
а как же быть дальше когда будет таких четыре одинаковые платки но каждая должна запускаться отдельно

Отправлено спустя 4 минуты 10 секунд:
возвращаю переменную на первую плату и прописываю первой плате связь со второй через неё но тогда ничего вообще не работает
2020-06-07_090648.png
Отправлено спустя 12 минут 2 секунды:
ладно методом тыка нашол рабочию комбинацию с переменой
2020-06-07_091542.png
ecoins писал(а): 06 июн 2020, 10:07 Да, примерно так. Но лучше использовать готовый планировщик и проектировать через следующую парадигму:
"В каждый момент времени выполняется одна задача (без учета того, что может работать по прерываниям). После завершения задачи или её части (они должны по времени занимать немного, например не более 10 мс), управление возвращается планировщику, а он вызывает следующую задачу."
В FLProg имеются возможности выполнения плат по условиям (Вы его применяете), которые позволяют реализовать этот механизм.
а можете выложить пример рабочий с планировщиком по платам а то я на словах несовсем понимаю как это реализовывается

Отправлено спустя 35 минут 10 секунд:
в общем вообще ничего не работает
2020-06-07_095447.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

Di123 писал(а): 07 июн 2020, 05:55 а можете выложить пример рабочий с планировщиком по платам а то я на словах несовсем понимаю как это реализовывается
Выложите свой проект (чтобы не перерисовывать) и я что-то набросаю
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

да я хотел сам разобраться и дорисовать свой проект по стороннему рабочему проекту посмотрев как там реализован планировщик
регулятор мощности на плитку - 1 — копия.flp
Отправлено спустя 4 минуты 46 секунд:
сама схема полностью рабочая
я только что на ней блины стряпал в навесной сборке
единственное раздрожает даже имея запас в маштабировании на дисплей всеравно часто перемаргивают цыфры в конце так сказать на грани границе обнуления но это задержку на отоброжения данных я сам доработаю

Отправлено спустя 5 минут 48 секунд:
пробывал вводить генератор на опрос кнопки но он тоже не помогает ничего не работает
2020-06-07_161350.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

Посмотрел проект. Ближе к ночи что-то поделаю.
У Вас проблема и с дисплеем известная - как она решается нам понятно.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

что даёт разделение схем по платам ?

Сообщение Di123 »

очень странно но мои задумки с дисплеем тоже не работают
ставил таймер на включение в 1 сек но опрос дисплея это не влияет
поставил генератор несиметричный с ожиданием в 1 сек паузы тоже игнорируется
2020-06-07_190004.png
тоесть простейшая логика когда перменная должна передавать данные по наличию 1 на входе ен а в данном случае там стоит 1 сек ожидания и 10мс импульса уходит в игнор что есть что нету этой задержки

может у меня флпрог багованый

Отправлено спустя 45 минут :
[ref]ecoins[/ref], дисплей я победил нашол в детекторе вход опроса поставил пол сек набор цыфр стал вялым но мельтишения уже не раздражают
2020-06-07_194126.png
а вот с платами ничего не получается
последнии иследования показывают что работа плат неправельная в плане как логики мышления так и работоспособности
2020-06-07_194224.png
на первой плате всегда присутствует 1 на выходе переменной что не должно быть и более того она там никогда не пропадает включаю я или изменяю потенциометр
на второй плате всегда 0 у включателя неважно подаю я 1 или 0 на вход переменной через него
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

что даёт разделение схем по платам ?

Сообщение ecoins »

Возможно я что-то не понял по Вашей задумке, в итоге сделал рыбу проекта, который можно развивать.
Он проверен на Nano.
Для его работы нужно прикрепить две библиотеки:
RT_10_HW_LCD44780_v2.3.zip
RT_05_HW_TASK_v.1.2.zip
Сам проект:
[spoiler]
Схема проекта.png
[/spoiler]
Test_регулятор мощности для плитки_в02_07062020 .flp
----
Средний цикл loop() -20мкс, ничего не тормозит, звездочка в первой позиции дисплея моргает каждые 500мс.
Проект можно улучшить.
----
Будут вопросы - пишите.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «Начинающим»

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

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