Показано с 1 по 10 из 18

Тема: Сбросить таймер TON

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от ShikuS Посмотреть сообщение
    Здравствуйте!

    Подскажите, пожалуйста, по работе таймера TON.
    В коде присутствуют 2 экземпляра TON:
    Один таймер работает, как задержка на включение выхода
    Второй работает, как максимальное время работы и включается по ET первого таймера.
    По второму условию таймеры должны обнулиться, но, к сожалению этого не происходит, таймеры останавливаются без сброса.
    Делал исполнение с CASE...OF, но с одним таймером, без задержки и сработало, но в текущем исполнении не хочет.


    Код:
    // условная часть кода
    ELSIF Sterilizer.SW_DVtank_LLevel AND NOT Sterilizer.SW_DVtank_HLevel THEN 
    
    		Timer_Delay_2 (IN:=Timer_Delay_2_IN,PT:=T#10S); //Таймер задержки включения
    		Timer_Delay_2_IN:=TRUE; // Запуск таймера
    		Timer_Delay_1(IN := Timer_Delay_1_IN, PT:= T#60S); // Таймер максимального времени работы
    		Timer_Delay_1_IN:=Timer_Delay_2.Q;
    		Sterilizer.Valve_DW :=Timer_Delay_2.Q; // Выход включен
    
    	ELSIF Sterilizer.SW_DVtank_HLevel AND NOT Timer_Delay_1.Q THEN 
    		Sterilizer.Valve_DW :=FALSE; // Выход выключить
    		Timer_Delay_2.IN:=FALSE; // Сброс таймера Timer_Delay_2
    		Timer_Delay_1.IN:=FALSE; // Сброс таймера Timer_Delay_1
    Буду признателен за помощь.

    Спасибо,
    Код:
    bStart := Sterilizer.SW_DVtank_LLevel AND NOT Sterilizer.SW_DVtank_HLevel; // Условие на запуск по нижнему уровню
    // (мне кажется LLevel тоже должен быть через NOT)
    bStop := Sterilizer.SW_DVtank_HLevel; // Условие на остановку по верхнему уровню
    
    Timer_Delay_2(IN := bStart, PT:=T#10S); //Таймер задержки включения
    IF Timer_Delay_2.Q THEN
      Sterilizer.Valve_DW :=TRUE; // Фиксируем включение
    END_IF
    
    Timer_Delay_1(IN := Sterilizer.Valve_DW, PT:= T#60S); // Таймер максимального времени работы
    IF Timer_Delay_1.Q OR bStop THEN  // Время работы вышло или условие на остановку
      Timer_Delay_2(IN := FALSE);
      Sterilizer.Valve_DW := FALSE;  // Фиксируем выключение
    END_IF
    Последний раз редактировалось EFrol; 07.07.2023 в 09:52.

  2. #2

    По умолчанию

    1exan,
    Спасибо, Я пробовал делать Timer_Delay_2() и присваивать TP:=0 и Timer_Delay_2.IN:=FALSE и Timer_Delay_2(IN:=FALSE)
    Ничего не помогало(((
    Как только не крутился)

    Cs-Cs,
    Спасибо, Вчера уже начинал задумываться тоже о написании FB для таймера)

    EFrol,

    Спасибо, код работает хорошо, немного перестроить нужно СВОЮ логику.

    Так и не понятно, как оно работает
    Как вижу, что выключение присваиванием не проходит, но по присвоенииюI N:=FALSE по условию - проходит, хотя с другой стороны:
    Код:
    IF Timer_Delay_1.Q OR bStop THEN  // Время работы вышло или условие на остановку
      		Timer_Delay_2(IN := FALSE);
      		Sterilizer.Valve_DW := FALSE;  // Фиксируем выключение
    	END_IF
    при прямом присваивании IN:= FALSE; -проходит

    Непонятно)))

Похожие темы

  1. Счетчик СИ-8, как сбросить?
    от Shelan в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 29.06.2022, 19:51
  2. ТРМ-10. Как сбросить настройки в заводские?
    от Anton441 в разделе Эксплуатация
    Ответов: 15
    Последнее сообщение: 15.04.2021, 04:47
  3. ТРМ-251 как сбросить к заводским установкам?
    от Владлэн в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 30.09.2019, 15:27
  4. Как сбросить уставку ТРМ202?
    от жекон в разделе Эксплуатация
    Ответов: 11
    Последнее сообщение: 30.12.2015, 00:12
  5. не могу сбросить плк-100
    от MCBK в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 16.12.2009, 13:54

Ваши права

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