Страница 1 из 2
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:15
НовыйUser
Подскажите варианты организовать разовое срабатывание при 0 после того как прошло срабатывание при 1
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:29
Sancho
[ref]НовыйUser[/ref], Может не так понял?
[spoiler]
screenshot_19-07-10_16-28-57.png
[/spoiler]
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:46
НовыйUser
[ref=#ff8000]Sancho[/ref], я иногда сам себя не понимаю
есть выход (с блока AND) по которому разветвляются события. Первое срабатывает при = 1, второе срабатывает при = 0. Особенность их в том что они должны разово срабатывать

А вот с точки зрения оптимального кода и быстродействия не понятно какую схему предпочесть для такого решения. Либо последовательно разграничить событие (как в примере) либо параллельно.
Отправлено спустя 5 минут 52 секунды:
Sancho писал(а): 10 июл 2019, 16:29
Может не так понял?
тип boolean
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:48
Sancho
[ref]НовыйUser[/ref], Бывает

[spoiler]
screenshot_19-07-10_16-48-10.png
[/spoiler]
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:51
НовыйUser
[ref=#ff8000]Sancho[/ref], Ftrig ?
еще бы хотелось базовыми блоками найти решения.
использовать максимум базовых большее предпочтение с учетом исключения первого старта с нулем у второго события
куда обратиться чтобы ftrig вошел в базовые блоки программы ?

разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 16:56
Sancho
НовыйUser писал(а): 10 июл 2019, 16:51
еще бы хотелось базовыми блоками найти решения.
Тогда так. Проще не бывает, поверь. Честно-честно.
[spoiler]
screenshot_19-07-10_16-55-31.png
[/spoiler]
Только нужно обязательно проверить порядок выполнения, сверху вниз.
[spoiler]
screenshot_19-07-10_16-57-57.png
[/spoiler]
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 17:05
НовыйUser
[ref=#ff8000]Sancho[/ref], теперь задумался
а нет ли вариантов сработку нуля организовать после сработки по единице, если в таком исполнении будет проще (с учетом исключения ложного первичного старта нулевой сработки) ?
*спс. тестирую предложенные варианты
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 17:11
Sancho
НовыйUser писал(а): 10 июл 2019, 17:05
а нет ли вариантов сработку нуля организовать после сработки по единице, если в таком исполнении будет проще (с учетом исключения ложного первичного старта нулевой сработки) ?
Ничего толком не понял...

, но:
всё зависит от того, чем проинициализирована переменная "Старое состояние" при старте программы, True или False.
Настрой так, как нужно. Можешь сделать две переменные, с true и false в начале.
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 17:39
НовыйUser
спасибо за подсказки,решено

разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 20:45
Phazz
Детектор бита попробуйте.
разовое срабатывание при нуле 0
Добавлено: 10 июл 2019, 23:09
НовыйUser
Phazz писал(а): 10 июл 2019, 20:45
Детектор бита попробуйте.
он после сработки держит единицу на выходе
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 09:40
Phazz
НовыйUser писал(а): 10 июл 2019, 23:09
он после сработки держит единицу на выходе
А не должен.
Блок служит для обнаружения изменения состояния значения на входе с 1 на 0 и обратно. При изменении состояния на входе на выходе формируется импульс длительностью в один цикл исполнения программы
Отправлено спустя 14 минут :
Проверил блок работает как должен. Отправляет импульс при каждом изменении бита.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 10:20
НовыйUser
Phazz писал(а): 11 июл 2019, 09:40
Проверил блок работает как должен. Отправляет импульс при каждом изменении бита.
т.е если зажать кнопку на его входе он разово сработает и отключиться или будет пропускать нажатое состояние ?
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 10:26
Phazz
При нажатии импульс при отпускании еще импульс. Пока удерживаешь кнопку ничего не будет происходить.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 10:31
НовыйUser
Смысл был таков чтобы постоянную единицу пропустить 1 раз. Следующий разовый проход единицы только после ее отключения и повторного включения. Это первый сценарий. Далее второй сценарий аналогичный первому но уже там вместо единицы ноль необходимо пропускать разово. Плюс к этому сценарии взаимоисключены так как выходят оба на серво в конце цепочки событий

разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 10:34
Berserker
ну задай сразу при включении переменную и меняй один раз, либо массив в него пиши один раз и потом только читай с него.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 10:43
Phazz
НовыйUser писал(а): 11 июл 2019, 10:31
Смысл был таков чтобы постоянную единицу пропустить 1 раз. Следующий разовый проход единицы только после ее отключения и повторного включения
Ну это вы описали работу блока Rtrig
Отправлено спустя 1 минуту 20 секунд:
А вот про взаимоисключения сценариев я не совсем понял.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 16:06
aidar_i
Rtrig и Rtrig с инверсией + блоки and.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 17:07
Sancho
aidar_i писал(а): 11 июл 2019, 16:06
Rtrig с инверсией
Можно использовать, но важно помнить, что если при включении питания мк на его, Rtrig, входе будет 0 - он отработает, хотя, фактически, перехода из 1 в 0 не было.
разовое срабатывание при нуле 0
Добавлено: 11 июл 2019, 19:57
aidar_i
Rtrig с инверсией отработает при включении, но можно его выход через and и bounce заблокировать.