Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 41

Тема: Пауза таймера?

  1. #31

    По умолчанию

    Не подходит, он продолжает считать даже после пропадания сигнала на входе in, чтоб он не считал пауза всегда должна быть нажата.
    Мне необходимо что бы когда на входе in был TRUE он считал, при появлении на входе pause TRUE он прекращал отсчёт времени, а при пропадании продолжал отсчёт с того места где остановился. А если на входе in пропадает TRUE счёт времени сбрасывался в 0.

    Если кому несложно можете переделать функциональный блок таймер TONP из седьмого сообщения на язык ST, буду очень благодарен.
    Последний раз редактировалось Abrammm; 09.02.2015 в 15:57.

  2. #32
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    709

    По умолчанию

    Таймер TON с паузой на языке ST.
    Вложения Вложения
    • Тип файла: zip TON_P.ZIP (721 байт, Просмотров: 193)
    Последний раз редактировалось amn; 09.02.2015 в 20:17.

  3. #33

    По умолчанию

    Спасибо БОЛЬШОЕ! Все работает как нужно.

  4. #34

    По умолчанию

    Как его вставить в программу?
    А, все, разобрался! Спасибо.
    Последний раз редактировалось Testkom; 18.11.2015 в 10:42.

  5. #35

    По умолчанию

    Добрый день.
    Не могли бы сбросить данный пример TONP.zip почему то не скачивается.
    заранее спасибо

  6. #36

    По умолчанию

    подскажите пожалуйста , как вставить этот файл в программу?

  7. #37
    Пользователь Аватар для _Mikhail
    Регистрация
    25.07.2013
    Адрес
    Ярославль
    Сообщений
    594

    По умолчанию

    Цитата Сообщение от BOJIHA Посмотреть сообщение
    подскажите пожалуйста , как вставить этот файл в программу?
    Проект - Импорт

  8. #38
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,391

    По умолчанию

    У меня проще, только код, без вспомогательных таймеров и триггеров
    Код:
    FUNCTION_BLOCK TON_P
    VAR_INPUT
    	IN: BOOL;
    	P: 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 P THEN
    	StartTime:= tx - ET;
    END_IF
    IF IN AND NOT clk THEN
    	StartTime:= tx;
    	clk:= TRUE;
    ELSIF NOT IN THEN
    	clk:= FALSE;
    	Q:= FALSE;
    	ET:= t#0s;
    END_IF
    IF clk AND NOT Q THEN
    ET:= MIN(PT, tx - StartTime);
    Q:= ET = PT AND IN;
    END_IF
    Сравните с предложенным ранее:
    Код:
    FUNCTION_BLOCK ton_p	(*таймер TON с паузой. *)
    VAR_INPUT
    	in:BOOL;
    	pt:TIME;
    	pause:BOOL;
    END_VAR
    VAR_OUTPUT
    	q: BOOL;
    	et:TIME;
    END_VAR
    VAR
    	TP1: TON;
    	R_TRIG1: R_TRIG;
    	F_TRIG1: F_TRIG;
    	init:BOOL:=TRUE;
    	pt1: TIME;
    	et1:TIME;
    END_VAR
    
    IF init THEN
    	init:=FALSE;
    	pt1:=pt;
    	et1:=t#0ms;
    END_IF
    R_TRIG1(CLK:=pause, Q=> );	(*включили паузу*)
    F_TRIG1(CLK:=in, Q=> init);			(*убрали сигнал со входа таймера*)
    IF R_TRIG1.Q THEN	(*если нажали паузу*)
    	pt1:=pt1 - TP1.ET;		(*запоминаем сколько времени осталось отсчитать*)
    	et1:=et1 + TP1.ET;	(*запоминаем сколько времени уже прошло*)
    	TP1.IN:=FALSE;		(*сбрасываем таймер*)
    END_IF
    
    TP1(IN:=SEL(pause, in, in AND pause AND TP1.Q), PT:=pt1);		(*вызываем таймер*)
    q:=TP1.Q;
    
    IF in AND NOT TP1.Q THEN		(*если таймер еще не отработал до конца*)
    	et:=et1+TP1.ET;	(*суммируем отработанное время*)
    ELSIF TP1.Q THEN		(*если таймер отработал до конца*)
    		et:=pt;
    END_IF
    
    IF F_TRIG1.Q THEN		(*если убрали сигнал со входа таймера*)
    	et:=t#0ms;			(*обнуляем*)
    END_IF
    Последний раз редактировалось petera; 14.05.2020 в 12:56.
    26 лет деятельности в области промышленной безопасности

  9. #39

    По умолчанию

    Подниму тему, у кого нибудь остался файл таймера TON с паузой на языке CFC?

  10. #40
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    6,935

    По умолчанию

    Lordorakus Вам кто-то мешает взять код на ST и создать FBD блок и использовать его в CFC ?

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •