Описание функциональных блоков библиотеки ИСР BEREMIZ для ПЛК BRIC
Внимание
Для использования стандартных и дополнительных функциональных блоков в языке ST необходимо перетащить необходимый из библиотеки в зону перечисления переменных и дать наименование.
Важно
Для функциональных блоков и функций имеется несколько вариантов написания кода на языке ST в зависимости от входов/выходов.
Вариант 1:
FB( IN := (*BOOL*), OUT => (*BOOL*));
Вариант 2:
FB(IN, OUT);
Вариант 3:
FB(IN := (*BOOL*)); Q := FB.OUT
BRIC Library
Блок UTON
Данный ФБ представляет собой таймер с задержкой включения.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Подача импульса |
PT |
ULINT |
Время задержки в формате ULINT |
Выход |
Тип |
Описание |
Q |
BOOL |
Если ET = PV и IN = 1, то Q = 1, иначе Q = 0 |
ET |
ULINT |
Счетчик времени считает пока ET < PV и IN = 1 |
TT |
BOOL |
TRUE, пока ET < PV |
Форма записи на языке ST:
FB(IN := (*BOOL*), PT := (*ULINT*));
(*BOOL*) := FB.Q;
(*ULINT*) := FB.ET;
(*BOOL*) := FB.TT;
Блок UTOF
Данный ФБ представляет таймер, реализующий задержку выключения. Когда вход изменяется с TRUE на FALSE (задний фронт) проходит определенное время, пока выход не станет FALSE.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Подача импульса |
PT |
ULINT |
Время задержки в формате ULINT |
Выход |
Тип |
Описание |
Q |
BOOL |
Если IN = TRUE => Q = TRUE. При переходе IN в FALSE, если ET = PV, то Q = 0, иначе Q = 1 |
ET |
ULINT |
Счетчик времени считает пока ET < PV и был переход IN из TRUE в FALSE |
TT |
BOOL |
TRUE, пока ET < PV |
Форма записи на языке ST:
FB(IN := (*BOOL*), PT := (*ULINT*));
(*BOOL*) := FB.Q;
(*ULINT*) := FB.ET;
(*BOOL*) := FB.TT;
Блок WORD_ON_BOOL
ФБ WORD_ON_BOOL выводит значение входной переменной WORD в битах.
Вход |
Тип |
Описание |
---|---|---|
WORD_IN |
WORD |
Входная переменная |
Выход |
Тип |
Описание |
B_OUT0 |
BOOL |
Вывод значения нулевого бита |
B_OUT1 |
BOOL |
Вывод значения первого бита |
B_OUT2 |
BOOL |
Вывод значения второго бита |
B_OUT3 |
BOOL |
Вывод значения третьего бита |
B_OUT4 |
BOOL |
Вывод значения четвертого бита |
B_OUT5 |
BOOL |
Вывод значения пятого бита |
B_OUT6 |
BOOL |
Вывод значения шестого бита |
B_OUT7 |
BOOL |
Вывод значения седьмого бита |
B_OUT8 |
BOOL |
Вывод значения восьмого бита |
B_OUT9 |
BOOL |
Вывод значения девятого бита |
B_OUT10 |
BOOL |
Вывод значения десятого бита |
B_OUT11 |
BOOL |
Вывод значения одиннацатого бита |
B_OUT12 |
BOOL |
Вывод значения двенадцатого бита |
B_OUT13 |
BOOL |
Вывод значения тринадцатого бита |
B_OUT14 |
BOOL |
Вывод значения четырнадцатого бита |
B_OUT15 |
BOOL |
Вывод значения пятнадцатого бита |
Форма записи на языке ST:
FB(WORD_IN := (*WORD*)); (*BOOL*) := FB.B_OUT0; (*BOOL*) := FB.B_OUT1; (*BOOL*) := FB.B_OUT2; (*BOOL*) := FB.B_OUT3; (*BOOL*) := FB.B_OUT4; (*BOOL*) := FB.B_OUT5; (*BOOL*) := FB.B_OUT6; (*BOOL*) := FB.B_OUT7; (*BOOL*) := FB.B_OUT8; (*BOOL*) := FB.B_OUT9; (*BOOL*) := FB.B_OUT10; (*BOOL*) := FB.B_OUT11; (*BOOL*) := FB.B_OUT12; (*BOOL*) := FB.B_OUT13; (*BOOL*) := FB.B_OUT14; (*BOOL*) := FB.B_OUT15;
Блок BOOL_ON_WORD
ФБ BOOL_ON_WORD выводит значение в формате WORD входных булевых переменных.
Вход |
Тип |
Описание |
---|---|---|
B_IN0 |
BOOL |
Ввод значения нулевого бита |
B_IN1 |
BOOL |
Ввод значения первого бита |
B_IN2 |
BOOL |
Ввод значения второго бита |
B_IN3 |
BOOL |
Ввод значения третьего бита |
B_IN4 |
BOOL |
Ввод значения четвертого бита |
B_IN5 |
BOOL |
Ввод значения пятого бита |
B_IN6 |
BOOL |
Ввод значения шестого бита |
B_IN7 |
BOOL |
Ввод значения седьмого бита |
B_IN8 |
BOOL |
Ввод значения восьмого бита |
B_IN9 |
BOOL |
Ввод значения девятого бита |
B_IN10 |
BOOL |
Ввод значения десятого бита |
B_IN11 |
BOOL |
Ввод значения одиннацатого бита |
B_IN12 |
BOOL |
Ввод значения двенадцатого бита |
B_IN13 |
BOOL |
Ввод значения тринадцатого бита |
B_IN14 |
BOOL |
Ввод значения четырнадцатого бита |
B_IN15 |
BOOL |
Ввод значения пятнадцатого бита |
Выход |
Тип |
Описание |
WORD_OUT |
WORD |
Выходная переменная |
Форма записи на языке ST:
FB(B_IN0 := (*BOOL*), B_IN1 := (*BOOL*), B_IN2 := (*BOOL*), B_IN3 := (*BOOL*), B_IN4 := (*BOOL*),B_IN5 := (*BOOL*), B_IN6 := (*BOOL*), B_IN7 := (*BOOL*), B_IN8 := (*BOOL*), B_IN9 := (*BOOL*),B_IN10 := (*BOOL*), B_IN11 := (*BOOL*), B_IN12 := (*BOOL*), B_IN13 := (*BOOL*), B_IN14 := (*BOOL*), B_IN15 := (*BOOL*)); (*WORD*) := FB.WORD_OUT;
Блок SETBIT
Данный ФБ записывает значение BIT_VALUE в любом из битов в входной переменной IN (DWORD).
Вход |
Тип |
Описание |
---|---|---|
IN |
DWORD |
Входная переменная |
BIT_N |
USINT |
Выбор необходимого номера бита |
BIT_VALUE |
BOOL |
Значение бита |
Выход |
Тип |
Описание |
OUT |
DWORD |
Выходная переменная |
Форма записи на языке ST:
FB(IN := (*DWORD*), BIT_N := (*USINT*), BIT_VALUE := (*BOOL*)); (*DWORD*) := FB.OUT;
Блок GETBIT
Данный ФБ прочитывает значение булевой переменной в определенном из битов IN (DWORD).
Вход |
Тип |
Описание |
---|---|---|
IN |
DWORD |
Входная переменная |
BIT_N |
USINT |
Выбор необходимого номера бита |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выходное значение бита |
Форма записи на языке ST:
FB(IN := (*DWORD*), BIT_N := (*USINT*)); (*BOOL*) := FB.OUT;
DO Functional blocks
Блок READ_DO_SC
ФБ READ_DO_SC предоставляет информацию о состоянии короткого замыкания на дискретных выходах.
Выход |
Тип |
Описание |
---|---|---|
DO_SC_FLAG |
USINT |
Флаг обнаруживания короткого замыкания по каналу. Если КЗ обнаружено, то управление каналом блокируется |
DO_SC_EN |
USINT |
Флаг выставленной программной защиты от короткого замыкания |
Форма записи на языке ST:
FB(); (*USINT*) := FB.DO_SC_FLAG; (*USINT*) := FB.DO_SC_EN;
Примечание
Логическое состояние КЗ на дискретных каналах определяется как значение младшего полубайта
Блок READ_DO
ФБ READ_DO предоставляет информацию о состоянии дискретных выходов.
Выход |
Тип |
Описание |
---|---|---|
DO_OUT |
USINT |
Чтение значения состояния дискретных выходов |
Форма записи на языке ST:
FB(); (*USINT*) := FB.DO_OUT;
Примечание
Логическое состояние каналов определяется как значение младшего полубайта
Блок WRITE_DO
ФБ WRITE_DO согласно маске DO_MASK и подаче напряжений на соответствующие дискретные выхода DO_VALUE (выходы прописываются побитово).
Вход |
Тип |
Описание |
---|---|---|
DO_VALUE |
UINT |
Запись значения состояния дискретных выходов |
DO_MASK |
UINT |
Запись маски, разрешающей изменять состояние дискретных выходов |
Форма записи на языке ST:
FB(DO_VALUE := (*UINT*), DO_MASK := (*UINT*));
Примечание
Логическое состояние каналов определяется как значение младшего полубайта
Блок WRITE_DO_SC
ФБ WRITE_DO_SC устанавливает номера дискретных выходов, на которых включить программную защиту от КЗ и дискретные выхода на которых сработала программная защита от КЗ.
Вход |
Тип |
Описание |
---|---|---|
DO_SC_FLAG |
UINT |
Запись перечисления дискретных выходов, на которых сработала аппаратная защита от короткого замыкания (использовать только возможность сброса) |
DO_SC_EN |
UINT |
Запись перечисления дискретных выходов, на которых сработала программная защита от короткого замыкания (использовать только возможность сброса) |
Форма записи на языке ST:
FB(DO_SC_FLAG := (*UINT*), DO_SC_EN := (*UINT*));
Примечание
Логическое состояние КЗ на дискретных каналах определяется как значение младшего полубайта
Блок WRITE_DO_PWM_FREQ
ФБ WRITE_DO_PWM устанавливает ШИМ дискретных выходов в диапазоне от 0 до 10000 Гц.
Вход |
Тип |
Описание |
---|---|---|
DO_PWM_FREQ |
UINT |
Частота ШИМ подаваемая на каналы дискретных выходов, Гц |
Форма записи на языке ST:
FB(DO_PWM_FREQ := (*UINT*));
Примечание
Значение PWM Frequency задается одно для всех каналов
Блок WRITE_DO_PWM_CTRL
ФБ WRITE_DO_PWM_CTRL устанавливает для выбранного дискретного выхода скважность сигнала. Указывается диапазон от 10 до 90%.
Вход |
Тип |
Описание |
---|---|---|
DO_NUMBER |
USINT |
Номер канала дискретного выхода ПЛК BRIC |
DO_PWM_DUTY |
UINT |
Указание скважности канала |
DO_PWM_RUN |
BOOL |
Включение ШИМ |
Форма записи на языке ST:
FB(DO_NUMBER := (*UINT*), DO_PWM_CTRL := (*UINT*));
SOFI Function blocks
Блок DWORD_TO_FLOAT
Данный ФБ преобразовывает значение типа данных DWORD в тип данных с плавающей точкой (float).
Вход |
Тип |
Описание |
---|---|---|
IN_VAL |
DWORD |
Входная переменная |
Выход |
Тип |
Описание |
OUT_VAL |
REAL |
Выходная переменная |
Форма записи на языке ST:
FB(IN_VAL := (*DWORD*)); (*REAL*) := FB.OUT_VAL;
Блок WORDS_TO_FLOAT
Данный ФБ преобразовывает значение двух типов данных WORD в тип данных с плавающей точкой (float).
Вход |
Тип |
Описание |
---|---|---|
WORDH |
WORD |
Входная переменная (старший байт) |
WORDL |
WORD |
Входная переменная (младший байт) |
Выход |
Тип |
Описание |
OUT_VAL |
REAL |
Выходная переменная |
Форма записи на языке ST:
FB(WORDH := (*WORD*), WORDL := (*WORD*)); (*REAL*) := FB.OUT_VAL;
Блок PARSING_UINT
ФБ PARSING_UINT выводит значение входной переменной UINT в битах.
Вход |
Тип |
Описание |
---|---|---|
IN_VAL |
UINT |
Обрабатываемая переменная |
Выход |
Тип |
Описание |
BIT_1 |
BOOL |
Вывод значения первого бита |
BIT_2 |
BOOL |
Вывод значения второго бита |
BIT_3 |
BOOL |
Вывод значения третьего бита |
BIT_4 |
BOOL |
Вывод значения четвертого бита |
BIT_5 |
BOOL |
Вывод значения пятого бита |
BIT_6 |
BOOL |
Вывод значения шестого бита |
BIT_7 |
BOOL |
Вывод значения седьмого бита |
BIT_8 |
BOOL |
Вывод значения восьмого бита |
BIT_9 |
BOOL |
Вывод значения девятого бита |
BIT_10 |
BOOL |
Вывод значения десятого бита |
BIT_11 |
BOOL |
Вывод значения одиннацатого бита |
BIT_12 |
BOOL |
Вывод значения двенадцатого бита |
BIT_13 |
BOOL |
Вывод значения тринадцатого бита |
BIT_14 |
BOOL |
Вывод значения четырнадцатого бита |
BIT_15 |
BOOL |
Вывод значения пятнадцатого бита |
BIT_16 |
BOOL |
Вывод значения шестнадцатого бита |
Форма записи на языке ST:
FB(IN_VAL := (*UINT*)); (*BOOL*) := FB.BIT_1; (*BOOL*) := FB.BIT_2; (*BOOL*) := FB.BIT_3; (*BOOL*) := FB.BIT_4; (*BOOL*) := FB.BIT_5 (*BOOL*) := FB.BIT_6; (*BOOL*) := FB.BIT_7; (*BOOL*) := FB.BIT_8; (*BOOL*) := FB.BIT_9; (*BOOL*) := FB.BIT_10; (*BOOL*) := FB.BIT_11 (*BOOL*) := FB.BIT_12; (*BOOL*) := FB.BIT_13; (*BOOL*) := FB.BIT_14; (*BOOL*) := FB.BIT_15; (*BOOL*) := FB.BIT_16;
Блок PARSING_USINT
ФБ PARSING_USINT выводит значение входной переменной USINT в битах.
Вход |
Тип |
Описание |
---|---|---|
IN_VAL |
USINT |
Обрабатываемая переменная |
Выход |
Тип |
Описание |
BIT_1 |
BOOL |
Вывод значения первого бита |
BIT_2 |
BOOL |
Вывод значения второго бита |
BIT_3 |
BOOL |
Вывод значения третьего бита |
BIT_4 |
BOOL |
Вывод значения четвертого бита |
BIT_5 |
BOOL |
Вывод значения пятого бита |
BIT_6 |
BOOL |
Вывод значения шестого бита |
BIT_7 |
BOOL |
Вывод значения седьмого бита |
BIT_8 |
BOOL |
Вывод значения восьмого бита |
Форма записи на языке ST:
FB(IN_VAL := (*USINT*)); (*BOOL*) := FB.BIT_1; (*BOOL*) := FB.BIT_2; (*BOOL*) := FB.BIT_3; (*BOOL*) := FB.BIT_4; (*BOOL*) := FB.BIT_5 (*BOOL*) := FB.BIT_6; (*BOOL*) := FB.BIT_7; (*BOOL*) := FB.BIT_8;
Блок RES_TEMP_SENSOR
Данный ФБ выдает значение сопротивления и температуры датчиков ТСП.
Вход |
Тип |
Описание |
---|---|---|
VLT_V |
REAL |
Входное напряжение, В |
CUR_MA |
REAL |
Входной ток, mA |
SENSOR_TYPE |
UINT |
Тип сенсора, 0 - Pt, alpha = 0.00385; 1 - Pt, alpha = 0.00391; 2 - Cu, alpha = 0.00426 |
R_0 |
REAL |
Номинальное сопротивление при 0°С, ОМ |
R_WIRE |
REAL |
Cопротивление проводов, Ом |
Выход |
Тип |
Описание |
R_SENSE |
REAL |
Значение сопротивления датчика, Ом |
T_SENSE |
REAL |
Значение сопротивления датчика, °С |
Форма записи на языке ST:
FB(VLT_V := (*REAL*), CUR_MA := (*REAL*), SENSOR_TYPE := (*UINT*), R_0 := (*REAL*)); (*REAL*) := FB.R_SENSE; (*REAL*) := FB.T_SENSE;
Блок ROUND_REAL
ФБ ROUND_REAL округляет значения входной переменной IN_REAL до DECIMAL_POINT знаков после запятой.
Вход |
Тип |
Описание |
---|---|---|
IN_REAL |
REAL |
Входное значение |
DECIMAL_POINT |
USINT |
Количество знаков после запятой (0-4). По умолчанию - 0 |
Выход |
Тип |
Описание |
OUT_REAL |
REAL |
Выходное значение |
Форма записи на языке ST:
FB(IN_REAL := (*REAL*), DECIMAL_POINT := (*USINT*)); (*REAL*) := FB.OUT_REAL;
Блок READ_PWR
ФБ READ_PWR предоставляет информацию о входном напряжении питания и напряжение батареи ПЛК.
Выход |
Тип |
Описание |
---|---|---|
V_PWR |
REAL |
Входное напряжение ПЛК |
V_BAT |
REAL |
Напряжение батареи ПЛК |
Форма записи на языке ST:
FB(); (*REAL*) := FB.V_PWR; (*REAL*) := FB.V_BAT;
Блок READ_INTERNAL_TEMP
ФБ READ_INTERNAL_TEMP предоставляет информацию температуре микропроцессора ПЛК BRIC.
Выход |
Тип |
Описание |
---|---|---|
INTERNAL_TEMP_OUT |
REAL |
Показание температуры микропроцессора в ПЛК |
Форма записи на языке ST:
FB(); (*REAL*) := FB.INTERNAL_TEMP_OUT;
Блок READ_RESET
ФБ READ_RESET предоставляет информацию о количестве перезагрузок с момента обновления ОС ПЛК и причине последней перезагрузки.
Выход |
Тип |
Описание |
---|---|---|
RESET_NUM |
UINT |
Количество перезагрузок с момента обновления ОС ПЛК |
LAST_RESET |
UINT |
Код причины последней перезагрузки |
Форма записи на языке ST:
FB(); (*UINT*) := FB.RESET_NUM; (*UINT*) := FB.LAST_RESET;
Блок READ_PARAM_UDINT/UINT/USINT
ФБ READ_PARAM_UDINT/UINT/USINT предоставляет информацию о регистре в зависимости от типа данных.
Вход |
Тип |
Описание |
---|---|---|
ENABLE |
BOOL |
Включение функционального блока |
ADRESS |
UDINT/UINT/USINT |
Адрес необходимого регистра Guid в формате UDINT/UINT/USINT (U32/U16/U8) |
Выход |
Тип |
Описание |
CHECK |
BOOL |
Статус выхода |
VALUE |
UDINT/UINT/USINT |
Значение регистра |
Форма записи на языке ST:
FB(ENABLE := (*BOOL*), ADRESS := (*UDINT/UINT/USNT*)); (*BOOL*) := FB.CHECK; (*UDINT/UINT/USNT*) := FB.VALUE;
Блок READ_SYS_TICK_COUNTER
ФБ READ_SYS_TICK_COUNTER предоставляет информацию о времени работы ПЛК с момента последней перезагрузки указанной в мс.
Вход |
Тип |
Описание |
---|---|---|
SYS_TICK_COUNTER_VALUE |
ULINT |
Чтение времени выполнения с момента последнего сброса в мс. |
Форма записи на языке ST:
FB(); (*ULINT*) := FB.SYS_TICK_COUNTER_VALUE;
Блок READ_AREA_LOCATION
ФБ READ_AREA_LOCATION предоставляет информацию о регистре, определенным Modbus MemoryArea.
Выход |
Тип |
Описание |
---|---|---|
LOCATIONO |
UINT |
Номер нулевого элемента выборки MemoryArea |
LOCATION1 |
UINT |
Номер первого элемента выборки MemoryArea |
LOCATION2 |
UINT |
Номер второго элемента выборки MemoryArea |
Выход |
Тип |
Описание |
VALUE |
WORD |
Вывод регистра |
LOCTION_READED |
BOOL |
Контрольный бит-статус |
Примечание
Номер элемента определяется данным образом:
Форма записи на языке ST:
FB(LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*)); (*WORD*) := FB.VALUE; (*BOOL*) := FB.LOCATION_READED;
Блок READ_REQUEST_LOCATION
ФБ READ_REQUEST_LOCATION предоставляет информацию о регистре, определенным ModbusRequest.
Выход |
Тип |
Описание |
---|---|---|
LOCATIONO |
UINT |
Номер нулевого элемента выборки ModbusRequest |
LOCATION1 |
UINT |
Номер первого элемента выборки ModbusRequest |
LOCATION2 |
UINT |
Номер второго элемента выборки ModbusRequest |
LOCATION3 |
UINT |
Номер третьего элемента выборки ModbusRequest |
Выход |
Тип |
Описание |
VALUE |
WORD |
Вывод регистра |
LOCTION_READED |
BOOL |
Контрольный бит-статус |
Примечание
Номер элемента определяется данным образом:
Форма записи на языке ST:
FB(LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*), LOCATION3 := (*UINT*)); (*WORD*) := FB.VALUE; (*BOOL*) := FB.LOCATION_READED;
Блок SET_PARAM_UDINT/UINT/USINT
ФБ SET_PARAM_UDINT/UINT/USINT записывает данные в регистр в зависимости от типа данных.
Вход |
Тип |
Описание |
---|---|---|
ENABLE |
BOOL |
Включение функционального блока |
ADRESS |
UDINT/UINT/USINT |
Адрес необходимого регистра Guid в формате UDINT/UINT/USINT (U32/U16/U8) |
VALUE |
UDINT/UINT/USINT |
Значение регистра |
Выход |
Тип |
Описание |
CHECK |
BOOL |
Статус выхода |
Форма записи на языке ST:
FB(ENABLE := (*BOOL*), ADRESS := (*UDINT/UINT/USNT*), VALUE := (*UDINT/UINT/USNT*)); (*BOOL*) := FB.CHECK;
Блок STRUCT_REAL_TIME
ФБ STRUCT_REAL_TIME позволяет считать время с ПЛК.
Выход |
Тип |
Описание |
---|---|---|
HOUR_TIME |
USINT |
Текущий час реального времени внутреннего определения |
MINUTE_TIME |
USINT |
Текущая минута |
SEC_TIME |
USINT |
Текущая секунда |
SUB_SEC_TIME |
USINT |
Текущая миллисекунда |
WEEK_DAY_TIME |
USINT |
Текущий день недели |
MONTH_TIME |
USINT |
Текущий месяц |
DATE_TIME |
USINT |
Текущий день месяца |
YEAR_TIME |
USINT |
Текущий год |
YEAR_DAY_TIME |
UINT |
Текущий день года |
Форма записи на языке ST:
FB(); (*USINT*) := FB.HOUR_TIME; (*USINT*) := FB.MINUTE_TIME; (*USINT*) := FB.SEC_TIME; (*USINT*) := FB.SUB_SEC_TIME; (*USINT*) := FB.WEEK_DAY_TIME; (*USINT*) := FB.MONTH_TIME; (*USINT*) := FB.DATE_TIME; (*USINT*) := FB.YEAR_TIME; (*UINT*) := FB.YEAR_DAY_TIME;
Блок WRITE_MDB_ADRESS
ФБ WRITE_MDB_ADRESS позволяет установить Modbus адрес ПЛК (от 1 до 247).
Вход |
Тип |
Описание |
---|---|---|
MDB_ADDR |
UINT |
Установление адреса по протоколу Modbus в ПЛК |
Форма записи на языке ST:
FB(MDB_ADDR := (*UINT*));
Блок WRITE_UART_SETS
ФБ WRITE_UART_SETS предоставляtn возможность изменять параметры UART каналов записанных в формате U16.
Вход |
Тип |
Описание |
---|---|---|
MESO_UART |
UINT |
Запись параметров настройки интерфейса на канале Mesonin (доступ к порту только при вскрытии крышки ПЛК) |
SET_RS_485_2 |
UINT |
Запись параметров настройки интерфейса на канале RS–485–1 |
SET_RS_232 |
UINT |
Запись параметров настройки интерфейса на канале RS–232 |
SET_RS_485_1 |
UINT |
Запись параметров настройки интерфейса на канале RS–485–1 |
SET_RS_485_IMMO |
UINT |
Запись параметров настройки интерфейса на межмодульной шине |
SET_HART |
UINT |
Запись параметров HART интерфейса на каналах AI |
Форма записи на языке ST:
FB(MESO_UART := (*UINT*), SET_RS_485_2 := (*UINT*), SET_RS_232 := (*UINT*), SET_RS_485_1 := (*UINT*), SET_RS_485_IMMO := (*UINT*), SET_HART := (*UINT*));
Блок WRITE_CH_TIMEOUT
ФБ WRITE_CH_TIMEOUT изменяет время задержки UART каналов.
Вход |
Тип |
Описание |
---|---|---|
CH_NUMBER |
USINT |
Номер канала |
CHANNEL_TIMEOUT |
UDINT |
Задержка |
Форма записи на языке ST:
FB(CH_NUMBER:= (*USINT*), CHANNEL_TIMEOUT:= (*UDINT*));Примечание
Номер канала
Наименование UART канала
0
MESO_UART_UART
1
RS_485_2_UART
2
RS_232_UART
4
RS_485_1_UART
5
RS_485_IMMO_UART
6
HART_UART
Блок WRITE_STRUCT_TIME
ФБ WRITE_STRUCT_TIME устанавливает время на ПЛК, выхода функционального блока используются для проверки записанного времени.
Вход |
Тип |
Описание |
---|---|---|
SEC_IN_MIN |
USINT |
Ввод секунд |
MINUTE_IN_HOUR |
USINT |
Ввод минут |
HOUR_IN_DAY |
USINT |
Ввод часов |
DATE_IN_MONTH |
USINT |
Ввод дня месяца |
MONTH_IN_YEAR |
USINT |
Ввод месяца года |
YEAR_SINCE_2000 |
USINT |
Ввод года |
Выход |
Тип |
Описание |
SEC_IN_MIN_WRITED |
USINT |
Вывод присвоенного значения |
MINUTE_IN_HOUR_WRITED |
USINT |
Вывод присвоенного значения |
HOUR_IN_DAY_WRITED |
USINT |
Вывод присвоенного значения |
DATE_IN_MONTH_WRITED |
USINT |
Вывод присвоенного значения |
MONTH_IN_YEAR_WRITED |
USINT |
Вывод присвоенного значения |
YEAR_SINCE_2000_WRITED |
USINT |
Вывод присвоенного значения |
Форма записи на языке ST:
FB(SEC_IN_MIN := (*USINT*), MINUTE_IN_HOUR := (*USINT*), HOUR_IN_DAY := (*USINT*), DATE_IN_MONTH := (*USINT*), MONTH_IN_YEAR := (*USINT*), YEAR_SINCE_2000 := (*USINT*)); (*USINT*) := FB.SEC_IN_MIN_WRITED; (*USINT*) := FB.MINUTE_IN_HOUR_WRITED; (*USINT*) := FB.HOUR_IN_DAY_WRITED; (*USINT*) := FB.DATE_IN_MONTH_WRITED; (*USINT*) := FB.MONTH_IN_YEAR_WRITED; (*USINT*) := FB.YEAR_SINCE_2000_WRITED;
Блок WRITE_AREA_LOCATION
ФБ WRITE_AREA_LOCATION изменяет значения регистров, определенных Modbus MemoryArea.
Выход |
Тип |
Описание |
---|---|---|
VALUE |
WORD |
Значение регистра |
LOCATIONO |
UINT |
Номер нулевого элемента выборки MemoryArea |
LOCATION1 |
UINT |
Номер первого элемента выборки MemoryArea |
LOCATION2 |
UINT |
Номер второго элемента выборки MemoryArea |
Выход |
Тип |
Описание |
LOCTION_WRITED |
BOOL |
Контрольный бит-статус |
Примечание
Номер элемента определяется данным образом:
Форма записи на языке ST:
FB(VALUE := (*WORD*), LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*)); (*BOOL*) := FB.LOCATION_WRITED;
Блок WRITE_REQUEST_LOCATION
ФБ WRITE_REQUEST_LOCATION изменяет значения регистров, определенных ModbusRequest.
Выход |
Тип |
Описание |
---|---|---|
VALUE |
WORD |
Значение регистра |
LOCATIONO |
UINT |
Номер нулевого элемента выборки ModbusRequest |
LOCATION1 |
UINT |
Номер первого элемента выборки ModbusRequest |
LOCATION2 |
UINT |
Номер второго элемента выборки ModbusRequest |
LOCATION3 |
UINT |
Номер третьего элемента выборки ModbusRequest |
Выход |
Тип |
Описание |
LOCTION_WRITED |
BOOL |
Контрольный бит-статус |
Примечание
Номер элемента определяется данным образом:
Форма записи на языке ST:
FB(VALUE := (*WORD*), LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*), LOCATION3 := (*UINT*)); (*BOOL*) := FB.LOCATION_WRITED;
Блок UNIX_TIME
ФБ UNIX_TIME устанавливает время на ПЛК (время указывается в мс.).
Вход |
Тип |
Описание |
---|---|---|
UNIX_TIME_WRITE |
UDINT |
Запись Unix time на ПЛК |
Выход |
Тип |
Описание |
UNIX_TIME_READ |
UDINT |
Unix time |
UNIX_TIME_WRITED |
UDINT |
Последние записанное значени UNIX_TIME_WRITE |
Примечание
Время задается в контроллер только по изменению UNIX_TIME_WRITE, начальное значение для сравнения 0. ФБ можно использовать для чтения UNIX time в нескольких местах программы, для этого UNIX_TIME_WRITE оставляем нулевым.
Форма записи на языке ST:
FB(UNIX_TIME_WRITE := (*UDINT*)); (*UDINT*) := FB.UNIX_TIME_READ; (*UDINT*) := FB.UNIX_TIME_WRITED;
DI Functional blocks
Блок READ_DI
ФБ READ_DI предоставляет данные с дискретных входных каналов ПЛК записанного в одну переменную типа (UDINT) при этом 0 бит соответствует DI_0, а 15 бит DI_15.
Выход |
Тип |
Описание |
---|---|---|
DI_OUT |
UDINT |
Состояние дискретных входов ПЛК BRIC |
Форма записи на языке ST:
FB(); (*UDINT*) := FB.DI_OUT;
Блок READ_DI_CNT
ФБ READ_DI_CNT предоставляет значение счетчика дискретного входного канала ПЛК номер, которого прописан на входе блока.
Вход |
Тип |
Описание |
---|---|---|
DI_NUMBER |
UINT |
Номер исследуемого дискретного входа |
Выход |
Тип |
Описание |
DI_CNT_VALUE |
ULINT |
Значение счетчика дискретного входа |
Форма записи на языке ST:
FB(DI_NUMBER := (*UINT*)); (*ULINT*) := FB.DI_CNT_VALUE;
Блок READ_DI_FREQ
ФБ READ_DI_FREQ предоставляет значение частоты дискретного входного канала ПЛК, номер которого прописан на входе блока.
Вход |
Тип |
Описание |
---|---|---|
DI_NUMBER |
UINT |
Номер исследуемого дискретного входа |
Выход |
Тип |
Описание |
DI_FREQ_VALUE |
ULINT |
Значение частоты переключения дискретного входа |
Форма записи на языке ST:
FB(DI_NUMBER := (*UINT*)); (*ULINT*) := FB.DI_FREQ_VALUE;
Блок WRITE_DI_NOISE_FLTR_10US
ФБ WRITE_DI_NOISE_FLTR_10US для указанного дискретного входа задается период нечувствительности импульса в диапазоне от 0 до 65512, при этом считается в десятках мс.
Вход |
Тип |
Описание |
---|---|---|
DI_NUMBER |
UINT |
Номер канала дискретного входа ПЛК BRIC |
DI_NOISE_FLTR_VALUE_10US |
UINT |
Период, за который счетчик обнаруживает не более 1 импульса |
Форма записи на языке ST:
FB(DI_NUMBER := (*UINT*), DI_NOISE_FLTR_VALUE_10US := (*UINT*));
Блок WRITE_DI_PULSELESS
ФБ WRITE_DI_PULSELESS для указанного дискретного входа задает период, за который ведется подсчет импульсов для расчета частоты
Вход |
Тип |
Описание |
---|---|---|
DI_NUMBER |
UINT |
Номер канала дискретного входа ПЛК BRIC |
DI_PULSELESS_VALUE |
UINT |
Период, относительно которого рассчитывается частота канала |
Форма записи на языке ST:
FB(DI_NUMBER := (*UINT*), DI_PULSELESS_VALUE := (*UINT*));
Блок WRITE_DI_MODE
ФБ WRITE_DI_MODE для указанного дискретного входа обозначает подключенные опции (0– не подключены, 1– подключен счетчик импульсов, 2– подключен расчет частоты дискретного входа, 3– подключен счетчик импульсов и расчет частоты дискретного входа).
Вход |
Тип |
Описание |
---|---|---|
DI_NUMBER |
UINT |
Номер канала дискретного входа ПЛК BRIC |
DI_MODE_VALUE |
UINT |
Код подключенных функций данного канала |
Форма записи на языке ST:
FB(DI_NUMBER := (*UINT*), DI_MODE_VALUE := (*UINT*));
Standart function blocks
Блок SR
Данный ФБ представляет собой бистабильный SR–триггер, с доминирующим входом S (Set).
Вход |
Тип |
Описание |
---|---|---|
S1 |
BOOL |
Вход (доминирующий) |
R |
BOOL |
Сброс |
Выход |
Тип |
Описание |
Q1 |
BOOL |
Выход становится «1», когда на вход S1 приходит «1». При переходе S1 в «0» сохраняется состояние. Выход Q1 возвращается в «0», когда вход R становится «1» |
Форма записи на языке ST:
FB(S1 := (*BOOL*), R := (*BOOL*)); (*BOOL*) := FB.Q1;
Блок RS
Данный ФБ представляет собой бистабильный RS–триггер, с доминирующим входом R (Reset).
Вход |
Тип |
Описание |
---|---|---|
S |
BOOL |
Вход |
R1 |
BOOL |
Сброс (доминирующий) |
Выход |
Тип |
Описание |
Q1 |
BOOL |
Выход становится «1», когда вход R1 становится «0». При переходе R1 в «0» сохраняется состояние. Выход Q1 возвращается в «1», когда вход S становится «1» |
Форма записи на языке ST:
FB(S := (*BOOL*), R1 := (*BOOL*)); (*BOOL*) := FB.Q1;
Блок SEMA
Данный ФБ представляет собой семафор, определяющий механизм, позволяющий элементам программы иметь взаимоисключающий доступ к определенным ресурсам.
Вход |
Тип |
Описание |
---|---|---|
CLAIM |
BOOL |
Вход (доминирующий) |
RELEASE |
BOOL |
Сброс |
Выход |
Тип |
Описание |
BUSY |
BOOL |
Выход активируетс при CLAIM = 1 и деактивируется при RELEASE = 1 |
Форма записи на языке ST:
FB(CLAIM := (*BOOL*), RELEASE := (*BOOL*)); (*BOOL*) := FB.BUSY;
Блок R–TRIG
Данный ФБ представляет собой индикатор нарастания фронта, который генерирует на выходе одиночный импульс при нарастании фронта сигнала.
Вход |
Тип |
Описание |
---|---|---|
CLK |
BOOL |
Вход |
Выход |
Тип |
Описание |
Q |
BOOL |
Выход генерирует единичный импульс, если на входе передний фронт |
Форма записи на языке ST:
FB(CLK := (*BOOL*)); (*BOOL*) := FB.Q;
Блок F–TRIG
Данный ФБ представляет собой индикатор спада фронта, который генерирует на выходе одиночный импульс при спаде фронта сигнала.
Вход |
Тип |
Описание |
---|---|---|
CLK |
BOOL |
Вход |
Выход |
Тип |
Описание |
Q |
BOOL |
Выход генерирует единичный импульс, если на входе задний фронт |
Форма записи на языке ST:
FB(CLK := (*BOOL*)); (*BOOL*) := FB.Q;
Блок CTU/CTU_DINT…
Данный ФБ представляет собой инкрементный счётчик.
Вход |
Тип |
Описание |
---|---|---|
CU |
BOOL |
Подача импульса |
R |
BOOL |
Сброс |
PV |
ANY_INT |
Предел счета |
Выход |
Тип |
Описание |
Q |
BOOL |
Принимает значение „TRUE“ когда CV >= PV |
CV |
ANY_INT |
Считает количество импульсов (CV = CV + 1) пока Q = 0 |
Примечание
Счетчик работает только до достижения максимального значения используемого типа данных. Переполнения не происходит.
Форма записи на языке ST:
FB(CU := (*BOOL*), R := (*BOOL*), PV := (*ANY_INT*)); (*BOOL*) := FB.Q; (*ANY_INT*) := FB.CV;
Примечание
PV не включает тип данных USINT, SINT.
Блок CTD/CTD_DINT…
Данный ФБ представляет собой декрементный счётчик.
Вход |
Тип |
Описание |
---|---|---|
CD |
BOOL |
Подача импульса |
LD |
BOOL |
Сброс |
PV |
ANY_INT |
Предел импульсов |
Выход |
Тип |
Описание |
Q |
BOOL |
Принимает значение „TRUE“ когда CV = 0 |
CV |
ANY_INT |
Считает количество импульсов (CV = CV – 1) пока Q = 0 |
Примечание
Счетчик работает только до достижения минимального значения используемого типа данных. Переполнения не происходит.
Форма записи на языке ST:
FB(CD := (*BOOL*), LD := (*BOOL*), PV := (*ANY_INT*)); (*BOOL*) := FB.Q; (*ANY_INT*) := FB.CV;
Блок CTUD/CTUD_DINT…
Данный ФБ представляет собой реверсивный счётчик.
Вход |
Тип |
Описание |
---|---|---|
CU |
BOOL |
Подача импульса |
CD |
BOOL |
Подача импульса |
R |
BOOL |
Сброс до 0 |
LD |
BOOL |
Сброс до PV |
PV |
ANY_INT |
Верхний предел импульсов |
Выход |
Тип |
Описание |
QU |
BOOL |
Принимает значение „TRUE“ когда CV >= PV |
QD |
BOOL |
Принимает значение „TRUE“ когда CV = 0 |
CD_T |
R_TRIG |
(в существующей версии не применяется) |
CU_T |
R_TRIG |
(в существующей версии не применяется) |
Примечание
Вычитающий счетчик работает только до достижения минимального значения используемого типа данных, суммирующий счетчик работает только до достижения максимального значения используемого типа данных. Переполнения не происходит.
Форма записи на языке ST:
FB (CU := (*BOOL*), CD := (*BOOL*), R := (*BOOL*), LD := (*BOOL*), PV := (*ANY_INT*)); (*BOOL*) := FB.QU; (*BOOL*) := FB.QD; (*ANY_INT*) := FB.CV;
Блок TP
Данный ФБ представляет собой повторитель импульсов и используется для генерирования импульса с заданной продолжительностью.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Подача импульса |
PT |
TIME |
Время одного импульса |
Выход |
Тип |
Описание |
Q |
BOOL |
Выход (пока ET < PT, Q = „TRUE“) |
ET |
TIME |
Пока IN = 1 и ET < PT идет счет времени ET |
Форма записи на языке ST:
FB(IN := (*BOOL*), PT := (*TIME*)); (*BOOL*) := FB.Q; (*TIME*) := FB.ET;
Блок TON
Данный ФБ представляет собой таймер с задержкой включения.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Подача импульса |
PT |
TIME |
Время задержки |
Выход |
Тип |
Описание |
Q |
BOOL |
Если ET = PV и IN = 1, то Q = 1, иначе Q = 0 |
ET |
TIME |
Счетчик времени считает пока ET < PV и IN = 1 |
Форма записи на языке ST:
FB(IN := (*BOOL*), PT := (*TIME*)); (*BOOL*) := FB.Q; (*TIME*) := FB.ET;
Блок TOF
Данный ФБ представляет собой таймер с задержкой отключения.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Подача импульса |
PT |
TIME |
Время задержки |
Выход |
Тип |
Описание |
Q |
BOOL |
Если ET = PV и IN = 1, то Q = 1, иначе Q = 0 |
ET |
TIME |
Счетчик времени считает пока ET < PV и IN = 1 |
Форма записи на языке ST:
FB(IN := (*BOOL*), PT := (*TIME*)); (*BOOL*) := FB.Q; (*TIME*) := FB.ET;
Additional Functional blocks
Блок RTC
Данный ФБ представляет собой часы реального времени и имеет много вариантов использования, включая добавление временных отметок, для установки даты и времени в формируемых отчетах, в аварийных сообщениях и т.д.
Вход |
Тип |
Описание |
---|---|---|
IN |
BOOL |
Переключение режима |
PDT |
TIME |
Время начала работы |
Выход |
Тип |
Описание |
Q |
BOOL |
Индикация режима |
CDT |
DT |
Вывод времени |
Форма записи на языке ST:
FB(IN := (*BOOL*), PDT := (*DT*)); (*BOOL*) := FB.Q; (*DT*) := FB.CDT;
Блок INTEGRAL
ФБ интегрирует входное значение XIN по времени.
Вход |
Тип |
Описание |
---|---|---|
RUN |
BOOL |
Включение блока |
R1 |
BOOL |
Сброс (XOUT = X0) |
XIN |
REAL |
Интегрируемое значение |
X0 |
REAL |
Начальное значение XOUT |
CYCLE |
TIME |
Время интегрирования |
Выход |
Тип |
Описание |
Q |
BOOL |
Q = 1, если R1 = 0 |
XOUT |
REAL |
Выход (интегрирует входное значение XIN во времени) (XOUT = X0 * CYCLE (количество тактов при RUN = 1)) |
Форма записи на языке ST:
FB(RUN := (*BOOL*), R1 := (*BOOL*), XIN := (*REAL*), X0 := (*REAL*), CYCLE := (*TIME*)); (*BOOL*) := FB.Q; (*REAL*) := FB.XOUT;
Блок DERIVATIVE
ФБ выдаёт значение XOUT пропорционально скорости изменения входного параметра XIN.
Вход |
Тип |
Описание |
---|---|---|
RUN |
BOOL |
Включение блока |
XIN |
REAL |
Вход |
CYCLE |
TIME |
Время дифференцирования |
Выход |
Тип |
Описание |
XOUT |
REAL |
Формирование сигнала пропорционально частоте изменения входа XIN |
Форма записи на языке ST:
FB(RUN := (*BOOL*), XIN := (*REAL*),YCLE := (*TIME*)); (*REAL*) := FB.XOUT;
Блок PID
Данный ФБ представляет собой устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала
Вход |
Тип |
Описание |
---|---|---|
AUTO |
BOOL |
Включение режима ПИД-регулятора (0 - ручное регулирование, 1 - автоматическое) |
DIR |
BOOL |
Направление регулирования ( 0 - обратное регулирование, 1 - прямое. По умолчанию стоит прямое регулирование) |
PV |
REAL |
Входной сигнал (автоматический режим) |
SP |
REAL |
Заданное значение (уставка в автоматическом режиме) |
X0 |
REAL |
Заданное значение (уставка в ручном режиме) |
KP |
REAL |
Пропорциональный коэффициент |
TR |
REAL |
Интегральный коэффициент |
TD |
REAL |
Дифференциальный коэффициент |
CYCLE |
TIME |
Время цикла |
Выход |
Тип |
Описание |
XOUT |
REAL |
Выход ПИД-регулятора |
Форма записи на языке ST:
FB(AUTO := (*BOOL*), DIR := (*BOOL*), PV := (*REAL*), SP := (*REAL*), X0 := (*REAL*), KP := (*REAL*), TR := (*REAL*), TD := (*REAL*), LL := (*REAL*), LH := (*REAL*), CYCLE := (*TIME*)); (*REAL*) := FB.XOUT;
Блок RAMP
Вход |
Тип |
Описание |
---|---|---|
RUN |
BOOL |
Включение блока |
X0 |
REAL |
Начало отсчета |
X1 |
REAL |
Конечное значение |
TR |
TIME |
Время перехода |
CYCLE |
TIME |
Время интегрирования |
Выход |
Тип |
Описание |
BUSY |
BOOL |
BUSY = 1, если значения XOUT меняются |
XOUT |
REAL |
Если RUN = 1, то пока XOUT < X1 XOUT = X1*CYCLE*t/TR + X0 иначе XOUT = X0 |
Форма записи на языке ST:
FB(RUN := (*BOOL*), X0 := (*REAL*), X1 := (*REAL*), TR := (*TIME*), CYCLE := (*TIME*)); (*BOOL*) := FB.BUSY; (*REAL*) := FB.XOUT;
AI Functional blocks
Блок READ_AI_STATE
ФБ READ_AI_STATE показывает информацию о состоянии аналогового входа.
Выход |
Тип |
Описание |
---|---|---|
AI_STATE_VALUE |
UINT |
Состояние канала. Логическая 1 – измеренное значение тока лежит в диапазоне 4 - 20 мА, логический 0 – измеренное значение ниже 4 мА либо выше 20 мА. |
Форма записи на языке ST:
FB(AI_STATE_VALUE => (*UINT*));
Блок READ_AI
ФБ READ_AI выводит значение аналогового входного канала ПЛК, номер которого прописан на входе блока.
Вход |
Тип |
Описание |
---|---|---|
AI_NUMBER |
UINT |
Номер канала |
Выход |
Тип |
Описание |
AI_VALUE |
UINT |
Показание аналогового канала по шкале 0 – 16383, которая соответствует шкале принимаемого унифицированного сигнала |
Форма записи на языке ST:
FB(AI_NUMBER := (*UINT*)); (*UINT*) := FB.AI_VALUE;
Блок READ_AI_REAL
ФБ READ_AI_REAL выводит значение аналогового входного канала ПЛК в мА, номер которого прописан на входе блока.
Вход |
Тип |
Описание |
---|---|---|
AI_NUMBER |
UINT |
Номер канала |
Выход |
Тип |
Описание |
AI_VALUE |
REAL |
Показание аналогового канала в мА |
Форма записи на языке ST:
FB(AI_NUMBER := (*UINT*), AI_VALUE => (*REAL*));
Type conversion
Блок *_TO_*
Данный ФБ предназначен для всех возможных и корректных, согласно стандарту IEC 61131–3, преобразований между типами данных.
Вход |
Тип |
Описание |
---|---|---|
IN |
… |
Преобразуемая информация |
Выход |
Тип |
Описание |
OUT |
… |
Преобразованная информация |
Форма записи на языке ST:
(*ANY*) := *_TO_*(*ANY*);
Тип |
Описание |
---|---|
REAL_TO_* |
Преобразование REAL в остальные типы данных |
SINT_TO_* |
Преобразование SINT в остальные типы данных |
LINT_TO_* |
Преобразование LINT в остальные типы данных |
DINT_TO_* |
Преобразование DINT в остальные типы данных |
DATE_TO_* |
Преобразование DATE в остальные типы данных |
DWORD_TO_* |
Преобразование DWORD в остальные типы данных |
DT_TO_* |
Преобразование DT в остальные типы данных |
TOD_TO_* |
Преобразование TOD в остальные типы данных |
UDINT_TO_* |
Преобразование UDINT в остальные типы данных |
WORD_TO_* |
Преобразование WORD в остальные типы данных |
STRING_TO_* |
Преобразование STRING в остальные типы данных |
LWORD_TO_* |
Преобразование LWORD в остальные типы данных |
UINT_TO_* |
Преобразование UINT в остальные типы данных |
LREAL_TO_* |
Преобразование LREAL в остальные типы данных |
BYTE_TO_* |
Преобразование BYTE в остальные типы данных |
USINT_TO_* |
Преобразование USINT в остальные типы данных |
ULINT_TO_* |
Преобразование ULINT в остальные типы данных |
BOOL_TO_* |
Преобразование BOOL в остальные типы данных |
TIME_TO_* |
Преобразование TIME в остальные типы данных |
INT_TO_* |
Преобразование INT в остальные типы данных |
Numerical
Блок ABS
Данный ФБ возвращает в OUT модуль входного числа IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_NUM |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_NUM |
Выход (модуль числа) |
Форма записи на языке ST:
(*ANY_NUM*) := ABS((*ANY_NUM*));
Блок SQRT
Данный ФБ возвращает в OUT квадратный корень входного числа IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (корень числа) |
Форма записи на языке ST:
(*ANY_REAL*) := SQRT((*ANY_REAL*));
Блок LN
Данный ФБ возвращает в OUT значение натурального логарифма от IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (натуральный логарифм числа) |
Форма записи на языке ST:
(*ANY_REAL*) := LN((*ANY_REAL*));
Блок LOG
Данный ФБ возвращает в OUT значение логарифма по основанию 10 от IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (логарифм числа) |
Форма записи на языке ST:
(*ANY_REAL*) := LOG((*ANY_REAL*));
Блок EXP
Данный ФБ возвращает в OUT значение экспоненты, возведённой в степень IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (экспонента числа) |
Форма записи на языке ST:
(*ANY_REAL*) := EXP((*ANY_REAL*));
Блок SIN
Данный ФБ возвращает в OUT значение синуса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (синус числа) |
Форма записи на языке ST:
(*ANY_REAL*) := SIN((*ANY_REAL*));
Блок COS
Данный ФБ возвращает в OUT значение косинуса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (косинус числа) |
Форма записи на языке ST:
(*ANY_REAL*) := COS((*ANY_REAL*));
Блок TAN
Данный ФБ возвращает в OUT значение тангенса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (тангенс числа) |
Форма записи на языке ST:
(*ANY_REAL*) := TAN((*ANY_REAL*));
Блок ASIN
Данный ФБ возвращает в OUT значение арксинуса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (арксинус числа) |
Форма записи на языке ST:
(*ANY_REAL*) := ASIN((*ANY_REAL*));
Блок ACOS
Данный ФБ возвращает в OUT значение арккосинуса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (арккосинус числа) |
Форма записи на языке ST:
(*ANY_REAL*) := ACOS((*ANY_REAL*));
Блок ATAN
Данный ФБ возвращает в OUT значение арктангенса IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_REAL |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (арктангенс числа) |
Форма записи на языке ST:
(*ANY_REAL*) := ATAN((*ANY_REAL*));
Arithmetic
Блок ADD
Данный ФБ возвращает в OUT результат сложения IN1 и IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_NUM |
Вход |
IN2 |
ANY_NUM |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_NUM |
Выход (сложение) |
Форма записи на языке ST:
(*ANY_NUM*) := ADD((*ANY_NUM*), (*ANY_NUM*));
Блок MUL
Данный ФБ возвращает в OUT результат умножения IN1 и IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_NUM |
Вход |
IN2 |
ANY_NUM |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_NUM |
Выход (умножение) |
Форма записи на языке ST:
(*ANY_NUM*) := MUL((*ANY_NUM*), (*ANY_NUM*));
Блок SUB
Данный ФБ возвращает в OUT результат вычитания из IN1 значения IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_NUM |
Вход |
IN2 |
ANY_NUM |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_NUM |
Выход (разность) |
Форма записи на языке ST:
(*ANY_NUM*) := SUB((*ANY_NUM*), (*ANY_NUM*));
Блок DIV
Данный ФБ возвращает в OUT результат деления IN1 на IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_NUM |
Вход (делитель) |
IN2 |
ANY_NUM |
Вход (делитель) |
Выход |
Тип |
Описание |
OUT |
ANY_NUM |
Выход (деление) |
Форма записи на языке ST:
(*ANY_NUM*) := DIV((*ANY_NUM*), (*ANY_NUM*));
Блок MOD
Данный ФБ возвращает в OUT остаток от деления IN1 на IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_INT |
Вход (делимое) |
IN2 |
ANY_INT |
Вход (делитель) |
Выход |
Тип |
Описание |
OUT |
ANY_INT |
Выход (остаток от деления) |
Форма записи на языке ST:
(*ANY_INT*) := MOD((*ANY_INT*), (*ANY_INT*));
Блок EXPT
Данный ФБ возвращает в OUT значение IN1 возведённое в степень IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_REAL |
Вход |
IN2 |
ANY_NUM |
Вход (степень) |
Выход |
Тип |
Описание |
OUT |
ANY_REAL |
Выход (число в степени) |
Форма записи на языке ST:
(*ANY_REAL*) := EXPT((*ANY_REAL*), (*ANY_NUM*));
Блок MOVE
Данный ФБ возвращает в OUT значение IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход (присваивание) |
Форма записи на языке ST:
(*ANY_REAL*) := MOVE((*ANY*));
Bit-shift
Блок SHL
Данный ФБ возвращает в OUT арифметический сдвиг аргумента IN на N бит влево с заполнением битов справа нулями.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_INT |
Количество сдвигов влево |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := SHL((*ANY_BIT*), (*ANY_INT*));
Блок SHR
Данный ФБ возвращает в OUT арифметический сдвиг аргумента IN на N бит вправо с заполнением битов слева нулями.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_INT |
Количество сдвигов вправо |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := SHR((*ANY_BIT*), (*ANY_INT*));
Блок ROR
Данный ФБ возвращает в OUT циклический сдвиг аргумента IN на N бит влево.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_INT |
Количество сдвигов вправо |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := ROR((*ANY_BIT*), (*ANY_INT*));
Блок ROL
Данный ФБ возвращает в OUT циклический сдвиг аргумента IN на N бит вправо.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_INT |
Количество сдвигов влево |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := ROL((*ANY_BIT*), (*ANY_INT*));
Bitwise
Блок AND
Данный ФБ представляет собой организацию «логического И» для всех входных аргументов IN1…INn.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_BIT |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := AND((*ANY_BIT*), (*ANY_BIT*));
Блок OR
Данный ФБ представляет собой организацию «логического ИЛИ» для всех входных аргументов IN1…INn.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_BIT |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := OR((*ANY_BIT*), (*ANY_BIT*));
Блок XOR
Данный ФБ представляет собой организацию «логического исключающего ИЛИ» для всех входных аргументов IN1…INn.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY_BIT |
Вход |
IN2 |
ANY_BIT |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход |
Форма записи на языке ST:
(*ANY_BIT*) := XOR((*ANY_BIT*), (*ANY_BIT*));
Блок NOT
Данный ФБ представляет собой организацию «логической инверсии» для входного аргумента IN.
Вход |
Тип |
Описание |
---|---|---|
IN |
ANY_BIT |
Вход |
Выход |
Тип |
Описание |
OUT |
ANY_BIT |
Выход (инверсия) |
Форма записи на языке ST:
(*ANY_BIT*) := NOT((*ANY_BIT*), (*ANY_BIT*));
Selection
Блок SEL
Данный ФБ возвращает в OUT один из двух аргументов IN1 или IN2 в зависимости от значения аргумента G.
Вход |
Тип |
Описание |
---|---|---|
G |
BOOL |
Номер входа |
IN0 |
ANY |
Вход 1 |
IN1 |
ANY |
Вход 2 |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход |
Форма записи на языке ST:
(*ANY*) := SEL((*BOOL*), (*ANY*), (*ANY*));
Блок MAX
Данный ФБ возвращает в OUT максимум из входных аргументов IN1 и IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
… |
Вход … |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход |
Форма записи на языке ST:
(*ANY*) := MAX((*ANY*), (*ANY*));
Блок MIN
Данный ФБ возвращает в OUT минимум из входных аргументов IN1 и IN2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
… |
Вход … |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход |
Форма записи на языке ST:
(*ANY*) := MIN((*ANY*), (*ANY*));
Блок LIMIT
Данный ФБ возвращает в OUT значение входного аргумента IN, в случае превышения им значения MX – в OUT возвращается MX, в случае если IN меньше MN – в OUT возвращается MN.
Вход |
Тип |
Описание |
---|---|---|
MN |
ANY |
Вход (нижний предел) |
IN |
ANY |
Вход |
MX |
ANY |
Вход (верхний предел) |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход |
Форма записи на языке ST:
(*ANY*) := LIMIT((*ANY*), (*ANY*), (*ANY*));
Блок MUX
Данный ФБ возвращает в OUT значение на входе IN(K), в зависимости от входного K. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
K |
ANY_INT |
Переключатель |
IN0 |
ANY |
Вход 1 |
IN1 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
ANY |
Выход |
Форма записи на языке ST:
(*ANY*) := MUX((*ANY*), (*ANY*), (*ANY*));
Comparsion
Блок GT
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 > IN2) & (IN2 > IN3) & … (INn–1 > INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := GT((*ANY*), (*ANY*), (*ANY*));
Блок GE
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 >= IN2) & (IN2 >= IN3) &… (INn–1 >= INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := GE((*ANY*), (*ANY*), (*ANY*));
Блок EQ
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 = IN2) & (IN2 = IN3) & … (INn–1 = INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := EQ((*ANY*), (*ANY*), (*ANY*));
Блок LT
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 < IN2) & (IN2 < IN3) & … (INn–1 < INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := LT((*ANY*), (*ANY*), (*ANY*));
Блок LE
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 <= IN2) & (IN2 <= IN3) & … (INn–1 <= INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := LE((*ANY*), (*ANY*), (*ANY*));
Блок NE
Данный ФБ сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 <> IN2) & (IN2 <> IN3) &… (INn–1 <> INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.
Вход |
Тип |
Описание |
---|---|---|
IN1 |
ANY |
Вход 1 |
IN2 |
ANY |
Вход 2 |
… |
ANY |
Вход … |
Выход |
Тип |
Описание |
OUT |
BOOL |
Выход |
Форма записи на языке ST:
(*BOOL*) := NE((*ANY*), (*ANY*), (*ANY*));
BRIC FB
Функция TASK_PERIOD
Данная фунцкия выводит информацию о цикле программы в миллисекундах.
Вход |
Тип |
Описание |
---|---|---|
IN |
STRING |
Выбор цикла из ресурсов |
Выход |
Тип |
Описание |
OUT |
UDINT |
Вывод цикла в мс |
Примечание
Наименование для IN должно совпадать с наименованием цикла в ресурсах, а также должен быть объявлен локально.
Форма записи на языке ST:
(*UDINT*) := TASK_PERIOD((*STRING*));