如何在 TwinCAT 中热启动一个方法?

How can warm start a method in TwinCAT?

基于Beckoffsite定义的方法的特点之一是:

All data of a method are temporary and are only valid while the method is executed (stack variables). This means that TwinCAT re-initializes all variables and function blocks, which you have declared in a method, with each call of the method.

有没有办法在plc循环中使用一个方法作为warm start!

这意味着我们使用没有 re_initializing 的方法和方法声明变量 运行 在我们第一次调用它时只使用一次,其余时间被调用的变量保留自己的价值观?

是的,这可以通过 VAR_INSTVAR_STAT 实现。 只需将您的变量声明为 VAR_INST/VAR_STAT,然后它们将在调用之间保留它们的值。

VAR_INST 意味着它对于方法所在的功能块的每个实例都是唯一的,而 VAR_STAT 将充当 static/global (所有实例都将指向相同的内存位置)。

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2528798091.html&id=

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2528787339.html&id=