<< Click to Display Table of Contents >> Navigation: Приложения > Библиотека OSCAT > OSCAT.Функции > OSCAT.Функции.Модули измерения > T_PLC_MS (OSCAT) |
Функция T_PLC_MS выдаёт текущее внутреннее время ПЛК в миллисекундах.
Вид функции в редакторе программ языка FBD:
Выходы функции:
Название |
Тип |
Описание |
Выходы |
||
Q |
DWORD |
Значение SPS-таймера PLC в мс. |
Код функции:
FUNCTION T_PLC_MS : DWORD
VAR CONSTANT
DEBUG : BOOL := FALSE;
N : INT := 0;
OFFSET := 0;
END_VAR
VAR
TEMP : DWORD := 1;
END_VAR
T_PLC_MS := TIME_TO_DWORD(TIME());
IF debug THEN
T_PLC_MS := (SHL(T_PLC_MS,N) OR SHL(DWORD#1,N)-1) + OFFSET;
END_IF;
Функция работает в двух режимах – нормальном и отладочном.
В нормальном режиме (DEBUG=FALSE, значение по умолчанию) T_PLC_MS использует функцию time() (см. TIME, таймер ПЛК) и возвращает текущее время стандартного таймера контроллера как целое число миллисекунд. При использовании T_PLC_MS длина временного интервала вычисляется корректно, в том числе при переполнении таймера.
В отладочном режиме (DEBUG=TRUE) T_PLC_MS используется для тестирования поведения ПО при переполнении, не дожидаясь 49 суток. С помощью константы N скорость нарастания выходного значения функции может быть увеличена в 2,4,8,16 и т.д. раз, константа OFFSET добавляется к полученному значению. Константы DEBUG, N и OFFSET специально не выполнены в виде входов функции, чтобы предотвратить случайное некорректное использование.