如何在 ST (Twincat2) 中使用 TRUE 初始化布尔数组?



如何使用 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

最新更新