включение-отключение плат в зависимости от режима программы
включение-отключение плат в зависимости от режима программы
допустим сделал я меню, в котором включаю один из нескольких режимов работы (пример, блок питания: 1 - стабилизация напряжения, 2 - стабилизация тока, 3 - зарядка аккумулятра с определенной очередностью режимов 1 и 2). не все платы из программы нужны, а то и вредны некоторые, в каждом отдельном режиме.
смотрю большие flp c меню с форума, не могу понять как такое сделать. в С просто и понятно: в loop() пачка if (mode==Х) { ..... }. а в FBD ?
если это уже было в видео или на форуме(не нашел) ткните пожалуйста.
смотрю большие flp c меню с форума, не могу понять как такое сделать. в С просто и понятно: в loop() пачка if (mode==Х) { ..... }. а в FBD ?
если это уже было в видео или на форуме(не нашел) ткните пожалуйста.
включение-отключение плат в зависимости от режима программы
Задайте разрешение работы в зависимости от того в каком меню находитесь.
включение-отключение плат в зависимости от режима программы
Это понятно, только чем, каким блоком? компаратором? ну ладно, а что именно к нему подключать что бы включить/выключить всю плату.Олег писал(а):Задайте разрешение работы в зависимости от того в каком меню находитесь.
вот к примеру плата на картинке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
включение-отключение плат в зависимости от режима программы
Я-бы разрешил запись в переменную PWM только для конкретного пункта меню, если PWM используется и при других режимах. Для этого добавьте для блока И еще один вход и подавайте на него 1 при нужном пункте меню.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
включение-отключение плат в зависимости от режима программы
Наверно что то и я упустил. Хотелось бы тоже узнать
.
Что платы выборочно можно не компилировать знаю, а как программно их выключать нет.
Весь во внимании! Заранее благодарен!
Блин пока писал уже ответили. Хотя правда еще не понял, буду переваривать.

Что платы выборочно можно не компилировать знаю, а как программно их выключать нет.
Весь во внимании! Заранее благодарен!
Блин пока писал уже ответили. Хотя правда еще не понял, буду переваривать.
Последний раз редактировалось rw6cm 22 фев 2016, 17:45, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
включение-отключение плат в зависимости от режима программы
Похоже не сошлись в терминологии, насколько я понял топикстартера речь шла о том чтобы исключить влияние одних плат на другие при разных пунктах меню. Но если речь идет о выключении то тут я пас.
включение-отключение плат в зависимости от режима программы
ну "выключать плату" это типа образно, на логическом так сказать уровне. аналог if (mode==Х) { ..дофига разного.. }
если отключать точечно, то получится масса холостой работы в прошивке, ведь вся плата отработает, но вхолостую. (хотя надо глянуть в сишный код, как оно там будет выглядеть)
еще точечный подход очень не нагляден в схеме.
ну, вот предполагается создание платы "Стабилизатор тока", которая будет рулить этой же переменной PWM но по другим основаниям.Олег писал(а):Я-бы разрешил запись в переменную PWM только для конкретного пункта меню, если PWM используется и при других режимах.
если отключать точечно, то получится масса холостой работы в прошивке, ведь вся плата отработает, но вхолостую. (хотя надо глянуть в сишный код, как оно там будет выглядеть)
еще точечный подход очень не нагляден в схеме.
включение-отключение плат в зависимости от режима программы
Уже пару дней обсуждается тема о возможности сделать вход En для пользовательских блоков в FBD, если вдруг это будет реализовано, тогда сможете использовать эту возможность. А пока что есть, недостатки визуализации.
включение-отключение плат в зависимости от режима программы
ну вот приделал разрешение записи результата, как и ожидалось в коде только запись и оборачивается, и на схеме выглядит отстойно, и холостая работа есть.
Код: Выделить всё
if (_gtv12) {
_gtv4 = _count2P;
}
if (( (_gtv12) && (( ((_gtv9) <= (0.17)) && ((_gtv9) >= (-0.17)) )) )) {
_gtv4 = (_gtv4)+(_swi1);
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
включение-отключение плат в зависимости от режима программы
Понял о чем.
Думал что что то пропустил
Если SirYorik, знаете Си, то можно платы сделать блоками CODE, и для каждой предусмотреть En, а там уже логикой переключать.
Думал что что то пропустил

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

Последний раз редактировалось rw6cm 22 фев 2016, 18:40, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
включение-отключение плат в зависимости от режима программы
тогда надо как то думать по другому,Олег писал(а):в промышленных контроллерах, в FBD и Ladder программа выполняется по-порядку, без ветвления.
скриптование во всяких Питонах,Перлах влияет.
можно, но надобность FLProg становится сомнительной, увыrw6cm писал(а):платы сделать блоками CODE, и для каждой предусмотреть En
включение-отключение плат в зависимости от режима программы
Цитата rw6cmТехнология такими шагами в перед чешет,
Это точно, в конце восьмидесятых компьютеры ремонтировал, пришла новая модель из Воронежа - настольный компьютер Электроника 85. Как мы обсматривали винчестер невиданного объема 5Мб и размером где-то 10*15*20 см. А теперь терабайты в корпусах намного меньших.
Это точно, в конце восьмидесятых компьютеры ремонтировал, пришла новая модель из Воронежа - настольный компьютер Электроника 85. Как мы обсматривали винчестер невиданного объема 5Мб и размером где-то 10*15*20 см. А теперь терабайты в корпусах намного меньших.
Последний раз редактировалось Олег 22 фев 2016, 19:58, всего редактировалось 1 раз.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
включение-отключение плат в зависимости от режима программы
Судя по тому, что тема уже перемещена в "Новый функционал. Выполнено" то значит реализовано.Олег писал(а):вход En для пользовательских блоков в FBD, если вдруг это будет реализовано
http://forum.flprogwiki.ru/viewtopic.php?f=14&t=728
Я так понимаю, что появится в следующей версии.
Последний раз редактировалось Naladchik 22 фев 2016, 22:37, всего редактировалось 1 раз.
включение-отключение плат в зависимости от режима программы
"Если бы программисты строили дома, то первый залетевший дятел разрушил бы цивилизацию". 
Это я к тому, что написание программы с учётом отключения части кода ещё больше усугубит сложившуюся ситуацию с памятью программ Ардуино.
Ведь уже отмечалось, что буквально несколько нарисованных блоков прилично увеличивают объём скомпилированного кода. Та же самая программа, но написанная на ассемблере занимает не в пример меньше места.
В итоге имеем кучу кода, из которого работает только кая-то часть. Остальная часть тупо занимает место.
Может нужно сменить парадигму и рисовать программу так, что бы, наоборот, уменьшить число неработающих в данный момент времени блоков? Строить схему так, что бы каждый блок был задействован в нескольких функциях.
Скажем, SirYorik хочет сделать три разные функции:
1 - стабилизация напряжения, 2 - стабилизация тока, 3 - зарядка аккумулятра.
И он что, собирается рисовать три независимых куска кода?..
Но чем отличаются эти функции?
Только названием (напряжение или ток) и исходными-конечными величинами (18В или 5А). Внутри же МК они обрабатываются одинаково: на вход подаются цифровые сигналы 0/1 или аналоговые 0...1023 и на выходах выставляются либо цифровые сигналы 0/1, либо аналоговые 0...255.
Суть же обработки одинакова - получив сигнал, сравнить с заданным и при несоответствии выработать сигнал ошибки для корректировки параметра.
Получается, что нужно создать один общий функциональный блок обработки и несколько блоков согласования. Для измерения напряжения входной сигнал преобразовать из 0...18В в 0...1023, а для измерения тока - из 0...5А в 0...1023. Да на дисплей выводить значения, переключая только размерность - напряжение или ток.
Получится искомое - ненужные в данный момент куски кода не будут обрабатываться, потому что их нет.
Как-то так...

Это я к тому, что написание программы с учётом отключения части кода ещё больше усугубит сложившуюся ситуацию с памятью программ Ардуино.
Ведь уже отмечалось, что буквально несколько нарисованных блоков прилично увеличивают объём скомпилированного кода. Та же самая программа, но написанная на ассемблере занимает не в пример меньше места.
В итоге имеем кучу кода, из которого работает только кая-то часть. Остальная часть тупо занимает место.
Может нужно сменить парадигму и рисовать программу так, что бы, наоборот, уменьшить число неработающих в данный момент времени блоков? Строить схему так, что бы каждый блок был задействован в нескольких функциях.
Скажем, 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 раз.
включение-отключение плат в зависимости от режима программы
Не все так однозначно, похоже объем памяти зависит от того где этот блок используется. Сжимал один проект, у меня было довольно много блоков дисплея раскидано, стал менять, где возможно, на мультиплексоры. Где-то объем кода сокращался, а где-то почти не менялся, закономерности так и не выявил, да и не до того было.
включение-отключение плат в зависимости от режима программы
ну, то был просто пример для иллюстрации.
представьте, что у вас сложный проект на ATMega2560 с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.
представьте, что у вас сложный проект на ATMega2560 с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.
Последний раз редактировалось SirYorik 23 фев 2016, 08:12, всего редактировалось 1 раз.
включение-отключение плат в зависимости от режима программы
200 плат? Не представляю.
С трудом заставляю себя хоть некотороые фрагменты схемы создавать на отдельной плате.
А так, в основном, всё на одной плате делаю...
С трудом заставляю себя хоть некотороые фрагменты схемы создавать на отдельной плате.
А так, в основном, всё на одной плате делаю...

Последний раз редактировалось DWD 23 фев 2016, 09:34, всего редактировалось 1 раз.
включение-отключение плат в зависимости от режима программы
на полсотни уже видел здесьDWD писал(а):Не представляю.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей