Skip to main content

Operador: __VARINFO

El operador es una extensión del estándar IEC 61131-3.

El operador devuelve información sobre una variable. Puede almacenar la información como una estructura de datos en una variable de tipo de datos __SYSTEM.VAR_INFO ahorrar.

Sintaxis en la declaración

<name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable

Sintaxis cuando se llama

<name of the info variable> := __VARINFO( <variable name> ); // Call of the operator
ejemplo 153. Ejemplo
FUNCTION_BLOCK FB_Velocity
VAR_INPUT
        rVelocity: REAL := 1.2;
END_VAR
VAR_OUTPUT
END_VAR
VAR
        infoVelocity: __SYSTEM.VAR_INFO; //Info of Velocity
END_VAR

infoVelocity := __VARINFO(rVelocity); // Gets the info of Velocity locally
PROGRAM PLC_PRG
VAR
        iCounter : INT := 0; // Counts the calls
        infoCounter : __SYSTEM.VAR_INFO; //Info of Counter
        arrA : ARRAY [1..2, 1..2, 1..2] OF INT := [0, 1, 2, 3, 4, 5, 6, 7]; // Stores the A data
        infoA : __SYSTEM.VAR_INFO; //Info of A
        fbVel : FB_Velocity;
END_VAR

iCounter := iCounter + 1;
infoCounter := __VARINFO(iCounter);
infoA := __VARINFO(arrA);
fbVel();

Las variables están en el código de la aplicación. iCounter y arrA conocido. La información de la variable está en las variables. infoCounter y infoA archivado. Además, el módulo de funciones FB_Velocity instanciado



Tipo de datos __SYSTEM.VAR_INFO

Apellido

tipo de datos

inicialización

descripción

ByteAddress

DWORD

0

dirección de la variable

Ejemplo: 16#072E35EC

Nota: Al acceder a una variable por bit <variable name>.<bit index> se especifica la dirección de la variable que contiene el bit.

ByteOffset

DWORD

0

Desplazamiento de la dirección de la variable en bytes

Ejemplo: 13936 bytes

Nota: si la variable es global, entonces el desplazamiento es relativo al comienzo del área. Si la variable es una variable local en una función o método, el desplazamiento es relativo al marco de pila actual. Si la variable es una variable local en un bloque de funciones, el desplazamiento es relativo a la instancia del bloque de funciones.

Area

DINT

0

número de área de almacenamiento Area en el sistema de tiempo de ejecución

Ejemplo: -1

Significa que la variable no es global en la memoria, sino relativa a una instancia o en la pila

Nota: Las áreas de memoria dependen del dispositivo.

BitNr

INT

0

Número de bits en bytes

Ejemplo: 16#00FF bytes

Nota: Si la variable No es un tipo de datos entero, se aplica lo siguiente: BitNr = -1 = 16#FFFF

BitSize

INT

0

Tamaño de memoria de la variable en bits

Ejemplo: 16 pedacitos

BitAddress

UDINT

0

Dirección de bit de la variable

Requisito: la variable está en el área de memoria de entrada I, área de almacenamiento inicial Q o área de memoria de marcador M. De lo contrario, el valor no está definido.

TypeClass

TYPE_CLASS

TYPE_BOOL

Clase de tipo de datos de la variable

Ejemplo: TYPE_INT, TYPE_ARRAY

Nota: Con tipos de datos definidos por el usuario o instancias de bloques de funciones, la clase de tipo de datos TYPE_USERDEF emitido.

TypeName

STRING(79)

''

Nombre del tipo de datos de la variable como STRING(79)

Nota: El nombre del bloque de funciones o el nombre del DUT se especifica para los tipos de datos definidos por el usuario.

Ejemplo: 'INT', 'ARRAY'

NumElements

UDINT

0

Número de elementos de la matriz

Requisito: La variable tiene el tipo de dato ARRAY.

Ejemplo: 8

BaseTypeClass

TYPE_CLASS

TYPE_BOOL

Tipo de datos base elemental de los elementos de la matriz

Requisito: La variable tiene el tipo de dato ARRAY.

Ejemplo: TYPE_INT en arrA : ARRAY [1..2,1..2,1..2] OF INT;

ElemBitSize

UDINT

0

Tamaño de almacenamiento del elemento de matriz en bits

Requisito: La variable tiene el tipo de dato ARRAY.

Ejemplo: 16 bits en arrA : ARRAY [1..2,1..2,1..2] OF INT;

MemoryArea

MEMORY_AREA

MEM_MEMORY

Información sobre el área de almacenamiento.

  • MEM_GLOBAL: Área de almacenamiento global

    Ejemplo: en Area 0

  • MEM_LOCAL: Área de almacenamiento local

    en Area -1

  • MEM_MEMORY: marcar área de memoria %M

    Ejemplo: en 16#10 en Area 1

  • MEM_INPUT: área de almacenamiento de entrada %I

    Ejemplo: en 16#04 en Area 2

  • MEM_OUTPUT: Área de almacenamiento inicial %Q

    Ejemplo: en 16#08 en Area 3

  • MEM_RETAIN: retener área de memoria

    Ejemplo: en 16#20 en Area 0

Ejemplo: MEM_GLOBAL

Nota: La configuración del área de almacenamiento depende del dispositivo.

Symbol

STRING(39)

''

nombre de variable como STRING(39)

Ejemplo: 'iCounter', 'arrA'

Comment

STRING(79)

''

Comentario de la declaración de la variable

Ejemplo: 'Counts the calls' o 'Stores the A data'