включение-отключение плат в зависимости от режима программы

На этом форуме Вы можете задать вопросы знатокам программы и автору.
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

допустим сделал я меню, в котором включаю один из нескольких режимов работы (пример, блок питания: 1 - стабилизация напряжения, 2 - стабилизация тока, 3 - зарядка аккумулятра с определенной очередностью режимов 1 и 2). не все платы из программы нужны, а то и вредны некоторые, в каждом отдельном режиме.

смотрю большие flp c меню с форума, не могу понять как такое сделать. в С просто и понятно: в loop() пачка if (mode==Х) { ..... }. а в FBD ?

если это уже было в видео или на форуме(не нашел) ткните пожалуйста.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Задайте разрешение работы в зависимости от того в каком меню находитесь.
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

Олег писал(а):Задайте разрешение работы в зависимости от того в каком меню находитесь.
Это понятно, только чем, каким блоком? компаратором? ну ладно, а что именно к нему подключать что бы включить/выключить всю плату.

вот к примеру плата на картинке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Я-бы разрешил запись в переменную PWM только для конкретного пункта меню, если PWM используется и при других режимах. Для этого добавьте для блока И еще один вход и подавайте на него 1 при нужном пункте меню.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

включение-отключение плат в зависимости от режима программы

Сообщение rw6cm »

Наверно что то и я упустил. Хотелось бы тоже узнать Изображение .
Что платы выборочно можно не компилировать знаю, а как программно их выключать нет.
Весь во внимании! Заранее благодарен!

Блин пока писал уже ответили. Хотя правда еще не понял, буду переваривать.
Последний раз редактировалось rw6cm 22 фев 2016, 17:45, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Похоже не сошлись в терминологии, насколько я понял топикстартера речь шла о том чтобы исключить влияние одних плат на другие при разных пунктах меню. Но если речь идет о выключении то тут я пас.
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

ну "выключать плату" это типа образно, на логическом так сказать уровне.  аналог if (mode==Х) { ..дофига разного.. }
Олег писал(а):Я-бы разрешил запись в переменную PWM только для конкретного пункта меню, если PWM используется и при других режимах.
ну, вот предполагается создание платы "Стабилизатор тока", которая будет рулить этой же переменной PWM но по другим основаниям.

если отключать точечно, то получится масса холостой работы в прошивке, ведь вся плата отработает, но вхолостую. (хотя надо глянуть в сишный код, как оно там будет выглядеть)

еще точечный подход очень не нагляден в схеме.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Уже пару дней обсуждается тема о возможности сделать вход En для пользовательских блоков в FBD, если вдруг это будет реализовано, тогда сможете использовать эту возможность. А пока что есть, недостатки визуализации.
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

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



Код: Выделить всё

if (_gtv12) {
_gtv4 = _count2P;
}
if (( (_gtv12) && (( ((_gtv9) <= (0.17)) && ((_gtv9) >= (-0.17)) )) )) {
_gtv4 = (_gtv4)+(_swi1);
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

включение-отключение плат в зависимости от режима программы

Сообщение rw6cm »

Понял о чем.
Думал что  что то пропустил :)
Если SirYorik, знаете Си, то можно платы сделать блоками CODE, и для каждой предусмотреть En, а там уже логикой переключать.
Win10-64, FLProg (portable)
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Не помню чтобы такая возможность была и в промышленных контроллерах, в FBD и Ladder программа выполняется по-порядку, без ветвления.
Последний раз редактировалось Олег 22 фев 2016, 18:20, всего редактировалось 1 раз.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

включение-отключение плат в зависимости от режима программы

Сообщение rw6cm »

Олег писал(а):Не помню чтобы такая возможность была и в промышленных контроллерах
Технология такими шагами в перед чешет, что сам себя ловлю на мысли, что нет ни чего не возможного Изображение
Последний раз редактировалось rw6cm 22 фев 2016, 18:40, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

Олег писал(а):в промышленных контроллерах, в FBD и Ladder программа выполняется по-порядку, без ветвления.
тогда надо как то думать по другому,
скриптование во всяких Питонах,Перлах влияет.
rw6cm писал(а):платы сделать блоками CODE, и для каждой предусмотреть En
можно, но надобность FLProg становится сомнительной, увы
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Цитата rw6cmТехнология такими шагами в перед чешет,

Это точно, в конце восьмидесятых компьютеры ремонтировал, пришла новая модель из Воронежа - настольный компьютер Электроника 85. Как мы обсматривали винчестер невиданного объема 5Мб и размером где-то 10*15*20 см. А теперь терабайты в корпусах намного меньших.
Последний раз редактировалось Олег 22 фев 2016, 19:58, всего редактировалось 1 раз.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

включение-отключение плат в зависимости от режима программы

Сообщение Naladchik »

Олег писал(а):вход En для пользовательских блоков в FBD, если вдруг это будет реализовано
Судя по тому, что тема уже перемещена в "Новый функционал. Выполнено" то значит реализовано.
http://forum.flprogwiki.ru/viewtopic.php?f=14&t=728

Я так понимаю, что появится в следующей версии.
Последний раз редактировалось Naladchik 22 фев 2016, 22:37, всего редактировалось 1 раз.
Win10-64. FLProg Portable.
Изображение
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

включение-отключение плат в зависимости от режима программы

Сообщение DWD »

"Если бы программисты строили дома, то первый залетевший дятел разрушил бы цивилизацию". :)

Это я к тому, что написание программы с учётом отключения части кода ещё больше усугубит сложившуюся ситуацию с памятью программ Ардуино.
Ведь уже отмечалось, что буквально несколько нарисованных блоков прилично увеличивают объём скомпилированного кода. Та же самая программа, но написанная на ассемблере занимает не в пример меньше места.

В итоге имеем кучу кода, из которого работает только кая-то часть. Остальная часть тупо занимает место.

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

Скажем, SirYorik хочет сделать три разные функции:
1 - стабилизация напряжения, 2 - стабилизация тока, 3 - зарядка аккумулятра.
И он что, собирается рисовать три независимых куска кода?..

Но чем отличаются эти функции?
Только названием (напряжение или ток) и исходными-конечными величинами (18В или 5А). Внутри же МК они обрабатываются одинаково: на вход подаются цифровые сигналы 0/1 или аналоговые 0...1023 и на выходах выставляются либо цифровые сигналы 0/1, либо аналоговые 0...255.
Суть же обработки одинакова - получив сигнал, сравнить с заданным и при несоответствии выработать сигнал ошибки для корректировки параметра.

Получается, что нужно создать один общий функциональный блок обработки и несколько блоков согласования. Для измерения напряжения входной сигнал преобразовать из 0...18В в 0...1023, а для измерения тока - из 0...5А в 0...1023. Да на дисплей выводить значения, переключая только размерность - напряжение или ток.

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

Как-то так...
Последний раз редактировалось DWD 22 фев 2016, 23:43, всего редактировалось 1 раз.
Изображение
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

включение-отключение плат в зависимости от режима программы

Сообщение Олег »

Не все так однозначно, похоже объем памяти зависит от того где этот блок используется. Сжимал один проект, у меня было довольно много блоков дисплея раскидано, стал менять, где возможно, на мультиплексоры. Где-то объем кода сокращался, а где-то почти не менялся, закономерности так и не выявил, да и не до того было.
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

ну, то был просто пример для иллюстрации.
представьте, что у вас сложный проект на ATMega2560  с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.
Последний раз редактировалось SirYorik 23 фев 2016, 08:12, всего редактировалось 1 раз.
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

включение-отключение плат в зависимости от режима программы

Сообщение DWD »

200 плат? Не представляю.
С трудом заставляю себя хоть некотороые фрагменты схемы создавать на отдельной плате.
А так, в основном, всё на одной плате делаю... Изображение
Последний раз редактировалось DWD 23 фев 2016, 09:34, всего редактировалось 1 раз.
Изображение
SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04 окт 2015, 10:01
Откуда: Томск

включение-отключение плат в зависимости от режима программы

Сообщение SirYorik »

DWD писал(а):Не представляю.
на полсотни уже видел здесь
Ответить

Вернуться в «Спросить у знатоков»

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

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