Вы можете создать массив значений и затем сохранить их в виде значений массива.
VAR
aBuffer : ARRAY[1..32] OF WORD;
init:BOOL; (* Init array *)
rest:BOOL; (* Reset *)
val:WORD; (* Value *)
iCount:INT; (* Array index *)
END_VAR
VAR_TEMP
iTmp : INT;
END_VAR
iTmp := UINT_TO_INT(N) - 1;
IF NOT init OR rest THEN
init := TRUE;
FOR iCount := 1 TO iTmp DO
aBuffer[iCount] := val;
END_FOR;
END_IF
iCount := INC1(iCount, 32);
aBuffer[iCount] := val;
Это пример кода, который создает массив из 32 элементов, и каждый новый цикл PL C назначает новый элемент и вращается.
После этого вы можете рассчитать среднее или минимальное и максимальное значения.
INC1 увеличивает указанное значение на единицу, пока оно не достигнет 32, а затем сбросится до 1.