Чутка поспешил комментарий написать, не проанализировав код выше :)
Уже сделал данный таймер по примеру, спасибо petera
Вид для печати
Здравствуйте, не могли бы вы помочь переделать данный код для tp таймера. Возможно ли это?
Нужен блок, который начинает работу при подачи 1 на вход, начинает отсчет времени и подает все это время 1 на выход. После истечения заданного времени на выход подается 0 . Но нужно реализовать паузу. То есть когда подается 1 на вход "пауза" время останавливается и запоминается, на выход - 0. Когда снимем 1 с паузы, время должно продолжиться
Все это можно сделать, используя мой таймер https://owen.ru/forum/showthread.php...l=1#post318409
Вложение 58058
Скрытый текст:
petera если не против, просто немного изменил ваш код
Код:FUNCTION_BLOCK TP_
VAR_INPUT
IN: BOOL;
Pause: BOOL;
PT: TIME;
END_VAR
VAR_OUTPUT
Q: BOOL;
ET: TIME;
END_VAR
VAR
clk: BOOL;
StartTime: TIME;
tx: TIME;
END_VAR
______________________________________________________
tx:= TIME();
IF Pause THEN
StartTime:= tx - ET;
END_IF
IF IN AND NOT clk AND NOT Pause THEN
StartTime:= tx;
clk:= TRUE;
ET:=T#0ms;
ELSIF NOT IN AND ET=PT THEN
clk:= FALSE;
END_IF
IF clk AND ET<PT THEN
ET:= MIN(PT, tx - StartTime);
Q:=ET<PT AND IN AND NOT Pause;
END_IF
Чё-то примеры не скачиваются. Видимо, удалили уже, тема старая. Жаль...
Зачем скачивать примеры, если выше выложены коды ФБ (функц. блока) таймера, скопируйте и пользуйтесь)Вложение 63305