ФБ №56 «Чтение системной настройки»
ФБ нужен когда какую-либо из системных настроек или системных переменных статистики необходимо использовать (учитывать) в логике конфигурации функциональных блоков.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Адрес настройки | uint16 (uint8/uint32) | № настройки = адресу MODBUS-регистра (Прил. В) |
| Выход | Значение | uint16 (uint32) | Прочитанное значение; «0», если не удалось |
| Выход | Код ошибки | uint8 | 0 — NO_ERRORS; 2 — ILLEGAL_DATA_ADDRESS |
ФБ №57 «Запись системной настройки»
ФБ нужен когда какую-либо из системных настроек необходимо задать (изменить) в логике конфигурации функциональных блоков.
При записи сохраняемых системных настроек контроллера с помощью данного ФБ, контроллер будет производить их запись во flash-память модуля, что увеличит время исполнения цепочки ФБ. К тому же, ресурс flash-памяти ограничен 100000 циклов перезаписи. Поэтому не рекомендуется оставлять «1» на входе ФБ «Записать» более чем на 1 такт исполнения цепочки ФБ, а подача на вход «Записать» константы «1» может привести к повреждению страницы flash-памяти модуля из-за частых операций перезаписи.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Записать | bit | Импульс на 1 такт исполнения цепочки |
| Вход | Адрес настройки | uint16 (uint8/uint32) | № настройки (адрес MODBUS) |
| Вход | Значение | uint16 | Значение для записи |
| Выход | Код ошибки | uint8 | 0 — NO_ERRORS; 2 — ILLEGAL_ADDR; 3 — ILLEGAL_VALUE |
ФБ №19 «Среднее за N тактов»
Требования к типам входов и выходов и их количеству:
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Value | uint8/16/32/float32 | Усредняемая величина |
| Вход | N | uint | Размер выборки |
| Выход | Среднее | как у Value | |
| Внутр. | var_Summ, var_I | целочисленные | Накапливаемая сумма; счётчик значений |
ФБ №20 «Среднее за N секунд»
Кроме того есть 3 внутренние переменные ФБ: «var_Summ»- накапливаемая сумма и «var_I»- количество прошедших секунд и «var_StartTime»– time32-переменная начала времени начала периода усреднения.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Value | uint8/16/32/float32 | Усредняемая величина |
| Вход | N | uint | Количество секунд |
| Выход | Среднее | как у Value | |
| Внутр. | var_Summ, var_I, var_StartTime | var_I: uint, var_Summ: как Value, time32 | Сумма; счётчик секунд; время начала |
ФБ №21 «Компаратор»
«Value»- входная величина, «Верхний предел» и «Нижний предел». Оба дискретных выхода типа bit. Все входы должны быть одинакового типа (либо целочисленные uint8/16/32, либо float32).
ФБ №22 «Мультиплексор (до 32 входов)»
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | № входа | uint | Нумерация с «0»; >31 → выход «0» |
| Вход | Вход 0…N-1 (≤32) | одинаковый | Входные каналы |
| Выход | Выход | как у входов | Значение выбранного входа |
ФБ №40 «Селектор (до 32 выходов)»
ФБ «Селектор» выдаёт на выход с номером «№ выхода» значение, поданное на вход «Вход». На остальные выходы ФБ выдаёт «0».
Количество выходов зависит от количества необходимых выходных каналов.
На все выходы кроме выбранного подаётся «0». Тип входов и выхода должен быть одинаковым. Допускаются bit, uint8/16/32 или float32.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | № выхода | uint | Нумерация с 0 |
| Вход | Вход | одинаковый | Значение |
| Выход | Выход 0…N-1 (1…32) | как у входа | Выбранному — «Вход», остальным — «0» |
ФБ №71 «Селектор без обнуления выходов (до 32 выходов)»
ФБ «Селектор без обнуления выходов» аналогичен ФБ «Селектор», за исключением того, что все выходы кроме выбранного сохраняют свои старые значения.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | № выхода | uint | Нумерация с 0 |
| Вход | Вход | одинаковый | Значение |
| Выход | Выход 0…N-1 (1…32) | как у входа | Выбранному — «Вход», остальным — «0» |
ФБ №41 «RS-триггер с приоритетным 0»
Примечание: если одновременно «R» = «1» и «S» = «1» то триггер сбрасывается.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | R | bit | Сброс |
| Вход | S | bit | Установка |
| Выход | T | bit | Прямой выход |
| Выход | не T | bit | Инверсный выход; R=S=1 → сброс |
ФБ №42 «Триггер с автосбросом»
Триггер с автосбросом применяется для подачи команд функциональным блокам, т. е. когда нужно подать на вход ФБ логическую «1» на один такт исполнения цепочки ФБ, после чего сбросить его значение.
1 битовый вход, лог. «1» на котором инициирует выдачу положительного импульса на вы-ход «Out».
2 битовых выхода: «Out» для подачи на вход ФБ положительного импульса на 1 такт исполнения и «R_Out»- выход для сброса значения, поданного на вход «In». Для сброса входного значения, выход «R_Out» необходимо соединить с входом «In».
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | In | bit | «1» — импульс на выходе Out |
| Выход | Out | bit | Положительный импульс на 1 такт |
| Выход | R_Out | bit | Выход сброса; соединить с In |
ФБ №69 «Детектор изменений»
Выдает импульс на выход Detected и записывает его в Output, если входное значение изменилось.
Типы переменных на входе и выходе должны совпадать.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Input | любой | Контролируемое значение |
| Выход | Detected | bit | Импульс при изменении Input |
| Выход | Output | как Input | Текущее значение |
ФБ №43 «Одновибратор по фронту»
При каждом положительном фронте на входе In выставляет «1» в Out на количество тактов, равное Tics. Если во время удержания «1» на выходе, прошёл ещё один фронт на входе, то время начинает отсчитываться с этого момента.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | In | bit | |
| Вход | Tics | uint | Длительность импульса, тактов |
| Выход | Timer | uint | Текущее значение таймера |
| Выход | Out | bit | Импульс на каждый фронт In |
ФБ №29 «Триггер со сбросом через N тактов»
При «1» на входе In FB выставляет «1» в Out и сбрасывает по истечению тактов SetTime после спада на входе Input. Если момент времени, при котором на входе «0» меньше чем SetTime, то на выходе «1» не сбросится.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Input | bit | |
| Вход | SetTime | uint | Задержка сброса, тактов |
| Выход | Out | bit |
ФБ №67 «Фильтр дискретный»
Выход изменяет свое состояние только в том случае если входное значение продержалось больше Ust тактов, тогда Dout == Din.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Din | bit | |
| Вход | Ust | uint | Время удержания, тактов |
| Выход | Dout | bit | Меняется, если Din продержался >= Ust |
ФБ №84 «Запись в батарейный домен»
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | EnWrite | bit | Разрешение записи |
| Вход | Address | uint16 | Адрес записи |
| Вход | Value | любой | Значение |
| Выход | Ok | bit | «1» — запись успешна |
ФБ №85 «Чтение из батарейного домена»
Вход Address – адрес чтения, тип uint16. На выходе Value – прочитанное значение.
ФБ №94 «Фильтр DI длинный 0 остальные 1»
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | In | bit | |
| Вход | Ust | bit | Требуемое состояние |
| Вход | Period | uint8 | Время, с |
| Выход | Out | bit | = Ust, если In = Ust не менее Period секунд |
ФБ №100 «Инертная задержка»
На вход подаются:
Input– Положение задвижки
dInput– Давление в системе
На выходе Output значение с задержкой.
ФБ №106 «Мультиплексор DI»
ФБ позволяет выделить состояние конкретного входа DI из множества каналов DI. Значения каналов DI могут быть получены путем чтения сетевых переменных у других контроллеров. Таким образом, в логике главного контроллера будет казаться, что у него больше 16 его собственных входов DI.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | №DI | uint | Номер DI, 1…256 |
| Вход | Канал 1-16 … Канал 241-256 | 16 x bit | Значения DI слейва (по 16 шт.) |
| Выход | OUT | bit | Состояние выбранного DI |
| Выход | Error | bit | «1» — №DI=0 или >256 |
ФБ №115 «Фильтр универсальный»
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enable | bit | Разрешение работы |
| Вход | Reset | bit | Перезагрузка логики |
| Вход | Time | Время фильтрации | |
| Вход | Input | Входной сигнал | |
| Выход | Output |
ФБ №116 «Мультиплексор 2.0»
В ФБ задаётся соответствие между входом и выходом. Тип входа и выхода должен быть одинаковым.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | In1…In32 | одинаковый | Входы |
| Вход | In(x)→Out1…In32(x) | bit | Признак связывания входа с выходом |
| Выход | Out1…Out32 | как у входов |
ФБ №117 «Вход – выход сквозной»
Каждый выход 0..15 соответствует входу 0..15.
| Вх/Вых | Имя | Назначение |
|---|---|---|
| Вход | 0…15 | |
| Выход | 0…15 | Прозрачное соответствие вход ↔ выход |
ФБ №128 «Компоновщик в блоки»
ФБ реализует выбор элементов массива по маске.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | BigEndian | bit | Порядок байт |
| Вход | Mask_1-16 | uint16 | Маска битов 1-16 |
| Вход | Mask_17-32 | uint16 | Маска битов 17-32 |
| Вход | InArrays | массив | Входной массив |
| Выход | Elements | массив | Элементы, выбранные по маске |