Принцип работы
Регулятор может работать в следующих режимах:
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.