オペランド
定数とリテラル
定数は、変更できない値の識別子です。定数は、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の宣言部分またはグローバル変数リストのいずれかでローカルとして宣言できます。変数の許可される場所は、そのデータ型によって異なります。
詳細については、以下を参照してください。 配列、構造体、ブロック内の変数へのアクセス と 変数のビットアクセス