Особенности использования таймеров в языке STL


Таймер существует в Stl-программе как блочный элемент. Загрузка значения времени осуществляется через аккумулятор 1.

Таймер запускается, если состоялось изменение значения результата логической операции RLO. При этом для таймера с задержкой выключения (Off-delay timer) RLO должен изменить свое состояние со значения "1" на "0", а для всех других типов таймеров RLO должен изменить свое состояние со значения "0" на "1".

 

Рисунок 2.14- Временные диаграммы таймеров

Таблица 2.1 - Назначения входов и выходов таймера

Название Тип данных Описание
S BOOL Вход запуска
TV S5TIME Спецификация продолжительности
R BOOL Вход сброса
BI WORD Текущее значение в двоичном коде
BCD WORD Текущее значение в Bcd-формате
Q BOOL Состояние таймера

 

При запуске таймера из аккумулятора 1 выбирается время запуска (running time) или продолжительность работы (duration). Эти параметры рекомендуется загружать в аккумулятор 1 непосредственно перед запуском или в виде константы, или в виде переменной.

Примеры задания продолжительности импульса таймера константой:

L S5TIME#10s; // Загрузить продолжительность 10 с;

L S5T#1m10ms; // Загрузить продолжительность 1 мин 10 мс.

Примеры задания продолжительности импульса таймера переменной:

L S5T#10m; //Задать продолжительность 10 мин;

T MW20; //Сохранить продолжительность работы;

L MW20; //Загрузить продолжительность работы.

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

Значение временной базы (величины шага по времени) используется операционной системой CPU для декрементирования таймера (рис. 2.15).

Рисунок 2.15 – Формирование параметра “продолжительность работы”

 

Таким образом, уменьшение значения временной базы обеспечивает более точное вычисление промежутков времени, потому что CPU делает ступенчатое (декрементное) уменьшение значения функции таймера (time value) согласно заданному значению временной базы (time base).

Следует учитывать, что таймеры могут обновляться асинхронно относительно процесса сканирования программы пользователя. При этом состояние таймера в начале цикла сканирования отличается от его состояния в конце цикла. Чтобы уменьшить ошибку через асинхронное восстановление таймера в программе, таймер необходимо обновлять только в одном месте программы.

Сброс таймера выполняется по инструкции:

R T n;

По этой инструкции таймер сбрасывается при результате логической операции RLO, равному "1".

Запустить таймер снова можно инструкцией:

FR T n

В операционную систему CPU встроены Iec-функции таймеров. Они доступны как системные функциональные блоки SFB:

• SFB 3 TP – генерация импульсов;

• SFB 4 TON – генерация импульса с задержкой включения;

• SFB 5 TOF – генерация импульса с задержкой выключения.

Параметры Iec-функций таймеров представлены в табл. 2.2.

 

Таблица 2.2 - Параметры Iec-функций таймеров

Название Назначение Тип данных Описание
IN INPUT BOOL Вход запуска (Start input)
PT INPUT TIME Продолжительность импульса (Pulse length) или задержка включения (Delay duration)
Q INPUT BOOL Состояние таймера (Timer status)
ET INPUT TIME Прошедшее время (Elapsed time)

 



Дата добавления: 2016-12-09; просмотров: 3500;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.