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

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

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

#1

Сообщение SirYorik » 22.02.2016{, 15:31}

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

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

если это уже было в видео или на форуме(не нашел) ткните пожалуйста.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#2

Сообщение Олег » 22.02.2016{, 15:58}

Задайте разрешение работы в зависимости от того в каком меню находитесь.

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#3

Сообщение SirYorik » 22.02.2016{, 17:30}

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

вот к примеру плата на картинке.
Вложения
5116680.jpg

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#4

Сообщение Олег » 22.02.2016{, 17:41}

Я-бы разрешил запись в переменную PWM только для конкретного пункта меню, если PWM используется и при других режимах. Для этого добавьте для блока И еще один вход и подавайте на него 1 при нужном пункте меню.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#5

Сообщение rw6cm » 22.02.2016{, 17:42}

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

Блин пока писал уже ответили. Хотя правда еще не понял, буду переваривать.
Последний раз редактировалось rw6cm 22.02.2016{, 17:45}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#6

Сообщение Олег » 22.02.2016{, 17:48}

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

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#7

Сообщение SirYorik » 22.02.2016{, 17:52}

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

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

еще точечный подход очень не нагляден в схеме.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#8

Сообщение Олег » 22.02.2016{, 18:04}

Уже пару дней обсуждается тема о возможности сделать вход En для пользовательских блоков в FBD, если вдруг это будет реализовано, тогда сможете использовать эту возможность. А пока что есть, недостатки визуализации.

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#9

Сообщение SirYorik » 22.02.2016{, 18:13}

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



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

if (_gtv12) {
_gtv4 = _count2P;
}
if (( (_gtv12) && (( ((_gtv9) <= (0.17)) && ((_gtv9) >= (-0.17)) )) )) {
_gtv4 = (_gtv4)+(_swi1);
}
Вложения
8185149.jpg

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#10

Сообщение rw6cm » 22.02.2016{, 18:17}

Понял о чем.
Думал что  что то пропустил :)
Если SirYorik, знаете Си, то можно платы сделать блоками CODE, и для каждой предусмотреть En, а там уже логикой переключать.
Win10-64, FLProg (portable)

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#11

Сообщение Олег » 22.02.2016{, 18:20}

Не помню чтобы такая возможность была и в промышленных контроллерах, в FBD и Ladder программа выполняется по-порядку, без ветвления.
Последний раз редактировалось Олег 22.02.2016{, 18:20}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#12

Сообщение rw6cm » 22.02.2016{, 18:40}

Олег писал(а):Не помню чтобы такая возможность была и в промышленных контроллерах
Технология такими шагами в перед чешет, что сам себя ловлю на мысли, что нет ни чего не возможного Изображение
Последний раз редактировалось rw6cm 22.02.2016{, 18:40}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#13

Сообщение SirYorik » 22.02.2016{, 18:48}

Олег писал(а):в промышленных контроллерах, в FBD и Ladder программа выполняется по-порядку, без ветвления.
тогда надо как то думать по другому,
скриптование во всяких Питонах,Перлах влияет.
rw6cm писал(а):платы сделать блоками CODE, и для каждой предусмотреть En
можно, но надобность FLProg становится сомнительной, увы

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#14

Сообщение Олег » 22.02.2016{, 19:56}

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

Это точно, в конце восьмидесятых компьютеры ремонтировал, пришла новая модель из Воронежа - настольный компьютер Электроника 85. Как мы обсматривали винчестер невиданного объема 5Мб и размером где-то 10*15*20 см. А теперь терабайты в корпусах намного меньших.
Последний раз редактировалось Олег 22.02.2016{, 19:58}, всего редактировалось 1 раз.

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#15

Сообщение Naladchik » 22.02.2016{, 22:33}

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

Я так понимаю, что появится в следующей версии.
Последний раз редактировалось Naladchik 22.02.2016{, 22:37}, всего редактировалось 1 раз.
Win10-64. FLProg Portable.
Изображение

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

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

#16

Сообщение DWD » 22.02.2016{, 23:40}

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

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

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

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

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

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

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

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

Как-то так...
Последний раз редактировалось DWD 22.02.2016{, 23:43}, всего редактировалось 1 раз.
Изображение

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#17

Сообщение Олег » 22.02.2016{, 23:50}

Не все так однозначно, похоже объем памяти зависит от того где этот блок используется. Сжимал один проект, у меня было довольно много блоков дисплея раскидано, стал менять, где возможно, на мультиплексоры. Где-то объем кода сокращался, а где-то почти не менялся, закономерности так и не выявил, да и не до того было.

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#18

Сообщение SirYorik » 23.02.2016{, 05:48}

ну, то был просто пример для иллюстрации.
представьте, что у вас сложный проект на ATMega2560  с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.
Последний раз редактировалось SirYorik 23.02.2016{, 08:12}, всего редактировалось 1 раз.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

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

#19

Сообщение DWD » 23.02.2016{, 09:31}

200 плат? Не представляю.
С трудом заставляю себя хоть некотороые фрагменты схемы создавать на отдельной плате.
А так, в основном, всё на одной плате делаю... Изображение
Последний раз редактировалось DWD 23.02.2016{, 09:34}, всего редактировалось 1 раз.
Изображение

SirYorik
Сержант
Сообщения: 124
Зарегистрирован: 04.10.2015{, 10:01}
Репутация: 0
Откуда: Томск

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

#20

Сообщение SirYorik » 23.02.2016{, 09:53}

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

Ответить

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