ФБ №23 «Системное время в UNIX-формате»
ФБ выдаёт на выход «Время (UNIX)» системное время контроллера, которое он берёт из микросхемы часов реального времени. Формат UNIX – uint32 число равное количеству секунд, прошедшему с 1 января 1970 года.
Также ФБ имеет битовый выход «Время синхронизировано», «0» на котором означает что с момента включения контроллера, его системное время ещё ни разу не было синхронизировано командами от ПО верхнего уровня либо ФБ «Синхронизатор времени».
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Выход | Время (UNIX) | uint32 | Секунды с 01.01.1970 |
| Выход | Время синхронизировано | bit | «0» — время ни разу не синхронизировалось |
ФБ №44 «Синхронизатор времени»
ФБ нужен для синхронизации системного времени контроллера через адресное пространство ОЗУ ФБ. Для синхронизации необходимо подать на вход «Время (UNIX)» текущее время, предварительно время в не UNIX формате может быть сконвертировано ФБ-конвертером времени. Далее следует на битовый вход «Синхронизировать» подать положительный импульс. ФБ инициирует запись в микросхему часов реального времени и установит системный флаг «время синхронизировано».
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Синхронизировать | bit | Положительный импульс |
| Вход | Время (UNIX) | uint32 |
ФБ №45 «Конвертер времени из UNIX-формата» и ФБ №46 «Конвертер времени в UNIX-формат»
ФБ необходимы для конвертирования времени между 2 представлениями (UNIX и отдельными значениями текущего дня, месяца, года (год отсчитывается от 1980 г.), часа, минуты и секунды).
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Время (UNIX) | uint32 | |
| Выход | Секунд, Минут, Часов, День, Месяц, Год | uint8 | Год — от 1980 г. |
ФБ №58 «Первая секунда исполнения конфигурации»
ФБ имеет 1 битовый выход, который = «1» в первую секунду исполнения конфигурации, далее = «0».
ФБ №59 «Секунд с начала исполнения конфигурации»
ФБ имеет 1 time32/uint32 выход, на который выдаёт количество секунд, прошедших с момента начала исполнения конфигурации.
ФБ №37 «Счётчик»
На вход «Value» ФБ «Счётчик» может быть подано любое увеличивающееся значение вещественного или целочисленного типа. Например, текущее время в формате UNIX, различные внешние или внутренние программные счётчики.
Счёт ведётся пока вход «Enable» = «1». Когда «Enable» = «0», счёт приостанавливается. Вход «Reset» сбрасывает значение счётчика.
Переменные «Enable_Old» и «Value_Old» используются для запоминания прошлых значений входов «Enable» и «Value».
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enable | bit | Счёт при «1» |
| Вход | Reset | bit | Сброс |
| Вход | Value | uint8/uint16/uint32/float32 | Увеличивающееся значение |
| Внутр. | Enable_Old/Value_Old | bit / как Value | |
| Выход | Счётчик | как Value | Накопленное приращение |
ФБ №28 «Длительность импульса (в тактах)»
Требования к типам входов и выходов и их количеству:
ФБ № 89 «Счетчик входных импульсов»
ФБ инкрементирует счетчик по каждому возрастающему фронту сигнала на входе Input и выводит на регистр выхода Output.
Блок-схема ФБ «Счетчик входных импульсов»:
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enable | bit | Разрешение тактирования |
| Вход | Reset | bit | Обнуление счётчика |
| Вход | Input | bit | Тактовый сигнал |
| Выход | Output | uint8/16/32 | Счётчик фронтов |
ФБ №81 «Весовой импульс с счетчика»
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enable | bit | Разрешение счёта |
| Вход | Reset | bit | Обнуление |
| Вход | Value | int8/16/32/float32 | Увеличивающееся значение |
| Вход | MaxIncrement | как Value | Уставка макс. изменения за такт; 0 — контроль отключён |
| Внутр. | Enable_Old, Value_Old | bit / как Value | |
| Выход | Counter | как Value | Накопленный счётчик |
ФБ №61 «Первое исполнение ФБ логики»
Выход Out – признак первого такта исполнения ФБ.
ФБ №24 «Системное время: секунд от начала минуты»
ФБ подает на выход число секунд от начала минуты.
ФБ №26 «Системное время: секунд от начала суток»
ФБ подает на выход число секунд от начала суток.
ФБ №25 «Системное время: Секунд от начала часа»
ФБ подает на выход число секунд от начала часа.
ФБ №78 «Счетчик с ограничением по максимальному приращению»
На вход «Value» может быть подано любое увеличивающееся значение вещественного или целочисленного типа. Например, текущее время в формате UNIX, различные внешние или внутренние программные счётчики.
Счёт ведётся пока вход «Enable» = «1», а значение выхода «Counter» меньше либо равно значению входа «Maxincrement». Когда «Enable» = «0» либо значение выхода «Counter» достигло значения входа «Maxincrement», счёт приостанавливается. Вход «Reset» сбрасывает значение счётчика.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enable, Reset | bit | |
| Вход | Value | uint8/16/32/float32 | Увеличивающееся значение |
| Вход | Maxincrement | как Value | Предел приращения |
| Выход | Counter | как Value | Счёт приращений, счёт останавливается при достижении Maxincrement |
ФБ №27 «Таймер: секунд от начала периода»
Если на вход Reset подается 1, на выход PeriodTime выводится 0. Как только на вход Reset подается 0, на выход PeriodTime выводится количество секунд до того как на вход Reset поступит 1.