0

是否可以在每个 PLC 循环中存储一个变量值?我每次都需要前 10 个值来执行一些计算。我正在使用 OpenPCS 平台和 ST 进行编程。

4

1 回答 1

0

您可以创建一个值数组,然后存储为数组值

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 个元素数组的代码示例,每个新的 PLC 循环分配新元素并旋转。

之后,您可以计算平均值或最小值和最大值。

INC1 将给定值加一,直到达到 32,然后重置为 1。

于 2020-04-16T10:39:03.230 回答