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
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 |
---|---|---|---|
|
| 0 | dirección de la variable Ejemplo: Nota: Al acceder a una variable por bit |
|
| 0 | Desplazamiento de la dirección de la variable en bytes Ejemplo: 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. |
|
| 0 | número de área de almacenamiento Ejemplo: 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. |
|
| 0 | Número de bits en bytes Ejemplo: Nota: Si la variable No es un tipo de datos entero, se aplica lo siguiente: |
|
| 0 | Tamaño de memoria de la variable en bits Ejemplo: |
|
| 0 | Dirección de bit de la variable Requisito: la variable está en el área de memoria de entrada |
|
|
| Clase de tipo de datos de la variable Ejemplo: Nota: Con tipos de datos definidos por el usuario o instancias de bloques de funciones, la clase de tipo de datos |
|
| '' | Nombre del tipo de datos de la variable como Nota: El nombre del bloque de funciones o el nombre del DUT se especifica para los tipos de datos definidos por el usuario. Ejemplo: |
|
| 0 | Número de elementos de la matriz Requisito: La variable tiene el tipo de dato Ejemplo: |
|
|
| Tipo de datos base elemental de los elementos de la matriz Requisito: La variable tiene el tipo de dato Ejemplo: |
|
| 0 | Tamaño de almacenamiento del elemento de matriz en bits Requisito: La variable tiene el tipo de dato Ejemplo: |
|
|
| Información sobre el área de almacenamiento.
Ejemplo: Nota: La configuración del área de almacenamiento depende del dispositivo. |
|
| '' | nombre de variable como Ejemplo: |
|
| '' | Comentario de la declaración de la variable Ejemplo: |