разовое срабатывание при нуле 0

Вопросы от новичков
НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#1

Сообщение НовыйUser » 10.07.2019{, 16:15}

Подскажите варианты организовать разовое срабатывание при 0 после того как прошло срабатывание при 1
Последний раз редактировалось НовыйUser 10.07.2019{, 19:11}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

разовое срабатывание при нуле 0

#2

Сообщение Sancho » 10.07.2019{, 16:29}

НовыйUser, Может не так понял?
СпойлерПоказать
screenshot_19-07-10_16-28-57.png
screenshot_19-07-10_16-28-57.png (2.97 КБ) 659 просмотров
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#3

Сообщение НовыйUser » 10.07.2019{, 16:40}

Sancho, я иногда сам себя не понимаю :D

есть выход (с блока AND) по которому разветвляются события. Первое срабатывает при = 1, второе срабатывает при = 0. Особенность их в том что они должны разово срабатывать :) А вот с точки зрения оптимального кода и быстродействия не понятно какую схему предпочесть для такого решения. Либо последовательно разграничить событие (как в примере) либо параллельно.

Отправлено спустя 5 минут 52 секунды:
Sancho писал(а):
10.07.2019{, 16:29}
Может не так понял?
тип boolean
Последний раз редактировалось НовыйUser 10.07.2019{, 16:49}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

разовое срабатывание при нуле 0

#4

Сообщение Sancho » 10.07.2019{, 16:48}

НовыйUser, Бывает :)
СпойлерПоказать
screenshot_19-07-10_16-48-10.png
screenshot_19-07-10_16-48-10.png (5.87 КБ) 648 просмотров
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#5

Сообщение НовыйUser » 10.07.2019{, 16:51}

Sancho, Ftrig ? :shok:

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

:)

куда обратиться чтобы ftrig вошел в базовые блоки программы ? :)
Последний раз редактировалось НовыйUser 10.07.2019{, 16:57}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

разовое срабатывание при нуле 0

#6

Сообщение Sancho » 10.07.2019{, 16:56}

НовыйUser писал(а):
10.07.2019{, 16:51}
еще бы хотелось базовыми блоками найти решения.
Тогда так. Проще не бывает, поверь. Честно-честно.
СпойлерПоказать
screenshot_19-07-10_16-55-31.png
screenshot_19-07-10_16-55-31.png (11.55 КБ) 644 просмотра
Только нужно обязательно проверить порядок выполнения, сверху вниз.
СпойлерПоказать
screenshot_19-07-10_16-57-57.png
screenshot_19-07-10_16-57-57.png (16.13 КБ) 641 просмотр
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#7

Сообщение НовыйUser » 10.07.2019{, 17:05}

Sancho, теперь задумался :D

а нет ли вариантов сработку нуля организовать после сработки по единице, если в таком исполнении будет проще (с учетом исключения ложного первичного старта нулевой сработки) ?

*спс. тестирую предложенные варианты

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

разовое срабатывание при нуле 0

#8

Сообщение Sancho » 10.07.2019{, 17:11}

НовыйUser писал(а):
10.07.2019{, 17:05}
а нет ли вариантов сработку нуля организовать после сработки по единице, если в таком исполнении будет проще (с учетом исключения ложного первичного старта нулевой сработки) ?
Ничего толком не понял... :) , но:
всё зависит от того, чем проинициализирована переменная "Старое состояние" при старте программы, True или False.
Настрой так, как нужно. Можешь сделать две переменные, с true и false в начале.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#9

Сообщение НовыйUser » 10.07.2019{, 17:19}

спасибо за подсказки,решено :)

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

разовое срабатывание при нуле 0

#10

Сообщение Phazz » 10.07.2019{, 20:45}

Детектор бита попробуйте.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#11

Сообщение НовыйUser » 10.07.2019{, 23:09}

Phazz писал(а):
10.07.2019{, 20:45}
Детектор бита попробуйте.
он после сработки держит единицу на выходе

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

разовое срабатывание при нуле 0

#12

Сообщение Phazz » 11.07.2019{, 09:26}

НовыйUser писал(а):
10.07.2019{, 23:09}
он после сработки держит единицу на выходе
А не должен.
Блок служит для обнаружения изменения состояния значения на входе с 1 на 0 и обратно. При изменении состояния на входе на выходе формируется импульс длительностью в один цикл исполнения программы
Отправлено спустя 14 минут :
Проверил блок работает как должен. Отправляет импульс при каждом изменении бита.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#13

Сообщение НовыйUser » 11.07.2019{, 10:20}

Phazz писал(а):
11.07.2019{, 09:40}
Проверил блок работает как должен. Отправляет импульс при каждом изменении бита.
т.е если зажать кнопку на его входе он разово сработает и отключиться или будет пропускать нажатое состояние ?

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

разовое срабатывание при нуле 0

#14

Сообщение Phazz » 11.07.2019{, 10:26}

При нажатии импульс при отпускании еще импульс. Пока удерживаешь кнопку ничего не будет происходить.

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

разовое срабатывание при нуле 0

#15

Сообщение НовыйUser » 11.07.2019{, 10:31}

Смысл был таков чтобы постоянную единицу пропустить 1 раз. Следующий разовый проход единицы только после ее отключения и повторного включения. Это первый сценарий. Далее второй сценарий аналогичный первому но уже там вместо единицы ноль необходимо пропускать разово. Плюс к этому сценарии взаимоисключены так как выходят оба на серво в конце цепочки событий :)

Berserker
Рядовой
Сообщения: 58
Зарегистрирован: 17.05.2018{, 16:13}
Репутация: 0
Имя: Александр

разовое срабатывание при нуле 0

#16

Сообщение Berserker » 11.07.2019{, 10:34}

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

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

разовое срабатывание при нуле 0

#17

Сообщение Phazz » 11.07.2019{, 10:41}

НовыйUser писал(а):
11.07.2019{, 10:31}
Смысл был таков чтобы постоянную единицу пропустить 1 раз. Следующий разовый проход единицы только после ее отключения и повторного включения
Ну это вы описали работу блока Rtrig

Отправлено спустя 1 минуту 20 секунд:
А вот про взаимоисключения сценариев я не совсем понял.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

разовое срабатывание при нуле 0

#18

Сообщение aidar_i » 11.07.2019{, 16:06}

Rtrig и Rtrig с инверсией + блоки and.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

разовое срабатывание при нуле 0

#19

Сообщение Sancho » 11.07.2019{, 17:07}

aidar_i писал(а):
11.07.2019{, 16:06}
Rtrig с инверсией
Можно использовать, но важно помнить, что если при включении питания мк на его, Rtrig, входе будет 0 - он отработает, хотя, фактически, перехода из 1 в 0 не было.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

разовое срабатывание при нуле 0

#20

Сообщение aidar_i » 11.07.2019{, 19:57}

Rtrig с инверсией отработает при включении, но можно его выход через and и bounce заблокировать.

Ответить

Вернуться в «Начинающим»