Skip to main content

变量初始化

所有声明的标准初始化值为 0。在声明部分,您还可以为每个变量和每种数据类型指定用户定义的初始化值。

用户定义的初始化从赋值运算符开始 := 并由编程语言 ST(结构化文本)的任何有效表达式组成。因此,您可以借助常量、其他变量或函数来定义初始化值。如果使用变量,则还必须对其进行初始化。

5. 默认初始化值

数据类型

初始化

任何数字数据类型

0

每一个指针

0

BOOL

FALSE

ARRAY OF

每个元素的默认初始化值

结构

如果尚未为声明中的各个元素定义显式值,则该数据类型的默认值是初始化值。



13. 例子
VAR
    var1:INT := 12;    //initialization value 12
    x : INT := 13 + 8;    //initalization value defined by an expression of constants
    y : INT := x + fun(4);    //initialization value defined by an expression,
                              //that contains a function call; notice the order!
    z : POINTER TO INT := ADR(y);   //not described in the standard IEC61131-3:
                                    // initialization value defined by an adress function;
                                    // Notice: In this case the pointer will not be initialized
                                    // during an Online Change *)
END_VAR


关于初始化顺序的注意事项

首先是常量

从编译器版本 3.5.3.40 开始,函数块中的变量按以下顺序初始化:首先,所有常量按照其声明顺序进行初始化,然后所有其他变量按照其声明顺序进行初始化。

局部变量之前的全局变量

在编译器版本 3.3.2.0 及更高版本中,全局变量列表中的变量始终在 POU 的局部变量之前初始化。

有关更多信息,请参阅: 结构变量的声明和初始化 和 pragma global_init_slot