SET - управление заданием

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

Автоматический режим работы.
В автоматическом режиме (AUTO=TRUE) входной сигнал X проходит через звено динамической балансировки поэтапно:
|
Ручной режим работы.
В ручном режиме (AUTO=FALSE) выходы блока Y=X0 и XOUT=X0.
|
Пример использования совместно с блоком аналогового регулирования RAN.
С блока SET выходной сигнал Y (задание) передается на вход X1 аналогового регулятора RAN. На вход X0 блока SET подается тот же сигнал, что и на вход X2 регулятора (регулируемый параметр).
![]() В ручном режиме работы блок SET игнорирует входной сигнал X, и без изменения передает значение сигнала X0 (temperature) на выход Y. В таком случае, в блоке аналогового регулятора RAN значение задания на входе X1 и значение регулируемого параметра temperature на входе X2 всегда совпадают, так как на оба входа поступает одинаковое значение temperature (задание отслеживает регулируемый параметр).
![]() После переключения в автоматический режим работы блок SET сохраняет на выходе Y последнее выведенное значение temperature до конца текущего цикла контроллера, и начинает отслеживать изменение сигнала X. Уже в следующем цикле контроллера выходной сигнал Y (задание) может быть изменен. В таком случае, в блоке RAN значение задания X1 и значение регулируемого параметра X2 могут отличаться (задание аналогового регулятора перестает отслеживать регулируемый параметр).
![]() Для блокировки изменения задания X на время ручного режима работы к выходу XOUT блока SET требуется подключить входной параметр X. В таком случае в ручном режиме задание всегда будет равно параметру X0.
![]() Если выход XOUT не задействовать, значение задания можно изменять при любом режиме работы.
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.SET(AUTO, X, V, X0);
//Y - задание для регулятора с динамической балансировкой,
//в ручном режиме работы Y=X0
Y := Block.Y;
//XOUT=X в автоматическом режиме (задание без балансировки),
//в ручном режиме XOUT=X0
XOUT := Block.XOUT;
|




