Описание функциональных блоков библиотеки ИСР BEREMIZ для ПЛК BRIC

Внимание

Для использования стандартных и дополнительных функциональных блоков в языке ST необходимо перетащить необходимый из библиотеки в зону перечисления переменных и дать наименование.

Важно

Для функциональных блоков и функций имеется несколько вариантов написания кода на языке ST в зависимости от входов/выходов.

Вариант 1:

FB(
IN := (*BOOL*),
OUT => (*BOOL*));

Вариант 2:

FB(IN, OUT);

Вариант 3:

FB(IN := (*BOOL*));
Q := FB.OUT

BRIC Library

Блок UTON

Данный ФБ представляет собой таймер с задержкой включения.

_images/uton.png
_images/b-uton.png

Вход

Тип

Описание

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.

_images/utof.png
_images/b-utof.png

Вход

Тип

Описание

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 в битах.

_images/b-word_on_bool.png

Вход

Тип

Описание

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 входных булевых переменных.

_images/b-bool_on_word.png

Вход

Тип

Описание

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).

_images/b-setbit.png

Вход

Тип

Описание

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).

_images/b-getbit.png

Вход

Тип

Описание

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 предоставляет информацию о состоянии короткого замыкания на дискретных выходах.

_images/b-read_do_sc.png

Выход

Тип

Описание

DO_SC_FLAG

USINT

Флаг обнаруживания короткого замыкания по каналу. Если КЗ обнаружено, то управление каналом блокируется

DO_SC_EN

USINT

Флаг выставленной программной защиты от короткого замыкания

Форма записи на языке ST:

FB();
(*USINT*) := FB.DO_SC_FLAG;
(*USINT*) := FB.DO_SC_EN;

Примечание

Логическое состояние КЗ на дискретных каналах определяется как значение младшего полубайта

_images/26.png

Блок READ_DO

ФБ READ_DO предоставляет информацию о состоянии дискретных выходов.

_images/b-read_do.png

Выход

Тип

Описание

DO_OUT

USINT

Чтение значения состояния дискретных выходов

Форма записи на языке ST:

FB();
(*USINT*) := FB.DO_OUT;

Примечание

Логическое состояние каналов определяется как значение младшего полубайта

_images/26.png

Блок WRITE_DO

ФБ WRITE_DO согласно маске DO_MASK и подаче напряжений на соответствующие дискретные выхода DO_VALUE (выходы прописываются побитово).

_images/b-write_do.png

Вход

Тип

Описание

DO_VALUE

UINT

Запись значения состояния дискретных выходов

DO_MASK

UINT

Запись маски, разрешающей изменять состояние дискретных выходов

Форма записи на языке ST:

FB(DO_VALUE := (*UINT*), DO_MASK := (*UINT*));

Примечание

Логическое состояние каналов определяется как значение младшего полубайта

_images/26.png

Блок WRITE_DO_SC

ФБ WRITE_DO_SC устанавливает номера дискретных выходов, на которых включить программную защиту от КЗ и дискретные выхода на которых сработала программная защита от КЗ.

_images/b-write_do_sc.png

Вход

Тип

Описание

DO_SC_FLAG

UINT

Запись перечисления дискретных выходов, на которых сработала аппаратная защита от короткого замыкания (использовать только возможность сброса)

DO_SC_EN

UINT

Запись перечисления дискретных выходов, на которых сработала программная защита от короткого замыкания (использовать только возможность сброса)

Форма записи на языке ST:

FB(DO_SC_FLAG := (*UINT*), DO_SC_EN := (*UINT*));

Примечание

Логическое состояние КЗ на дискретных каналах определяется как значение младшего полубайта

_images/26.png

Блок WRITE_DO_PWM_FREQ

ФБ WRITE_DO_PWM устанавливает ШИМ дискретных выходов в диапазоне от 0 до 10000 Гц.

_images/b-write_do_pwm.png

Вход

Тип

Описание

DO_PWM_FREQ

UINT

Частота ШИМ подаваемая на каналы дискретных выходов, Гц

Форма записи на языке ST:

FB(DO_PWM_FREQ := (*UINT*));

Примечание

Значение PWM Frequency задается одно для всех каналов

Блок WRITE_DO_PWM_CTRL

ФБ WRITE_DO_PWM_CTRL устанавливает для выбранного дискретного выхода скважность сигнала. Указывается диапазон от 10 до 90%.

_images/b-write_do_pwm_ctrl.png

Вход

Тип

Описание

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).

_images/b-dw_to_fl.png

Вход

Тип

Описание

IN_VAL

DWORD

Входная переменная

Выход

Тип

Описание

OUT_VAL

REAL

Выходная переменная

Форма записи на языке ST:

FB(IN_VAL := (*DWORD*));
(*REAL*) := FB.OUT_VAL;

Блок WORDS_TO_FLOAT

Данный ФБ преобразовывает значение двух типов данных WORD в тип данных с плавающей точкой (float).

_images/b-w_to_fl.png

Вход

Тип

Описание

WORDH

WORD

Входная переменная (старший байт)

WORDL

WORD

Входная переменная (младший байт)

Выход

Тип

Описание

OUT_VAL

REAL

Выходная переменная

Форма записи на языке ST:

FB(WORDH := (*WORD*), WORDL := (*WORD*));
(*REAL*) := FB.OUT_VAL;

Блок PARSING_UINT

ФБ PARSING_UINT выводит значение входной переменной UINT в битах.

_images/fb10.png

Вход

Тип

Описание

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 в битах.

_images/fb11.png

Вход

Тип

Описание

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

Данный ФБ выдает значение сопротивления и температуры датчиков ТСП.

_images/b-res.png

Вход

Тип

Описание

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 знаков после запятой.

_images/b-round.png

Вход

Тип

Описание

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 предоставляет информацию о входном напряжении питания и напряжение батареи ПЛК.

_images/b-read_pwr.png

Выход

Тип

Описание

V_PWR

REAL

Входное напряжение ПЛК

V_BAT

REAL

Напряжение батареи ПЛК

Форма записи на языке ST:

FB();
(*REAL*) := FB.V_PWR;
(*REAL*) := FB.V_BAT;

Блок READ_INTERNAL_TEMP

ФБ READ_INTERNAL_TEMP предоставляет информацию температуре микропроцессора ПЛК BRIC.

_images/b-read_int_temp.png

Выход

Тип

Описание

INTERNAL_TEMP_OUT

REAL

Показание температуры микропроцессора в ПЛК

Форма записи на языке ST:

FB();
(*REAL*) := FB.INTERNAL_TEMP_OUT;

Блок READ_RESET

ФБ READ_RESET предоставляет информацию о количестве перезагрузок с момента обновления ОС ПЛК и причине последней перезагрузки.

_images/b-read_reset.png

Выход

Тип

Описание

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 предоставляет информацию о регистре в зависимости от типа данных.

_images/b-read_param.png

Вход

Тип

Описание

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 предоставляет информацию о времени работы ПЛК с момента последней перезагрузки указанной в мс.

_images/b-read_sys.png

Вход

Тип

Описание

SYS_TICK_COUNTER_VALUE

ULINT

Чтение времени выполнения с момента последнего сброса в мс.

Форма записи на языке ST:

FB();
(*ULINT*) := FB.SYS_TICK_COUNTER_VALUE;

Блок READ_AREA_LOCATION

ФБ READ_AREA_LOCATION предоставляет информацию о регистре, определенным Modbus MemoryArea.

_images/b-read_area.png

Выход

Тип

Описание

LOCATIONO

UINT

Номер нулевого элемента выборки MemoryArea

LOCATION1

UINT

Номер первого элемента выборки MemoryArea

LOCATION2

UINT

Номер второго элемента выборки MemoryArea

Выход

Тип

Описание

VALUE

WORD

Вывод регистра

LOCTION_READED

BOOL

Контрольный бит-статус

Примечание

Номер элемента определяется данным образом:

_images/r-mdb1.png

Форма записи на языке ST:

FB(LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*));
(*WORD*) := FB.VALUE;
(*BOOL*) := FB.LOCATION_READED;

Блок READ_REQUEST_LOCATION

ФБ READ_REQUEST_LOCATION предоставляет информацию о регистре, определенным ModbusRequest.

_images/b-read_request.png

Выход

Тип

Описание

LOCATIONO

UINT

Номер нулевого элемента выборки ModbusRequest

LOCATION1

UINT

Номер первого элемента выборки ModbusRequest

LOCATION2

UINT

Номер второго элемента выборки ModbusRequest

LOCATION3

UINT

Номер третьего элемента выборки ModbusRequest

Выход

Тип

Описание

VALUE

WORD

Вывод регистра

LOCTION_READED

BOOL

Контрольный бит-статус

Примечание

Номер элемента определяется данным образом:

_images/r-mdb2.png

Форма записи на языке 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 записывает данные в регистр в зависимости от типа данных.

_images/b-set_param.png

Вход

Тип

Описание

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 позволяет считать время с ПЛК.

_images/b-struct_real.png

Выход

Тип

Описание

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).

_images/b-write_mdb.png

Вход

Тип

Описание

MDB_ADDR

UINT

Установление адреса по протоколу Modbus в ПЛК

Форма записи на языке ST:

FB(MDB_ADDR := (*UINT*));

Блок WRITE_UART_SETS

ФБ WRITE_UART_SETS предоставляtn возможность изменять параметры UART каналов записанных в формате U16.

_images/b-write_uart.png

Вход

Тип

Описание

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*));
_images/261.png

Структура изменения параметров UART каналов

Блок WRITE_CH_TIMEOUT

ФБ WRITE_CH_TIMEOUT изменяет время задержки UART каналов.

_images/b-write_ch_time.png

Вход

Тип

Описание

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 устанавливает время на ПЛК, выхода функционального блока используются для проверки записанного времени.

_images/b-write_struct_time.png

Вход

Тип

Описание

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.

_images/b-write_area.png

Выход

Тип

Описание

VALUE

WORD

Значение регистра

LOCATIONO

UINT

Номер нулевого элемента выборки MemoryArea

LOCATION1

UINT

Номер первого элемента выборки MemoryArea

LOCATION2

UINT

Номер второго элемента выборки MemoryArea

Выход

Тип

Описание

LOCTION_WRITED

BOOL

Контрольный бит-статус

Примечание

Номер элемента определяется данным образом:

_images/r-mdb1.png

Форма записи на языке ST:

FB(VALUE := (*WORD*), LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*));
(*BOOL*) := FB.LOCATION_WRITED;

Блок WRITE_REQUEST_LOCATION

ФБ WRITE_REQUEST_LOCATION изменяет значения регистров, определенных ModbusRequest.

_images/b-write_request.png

Выход

Тип

Описание

VALUE

WORD

Значение регистра

LOCATIONO

UINT

Номер нулевого элемента выборки ModbusRequest

LOCATION1

UINT

Номер первого элемента выборки ModbusRequest

LOCATION2

UINT

Номер второго элемента выборки ModbusRequest

LOCATION3

UINT

Номер третьего элемента выборки ModbusRequest

Выход

Тип

Описание

LOCTION_WRITED

BOOL

Контрольный бит-статус

Примечание

Номер элемента определяется данным образом:

_images/r-mdb2.png

Форма записи на языке ST:

FB(VALUE := (*WORD*), LOCATION0 := (*UINT*), LOCATION1 := (*UINT*), LOCATION2 := (*UINT*), LOCATION3 := (*UINT*));
(*BOOL*) := FB.LOCATION_WRITED;

Блок UNIX_TIME

ФБ UNIX_TIME устанавливает время на ПЛК (время указывается в мс.).

_images/b-unix_time.png

Вход

Тип

Описание

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.

_images/b-read_di.png

Выход

Тип

Описание

DI_OUT

UDINT

Состояние дискретных входов ПЛК BRIC

Форма записи на языке ST:

FB();
(*UDINT*) := FB.DI_OUT;

Блок READ_DI_CNT

ФБ READ_DI_CNT предоставляет значение счетчика дискретного входного канала ПЛК номер, которого прописан на входе блока.

_images/b-read_di_cnt.png

Вход

Тип

Описание

DI_NUMBER

UINT

Номер исследуемого дискретного входа

Выход

Тип

Описание

DI_CNT_VALUE

ULINT

Значение счетчика дискретного входа

Форма записи на языке ST:

FB(DI_NUMBER := (*UINT*));
(*ULINT*) := FB.DI_CNT_VALUE;

Блок READ_DI_FREQ

ФБ READ_DI_FREQ предоставляет значение частоты дискретного входного канала ПЛК, номер которого прописан на входе блока.

_images/b-read_di_freq.png

Вход

Тип

Описание

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, при этом считается в десятках мс.

_images/b-write_di_noise.png

Вход

Тип

Описание

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 для указанного дискретного входа задает период, за который ведется подсчет импульсов для расчета частоты

_images/b-write_di_puls.png

Вход

Тип

Описание

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– подключен счетчик импульсов и расчет частоты дискретного входа).

_images/b-write_di_mode.png

Вход

Тип

Описание

DI_NUMBER

UINT

Номер канала дискретного входа ПЛК BRIC

DI_MODE_VALUE

UINT

Код подключенных функций данного канала

Форма записи на языке ST:

FB(DI_NUMBER := (*UINT*), DI_MODE_VALUE := (*UINT*));

Standart function blocks

Блок SR

Данный ФБ представляет собой бистабильный SR–триггер, с доминирующим входом S (Set).

_images/b-sr.png
_images/sr.png

Вход

Тип

Описание

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).

_images/b-rs.png
_images/rs.png

Вход

Тип

Описание

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

Данный ФБ представляет собой семафор, определяющий механизм, позволяющий элементам программы иметь взаимоисключающий доступ к определенным ресурсам.

_images/b-sema.png

Вход

Тип

Описание

CLAIM

BOOL

Вход (доминирующий)

RELEASE

BOOL

Сброс

Выход

Тип

Описание

BUSY

BOOL

Выход активируетс при CLAIM = 1 и деактивируется при RELEASE = 1

Форма записи на языке ST:

FB(CLAIM := (*BOOL*), RELEASE := (*BOOL*));
(*BOOL*) := FB.BUSY;

Блок R–TRIG

Данный ФБ представляет собой индикатор нарастания фронта, который генерирует на выходе одиночный импульс при нарастании фронта сигнала.

_images/b-rtrig.png

Вход

Тип

Описание

CLK

BOOL

Вход

Выход

Тип

Описание

Q

BOOL

Выход генерирует единичный импульс, если на входе передний фронт

Форма записи на языке ST:

FB(CLK := (*BOOL*));
(*BOOL*) := FB.Q;

Блок F–TRIG

Данный ФБ представляет собой индикатор спада фронта, который генерирует на выходе одиночный импульс при спаде фронта сигнала.

_images/b-f-trig.png

Вход

Тип

Описание

CLK

BOOL

Вход

Выход

Тип

Описание

Q

BOOL

Выход генерирует единичный импульс, если на входе задний фронт

Форма записи на языке ST:

FB(CLK := (*BOOL*));
(*BOOL*) := FB.Q;

Блок CTU/CTU_DINT…

Данный ФБ представляет собой инкрементный счётчик.

_images/b-ctu.png

Вход

Тип

Описание

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…

Данный ФБ представляет собой декрементный счётчик.

_images/b-ctd.png

Вход

Тип

Описание

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…

Данный ФБ представляет собой реверсивный счётчик.

_images/b-ctud.png

Вход

Тип

Описание

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

Данный ФБ представляет собой повторитель импульсов и используется для генерирования импульса с заданной продолжительностью.

_images/b-tp.png

Вход

Тип

Описание

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

Данный ФБ представляет собой таймер с задержкой включения.

_images/b-ton.png

Вход

Тип

Описание

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

Данный ФБ представляет собой таймер с задержкой отключения.

_images/b-tof.png

Вход

Тип

Описание

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

Данный ФБ представляет собой часы реального времени и имеет много вариантов использования, включая добавление временных отметок, для установки даты и времени в формируемых отчетах, в аварийных сообщениях и т.д.

_images/b-rtc.png

Вход

Тип

Описание

IN

BOOL

Переключение режима

PDT

TIME

Время начала работы

Выход

Тип

Описание

Q

BOOL

Индикация режима

CDT

DT

Вывод времени

Форма записи на языке ST:

FB(IN := (*BOOL*), PDT := (*DT*));
(*BOOL*) := FB.Q;
(*DT*) := FB.CDT;

Блок INTEGRAL

ФБ интегрирует входное значение XIN по времени.

_images/b-integral.png

Вход

Тип

Описание

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.

_images/b-derivative.png

Вход

Тип

Описание

RUN

BOOL

Включение блока

XIN

REAL

Вход

CYCLE

TIME

Время дифференцирования

Выход

Тип

Описание

XOUT

REAL

Формирование сигнала пропорционально частоте изменения входа XIN

Форма записи на языке ST:

FB(RUN := (*BOOL*), XIN := (*REAL*),YCLE := (*TIME*));
(*REAL*) := FB.XOUT;

Блок PID

Данный ФБ представляет собой устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала

_images/b-pid.png

Вход

Тип

Описание

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

_images/b-ramp.png

Вход

Тип

Описание

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 показывает информацию о состоянии аналогового входа.

_images/b-read_ai_state.png

Выход

Тип

Описание

AI_STATE_VALUE

UINT

Состояние канала. Логическая 1 – измеренное значение тока лежит в диапазоне 4 - 20 мА, логический 0 – измеренное значение ниже 4 мА либо выше 20 мА.

Форма записи на языке ST:

FB(AI_STATE_VALUE => (*UINT*));

Блок READ_AI

ФБ READ_AI выводит значение аналогового входного канала ПЛК, номер которого прописан на входе блока.

_images/b-read_ai.png

Вход

Тип

Описание

AI_NUMBER

UINT

Номер канала

Выход

Тип

Описание

AI_VALUE

UINT

Показание аналогового канала по шкале 0 – 16383, которая соответствует шкале принимаемого унифицированного сигнала

Форма записи на языке ST:

FB(AI_NUMBER := (*UINT*));
(*UINT*) := FB.AI_VALUE;

Блок READ_AI_REAL

ФБ READ_AI_REAL выводит значение аналогового входного канала ПЛК в мА, номер которого прописан на входе блока.

_images/b-read_ai_real.png

Вход

Тип

Описание

AI_NUMBER

UINT

Номер канала

Выход

Тип

Описание

AI_VALUE

REAL

Показание аналогового канала в мА

Форма записи на языке ST:

FB(AI_NUMBER := (*UINT*), AI_VALUE => (*REAL*));

Type conversion

Блок *_TO_*

Данный ФБ предназначен для всех возможных и корректных, согласно стандарту IEC 61131–3, преобразований между типами данных.

_images/b-to.png

Вход

Тип

Описание

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.

_images/b-abs.png

Вход

Тип

Описание

IN

ANY_NUM

Вход

Выход

Тип

Описание

OUT

ANY_NUM

Выход (модуль числа)

Форма записи на языке ST:

(*ANY_NUM*) := ABS((*ANY_NUM*));

Блок SQRT

Данный ФБ возвращает в OUT квадратный корень входного числа IN.

_images/b-sqrt.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (корень числа)

Форма записи на языке ST:

(*ANY_REAL*) := SQRT((*ANY_REAL*));

Блок LN

Данный ФБ возвращает в OUT значение натурального логарифма от IN.

_images/b-ln.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (натуральный логарифм числа)

Форма записи на языке ST:

(*ANY_REAL*) := LN((*ANY_REAL*));

Блок LOG

Данный ФБ возвращает в OUT значение логарифма по основанию 10 от IN.

_images/b-log.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (логарифм числа)

Форма записи на языке ST:

(*ANY_REAL*) := LOG((*ANY_REAL*));

Блок EXP

Данный ФБ возвращает в OUT значение экспоненты, возведённой в степень IN.

_images/b-exp.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (экспонента числа)

Форма записи на языке ST:

(*ANY_REAL*) := EXP((*ANY_REAL*));

Блок SIN

Данный ФБ возвращает в OUT значение синуса IN.

_images/b-sin.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (синус числа)

Форма записи на языке ST:

(*ANY_REAL*) := SIN((*ANY_REAL*));

Блок COS

Данный ФБ возвращает в OUT значение косинуса IN.

_images/b-cos.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (косинус числа)

Форма записи на языке ST:

(*ANY_REAL*) := COS((*ANY_REAL*));

Блок TAN

Данный ФБ возвращает в OUT значение тангенса IN.

_images/b-tan.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (тангенс числа)

Форма записи на языке ST:

(*ANY_REAL*) := TAN((*ANY_REAL*));

Блок ASIN

Данный ФБ возвращает в OUT значение арксинуса IN.

_images/b-asin.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (арксинус числа)

Форма записи на языке ST:

(*ANY_REAL*) := ASIN((*ANY_REAL*));

Блок ACOS

Данный ФБ возвращает в OUT значение арккосинуса IN.

_images/b-acos.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (арккосинус числа)

Форма записи на языке ST:

(*ANY_REAL*) := ACOS((*ANY_REAL*));

Блок ATAN

Данный ФБ возвращает в OUT значение арктангенса IN.

_images/b-atan.png

Вход

Тип

Описание

IN

ANY_REAL

Вход

Выход

Тип

Описание

OUT

ANY_REAL

Выход (арктангенс числа)

Форма записи на языке ST:

(*ANY_REAL*) := ATAN((*ANY_REAL*));

Arithmetic

Блок ADD

Данный ФБ возвращает в OUT результат сложения IN1 и IN2.

_images/b-add.png

Вход

Тип

Описание

IN1

ANY_NUM

Вход

IN2

ANY_NUM

Вход

Выход

Тип

Описание

OUT

ANY_NUM

Выход (сложение)

Форма записи на языке ST:

(*ANY_NUM*) := ADD((*ANY_NUM*), (*ANY_NUM*));

Блок MUL

Данный ФБ возвращает в OUT результат умножения IN1 и IN2.

_images/b-mul.png

Вход

Тип

Описание

IN1

ANY_NUM

Вход

IN2

ANY_NUM

Вход

Выход

Тип

Описание

OUT

ANY_NUM

Выход (умножение)

Форма записи на языке ST:

(*ANY_NUM*) := MUL((*ANY_NUM*), (*ANY_NUM*));

Блок SUB

Данный ФБ возвращает в OUT результат вычитания из IN1 значения IN2.

_images/b-sub.png

Вход

Тип

Описание

IN1

ANY_NUM

Вход

IN2

ANY_NUM

Вход

Выход

Тип

Описание

OUT

ANY_NUM

Выход (разность)

Форма записи на языке ST:

(*ANY_NUM*) := SUB((*ANY_NUM*), (*ANY_NUM*));

Блок DIV

Данный ФБ возвращает в OUT результат деления IN1 на IN2.

_images/b-div.png

Вход

Тип

Описание

IN1

ANY_NUM

Вход (делитель)

IN2

ANY_NUM

Вход (делитель)

Выход

Тип

Описание

OUT

ANY_NUM

Выход (деление)

Форма записи на языке ST:

(*ANY_NUM*) := DIV((*ANY_NUM*), (*ANY_NUM*));

Блок MOD

Данный ФБ возвращает в OUT остаток от деления IN1 на IN2.

_images/b-mod.png

Вход

Тип

Описание

IN1

ANY_INT

Вход (делимое)

IN2

ANY_INT

Вход (делитель)

Выход

Тип

Описание

OUT

ANY_INT

Выход (остаток от деления)

Форма записи на языке ST:

(*ANY_INT*) := MOD((*ANY_INT*), (*ANY_INT*));

Блок EXPT

Данный ФБ возвращает в OUT значение IN1 возведённое в степень IN2.

_images/b-expt.png

Вход

Тип

Описание

IN1

ANY_REAL

Вход

IN2

ANY_NUM

Вход (степень)

Выход

Тип

Описание

OUT

ANY_REAL

Выход (число в степени)

Форма записи на языке ST:

(*ANY_REAL*) := EXPT((*ANY_REAL*), (*ANY_NUM*));

Блок MOVE

Данный ФБ возвращает в OUT значение IN.

_images/b-move.png

Вход

Тип

Описание

IN

ANY

Вход

Выход

Тип

Описание

OUT

ANY

Выход (присваивание)

Форма записи на языке ST:

(*ANY_REAL*) := MOVE((*ANY*));

Bit-shift

Блок SHL

Данный ФБ возвращает в OUT арифметический сдвиг аргумента IN на N бит влево с заполнением битов справа нулями.

_images/b-shl.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_INT

Количество сдвигов влево

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := SHL((*ANY_BIT*), (*ANY_INT*));

Блок SHR

Данный ФБ возвращает в OUT арифметический сдвиг аргумента IN на N бит вправо с заполнением битов слева нулями.

_images/b-shr.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_INT

Количество сдвигов вправо

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := SHR((*ANY_BIT*), (*ANY_INT*));

Блок ROR

Данный ФБ возвращает в OUT циклический сдвиг аргумента IN на N бит влево.

_images/b-ror.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_INT

Количество сдвигов вправо

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := ROR((*ANY_BIT*), (*ANY_INT*));

Блок ROL

Данный ФБ возвращает в OUT циклический сдвиг аргумента IN на N бит вправо.

_images/b-rol.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_INT

Количество сдвигов влево

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := ROL((*ANY_BIT*), (*ANY_INT*));

Bitwise

Блок AND

Данный ФБ представляет собой организацию «логического И» для всех входных аргументов IN1…INn.

_images/b-and.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_BIT

Вход

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := AND((*ANY_BIT*), (*ANY_BIT*));

Блок OR

Данный ФБ представляет собой организацию «логического ИЛИ» для всех входных аргументов IN1…INn.

_images/b-or.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_BIT

Вход

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := OR((*ANY_BIT*), (*ANY_BIT*));

Блок XOR

Данный ФБ представляет собой организацию «логического исключающего ИЛИ» для всех входных аргументов IN1…INn.

_images/b-xor.png

Вход

Тип

Описание

IN1

ANY_BIT

Вход

IN2

ANY_BIT

Вход

Выход

Тип

Описание

OUT

ANY_BIT

Выход

Форма записи на языке ST:

(*ANY_BIT*) := XOR((*ANY_BIT*), (*ANY_BIT*));

Блок NOT

Данный ФБ представляет собой организацию «логической инверсии» для входного аргумента IN.

_images/b-not.png

Вход

Тип

Описание

IN

ANY_BIT

Вход

Выход

Тип

Описание

OUT

ANY_BIT

Выход (инверсия)

Форма записи на языке ST:

(*ANY_BIT*) := NOT((*ANY_BIT*), (*ANY_BIT*));

Selection

Блок SEL

Данный ФБ возвращает в OUT один из двух аргументов IN1 или IN2 в зависимости от значения аргумента G.

_images/b-sel.png

Вход

Тип

Описание

G

BOOL

Номер входа

IN0

ANY

Вход 1

IN1

ANY

Вход 2

Выход

Тип

Описание

OUT

ANY

Выход

Форма записи на языке ST:

(*ANY*) := SEL((*BOOL*), (*ANY*), (*ANY*));

Блок MAX

Данный ФБ возвращает в OUT максимум из входных аргументов IN1 и IN2.

_images/b-max.png

Вход

Тип

Описание

IN1

ANY

Вход 1

IN2

ANY

Вход 2

Вход …

Выход

Тип

Описание

OUT

ANY

Выход

Форма записи на языке ST:

(*ANY*) := MAX((*ANY*), (*ANY*));

Блок MIN

Данный ФБ возвращает в OUT минимум из входных аргументов IN1 и IN2.

_images/b-min.png

Вход

Тип

Описание

IN1

ANY

Вход 1

IN2

ANY

Вход 2

Вход …

Выход

Тип

Описание

OUT

ANY

Выход

Форма записи на языке ST:

(*ANY*) := MIN((*ANY*), (*ANY*));

Блок LIMIT

Данный ФБ возвращает в OUT значение входного аргумента IN, в случае превышения им значения MX – в OUT возвращается MX, в случае если IN меньше MN – в OUT возвращается MN.

_images/b-limit.png

Вход

Тип

Описание

MN

ANY

Вход (нижний предел)

IN

ANY

Вход

MX

ANY

Вход (верхний предел)

Выход

Тип

Описание

OUT

ANY

Выход

Форма записи на языке ST:

(*ANY*) := LIMIT((*ANY*), (*ANY*), (*ANY*));

Блок MUX

Данный ФБ возвращает в OUT значение на входе IN(K), в зависимости от входного K. Количество входов IN(n) изменяемое – от 2 до 20. По умолчанию 2.

_images/b-mux.png

Вход

Тип

Описание

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.

_images/b-gt.png

Вход

Тип

Описание

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.

_images/b-ge.png

Вход

Тип

Описание

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.

_images/b-eq.png

Вход

Тип

Описание

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.

_images/b-lt.png

Вход

Тип

Описание

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.

_images/b-le.png

Вход

Тип

Описание

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.

_images/b-le.png

Вход

Тип

Описание

IN1

ANY

Вход 1

IN2

ANY

Вход 2

ANY

Вход …

Выход

Тип

Описание

OUT

BOOL

Выход

Форма записи на языке ST:

(*BOOL*) := NE((*ANY*), (*ANY*), (*ANY*));

BRIC FB

Функция TASK_PERIOD

Данная фунцкия выводит информацию о цикле программы в миллисекундах.

_images/b-task.png

Вход

Тип

Описание

IN

STRING

Выбор цикла из ресурсов

Выход

Тип

Описание

OUT

UDINT

Вывод цикла в мс

Примечание

Наименование для IN должно совпадать с наименованием цикла в ресурсах, а также должен быть объявлен локально.

Форма записи на языке ST:

(*UDINT*) := TASK_PERIOD((*STRING*));