结构声明如下:
TYPE board:
STRUCT
number: INT;
color: DWORD;
END_STRUCT
END_TYPE
我想声明一个数组的这些结构与开始值在POU。我是这样做的:
Program PLC_PRG
VAR
arr1: ARRAY[1..61] OF board;
board: board;
arr1[1].color := 16#FF0000;
END_VAR
但我得到一个错误,说:"错误4024:PLC_PRG(10):期望':'之前'['";
有人知道怎么解决这个问题吗?您没有指定平台,但我假设是TwinCAT。要初始化结构数组,必须在变量声明行中完成所有操作。
arr1: ARRAY[1..61] OF board := [(number:=7, color:=16#FF0000), (number:=5, color:=16#FF0001)];
这个例子将初始化数组的元素1和元素2。据我所知,你不能有选择地初始化单个数组元素,尽管你可能想这样做。当然,你可以使用像arr1[17].color := 16#FF0000
这样的语句,但它必须在变量声明块之外。