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 のローカル変数の前に初期化されます。

詳細については、以下を参照してください。 構造変数の宣言と初期化 とプラグマ global_init_slot