AVERAGE

Аргументы:
RUN BOO TRUE=запустить/FALSE=сбросить
XIN REAL любая аналоговая переменная
N INT количество образцов, заданное
приложением
XOUT REAL среднее значение XIN
Описание:
Запоминает значение на каждом цикле и вычисляет среднее значение всех уже запомненных величин. Запоминает только N последних значений.
Количество образцов не может превосходить 128.
Если команда “RUN” равна FALSE, то значение на выходе равно значению на входе.
Когда достигнуто максимальное значение N сохраненных величин, первое запомненное значение вытесняется последним.
(*FBD пример блоков “AVERAGE” *)

(* ST Эквивалент: Мы предполагаем, что AVERAGE1 - это экземпляр блока AVERAGE *)
AVERAGE1((auto_mode & store_cmd), sensor_value, 100);
ave_value:= AVERAGE1.XOUT;
(* IL Эквивалент: *)
LD auto_mode
AND store_cmd
ST AVERAGE1.run
LD sensor_value
ST AVERAGE1.xin
LD 100
ST AVERAGE1.N
CAL AVERAGE1
LD AVERAGE1.XOUT
ST ave_value