在 Codesys 中定义数组

dar*_*bar 3 arrays codesys structured-text

我正在使用 Codesys 创建一个数组。

下面的示例是我用来创建 5 个值的数组的示例

ARRAY [1..5] OF INT := [1,2,3,4,5];
Run Code Online (Sandbox Code Playgroud)

这对于 5 个值的数组来说没问题,但如果我需要一个包含 100 个值的数组呢?

有没有一种更快的方法来处理 100 个值的数组,而不是像下面的示例所示单独输入每个值。

ARRAY [1..100] OF INT :=[1,2,3,4,5,6,7 to 100]
Run Code Online (Sandbox Code Playgroud)

mrs*_*ent 5

如果您只想执行最多 100 个元素,并且希望数组的元素按顺序继续,您可以使用此代码在第一次 plc 扫描时初始化数组,而不是在数组声明中初始化。

VAR
   SomeArray: ARRAY[1..100] OF INT;
   i:INT:=0;
   isInitialized:BOOL:=false;
END_VAR

IF NOT isInitialized THEN
    FOR i:=1 TO 100 BY 1 DO
         SomeArray[i]:=i;
    END_FOR;
    isInitialized:=TRUE;
END_IF;
Run Code Online (Sandbox Code Playgroud)