Принцип работы

 
Регулятор может работать в следующих режимах:
MODE
Название
Описание
TRACKING
Режим слежения
Устанавливается, пока входной сигнал BAL_IN содержит команду слежения:
BAL_IN.CMD = ENUM_CASCADE_CMD.TRACKING.
Управляющий сигнал U при этом обнулен.
 MAN
Режим ручного управления
Устанавливается, когда нет слежения, но есть команда MAN_ON = TRUE. В данном режиме управляющий сигнал U отслеживает сигнал MAN_U, но в пределах UMIN…UMAX и соблюдая команды запрета на входе BAL_IN.
AUTO
Режим регулирования
Устанавливается при отсутствии команд установки режима слежения на входе BAL_IN, ручного управления MAN_ON и ошибок (DIAGN = 1). В данном режиме управляющий сигнал U формируется по выбранной передаточной функции.
OFF
Отключен
Устанавливается, когда диагностируется ошибка (DIAGN <> 1).
В данном режиме управляющий сигнал U обнулен.
 
 

Задание

В режиме регулирования (MODE = AUTO) задание SP_OUT определяется суммой текущего номинала (локального или внешнего) и коррекции. Качество задания SP_OUT формируется как минимальное качество слагаемых.
 
Если включен локальный номинал (AUTO_SP_ON = FALSE):
SP_OUT.VALUE := SP + CV.VALUE;
SP_OUT.QUALITY := CV.QUALITY;
 
Если включен внешний номинал (AUTO_SP_ON = TRUE):
SP_OUT.VALUE := AUTO_SP.VALUE + CV.VALUE;
SP_OUT.QUALITY := MIN(AUTO_SP.QUALITY, CV.QUALITY);
 
Задание SP_OUT.VALUE ограничивается в заданном в настройках регулятора диапазоне SP_MIN…SP_MAX.
SP_OUT.VALUE:= LIMIT(CONFIG.SP_MIN, SP_OUT.VALUE, CONFIG.SP_MIN);
 
Предел задания SP_LIMIT указывает достигнут ли заданный предел задания и проверяет корректность заданных порогов.
 
SP_LIMIT
Предел задания
Условия выполнения
NO
Не достигнут
SP_MIN < SP_MAX
SP_MIN<=SP_OUT.VALUE <= SP_MAX
HH
На максимуме
SP_MIN < SP_MAX
SP_OUT.VALUE > SP_MAX
LL
На минимуме
SP_MIN < SP_MAX
SP_OUT.VALUE < SP_MIN
ERR
Неверны пороги
SP_MIN >= SP_MAX

Текущее задание

 
Текущее задание определяется значением задания SP_OUT с учетом заданного в настройках ограничения по скорости TEMP_SP при работе балансировки текущего задания.
SP_CUR.VALUE := SP_CUR.VALUE ± T0*CONFIG.TEMP_SP;
 
Балансировка текущего задания включается в следующих случаях:
1. В режиме регулирования (MODE = AUTO) выбран локальный номинал (AUTO_SP_ON = FALSE) и оператор меняет значение локального номинала SP.
2. При переходе с локального номинала на внешний номинал (AUTO_SP_ON = TRUE).
3. При переходе с внешнего номинала на локальный номинал, если CONFIG.BAL_ON <> ENUM_BALANCE_TYPE.NO.
 
Если балансировка действующего задания не действует, то значение текущего задания SP_CUR равно значению задания SP_OUT:
SP_CUR:=SP_OUT;
 
Качество текущего задания SP_CUR равно качеству задания SP_OUT.
SP_CUR.QUALITY:= SP_OUT.QUALITY;
 
Задание SP_OUT.VALUE ограничивается в заданном в настройках регулятора диапазоне SP_MIN…SP_MAX.
SP_CUR.VALUE:= LIMIT(CONFIG.SP_MIN, SP_CUR.VALUE, CONFIG.SP_MIN);

Рассогласование

Рассогласование рассчитывается как разность текущего задания и параметра. Качество задания E формируется как минимальное из качества этих двух сигналов.
Если CONFIG.REVERSE = FALSE, то E.VALUE :=  (SP_CUR.VALUE - PV.VALUE);
Если CONFIG.REVERSE = TRUE, то E.VALUE :=  - (SP_CUR.VALUE - PV.VALUE);
 
E.QUALITY:= MIN(PV.QUALITY, SP_CUR.QUALITY);

Текущее рассогласование

Текущее рассогласование определяется значением задания E_OUT с учетом заданного в настройках ограничения по скорости TEMP_E при работе балансировки текущего рассогласования.
E_CUR.VALUE := E_CUR.VALUE ± T0*CONFIG.TEMP_E;
 
Выход DB_ZONE формируется по результатам вхождения текущего рассогласования E_CUR в зону нечувствительности:
 
Условие
Значение отклонения ERR
EMIN <= E_CUR.VALUE <= EMAX
ERR = 0
E_CUR.VALUE < EMIN
ERR = E_CUR.VALUE - EMIN
E_CUR.VALUE > EMAX
ERR = E_CUR.VALUE - EMAX
 
DB_ZONE
Название
Описание
OK
Не достигнута
Рассогласование в пределах зоны нечувствительности: ERR = 0
FAR
Далеко
Рассогласование вне зоны нечувствительности и контрольных порогов: ERR >= E_WH или ERR <= E_WL
NEAR
Близко
Рассогласование вне зоны нечувствительности, но в пределах контрольных порогов: ERR <> 0 и E_WL < ERR < E_WH
 
В ПИД-регуляторе можно включить приведение ошибки ERR к шкале параметра.
При ERR_SCALE_EN = TRUE ошибка, передаваемая на передаточную функцию, рассчитывается по формуле:
ERR_SCALE.VALUE      := ERR/(CONFIG.PV_MAX - CONFIG.PV_MIN);
ERR_SCALE.QUALITY  := E_CUR.QUALITY;
 
При ERR_SCALE_EN = FALSE на передаточную функцию передается значение ошибки ERR.