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

Кнопка тригер с сложным механизмом поведения.

Добавлено: 17.07.2016{, 17:31}
findeler
Логика работы.
При нажатии менее 2 секунд значение переменной 1
при нажатии более 2х секунд но менее 7 значение переменной 2
при нажатии более 7 секунд значение переменной 0
при ненажатии значение переменной не изменяется.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 17.07.2016{, 20:35}
Boroda
Не взлетает!
Попробуйте так. Две версии:
1 - последовательный перебор
* нажали и держим
* значение = 1
* если не отпустили через 2 сек, то значение = 2
* если не отпустили через 7 сек, то значение = 0
2 - значение меняется при отпускании кнопки
* нажали и держим.
* если отпустили менее чем через 2 сек, то значение = 1,
* если отпустили более чем через 2 сек, то значение = 2,
* если не отпустили через 7 секунд, то значение = 0

Кнопка тригер с сложным механизмом поведения.

Добавлено: 17.07.2016{, 23:38}
Rovki
Такие вещи делаются только при отпускании кнопки

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 01:12}
rw6cm
findeler писал(а):Логика работы.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 05:05}
support
Я думаю так будет работать


Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 06:48}
findeler
Понятно, что ничего не понятно. Поскольку в программе нет отладчика (как в сименсе) соберу сегодня тестовый стенд и буду проверять.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 06:59}
rw6cm
support писал(а):Я думаю так будет работать
Не будет, еще нужен TOF.

СпойлерПоказать
и по умолчанию будет переменная с 1-кой.
Если это критично, вторая схема при включении в переменную ни чего не вносит.

Добавлено (18.07.2016, 06:59)
---------------------------------------------
findeler писал(а):соберу сегодня тестовый стенд и буду проверять.
Здесь только так и надо )))

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 14:42}
Boroda
rw6cm, а откуда я узнаю, прошло 7 секунд или нет? Так как это самый большой интервал времени, то лучше сделать так: Если кнопку не отпустили через 7 секунд, то значение должно само приравняться к нулю, пользователь это поймет и отпустит кнопку. А иначе будет неудобно пользоваться прибором, сиди считай секунды. Поэтому я и поставил 2 триггера, иначе после длинного нажатия переменная = 0, а при отпускании приравнивалась к единице, т.к. таймера успевали обнулиться.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 15:27}
rw6cm
Boroda писал(а):а откуда я узнаю, прошло 7 секунд или нет?
а откуда я узнаю, прошло 2 секунд или нет? )
Все равно считать... согласен с вами так меньше и удобней,  возражений вроде не имел.
Без проблем, можно и так:

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 19:45}
oren
Прошу прощение за возможно глупый вопрос,но я не пойму каково практическое применение данной схемы,что значит значение переменной" integer-1,2,0",к тому же это одна и та же переменная?

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 20:36}
Boroda
Например, по короткому нажатию включается режим измерения напряжения, по длинному - измеряем ток, по самому длинному прибор отключается. Или обогрев сидений в авто: коротко - малая мощность, длинное нажатие - средняя, еще длиннее - отключение обогрева. Или отображение показаний каких-либо счетчиков: короткое - счетчик1, длинное - счетчик2, еще длиннее - сброс счетчика. Вот эта переменная и задает режим работы прибора.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 18.07.2016{, 20:58}
oren
Спасибо ,объяснили доходчиво!

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 07:18}
findeler
Спасибо всем. Реализовал схему от rw6cm, добавил индикацию светодиодом в зависимости от режима но это уже вторично.

Rtig в схеме не понял зачем нужен ?

"Прошу прощение за возможно глупый вопрос,но я не пойму каково практическое применение данной схемы,что значит значение переменной" integer-1,2,0",к тому же это одна и та же переменная?"

часть программы управления котельной, на кнопке 2 функции.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 08:14}
rw6cm
findeler писал(а):Rtig в схеме не понял зачем нужен ?

СпойлерПоказать
RTrig в данной схеме при отпускании кнопки формирует импульс продолжительностью в один цикл.
В сочетании с сигналом таймера и формируется команда.
TOF удерживает сигнал таймеров на этот цикл.
oren писал(а):что значит значение переменной" integer-1,2,0",к тому же это одна и та же переменная?
Как пример: допустим нужен своего рода массив кодов с выборкой по булеану.
В схеме придется лепить кучу элементов (дешифраторы, ключи, логику, массив, и т д)
а здесь получается просто:

СпойлерПоказать

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 08:48}
findeler
а если программа выполняется дольше 500 мкс ?

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 10:43}
rw6cm
findeler писал(а):а если программа выполняется дольше 500 мкс ?
Речь идет о цикле. В программе может работать много параллельных циклов.
В данный момент разговор о времени на выполнение работы кода самих элементов.
Не было времени  по изучать сколько процессорного времени займут элементы таймера и таблица,
но думаю это будет в районе единиц микросекунд, а то и меньше.
так что 500 это очень громадный запас )

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 16:57}
findeler
Что то я не понимаю.

Сделал такое изменение, сразу не работает.

Теоретически можно TOF заменить на OR, как бы. Но не работает. В чём причина ?

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 19:33}
Boroda
В реальной лог схеме возможно это будет работать (но будет наносекундный провал на выходе OR), а в FLProg есть последовательность выполнения действий и она зависит от расположения элементов на плате, посмотрите в скетче эту последовательность, наверняка в какой-то момент таймеры ТОН обнуляются, а ТОФ заводится потом. ТОФ надо оставить как он стоял в исходнике, т.к. после отпускании кнопки таймеры ТОН должны еще некоторое время находится в том состоянии, в котором были до отпускания кнопки. А если не хотите ТОФ, то берите схему из 2го поста, она на триггерах, которые сбрасываются, только через цикл после отпускания кнопки.

А чем Вам ТОФ не нравится?

Добавлено (19.07.2016, 19:20)
---------------------------------------------
Даже если цикл будет 1 секунду, то когда программа подойдет к этому месту, RTrig уже обнулится, т.к. он был единицей в предыдущем цикле, и ничего не произойдет. Поставьте ТОФ 20мкс и он скорее всего сбросится уже в следующем цикле, что нам и нужно. Тут фишка в том, чтоб ТОНы сбросились позже, чем появится RTrig.

Добавлено (19.07.2016, 19:33)
---------------------------------------------
Хотя, если бы я купил прибор с кнопками и индикатором, и у него опрос кнопок был бы раз в секунду (цикл программы), я бы его сразу же выкинул. Удобство пользования на первом месте! Далеко ходить не надо - ПРОМА-ИДМ-010 - образец того, как не надо делать опрос кнопок, причем у нее НЕ динамическая индикация. ОВЕН тоже не лучше со своим плавным нарастанием скорости перебора значений.

Кнопка тригер с сложным механизмом поведения.

Добавлено: 19.07.2016{, 21:10}
findeler
Boroda писал(а):Хотя, если бы я купил прибор с кнопками и индикатором, и у него опрос кнопок был бы раз в секунду (цикл программы), я бы его сразу же выкинул
ну эта кнопка такова, что нажимать её надо крайне редко, в идеале всего 1 раз. да и нажимать её не так легко.