DCHNG - запрет изменения

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

Описание алгоритма.
Функциональный блок DCHNG может работать в одном из четырех режимов:
-
Режим работы без запретов (Zup=FALSE и Zdown=FALSE). Сигнал X без изменения передается на выход Y, а выходы Dup=FALSE и Ddown=FALSE.
-
Запрет на увеличение (Zup=TRUE). Значение выходного сигнала Y может равняться максимальному значению X в момент запрета Y=Xmax или уменьшаться. Зависимость параметров при запрете на увеличение приведена в таблице:ZupZdownXYDupDdowntruefalseX >= YY = XmaxtruefalseX < YY = X
-
Dup=false в течение одного цикла контроллера после уменьшения сигнала X<Y;
-
Dup=true - в остальное время.
false -
-
Запрет на уменьшение (Zdown=TRUE). Значение выходного сигнала Y может равняться минимальному значению X в момент запрета Y=Xmin или увеличиваться. Зависимость параметров при запрете уменьшения приведена в таблице:ZupZdownXYDupDdownfalsetrueX <= YY = YminfalsetrueX > YY = Xfalse
-
Ddown=false в течение одного цикла контроллера после увеличения сигнала X>Y;
-
Ddown=true в остальное время
-
-
Запрет любого изменения (Zup=TRUE и Zdown=TRUE). На выходе Y сохраняется значение сигнала Xz, выводимое на момент запрета, а все последующие изменения сигнала X игнорируются. Зависимость параметров при одновременном запрете приведена в таблице:
|
Zup
|
Zdown
|
X
|
Y
|
Dup
|
Ddown
|
|
true
|
true
|
X = Y
|
Y = Xz
|
true
|
true
|
|
X > Y
|
Y = Xz
|
true
|
false
| ||
|
X < Y
|
Y = Xz
|
false
|
true
|
Графическое изображение работы блока при запрете увеличения сигнала. При запрете уменьшения сигнала работа блока осуществляется аналогичным образом, но в противоположном направлении.

Пример синтаксиса на языке ST.
//вызов функционального блока с командой запрета уменьшения сигнала
Block.DCHNG(10.0, false, true);
//чтение выходных параметров, значения Y могут только увеличиваться
Y := Block.Y;
Dup := Block.Dup;
Ddown := Block.Ddown;
|
