ルール
識別子はローカルで2回宣言してはなりません。
識別子は、グローバルに複数回使用できます。
ローカル変数がグローバル変数と同じ名前である場合、ローカル変数はPOU内で優先されます。
識別子をキーワードと同一にすることはできません。
例:スコープ
VAR_Global
グローバル変数リストで宣言された変数は、別のGVLで定義された変数と同じ名前を持つことができます。
CODESYS 変数の名前空間またはスコープの標準を拡張する機能を提供します。
グローバル名前空間演算子
ドットで始まるインスタンスパスは、常にグローバル名前空間を開きます。ローカル変数がある場合(たとえば、
ivar
)グローバル変数と同じ名前の場合、グローバル変数を次のように参照します。.ivar
。グローバル変数リストの名前は、インクルード変数の名前空間を一意に定義できます。したがって、異なるグローバル変数リストで同じ名前の変数を宣言し、リスト名を前に付けることで一意に参照できます。
例:
globlist1.ivar := globlist2.ivar; (* ivar from GVL globlist2 is copied to ivar in GVL globlist1 *)
プロジェクトに含まれるライブラリのグローバル変数リストで定義されている変数は、次の構文に従って一意にアドレス指定できます。
<name scope library>.< GVL name>.<variable name>
例:
globlist1.ivar := lib1.globlist1.ivar (* ivar from GVL globlist1 in library lib1 is copied to ivar in GVL globlist1 *)
ライブラリを挿入するときは、ライブラリマネージャを使用して名前空間も定義します。このようにして、ライブラリPOUまたはライブラリ変数への一意の参照を作成できます。
<namespace library >.<POU name\|variable name>
。ライブラリがネストされている場合は、連続しているすべてのライブラリの名前空間を参照する必要があることに注意してください。例:
Lib1
によって参照されますLib0
、次にPOUfunc
のLib1
によって対処されますLib0.Lib1.fun
:ivar := Lib0.Lib1.fun(4, 5); (* return value from func is copied to variable ivar in the project *)
バックティック識別子
バッククォートを使用すると、特殊文字など、通常は識別子で許可されない文字を識別子で使用することもできます。アキュートアクセント文字はバッククォートに使用されます。 ´ (ユニコード:U+02CA)
同じ識別子を使用できるようにするために、バッククォートの使用をお勧めします。 CODESYS 他のプログラミング言語や回路図などのドキュメントと同様です。
2 つのバッククォートの間には、改行やその他のバッククォートを除く任意の文字を使用できます。キーワードは、バッククォート間の識別子としても使用できます。
例:
´Variable+9´
´INT´
バッククォートは各識別子の一部であるため、 var1
そして ´var1´
は 2 つの異なる識別子です。
PROGRAM PLC_PRG VAR var1 : INT; ´var1´: INT; END_VAR var1 := var1 + 1; ´var1´ := 12;