Вход

Просмотр полной версии : таймер TOF



servo
30.07.2014, 14:25
Прошу прощения за глупый вопрос. Есть таймер TOF, который запускается импульсом, время РТ данного таймера, например 10 мин. Вопрос: Как остановить(сбросить) таймер, если время РТ еще не истекло?

Алексей Геннадьевич
30.07.2014, 14:38
подать сигнал на вход, очевидно-же

ASo
30.07.2014, 15:14
Никак. Используйте другой таймер или обвязку.

IVM
30.07.2014, 15:59
Прошу прощения за глупый вопрос. Есть таймер TOF, который запускается импульсом, время РТ данного таймера, например 10 мин. Вопрос: Как остановить(сбросить) таймер, если время РТ еще не истекло?
Сделай IN:=TRUE; и будет тебе счастье.

amn
30.07.2014, 16:41
Еще можно PT:=0.

ferret_maybe
30.07.2014, 16:44
Установи PT в T#0s (через SEL) и сбрось в 0 входное значение. (меня чуть-чуть опередили)...

servo
31.07.2014, 11:47
Поступил след. образом: После запуска таймера TOF импульсом, таймер ставит выход в TRUE и "держит" его в этом состоянии до тех пор пока не истечет заданное время РТ, если необходимо преждевременно "погасить" выход с таймера, то устанавливаю РТ=0 и при этом таймер останавливает счет и ставит выход в false. Спасибо всем за ответы!

pavel66
28.10.2018, 19:03
Позвольте вопрос по теме.
У меня аналогичная задача, а именно мне нужно опускать ставни нажатием на кнопку. При этом нажатие на ту же кнопку во время отсчета таймера должно прерывать сигнал на выходе.
С первой частью алгоритма я справился, а со второй проблема: какие бы я условия не ставил, повторное нажатие лишь перезапускает таймер. Первая часть алгоритма такая:
Tof(in:=pushbutton, pt:=t#10s);
Out:=Tof.q;
А как дальше у меня затык...

capzap
28.10.2018, 19:05
Позвольте вопрос по теме.
У меня аналогичная задача, а именно мне нужно опускать ставни нажатием на кнопку. При этом нажатие на ту же кнопку во время отсчета таймера должно прерывать сигнал на выходе.
С первой частью алгоритма я справился, а со второй проблема: какие бы я условия не ставил, повторное нажатие лишь перезапускает таймер. Первая часть алгоритма такая:
Tof(in:=pushbutton, pt:=t#10s);
Out:=Tof.q;
А как дальше у меня затык...а описание данного таймера можете привести из справки, какую функцию он выполняет?

pavel66
28.10.2018, 23:44
а описание данного таймера можете привести из справки, какую функцию он выполняет?

Не совсем понял вопрос...таймер tof выполняет функцию таймера с задержкой на отключение. А вышеуказанным примере 2 кнопки. Одна включает, другая выключает. У меня только одна.

capzap
29.10.2018, 08:12
я надеялся что перечитав пояснение к таймеру, наминутку задумаетесь, а может ну его для такой задачи, видимо ни как.

melky
29.10.2018, 09:26
pavel66 tof включается сразу, как на вход попало true а отключается только после снятия со входа true после указанной задержки. Надо отключить раньше, используйте обвязку или изменение времени как вам написали выше.

Можете еще воспользоваться библиотеками oscat, там есть всевозможные таймеры со сбросом...

pavel66
29.10.2018, 10:34
pavel66 tof включается сразу, как на вход попало true а отключается только после снятия со входа true после указанной задержки. Надо отключить раньше, используйте обвязку или изменение времени как вам написали выше.

Можете еще воспользоваться библиотеками oscat, там есть всевозможные таймеры со сбросом...
Спасибо. Разобрался. Пару часов ночью когда никто не мешает решают любую проблему)))

Serhioromano
05.11.2018, 17:26
я надеялся что перечитав пояснение к таймеру, наминутку задумаетесь, а может ну его для такой задачи, видимо ни как.

Посмотрел и показалось кода многовато для задачи. Пробовал и так и так. Вот что вышло.

http://www.owen.ru/forum/attachment.php?attachmentid=39639&d=1541428004

Serhioromano
06.11.2018, 09:46
Попробывал еще уменьшить код

FUNCTION_BLOCK SR_TOF_R
VAR_INPUT
IN: BOOL;
PT: TIME;
END_VAR
VAR_OUTPUT
Q: BOOL;
END_VAR
VAR
F: R_TRIG;
T: TOF;
END_VAR
---
F(CLK := IN);
T(IN := F.Q AND NOT T.Q, PT := SEL(F.Q AND T.Q, PT, T#0s), Q => Q);

Вот-же, ... Элегантно!