gpt4 book ai didi

arrays - 如何使用 RSLogix 5000 获取 SCL 中 BOOL[] 的长度

转载 作者:行者123 更新时间:2023-12-01 15:17:51 25 4
gpt4 key购买 nike

目标

我正在用 SCL 编写 Allen-Bradley/Rockwell CompactLogix PLC。我想在运行时确定 Arrays 的大小。可以在编译前将 Array 长度作为 constants 输入到代码中。但是,如果能够自动确定数组的长度,将大大提高可重用性。

问题

函数 SIZE(Source,Dimtovary,Size) 完全满足我的需要,尽管它只用于 SINT[] INT[] DINT[] REAL[] structureSTRING。不幸的是,我需要 BOOL[] 的长度。

“SIZE 指令查找 Source 数组或字符串操作数的指定维度中的元素数(大小),并将结果放入 Size 操作数。该指令查找数组的一维大小。 "

伪代码

Int_array := INT[16];
Bool_array := BOOL[64];

SIZE(Int_array[0],0,Int_array_len);
// Works, Int_array_len contains 16

SIZE(Bool_array[0],0,Bool_array_len);
// Isn't compilable becaus size(); isn't defined for boolean arrays

环境

问题

有没有办法确定 bool 数组的长度,例如 BOOL[64]

此外,SIZE(Source,Dimtovary,Size); 不适用于 bool 数组是否有根本原因?

最佳答案

答案是否定的;不可能获得 BOOL[] 数组的大小。

正如@DanMašek 正确建议的那样,BOOL[] 数组非常有限。甚至建议使用包含 BOOL 类型成员的 UDT

不幸的是,我仍然没有解决方案来获取以某种方式排列的多个 BIT 的长度,并在 for 循环 中循环遍历它们。

关于arrays - 如何使用 RSLogix 5000 获取 SCL 中 BOOL[] 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com