LIMITR - ограничение диапазона сигнала

Назначение.
Функциональный блок LIMITR применяется для удержания вещественных значений входного сигнала в ограниченном диапазоне.
Состав структурной переменной.
Переменная со структурным типом LIMITR будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
Минимальная и максимальная границы допустимого диапазона задаются на входах MIN и MAX соответственно. Если вещественное значение входного сигнала X находится в границах заданного диапазона (MIN < X < MAX), или MAX <= MIN, то сигнал X без изменения передается на выход Y.
При достижении значением X нижней или верхней границы диапазона, а также при выходе за указанные границы, выходной сигнал Y равен минимальному или максимальному значению соответственно.
На двух дискретных выходах Dmax и Dmin фиксируется достижение сигналом верхней и нижней границы диапазона.
Зависимость входных и выходных значений описана в таблице:
|
Входы
|
Выход Y
|
Выход Dmax
|
Выход Dmin
|
|
MIN < Х < MAX
или
MAX <= MIN
|
Х
|
FALSE
|
FALSE
|
|
Х >= MAX
|
MAX
|
TRUE
|
FALSE
|
|
Х <= MIN
|
MIN
|
FALSE
|
TRUE
|
Пример синтаксиса на языке ST.
//вызов блока, когда число находится в границах заданного диапазона
Block.LIMITR(20.0, 30.0, 10.0);
Y := Block.Y; //Y=20.0
Dmax := Block.Dmax; //Dmax=false
Dmin := Block.Dmin; //Dmin=false
//вызов блока, когда число равно нижней границе диапазона
Block.LIMITR(10, 30, 10);
Y := Block.Y; //Y=10.0
Dmax := Block.Dmax; //Dmax=false
Dmin := Block.Dmin; //Dmin=true
//вызов блока, когда число находится за верхней границей диапазона
Block.LIMITR(100, 30, 10);
Y := Block.Y; //Y=30.0
Dmax := Block.Dmax; //Dmax=true
Dmin := Block.Dmin; //Dmin=false
|
