如何使用 TRUE 在结构化文本(Twincat 2(中初始化布尔数组?
例如像这样:
VAR
a_referenz_array : ARRAY[0..2] OF BOOL := TRUE, FALSE ; (* This does not work !! *)
END_VAR
您可以在初始化部分使用 FOR 循环(它在启动 PLC 时实现一次(:
FOR I:=0 TO 2 DO
a_referenz_array[I]:=TRUE;
END_FOR
Google/Beckhoff Infosys 是你的朋友。谷歌"数组双猫": https://infosys.beckhoff.com/english.php?content=../content/1033/tcplccontrol/html/TcPlcCtrl_ARRAY.htm&id=
在 TwinCAT2 中: arr1 : 数组 [1..2] 的布尔值 := 真,假;
双猫3: arr1 : 布尔值的数组 [1..2] := [真,假];
编辑,应该更正确地检查您的问题。这在 TwinCAT3 中有效,显然不适用于 TwinCAT2 :-(
您的代码将按预期工作,我在 TC2 中对其进行了测试。但是它有几个问题可能会在测试时混淆......
- 数组的大小为 3 个布尔值,但您只初始化 2 个布尔值。这意味着只会初始化索引 0 和 1,根据代码的其余部分,您可能会发现它。
- 数组只会在 PLC 复位后初始化,因此更改代码、重新编译和在线监控可能根本没有任何影响。您应该向 PLC 发送重置命令,然后重新运行该程序。
- 我的 TC2 版本是 2.11.2301...这是一个很长的机会,但如果你的年龄很大,那也可能是原因。
您的代码:
VAR
a_referenz_array : ARRAY[0..2] OF BOOL := TRUE, FALSE ;
END_VAR