如何解决更改 PLC 中数组的大小
是否可以使用 ADS 更改 TwinCAT-PLC 中数组的大小,在本例中为 pyads?
VAR CONSTANT
min_a : INT := 1;
max_a : INT := 234;
END_VAR
VAR
array_1: ARRAY[min_a..max_a] OF INT;
END_VAR
然后我想用广告更改常量的值,这可行,但它永远不会更改 plc 中数组的大小。
有人可以帮我吗?
解决方法
您可以使用 arrays
方法分配特定类型和大小的 __NEW(type,size)
,然后使用 __DELETE(pointer)
方法释放内存,如下代码所示:
METHOD myCode
VAR_INPUT
myArray : POINTER TO INT;
END_VAR
myArray := __NEW(INT,10); // Create array of type INT with size of 10
__DELETE(myArray); //Free the memory
myArray := __NEW(INT,20); // Allocate new memory now with the size of 20
__DELETE(myArray); //Free the memory
END_METHOD
- 小心这一点,因为您需要使用
__DELETE(pointer)
方法! - 请注意,如果您像在答案中一样静态声明数组,则无法更改数组的大小。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。