TIME

<< Click to Display Table of Contents >>

Navigation:  Программирование в MasterSCADA 4D > Функции и ФБ библиотеки Стандартная > Библиотека Стандартные функции > Функции работы с датой-временем >

TIME

TIME - таймер исполнительной системы.

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

Вид функции в редакторе программ языка FBD:

TIME

Входы и выходы функции:

Название

Тип

Описание

Выходы

Q

TIME

Значение таймера. Q:=time()

Примеры в ST

Стандартный таймер

Значение стандартного таймера – целое 32-разрядное число миллисекунд. т.е. максимальное значение составляет (232 - 1) мс = t#49d17h02m47s295ms, после чего таймер начинает новый цикл отсчета с 0 (т.н. переполнение таймера). При переполнении разность timeN()-timeN-1() отрицательна (N – номер цикла, на котором возникло переполнение). Для корректного вычисления длины временного интервала (что требуется, например, при интегрировании) нужно использовать предварительный перевод значений функции time() в тип данных DWORD (см. Особенности битовых строк). Следующий код корректно вычисляет длительность цикла deltaT:

var deltaT, T_current, T_last:TIME; end_var

T_current:=time();

deltaT:=dword_to_time(time_to_dword(T_current)-time_to_dword(T_last));

T_last:=T_current;

TIME_1

Нестандартный таймер

Если значение таймера  целое N-разрядное число миллисекунд, то для корректного вычисления длины временного интервала нужно использовать предварительный перевод значений функции time() в битовую строку, разрядность которой меньше или равна N. Например, для интервалов, заведомо меньших, чем 255 мс, можно использовать перевод значений функции time() в тип данных BYTE.