Tia Portal Таймеры

2020-10-28 Промышленное  Один комментарий

Во многих технологических процессах требуется контроль времени срабатывания исполнительных механизмов, установка временных промежутков. Например для работы клапана или двигателя может понадобится управление запуском в течение определенного интервала времени, либо включение, выключение с некоторой задержкой. И таких примеров можно привести много. Поэтому можно сказать, что  таймеры являются одними из наиболее часто используемых команд при программировании контроллеров.

Для решения этих задач в Tia Portal реализовано несколько типов соответствующих инструкций для работы с задержками по времени — это TON, TOF, TP и TONR.

Таймеры в Tia Portal

TON timer (timer on delay) — Таймер с задержкой на включение.

Таймер TON

IN — Вход таймера

PT (Preset time) — Вход установки времени. Время задается в таком формате: T#5s — 5сек, T#5m — 5мин, T#5h — 5час, T#5d5h5m — 5дней,5час.5мин.

Q — Выход таймера

ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN

Когда на вход таймера приходит положительный фронт импульса, таймер начинает отсчет указанного в PT времени, по истечении которого устанавливает значение на выходе Q в TRUE. Это значение сохраняется в течении всего времени, пока на входе IN сохраняется логическая единица.В случае изменения состояния входа IN раньше, чем он успеет отсчитать время, заданное PT, таймер сбрасывает отсчитанное время в ноль.

Диаграмма срабатывания таймера TON

Таймер TON Диаграмма срабатывания

TOF timer (timer off delay) — Таймер с задержкой на выключение.

Таймер TOF

IN — Вход таймера

PT (Preset time) — Вход установки времени.

Q — Выход таймера

ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN

При установке на входе таймера значения TRUE, выход Q также устанавливается в TRUE. При изменении состояния входа IN в FALSE, начинается отсчет времени, заданного PT, после чего выход сбрасывается.

Диаграмма срабатывания таймера TOF

TP ( timer pulse) — Импульсный таймер, включается или выключается на фиксированный период времени.

Таймер TP

IN — Вход таймера

PT (Preset time) — Вход установки времени.

Q — Выход таймера

ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN

Таймер запускается, когда значение на входе IN изменяется с 0 на 1 (положительный фронт) и выключается по истечении времени уставки срабатывания PT. В этом таймере, даже если обнаружен новый положительный фронт, состояние сигнала на выходе Q не изменяется, пока отсчитывается время PT.

Диаграмма срабатывания таймера TP

Таймер TP Диаграмма

TONR (timer accumulator) — Запоминающий таймер с запаздыванием включения.

Таймер TONR

IN — Вход таймера

R (Reset) — Сброс истекшего времени

PT (Preset time) — Вход установки времени.

Q — Выход таймера

ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN

Выход таймера Q устанавливается в активное состояние спустя заданное время. Истекшее время накапливается на выходе ET все время, пока на входе логическая единица. Подача сигнала на вход R сбрасывает накопленное значение времени ET в 0, а выход Q переводит в состояние FALSE независимо от сигнала на входе IN.

Диаграмма срабатывания таймера TONR

TONR Диаграмма

Также в программе вместо вызова функционального блока таймера, можно использовать таймерные катушки — (TP) — , — (TON) — , — (TOF) — и — (TONR) — .

В данном примере запуск таймера формируется положительным фронтом сигнала RLO (Результат логической операции) перед катушкой. Таймер продолжает работу с заданным временем до тех пор, пока значение RLO положительно. Если RLO меняет состояние с 1 на 0 до истечения заданного времени, то таймер останавливается. Следующий положительный фронт вновь активирует таймер.

Пример реализации таймера TON на языке SCL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Неисправность по термопаре ВК2
 
#TimerBK2.TON(IN := #inRealBK2 > #sRealMaxBK2 
OR #inRealBK2 < #sRealMinBK2,
 PT := #sTimeBK2Timer, Q => #actFlagBK2);
// Таймер на задержку срабатывает , 
//если темп-ра факт > макс.уставки или < мин.уставки
 
 IF #actFlagBK2 = TRUE THEN
 #sBoolAlarmBK2 := TRUE;// Если таймер сработал, то вкл. триггер
 ELSE
 IF #actFlagBK2 = FALSE AND #sBoolReset = TRUE THEN 
// Если таймер не сработал и нажата кнопка "Reset", то триггер
//сбрасывается
 #sBoolAlarmBK2 := FALSE;
 END_IF;
 END_IF;

Стоит отметить, что при добавлении инструкции таймера  по умолчанию создается экземпляр блока DB, который не сохраняет данные таймера в случае выключения питания контроллера, или перехода в режим STOP. Для сохранения данных необходимо создать глобальный блок данных DB, либо мультиэкземплярный блок, если таймер используется в FB (Функциональном блоке).

Наиболее распространенными задачами с применением таймеров являются задание времени протекания процесса, реализация задержек на включение-выключение, программная защита от дребезга контактов, реализация генераторов импульсов.

Примеры реализации программ с использованием различных таймеров для этих и других задач рассмотрим в дальнейших статьях по Tia Portal.

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

  • lukojl-club.ru says:

    Выключение бита таймера, и обнуление актуального значения происходит при равенстве актуального и предустановленного значений.

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>