Страница 1 из 5

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 18:05
Alex1968
Всю голову сломал, но так ничего и не придумал....Пример....есть проект с тремя платами, на первой она постоянно включена, счётчик считающий нечто вперёд или назад. У счётчика включено при достижении верхнего предела счёта вперёд остановиться и выдать единицу на соответствующий выход, и точно также при счёте назад. Тоесть имеем переменную в виде единицы при достижении верхнего предела и имеем переменную в виде единицы при счёте назад.

Вторая плата, включается как раз при том когда переменная при счёте вперёд стала единицей, в условиях платы поставил ЕСЛИ ПЕРЕМЕННАЯ "БОЛЬШЕ" РАВНА TRUE, ТО ВЫПОЛНЯТЬ

Также на третьей плате, ЕСЛИ ПЕРЕМЕННАЯ "МЕНЬШЕ" РАВНА TRUE, ТО ВЫПОЛНЯТЬ

То есть идея понятна? При достижении верхнего предела счётчика первой платы, работает вторая плата, а при достижении нижнего предела работает третья плата, а вторая выключена.

Всё бы ничего, но платы 2 и 3 могут выключится в неопределённом состоянии, например поместил на эти платы 2 и 3 по моргающему светодиоду, при выключении платы он может остаться во включённом состоянии, а может и в выключенном, смотря когда выключилась плата, пока он горел или пока он был погасший....

Потом ради эксперимента поставил дисплей один на плату 2 и написал что типа РАБОТАЕТ ПЛАТА 2....и другой дисплей на плату 3 и на нём вывел надпись РАБОТАЕТ ПЛАТА ТРИ....

В итоге билиберда, строчки РАБОТАЕТ ПЛАТА 2 и РАБОТАЕТ ПЛАТА ТРИ налезают друг на друга.


Как реализовать мою затею ? Есть какие то решения?

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 18:44
Ingwar
Alex1968 писал(а): 31 авг 2020, 18:05 Есть какие то решения?
Использую переменные с разрешением записи.
Данные/состояние используемые в платах по условию (если они могут понадобятся в других платах), записываю через "посредника". Всегда можно перезаписать.
[spoiler]
Безымянный.png
[/spoiler]

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 19:05
Alex1968
[ref]Ingwar[/ref],

а как это можно тут применить ?
789.jpg

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 21:14
dsfbuy
[ref]Alex1968[/ref], можно так сделать[spoiler]
Без имени1.png
[/spoiler]

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 21:25
Alex1968
dsfbuy писал(а): 31 авг 2020, 21:14 [ref]Alex1968[/ref], можно так сделать[spoiler]Без имени1.png[/spoiler]
для чего мне фейковые два лишних светодиода ? Мне нужно чтоб платы корректно отрабатывали до выключения....А если вместо светодиодов будут вентили открывающие воду или газ? То при после того как переменная БОЛЬШЕ или переменная МЕНЬШЕ СТАНЕТ falce вентили останутся в непонятном состоянии, полуоткрытом или полузакрытом.

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 21:48
Alex1968
av писал(а): 31 авг 2020, 21:41
Alex1968 писал(а): 31 авг 2020, 18:05 Вторая плата, включается как раз при том когда переменная при счёте вперёд стала единицей, в условиях платы поставил ЕСЛИ ПЕРЕМЕННАЯ "БОЛЬШЕ" РАВНА TRUE, ТО ВЫПОЛНЯТЬ

Также на третьей плате, ЕСЛИ ПЕРЕМЕННАЯ "МЕНЬШЕ" РАВНА TRUE, ТО ВЫПОЛНЯТЬ
Скорее всего билеберда получается из за использования генераторов для светодиодов. Когда срабатывает условие на отключение (любое хоть для второй хоть для третей платы) она уже не выполняется и генератор который был уже запущен условием на запуск был в положении на выходе "высокое", то есть 1. И теперь этот сигнал будет висеть до следующего запуска платы по условию. Вот как то так это работает. Вариант создавать доп.плату для контроля и управления отключения плат по условию.

Отправлено спустя 9 минут 39 секунд:
Такая же ситуация и с дисплеями. Допустим плата 2 выполняется на дисплей выводится текст. Далее плата отключается (не выполняется), но сигнал разрешающий вывод текста на дисплей никуда не делся он так же присутствует на входе En. Поэтому при запуске третей платы дисплей уже выводит в те же координаты другой текст который налегает на предидущий текст.

Отправлено спустя 2 минуты 36 секунд:
По этому и нужно использовать алгоритм который при отключении платы по условию сначала отключить генератор, дисплей или другой алгоритм, а уже потом отключать платы.
Да, скорей всего это так и есть. И как это решить даже не представляю :smile37:

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 21:56
Alex1968
av писал(а): 31 авг 2020, 21:52 [ref]Alex1968[/ref], все теми же переменными. Что будет у вас на управляемых платах ? Эта инфа нужна для определения алгоритма управления.
по три ПЗУ с записанными звуковыми семплами. Выходит так что отключившись, плата зависнет в промежуточном состоянии до следующего включения, а значит семпл проиграет не до конца, а при следующем включении будет проигрываться с середины или где он там остановился (((

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 22:06
Alex1968
av писал(а): 31 авг 2020, 22:00
Alex1968 писал(а): 31 авг 2020, 21:56 Выходит так что отключившись, плата зависнет в промежуточном состоянии до следующего включения, а значит семпл проиграет не до конца, а при следующем включении будет проигрываться с середины или где он там остановился (((
так и есть. Нужно создать алгоритм который при выключении платы доиграет мелодию или тупо выключит проигрывание, а уже потом отключать плату (что то типа обратной связи с выключаемыми платами).
выходит замкнутый круг....Этими платами 2 и 3 управляет уже первая плата с переменными БОЛЬШЕ и МЕНЬШЕ, как же мне на эти переменные повлиять, если они сами являются упраляющими?

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 22:20
Alex1968
av писал(а): 31 авг 2020, 22:14
Alex1968 писал(а): 31 авг 2020, 22:06 выходит замкнутый круг....Этими платами 2 и 3 управляет уже первая плата с переменными БОЛЬШЕ и МЕНЬШЕ, как же мне на эти переменные повлиять, если они сами являются упраляющими?
Так устроено выполнение по условию и никуда не денешься. Выполнение кода останавливается(не выполняется), но переменные и константы связанные с кодом этой платы не обнуляются и не удаляются они остаются в памяти и используются при дальнейшем запуске платы. Это как с счетчиком который считает до его остановки. Остановили и в нужное вам время включили опять.
а как работает в плате функция ВЫПОЛНЯТЬ В ЦИКЛЕ ПОКА....ПЕРЕМЕННАЯ ПО УСЛОВИЮ.... ?

Как отключать платы не на взвешенном состоянии

Добавлено: 31 авг 2020, 23:51
Ingwar
Alex1968 писал(а): 31 авг 2020, 21:25 вентили останутся в непонятном состоянии, полуоткрытом или полузакрытом.
Alex1968 писал(а): 31 авг 2020, 21:56 а значит семпл проиграет не до конца
В том случае придется вводить обратную связь, добавив ее в условие отключения платы. На крайний случай это может быть временная задержка, период которой гарантированно закончит выполняемое действие.

Отправлено спустя 45 минут 20 секунд:
Alex1968 писал(а): 31 авг 2020, 19:05 а как это можно тут применить ?
На скорую засыпающую руку... Не проверял, возможно бред.
Предполагалось - не включится одна, пока 1 на выходе другой и выключится она только если на ее выходе 0.
Сорян, уже сплю :smile44:
[spoiler]
Безымянный.png
[/spoiler]

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 00:23
SSSergeich
Alex1968 писал(а): 31 авг 2020, 18:05 То есть идея понятна?
Пока не очень
Alex1968 писал(а): 31 авг 2020, 18:05 Всё бы ничего, но платы 2 и 3 могут выключится в неопределённом состоянии, например поместил на эти платы 2 и 3 по моргающему светодиоду, при выключении платы он может остаться во включённом состоянии, а может и в выключенном, смотря когда выключилась плата, пока он горел или пока он был погасший....
Так Вы пропишите, в каких состояниях они должны находиться
например
[spoiler]
al2.PNG
[/spoiler]

Отправлено спустя 8 минут 26 секунд:
Alex1968 писал(а): 31 авг 2020, 21:56 по три ПЗУ с записанными звуковыми семплами. Выходит так что отключившись, плата зависнет в промежуточном состоянии до следующего включения, а значит семпл проиграет не до конца, а при следующем включении будет проигрываться с середины или где он там остановился (((
Вернуться к началу
av писал(а): 31 авг 2020, 22:00 так и есть. Нужно создать алгоритм который при выключении платы доиграет мелодию или тупо выключит проигрывание, а уже потом отключать плату (что то типа обратной связи с выключаемыми платами).
Зная временую длинну сэмпла при прогрывании включаем таймер задержки, который отсрочивает изменение переменной

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 00:24
Alex1968
SSSergeich писал(а): 01 сен 2020, 00:15
Alex1968 писал(а): 31 авг 2020, 18:05 То есть идея понятна?
Пока не очень
Alex1968 писал(а): 31 авг 2020, 18:05 Всё бы ничего, но платы 2 и 3 могут выключится в неопределённом состоянии, например поместил на эти платы 2 и 3 по моргающему светодиоду, при выключении платы он может остаться во включённом состоянии, а может и в выключенном, смотря когда выключилась плата, пока он горел или пока он был погасший....
Так Вы пропишите, в каких состояниях они должны находиться
например
[spoiler]al2.PNG[/spoiler]
можете это то что на картинке проектом flprog выложить ? Чтоб посмотреть параметры и настройки ?

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 00:47
SSSergeich
[ref]Alex1968[/ref], да это ж как просто попытка понять..
alex68.flp
Отправлено спустя 1 минуту 24 секунды:
без настроек генераторов и счетчиков

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 11:39
Alex1968
av писал(а): 01 сен 2020, 10:12 [ref]Alex1968[/ref], есть ли в блоках проигрывающих семплы выход окончания проигрывания семпла ? Если есть тогда проще будет контролить отключение плат по условию. И если честно надоело гадать на кофейной гуще. Создайте проект с теми блоками которые будут участвовать в проекте, а уже исходя из проекта будет видно как лучше организовать алгоритм отключения плат всем помогающим форумчанам.
так проект наполовину в голове пока. Пока тренируюсь на кошках, тьфу то есть на простейших генераторах и дисплеях на платах 2 и 3....Первая плата тупо считает вперёд или назад, и при достижении указанных пределов, что вниз что вверх, останавливает счёт и выдаёт единицу на выход >L или <L....вот этими сигналами включается или плата 2 или плата 3. Но сигналы >L или <L могут в любой момент поменяться или переключиться..И платы остаются в том виде в каком были в момент переключения сигналов >L или <L

Для примера...На плате 2 дисплей и на нём на первой строке надпись РАБОТАЕТ ПЛАТА №2, которая выводится при единице на выходе >L счётчика который на первой плате и когда плата 2 включается по тому условию.

На плате 3 тот же дисплей, и на нём на первой строке надпись РАБОТАЕТ ПЛАТА №3, которая выводится при единице на выходе <L счётчика который на первой плате и когда плата 3 включается по тому условию.

В итоге что получается на первой плате если стало больше то появился сигнал на выходе >L он включил плату №2 и она на дисплее надпись говорит что типа я включена. На первой плате на счётчике стало меньше то появился сигнал <L который включил плату №3 и на дисплее надпись что работает плата №3....У меня даже такой простейший пример пока не получается реализовать. Обе надписи смешиваются на дисплее на первой строке.

Очевидно, что пока работает платы 2 и 3 должны работать поочерёдно. Если включилась плата 2 то она на должна давать возможность в это время работать плате 3...и наоборот.

Если это получится, то и с семплами решу проблему.

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 12:40
Ingwar
Alex1968 писал(а): 01 сен 2020, 11:39 Если это получится,
Т.е. так не работает?
[spoiler]
Безымянный.png
[/spoiler]

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 12:48
Alex1968
Ingwar писал(а): 01 сен 2020, 12:40
Alex1968 писал(а): 01 сен 2020, 11:39 Если это получится,
Т.е. так не работает?
[spoiler]Безымянный.png[/spoiler]
Нет, так не работает, после переключения между платами 2 и 3 на дисплее остаётся надпись от предыдущей включённой платы, короче каша получается. И да, на первой плате кроме счётчика ничего больше быть не должно.

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 12:53
Ingwar
Alex1968 писал(а): 01 сен 2020, 12:48 И да, на первой плате кроме счётчика ничего больше быть не должно.
Т. е. Вы не попробовали?

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 13:08
Alex1968
Alex1968 писал(а): 31 авг 2020, 18:05
Всё бы ничего, но платы 2 и 3 могут выключится в неопределённом состоянии, например поместил на эти платы 2 и 3 по моргающему светодиоду, при выключении платы он может остаться во включённом состоянии, а может и в выключенном, смотря когда выключилась плата, пока он горел или пока он был погасший....

Потом ради эксперимента поставил дисплей один на плату 2 и написал что типа РАБОТАЕТ ПЛАТА 2....и другой дисплей на плату 3 и на нём вывел надпись РАБОТАЕТ ПЛАТА ТРИ....

В итоге билиберда, строчки РАБОТАЕТ ПЛАТА 2 и РАБОТАЕТ ПЛАТА ТРИ налезают друг на друга.

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 13:08
SSSergeich
[ref]Alex1968[/ref], Вы мой пример попробовали?

Как отключать платы не на взвешенном состоянии

Добавлено: 01 сен 2020, 13:14
Ingwar
Вот специально заморочился и собрал макетку. Вместо счетчика использовал показания с аналогового входа. Все работает штатно - строки на дисплее меняются не накладываясь друг на друга. Если есть сомнения, скину видео.

Отправлено спустя 4 минуты 3 секунды:
Складывается впечатления, что ТС выслушивает предложения, а потом
Alex1968 писал(а): 01 сен 2020, 11:39 так проект наполовину в голове пока
"прокручивая" в голове, дает заключение...