Функция T_PLC_MS тип DWORD

Выход DWORD (Таймер ПЛК в миллисекундах)
T_PLC_MS возвращает текущее внутреннее время ПЛК в миллисекундах. Оно не имеет ничего общего с возможно имеющимися часами (блоком реального времени), а является значением внутреннего таймера ПЛК, которое используется в качестве опорного времени.
При нормальной работе блок считывает с помощью функции TIME() значение внутреннего таймера ПЛК и затем возвращает его. Внутренний таймер ПЛК имеет разрешение в 1 миллисекунду согласно стандарту IEC.

Другой особенностью T_PLC_MS является режим отладки, который позволяет тестировать переполнение внутреннего таймера ПЛК и проверять надежность работы разработанной программы в этом случае. Внутренний таймер каждого ПЛК переполняется через определенное время, независимо от производителя и типа его реализации. Это означает, что он достигает FF..FFFF (наибольшего значения, которое может храниться в переменной соответствующего типа), и затем начинает счет снова с 000..0000. Согласно стандарту, для таймеров ПЛК период переполнения составляет 2^32 -1 миллисекунд, что соответствует примерно 49,71 дням. Поскольку этот таймер реализован аппаратно, то его начальное значение нельзя установить, и после запуска ПЛК отсчет таймера всегда начинается с 0 и продолжается до достижения максимального значения. По достижении максимального значения возникает переполнение таймера, которое может вызвать фатальные последствия для приложения, однако проверить это крайне сложно.

T_PLC_MS предлагает несколько способов для проверки переполнения и зависящего от времени программного обеспечения. С помощью константы DEBUG может быть включен режим отладки, и затем при помощи констант N и OFFSET таймер может быть запущен с определенного значения, что позволяет протестировать переполнение, не дожидаясь 49 дней. При этом OFFSET задает число, которое добавляется к значению внутреннего таймера. С помощью постоянной N определяется, на сколько разрядов значение внутреннего таймера сдвигается влево, тем самым заполняя младшие N разрядов единицами. Таким образом, при помощи N скорость работы внутреннего таймера может быть увеличена в 2,4,8,16 и т.д. раз.

Таким образом, T_PLC_MS предоставляет все возможности для тестирования зависимого от времени программного обеспечения, как для проблемы переполнения, так и для очень продолжительных зависимых от времени функций.

Постоянные DEBUG, N и OFFSET специально реализованы не в виде входов функции, чтобы избежать случайного ошибочного использования.
См. также: T_PLC_US.