5.3.3.2.7.1. Алгоритм

 
 
Режимы работы алгоритма:
штатный режим;
режим подмены.

Штатный режим

 
 
Блок анализа неисправности канала или модуля
 
В блоке анализа неисправности канала или модуля значение сигнала OUT выставляется в зависимости от выставленной настройки FAULT_MODE.
 
При неисправности канала или модуля качество выходного сигнала выставляется MODULFAULT.
 
Блок балансировки
 
Если команда балансировки выходного сигнала от алгоритма-приемника BAL_IN.CMD установлена в режим TRACKING, то значение выходного сигнала приравнивается к значению на входе BAL_IN:
OUT.VALUE:= BAL_IN.VALUE;
 
Блок масштабирования
 
Если включено масштабирование (SCALE_EN = TRUE), то значение выходного сигнала OUT рассчитывается по формуле:
OUT.VALUE := YMIN + (IN.VALUE - XMIN) ∙ (YMAX - YMIN)/( XMAX - XMIN);
 
Если масштабирование сигнала отключено, то на выход OUT транслируется значение входа IN.

Режим подмены

Для перевода алгоритма в режим подмены необходимо на входе MAN_ON установить значение TRUE. При этом на выход алгоритма транслируется значение MAN_VALUE, а качество выходного сигнала устанавливается в значение REPLACE. 
 
При переходе в режим подмены имитационное значение MAN_VALUE приравнивается к значению выходного сигнала VALUE для обеспечения безударности.

Балансировка

 
В алгоритме реализована каскадная балансировка источника сигнала.
Как видно из таблицы, вход BAL_IN может содержать значение TRACKING с указанием отслеживать его на выходе OUT.
Остальные команды балансировки BAL_IN не влияют на работу алгоритма.
 
BAL_IN.CMD
EN
BAL_OUT.CMD
BAL_OUT.VALUE
OUT
TRACKING
FALSE
TRACKING
BAL_IN.VALUE
BAL_IN.VALUE
TRACKING
TRUE
TRACKING
XMIN + (BAL_IN.VALUE - YMIN) ∙
  ∙ (XMAX - XMIN)/ (YMAX - YMIN)
BAL_IN.VALUE
<>TRACKING
TRUE
BAL_IN.CMD
BAL_IN.VALUE
YMIN + (IN - XMIN) ∙
 ∙ (YMAX - YMIN)/( XMAX - XMIN)
<>TRACKING
FALSE
BAL_IN.CMD
BAL_IN.VALUE
IN
 
Команда балансировки BAL_OUT повторяет команду на входе BAL_IN.
BAL_OUT.CMD:= BAL_IN.CMD;
 
Если команда балансировки BAL_IN.CMD в значении TRACKING, то значение слежения BAL_OUT.VALUE рассчитывается по формуле:
BAL_OUT.VALUE = XMIN + (BAL_IN.VALUE - YMIN) ∙ (XMAX - XMIN)/(YMAX - YMIN)
 
В остальных случаях значение балансировки BAL_OUT.VALUE повторяет значение балансировки BAL_IN.VALUE.