Skip to main content

Acceso a variables en matrices, estructuras y bloques

Acceso a elementos de la matriz

Sintaxis:

<nombre de la variable de matriz> [<lista de índices de dimensiones separados por comas>]

<nombre de la variable de matriz>

Nombre de la variable de matriz

Ejemplo: aiCounter

Para más información, ver: Asignar identificador

<lista de índices de dimensiones separados por comas>

Un índice por dimensión, para que se identifique un elemento de la matriz.

Ejemplo: 2

El índice es válido desde el mínimo del índice hasta el máximo del índice. Ejemplo: 0..9

ejemplo 194. Ejemplos

Matriz unidimensional con 10 componentes.

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

// Implementation
iLocalVariable := aiCounter[2]; 

Matriz bidimensional con 2 veces 2 componentes

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

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


Para más información, ver: ARRAY OF

Acceso a los componentes de la estructura

Sintaxis:

<nombre de la variable de estructura> . <nombre del componente>

<nombre de la variable de estructura>

Ejemplo: sPolygon

Para más información, ver: Asignar identificador

<nombre del componente>

Ejemplo: aiStart

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


Para más información, ver: STRUCT

Acceso a variables en POU

Sintaxis:

<nombre de la POU> . <nombre de la variable>

<nombre de la POU>

Nombre de una instancia de bloque de funciones (FUNCTION_BLOCK) o un programa (PROGRAM)

Ejemplo: fbController

Para más información, ver: Asignar identificador

<nombre de la variable>

Variable de la POU

Ejemplo: xStart

ejemplo 196. Ejemplo
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;