Лекция 6. Операции с таймерами на языке STL

Таймер в СПЛК не столько устройство, сколько область памяти в микропроцессоре.

Функции таймеров в СПЛК можно разделить на:

1) управление по времени;

2) обеспечение заданного времени ожидания (waiting);

3) мониторинг (monitoring time) для измерения отрезков времени;

4) генерации импульсов.

Обращение к области памяти используемого таймера происходит по адресу от Т0 до Т255, в Simantic Manager есть возможность обращаться к 256 таймерам каждые из которых 16 разрядный. Реальное количество таймеров определяется типом ЦПУ.

Обращение функции таймера на языке LAD возможно 2-мя способами:

- с помощью катушки;

- с помощью блока.

Если функция таймера вызывается с помощью катушки, это выглядит следующим образом:

Рисунок 13 - Блок таймеров

Здесь указывается 2 параметра: область памяти таймера, т.е. номер таймера Т1, а также время запуска таймера 5s. Время задается в формате времени контроллера или в 16-ти разрядном формате. Формат времени контроллера означает, что счет ведется по частоте тактового генератора контроллера.

Если функция таймера вызывается в виде блока, то есть возможность задания дополнительных параметров: адрес изменения времени в формате времени и в формате шестнадцатиразрядного числа, условия запуска, условия сброса, условия разрешения действий таймера. Этими параметрами являются входы запуска S, перезапуска R и выходы представления значения таймера в разных форматах: OUT1 и OUT2. Также в программировании мы можем использовать выходной импульс таймера для формирования независимых логических целей, например, на рисунке это изображено в виде нормально замкнутого контакта. Этот контакт равносилен условию: «если на выходе таймера нет импульса».

Согласно стандарту МЭК, СПЛК должен обладать следующими разновидностями таймеров:

Рисунок 14 - Разновидности таймеров

1) SP таймер – таймер с управляемым импульсом. Начинает отсчет времени от переднего фронта, запускающего сигнала. Все заданное время t на выходе таймера сохраняется импульс, если входной сигнал не исчез. Если входной сигнал обнулиться раньше заданного времени, на выходе таймера импульс исчезнет также вместе с запускающим сигналом.

2) SE таймер – таймер с расширенным импульсом. Отличается от таймера SP тем, что даже если запускающий сигнал уже обнулился на выходе таймера, импульс сохранится до конца заданного времени t.

3) SD таймер – таймер с задержкой включения. Отчет времени начинается

по переднему фронту запускающего сигнала, а импульс на выходе появляется по истечению заданного времени t. Импульс на выходе таймера сохраняется, пока есть запускающий сигнал. Если запускающий сигнал закончится раньше заданного времени, то на выходе таймера импульс так и не появится.

4) SS таймер – таймер с задержкой включения с памятью. SS таймер отличается от SD таймера тем, что при исчезновении запускающего сигнала сохраняет на выходе единичный импульс. Сбросить его можно только специальной командой.

5) SF таймер – таймер с задержкой выключения. Импульс на выходе таймера появляется вместе с запускающим сигналом, а отсчет времени начинается по заднему фронту запускающего сигнала, по истечению заданного времени импульс сбрасывается.

Язык STL располагает рядом операций для реализации таймерных функций.

Команда запуска таймера: SР Тn, SS Тn, SE Тn, SF Тn, SD Тn. Здесь Тn – таймер с номером n.

Команды управления таймером: R Тn – сброс, FR Тn - разблокировка (означает новую активацию таймера), L S5T#nS, LC C#nnn – загрузка значения таймера, A Тn,O Тn,AN Тn … – опрос состояния таймера Тn.

Пример программы с таймером

A “S1” //если нажата кнопка “S1”

FR Т1 //разблокировать таймер Т1

L S5T#5s //загрузить в аккумулятор значение времени

SS T1 //запустить таймер с задержкой включения и запомнить

A T1 //когда таймер выдаст импульс на выходе

= “Y1” //включить выходной сигнал “Y1”

Пример программы с таймером задержки включения SD

A I 0.7 //если на входе I0.7 появится сигнал

L S5T#35s // загрузить в аккумулятор значение времени

SD T4 //запустить таймер Т4 с задержкой включения

A I 0.5 //если на входе I0.5 появится сигнал

R T4 //сбросить таймер Т4

L T4 //загрузить в аккумулятор значение в Т4

T MW0 //выгрузить данные из аккумулятора в адрес MW0

LC T4 //загрузить в аккумулятор значение в BCD из Т4

T QW12 //выгрузить данные из аккумулятора в адрес QW12

A T4 //когда таймер выдаст импульс на выходе

= Q 8.5 //включить выходной сигнал Q 8.5

Пример с управляемым импульсом SP

AN T2 //если нет выходного импульса Т2

FR T1 //разблокировать таймер Т1

L S5T#200ms //загрузить в аккумулятор значение времени

SP T1 //запустить таймер Т1 на 200 миллисекунд

AN T1 //если нет выходного импульса Т1

FR T2 //разблокировать таймер Т2

L S5T#200ms //загрузить в аккумулятор значение времени

SP T2 //запустить таймер Т2 на 200 миллисекунд

Этот пример демонстрирует как на выходе двух таймеров Т1 и Т2 возникают бесконечные противофазные импульсы.

Задача:

Имеются 3 датчика, если сработает 1-й и 2-й датчики, то зажечь на выход лампу на 3секунды; если любые другие ситуации, то зажечь лампу на 5секунд.

Сеть 1

A D1

A D2

AN D3

FR T1

L S5T#3s

SE T1

Сеть 2

A T1

= L1

Сеть 3

AN D1

AN D2

A D3

NOT

L S5T#5S

SE T2

Сеть 4

A T2

= L1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: