Сохраняйте значение переменной в каждом цикле PL C - PullRequest
0 голосов
/ 16 апреля 2020

Можно ли хранить значение переменной в каждом цикле PL C? Мне нужны первые 10 значений каждый раз, чтобы выполнить некоторые вычисления. Я использую платформу OpenPCS и ST для программирования.

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете создать массив значений и затем сохранить их в виде значений массива.

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.

...