1
概述
数组是相同数据类型的元素的集合。支持固定长度或可变的一维和多维数组。简单来说:数组是指将相同数据类型的标签的连续集合体用一个名称表示。如下图所示:
2
声明数组语法
您可以在 POU 的声明部分以及全局变量列表中定义数组。如下图所示:
01
固定长度数组声明的语法
<Array_Name>: ARRAY [<ll1>..<ul1>,<ll2>..<ul2>,..,<lln>..<uln>] OF <elem.type>
ll1, ll2, lln标识字段范围的下限。
ul1, ul2,uln标识字段范围的上限。
范围值必须为整数类型。
定义固定长度的数组声明示例
Card_game: ARRAY [1..13, 1..4] OF INT;
02
长度可变的数组声明语法
<Array name> :ARRAY[* ( , * )+ ] OF <data type>;
// (...)+:一个或多个其他维
定义可变长度的数组声明示例
03
初始化数组
数组完整初始化示例
arr1 : ARRAY [1..5] OF INT := [1,2,3,4,5];
arr2 : ARRAY [1..2,3..4] OF INT := [1,3(7)]; (* 简短:1,7,7,7 *)
arr3 : ARRAY [1..2,2..3,3..4] OF INT := [2(0),4(4),2,3];
(* 简短: 0,0,4,4,4,4,2,3 *)
3
应用案例
练习:逻辑阵列应用(如下图)
给定零点坐标,自动将其他点的数据进行运算,并得出结果存入数组中语法简化:
PROGRAM SR_Main
VAR
a:ARRAY[0..4] OF INT;
b:ARRAY[0..6] OF INT;
c:INT;
d:INT;
number1:INT;
number2:INT;
start: BOOL;
END_VAR
c:=0;
d:=0;
number1:=0;
number2:=0;
IF start THEN
FOR c:=0 TO 4 BY 1 DO
a[c]:=number1;
number1:=number1+50;
END_FOR
FOR d:=0 TO 6 BY 1 DO
b[d]:=number2;
number2:=number2+50;
END_FOR
END_IF
责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
|