-
Tia Portal Таймеры
2020-10-28
Промышленное
-
Во многих технологических процессах требуется контроль времени срабатывания исполнительных механизмов, установка временных промежутков. Например для работы клапана или двигателя может понадобится управление запуском в течение определенного интервала времени, либо включение, выключение с некоторой задержкой. И таких примеров можно привести много. Поэтому можно сказать, что таймеры являются одними из наиболее часто используемых команд при программировании контроллеров.
Для решения этих задач в Tia Portal реализовано несколько типов соответствующих инструкций для работы с задержками по времени — это TON, TOF, TP и TONR.
TON timer (timer on delay) — Таймер с задержкой на включение.
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
TOF timer (timer off delay) — Таймер с задержкой на выключение.
IN — Вход таймера
PT (Preset time) — Вход установки времени.
Q — Выход таймера
ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN
При установке на входе таймера значения TRUE, выход Q также устанавливается в TRUE. При изменении состояния входа IN в FALSE, начинается отсчет времени, заданного PT, после чего выход сбрасывается.
Диаграмма срабатывания таймера TOF
TP ( timer pulse) — Импульсный таймер, включается или выключается на фиксированный период времени.
IN — Вход таймера
PT (Preset time) — Вход установки времени.
Q — Выход таймера
ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN
Таймер запускается, когда значение на входе IN изменяется с 0 на 1 (положительный фронт) и выключается по истечении времени уставки срабатывания PT. В этом таймере, даже если обнаружен новый положительный фронт, состояние сигнала на выходе Q не изменяется, пока отсчитывается время PT.
Диаграмма срабатывания таймера TP
TONR (timer accumulator) — Запоминающий таймер с запаздыванием включения.
IN — Вход таймера
R (Reset) — Сброс истекшего времени
PT (Preset time) — Вход установки времени.
Q — Выход таймера
ET (Elapsed time) — Истекшее время с момента подачи сигнала на вход IN
Выход таймера Q устанавливается в активное состояние спустя заданное время. Истекшее время накапливается на выходе ET все время, пока на входе логическая единица. Подача сигнала на вход R сбрасывает накопленное значение времени ET в 0, а выход Q переводит в состояние FALSE независимо от сигнала на входе IN.
Диаграмма срабатывания таймера TONR
Также в программе вместо вызова функционального блока таймера, можно использовать таймерные катушки — (TP) — , — (TON) — , — (TOF) — и — (TONR) — .
В данном примере запуск таймера формируется положительным фронтом сигнала RLO (Результат логической операции) перед катушкой. Таймер продолжает работу с заданным временем до тех пор, пока значение RLO положительно. Если RLO меняет состояние с 1 на 0 до истечения заданного времени, то таймер останавливается. Следующий положительный фронт вновь активирует таймер.
Пример реализации таймера TON на языке SCL
//Неисправность по термопаре ВК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.
А можно использовать один DB для нескольких таймеров?
Можно создать мультиэкземплярный блок данных для всех таймеров.
Помимо стандартных IEK таймеров, есть еще таймеры S5. А лучше вообще применять самописные.
Неверно показана диаграмма срабатывания таймера TP. Она соответствует таймеру TON.
Спасибо, что обратили внимание. Исправлено.