オペランド
定数とリテラル
定数は、変更できない値の識別子です。定数は、POU内でローカルに宣言することも、グローバル変数リスト内でグローバルに宣言することもできます。宣言セグメントはキーワードで拡張されます CONSTANT
。
定数は、整数や浮動小数点数などの基本型の値を表す文字列でもあります(たとえば、 16#FFFF_FFFF
、 T#5s
、 また -1.234 E-5
)。それらを区別するために、これらの定数は、リテラル、リテラル定数、または名前のない定数とも呼ばれます。論理的(TRUE
、 FALSE
)または数値リテラル(3.1415
、 T#5s
)だけでなく、文字列リテラル('Hello world!'
、 "black"
)。
構文宣言
<scope> CONSTANT <identifier> : <data type> := <initial value> ; END_VAR <scope> : VAR | VAR_INPUT | VAR_STAT | VAR_GLOBAL <data type>: <elementary data type | user defined data type | function block > <initial value> : literal value | identifier | expression
リテラル
例:
TRUE
、FALSE
、16#FFFF_FFFF
別の場所で宣言された名前付き定数
リテラルで構成され、+-*などの単純な演算子と組み合わされた単純な式
入力や関数呼び出しを初期値として指定することはできません。
VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
定数は宣言に対してのみ定義されます。初期値の割り当てが必要です。実装内では、定数は読み取られるだけなので、ステートメントの代入演算子の右側に常に表示されます。
定数は、コードのコンパイル時に初期値に置き換えられます。また、コンパイル時に初期値を計算できる必要があります。
構造化型またはユーザー定義型の定数は、実行時まで計算されません。プログラムまたはGVLの構造化定数は、プログラムの開始時に1回計算されます。関数またはメソッドの構造化定数は、関数またはメソッドが呼び出されるたびに計算されます。したがって、構造化定数の初期化は、入力または実行関数呼び出しに依存する可能性があります。
変数
変数は、POUの宣言部分またはグローバル変数リストのいずれかでローカルとして宣言できます。変数の許可される場所は、そのデータ型によって異なります。
詳細については、以下を参照してください。 配列、構造体、ブロック内の変数へのアクセス と 変数のビットアクセス