Показано с 1 по 5 из 5

Тема: Вопрос по таймеру

  1. #1

    По умолчанию Вопрос по таймеру

    имеется регулятор в котором при сложении или вычитании установлена пауза в 1 с. Может ли переполниться таймер и как это избежать? Объект будет работать без перерывов.

    Какие последствия будут в случае переполнения
    и каким образом работает задержка в 1 с.


    IF (TIMER+T#1S) TIMER:=TIME();
    CHASTOTA_AUTO:=CHASTOTA_AUTO+1;

    FUNCTION_BLOCK REGULIATOR
    VAR_INPUT
    REAL_DAVLENIE:REAL;
    ON_OFF:BOOL;
    USTAVKA_DAVLENIEL:REAL;
    MIN_DAVLENIE:REAL;
    MAX_DAVLENIE:REAL;
    MIN_CHASTOTA:REAL;
    MAX_CHASTOTA:REAL;
    SBROS:BOOL;
    END_VAR
    VAR_OUTPUT
    CHASTOTA_AUTO:REAL;
    END_VAR
    VAR
    TIMER: TIME;
    END_VAR

    Сам код
    IF ON_OFF=TRUE THEN
    IF REAL_DAVLENIE>=USTAVKA_DAVLENIEL THEN
    IF (TIMER+T#1S) TIMER:=TIME();
    CHASTOTA_AUTO:=CHASTOTA_AUTO+1;
    END_IF
    ELSE IF REAL_DAVLENIE<=USTAVKA_DAVLENIEL THEN
    IF (TIMER+T#1S) TIMER:=TIME();
    CHASTOTA_AUTO:=CHASTOTA_AUTO-1;
    END_IF
    END_IF
    END_IF
    IF CHASTOTA_AUTO<=MIN_CHASTOTA THEN CHASTOTA_AUTO:=MIN_CHASTOTA;

    END_IF
    IF CHASTOTA_AUTO>=MAX_CHASTOTA THEN CHASTOTA_AUTO:=MAX_CHASTOTA;
    END_IF

    IF SBROS=TRUE THEN CHASTOTA_AUTO:=0;

    END_IF
    ELSE IF ON_OFF=FALSE THEN CHASTOTA_AUTO:=0;
    END_IF
    END_IF

  2. #2

    По умолчанию

    Цитата Сообщение от evgeni293 Посмотреть сообщение
    IF (TIMER+T#1S) TIMER:=TIME();
    CHASTOTA_AUTO:=CHASTOTA_AUTO+1;
    Дело в том, что эта конструкция не работоспособна в CODESYS.

    По поводу переполнения:
    Типа TIME хватит на 49 дней 17 часов 2 минут 47 секунд непрерывного подсчета.
    Если нужно больше - используйте тип DATE_AND_TIME, его будет достаточно до 2106го года

    Но если задача стоит: просто увеличивать что-либо раз в секунду, то решить задачу можно с применением таймера не боясь переполнения:
    Код:
    PROGRAM PLC_PRG
    VAR
    	// Таймер для задержки
    	fb_tonIncreaseDelay	: Standard.TON;
    	// Значение частоты
    	rAutoFrequency		: REAL;
    END_VAR
    
    // Задержка между запуском таймера и срабатыванием
    fb_tonIncreaseDelay.PT := T#1S;
    // Запускаю отсчет
    fb_tonIncreaseDelay.IN := TRUE;
    fb_tonIncreaseDelay();
    // Если таймер сработал
    IF fb_tonIncreaseDelay.Q THEN
    	// Увеличиваю счетчик
    	rAutoFrequency := rAutoFrequency + 1;
    	// Сбрасываю таймер
    	fb_tonIncreaseDelay.IN := FALSE;
    	fb_tonIncreaseDelay();
    END_IF

  3. #3

    По умолчанию

    [QUOTE=Осинский Алексей;226774]Дело в том, что эта конструкция не работоспособна в CODESYS.

    По поводу переполнения:
    Типа TIME хватит на 49 дней 17 часов 2 минут 47 секунд непрерывного подсчета.
    Если нужно больше - используйте тип DATE_AND_TIME, его будет достаточно до 2106го года


    А каким образом она работает тогда? Пауза в вычислении выдерживается.

  4. #4

    По умолчанию

    Цитата Сообщение от evgeni293 Посмотреть сообщение
    А каким образом она работает тогда? Пауза в вычислении выдерживается.
    Честно говоря не знаю. Пришлите, пожалуйста, проект для CODESYS в котором запись
    Код:
    IF (TIMER+T#1S) TIMER:=TIME();
        CHASTOTA_AUTO:=CHASTOTA_AUTO+1;
    работает, посмотрю как так получается.

    На сколько я вижу в ней 2 ошибки:
    не хватает THEN после IF
    и условие (TIMER + T#1S) имеет тип TIME, а для работы условного оператора должно иметь тип BOOL
    Например так:
    Код:
    IF (TIMER + T#1S) > 0 THEN
        CHASTOTA_AUTO:=CHASTOTA_AUTO+1;
    END_IF

  5. #5

    По умолчанию

    вот проект
    Вложения Вложения

Похожие темы

  1. Автоматика подачи воды по таймеру
    от Maksim69 в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 17.03.2015, 12:06
  2. Разблокировать кнопку по таймеру
    от denprox в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 17.03.2014, 14:34
  3. Прошу помощи по таймеру
    от pilot2 в разделе Подбор Оборудования
    Ответов: 27
    Последнее сообщение: 11.03.2012, 19:50
  4. плавное регулирование по таймеру реального времени
    от gerd в разделе Подбор Оборудования
    Ответов: 6
    Последнее сообщение: 08.08.2010, 21:39
  5. Работа по таймеру
    от Юрий(!) в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 11.02.2008, 15:03

Ваши права

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