【问题标题】:Twincat 2: Initial values are not zeroTwincat 2:初始值不为零
【发布时间】:2020-11-20 12:12:27
【问题描述】:

在我的 TwinCat 2 项目中,当我初始化变量时,它们的默认值不为零。

TPS750 : BOOL;
TPS750_OEE : REAL;
TP750_Perf : REAL;
TP750_Aval : REAL;
TP750_Qual : REAL;

当我启动项目时,值是:

TPS750 = FALSE;
TPS750_OEE = 0;
TP750_Perf = 524288;
TP750_Aval = 3380.893;
TP750_Qual = 656709.1;

你可以看到,前两个没问题,但接下来的对我来说有一个奇怪的价值。这个问题的原因可能是什么?

【问题讨论】:

    标签: initialization plc twincat structured-text


    【解决方案1】:

    这些要么是在项目中的某个地方初始化而您看不到它,要么它们是持久值。

    持久值在内部声明

    VAR PERSISTENT
    
    END_VAR
    

    定义。

    【讨论】:

      【解决方案2】:

      请显式初始化变量。 如果您不这样做,则取决于编译器是否执行此操作以及如何执行此操作。请注意,许多编译器不会将未初始化的变量清零,以便这些变量根据您运行代码时内存中发生的情况来获取值。

      【讨论】:

      • 不是在 Twincat 3 中,我非常有信心在 Twincat 2 中是一样的...所有未显式初始化的都是 0 / 0.0 或 FALSE
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      相关资源
      最近更新 更多