Skip to main content

Zugriff auf Variablen von Arrays, Strukturen und Bausteinen

Zugriff auf Arrayelemente

Syntax:

 <Name der Arrayvariable> [ <Kommaseparierete Liste der Dimensionsindexe> ]

<Name der Arrayvariable>

Name des Arrayvariable

Beispiel: aiCounter

Für weitere Informationen, siehe: Bezeichner vergeben

<Kommaseparierete Liste der Dimensionsindexe>

Ein Index pro Dimension, so dass ein Element des Arrays identifiziert wird

Beispiel: 2

Der Index ist beginnend beim Indexminimum bis zum Indexmaximum gültig. Beispiel: 0..9

Beispiel 194. Beispiele

Eindimensionales Array mit 10 Komponenten

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

// Implementation
iLocalVariable := aiCounter[2]; 

Zweidimensionales Array mit 2 mal 2 Komponenten

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

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


Für weitere Informationen siehe: ARRAY OF

Zugriff auf Strukturkomponenten

Syntax:

<Name der Strukturvariablen> . <Name der Komponente>

<Name der Strukturvariablen>

Beispiel: sPolygon

Für weitere Informationen, siehe: Bezeichner vergeben

<Name der Komponente>

Beispiel: aiStart

Beispiel 195. Beispiel
//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];


Für weitere Informationen siehe: STRUCT

Zugriff auf Variablen in Programmierbausteinen

Syntax:

<POU Name> . <Variablenname>

<POU Name>

Name einer Funktionsbausteininstanz (FUNCTION_BLOCK) oder eines Programms (PROGRAM)

Beispiel: fbController

Für weitere Informationen, siehe: Bezeichner vergeben

<Variablenname>

Variable der POU

Beispiel: xStart

Beispiel 196. Beispiel
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;