変数宣言
変数宣言:どこでどのように?
変数は以下の場所で宣言できます。
POU のデクラレーション部分
ザル 変数を宣言する これにはダイアログが役立ちます。
変数リスト (GVL エディター、NVL エディター)
I/O デバイスオブジェクトの I/O マッピング設定
詳細については、以下を参照してください。 デバイスとI / Oマッピングの構成
詳細については、以下を参照してください。 変数宣言のショートカット
構文
<pragma>
<scope> <type qualifier>
<identifier> AT <address> : <data type> := <initial value> ;
END_VAR
| 繰り返し(任意)(なし、1回、または複数回) プラグマ プラグマはコンパイラステートメントです(たとえば、メモリ要件やランタイムの改善などの最適化を行うための)。 | |
| 必須 スコープ
| |
| [オプション] タイプ修飾子
| |
| 必須 識別子、変数名 注:識別子を割り当てるときは、「識別子の指定」の章に記載されている規則に例外なく従う必要があります。さらに、統一命名に関する推奨事項も記載されています | |
| [オプション] アドレスは次のように構成されています。 <メモリ領域> <任意サイズの接頭辞> <メモリ位置> メモリ領域は、入力メモリ領域、出力メモリ領域、またはフラグメモリ領域に細分されます ( 例
| |
| 必須 データタイプ
| |
| [オプション] 初期値、リテラル、変数、または式としての初期化 |
グローバル変数リスト GVL
{attribute 'qualified_only'} {attribute 'linkalways'} VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
設定変数 GVL_CONFIG
{attribute 'qualified_only'} VAR_CONFIG // Generated instance path of variable at incomplete address PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE; END_VAR
ファンクションブロック FB_DoIt
METHOD METH_Last : INT VAR_INPUT iVar : INT; END_VAR VAR_INST iLast : INT := 0; END_VAR METH_Last := iLast; iLast := iVar; FUNCTION_BLOCK FB_DoIt VAR_INPUT wInput AT %IW0 : WORD; (* Input variable *) END_VAR VAR_OUTPUT wOutput AT %QW0 : WORD; (* Output variable *) END_VAR VAR_IN_OUT aData_A : ARRAY[0..1] OF DATA_A; // Formal variable END_VAR VAR_EXTERNAL GVL.g_ciMAX_A : INT; // Declared in object GVL END_VAR VAR_STAT iNumberFBCalls : INT; END_VAR VAR iCounter: INT; xLocInput AT %I* : BOOL := TRUE; // VAR_CONFIG END_VAR iNumberFBCalls := iNumberFBCalls + 1;
IEC プログラム PLC_PRG
PROGRAM PLC_PRG VAR iLoop: INT; iTest: INT; fbDoItNow : FB_DoIt; iTest_200: INT; aData_Now : ARRAY[0..1] OF DATA_A := [(iA_1 := 1, iA_2 := 10, dwA_3 := 16#00FF),(iA_1 := 2, iA_2 := 20, dwA_3 := 16#FF00)]; END_VAR iTest := GVL.g_ciMAX_A; iTest_200 := 2 * GVL.g_ciMAX_A; fbDoItNow(aData_A := aData_Now); FOR iLoop := 0 TO GVL.g_ciSPECIAL DO ; END_FOR