データ構造: STRUCT
構造体はユーザー定義のデータ型で、任意のデータ型の複数の変数を 1 つの論理ユニットにまとめます。構造体内で宣言された変数はメンバーと呼ばれます
構造体の型宣言は DUT で作成したオブジェクトプロジェクト → [オブジェクトを追加] → ダクト メニューまたはアプリケーションのコンテキストメニューにあります。
詳細については、以下を参照してください。 DUT
構文
TYPE <structure name>
STRUCT
    <member name> : <data type> := <initialization> ;
END_STRUCT
END_TYPE
| 
 | この識別子はプロジェクト全体で有効であるため、標準データ型のように使用できます。 | 
| 
 | メンバーの宣言 宣言はいくつでも構いませんが、少なくとも 2 つは必要です。 構造はネストすることもできます。つまり、構造体メンバーを既存の構造型で宣言することになります。その場合、唯一の制限は、変数 (構造体のメンバー) にアドレスを割り当ててはいけないということです。は  | 
| 
 | [オプション] | 
タイプ宣言
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型宣言の拡張
既存の構造体から追加の構造が宣言されます。拡張構造には、独自のメンバーに加えて、基本構造体と同じ構造体メンバーもあります。
構文
TYPE <structure name> EXTENDS <base structure>
STRUCT
    <member declaration>
END_STRUCT
END_TYPE
タイプ宣言: S_PENTAGON
TYPE S_PENTAGON EXTENDS S_POLYGONLINE :
STRUCT
    aiPoint5 : ARRAY[1..2] OF INT;
END_STRUCT
END_TYPE構造変数の宣言と初期化
PROGRAM progLine
VAR
    sPolygon : S_POLYGONLINE := (aiStart:=[1,1], aiPoint1:=[5,2], aiPoint2:=[7,3], aiPoint3:=[8,5], aiPoint4:=[5,7], aiEnd:=[1,1]);
    sPentagon : S_PENTAGON := (aiStart:=[0,0], aiPoint1:=[1,1], aiPoint2:=[2,2], aiPoint3:=[3,3], aiPoint4:=[4,4], aiPoint5:=[5,5], aiEnd:=[0,0]);
END_VAR変数には初期化を使用しないでください。構造体の配列を初期化する例については、そのデータ型のヘルプページを参照してください ARRAY OF。
構造体メンバーへのアクセス
構造体メンバーには、次の構文でアクセスします。
<variable name> . <member name>
PROGRAM prog_Polygon
VAR
    sPolygon : S_POLYGONLINE := (aiStart:=[1,1], aiPoint1:=[5,2], aiPoint2:=[7,3], aiPoint3:=[8,5], aiPoint4:=[5,7], aiEnd:=[1,1]);
    iPoint : INT;
END_VAR// Assigs 5 to aiPoint iPoint := sPolygon.aiPoint1[1];
結果: iPoint = 5
構造体変数のシンボリックビットアクセス
データ型の変数を使用して構造体を宣言できます BIT 個々のビットを 1 つの論理ユニットにまとめること。そうすれば、(ビットインデックスの代わりに) 名前で個々のビットをシンボリックにアドレス指定できます
シンタックス宣言
TYPE <structure name> :
STRUCT
    <member name> : BIT;
END_STRUCT
END_TYPE
ビットアクセスの構文
<structure name> . <member name>
タイプ宣言
TYPE S_CONTROL :
STRUCT
    bitOperationEnabled : BIT;
    bitSwitchOnActive : BIT;
    bitEnableOperation : BIT;
    bitError : BIT;
    bitVoltageEnabled : BIT;
    bitQuickStop : BIT;
    bitSwitchOnLocked : BIT;
    bitWarning : BIT;
END_STRUCT
END_TYPEビットアクセス
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;詳細については、以下を参照してください。 変数のビットアクセス
ヒント
への参照とポインタ BIT 変数は 無効 宣言、および基本型の配列要素 BIT。