改变PLC中Array的大小



是否可以使用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)方法!
  • 请注意,如果你像在你的答案中那样静态地声明它们,你就不能改变数组的大小。

相关内容

  • 没有找到相关文章

最新更新