T_PLC_MS (OSCAT)

<< Click to Display Table of Contents >>

Navigation:  Приложения > Библиотека OSCAT > OSCAT.Функции > OSCAT.Функции.Модули измерения >

T_PLC_MS (OSCAT)

Функция T_PLC_MS выдаёт текущее внутреннее время ПЛК в миллисекундах.

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

T_PLC_MS_OSCAT

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

Название

Тип

Описание

Выходы

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 специально не выполнены в виде входов функции, чтобы предотвратить случайное некорректное использование.