ФБ работы со временем и счётчики

ФБ №23 «Системное время в UNIX-формате»

ФБ выдаёт на выход «Время (UNIX)» системное время контроллера, которое он берёт из микросхемы часов реального времени. Формат UNIX – uint32 число равное количеству секунд, прошедшему с 1 ян-варя 1970 года.

Также ФБ имеет битовый выход «Время синхронизировано», «0» на котором означает что с момента включения контроллера, его системное время ещё ни разу не было синхронизировано командами от ПО верхнего уровня либо ФБ «Синхронизатор времени».


ФБ №44 «Синхронизатор времени»

ФБ нужен для синхронизации системного времени контроллера через адресное пространство ОЗУ ФБ. Для синхронизации необходимо подать на вход «Время (UNIX)» текущее время, предварительно время в неUNIX формате может быть сконвертировано ФБ-конвертером времени. Далее следует на битовый вход «Синхронизировать» подать положительный импульс. ФБ инициирует запись в микросхему часов реального времени и установит системный флаг «время синхронизировано».


ФБ №45 «Конвертер времени из UNIX-формата» и ФБ №46 «Конвертер времени в UNIX-формат»

ФБ необходимы для конвертирования времени между 2 представлениями (UNIX и отдельными значениями текущего дня, месяца, года (год отсчитывается от 1980 г.), часа, минуты и секунды).


ФБ №58 «Первая секунда исполнения конфигурации»

ФБ имеет 1 битовый выход, который = «1» в первую секунду исполнения конфигурации, далее = «0».


ФБ №59 «Секунд с начала исполнения конфигурации»

ФБ имеет 1 time32/uint32 выход, на который выдаёт кол-во секунд, прошедших с момента начала исполнения конфигурации.


ФБ №37 «Счётчик»

На вход «Value» ФБ «Счётчик» может быть подано любое увеличивающееся значение вещественно-го или целочисленного типа. Например, текущее время в формате UNIX, различные внешние или внутренние программные счётчики.

Счёт ведётся пока вход «Enable» = «1». Когда «Enable» = «0», счёт приостанавливается. Вход «Reset» сбрасывает значение счётчика.

Переменные «Enable_Old» и «Value_Old» используются для запоминания прошлых значений входов «Enable» и «Value».

Требования к типам входов и выходов и их количеству:


ФБ №28 «Длительность импульса (в тактах)»

Требования к типам входов и выходов и их количеству:


ФБ № 89 «Счетчик входных импульсов»

ФБ инкрементирует счетчик по каждому возрастающему фронту сигнала на входе Input и выводит на регистр выхода Output.

Список входов/выходов
DIAO
Разрешение тактирования (Enable-Bit)Счетчик входных тактов (Output - unit8, unit16, unit32)
Обнуление счетчика (Reset - Bit)
Вход для тактового сигнала (Input - Bit)

Блок-схема ФБ «Счетчик входных импульсов»:


ФБ №81 «Весовой импульс с счетчика»


ФБ №61 «Первое исполнение ФБ логики»

Выход Out – признак первого такта исполнения ФБ.


ФБ №24 «Системное время: секунд от начала минуты»

ФБ подает на выход число секунд от начала минуты.


ФБ №26 «Системное время: секунд от начала суток»

ФБ подает на выход число секунд от начала суток.


ФБ №25 «Системное время: Секунд от начала часа»

ФБ подает на выход число секунд от начала часа.


ФБ №78 «Счетчик с ограничением по максимальному приращению»

На вход «Value» может быть подано любое увеличивающееся значение вещественного или целочисленного типа. Например, текущее время в формате UNIX, различные внешние или внутренние программные счётчики.

Счёт ведётся пока вход «Enable» = «1», а значение выхода «Counter» меньше либо равно значению входа «Maxincrement». Когда «Enable» = «0» либо значение выхода «Counter» достигло значения входа «Maxincrement», счёт приостанавливается. Вход «Reset» сбрасывает значение счётчика.

Переменные «Enable_Old» и «Value_Old» используются для запоминания прошлых значений входов «Enable» и «Value».

Требования к типам входов и выходов и их количеству:


ФБ №27 «Таймер: секунд от начала периода»

Если на вход Reset подается 1, на выход PeriodTime выводится 0. Как только на вход Reset подается 0, на выход PeriodTime выводится количество секунд до того как на вход Reset поступит 1.