是否可以使用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
然后我想用ads改变常量的值,这是有效的,但它永远不会改变plc中数组的大小。
有人能帮我吗?
这是我第一次使用plc,我在结构化文本中编写代码…
您可以使用__NEW(type, size)
方法分配特定类型和大小的arrays
,然后使用__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)
方法! - 请注意,如果你像在你的答案中那样静态地声明它们,你就不能改变数组的大小。