Skip to main content

配列、構造体、ブロック内の変数へのアクセス

配列要素へのアクセス

構文:

<配列変数の名前> [<ディメンションインデックスのカンマ区切りリスト>

<配列変数の名前>

配列変数の名前

例: aiCounter

詳細については、以下を参照してください。 識別子を割り当てる

<ディメンションインデックスのカンマ区切りリスト>

次元ごとに 1 つのインデックスがあるため、配列の 1 つの要素が識別されます

例: 2

インデックスは、インデックスの最小値からインデックスの最大値まで有効です。例: 0..9

194.

10 個のコンポーネントを含む 1 次元配列

//Declaration
VAR
    aiCounter : ARRAY[0..9] OF INT;
    iLocalVariable : INT;
END_VAR

// Implementation
iLocalVariable := aiCounter[2]; 

2 x 2 成分の 2 次元配列

//Declaration
VAR
    aiCardGame : ARRAY[1..2, 3..4] OF INT;
    iLocal_1 : INT;
END_VAR

//Implementation
iLocal_1 := aiCardGame[1, 3];


詳細については、以下を参照してください。 ARRAY OF

構造コンポーネントへのアクセス

構文:

<構造体変数の名前><コンポーネントの名前>

<構造体変数の名前>

例: sPolygon

詳細については、以下を参照してください。 識別子を割り当てる

<コンポーネントの名前>

例: aiStart

195.
//Declaration type
TYPE S_POLYGONLINE :
STRUCT
    aiStart : ARRAY[1..2] OF INT := [-99, -99];
    aiPoint1 : ARRAY[1..2] OF INT;
    aiPoint2 : ARRAY[1..2] OF INT;
    aiPoint3 : ARRAY[1..2] OF INT;
    aiPoint4 : ARRAY[1..2] OF INT;
    aiEnd : ARRAY[1..2] OF INT := [99, 99];
END_STRUCT
END_TYPE

//Declaration structure variable
VAR
    sPolygon : S_POLYGONLINE;
    iPoint : INT;
END_VAR

//Implementation
iPoint := sPolygon.aiPoint1[1];


詳細については、以下を参照してください。 STRUCT

POU 内の変数へのアクセス

構文:

<POU 名><変数名>

<POU 名>

ファンクション ブロック インスタンスの名前 (FUNCTION_BLOCK) またはプログラム (PROGRAM)

例: fbController

詳細については、以下を参照してください。 識別子を割り当てる

<変数名>

POUの変数

例: xStart

196.
FUNCTION_BLOCK FB_Controller
VAR_INPUT
    xStart : BOOL;
END_VAR
VAR_OUTPUT
END_VAR
VAR
    ControlDriveA : S_CONTROL;
END_VAR
IF xStart = TRUE THEN
    //Symbolic bit access
    ControlDriveA.bitEnableOperation := TRUE;
END_IF

PROGRAM PLC_PRG
    fbController : FB_Controller;
END_VAR
fbController();
fbController.xStart := TRUE;