Opérateur : __VARINFO
L'opérateur est une extension de la norme CEI 61131-3.
L'opérateur donne des informations sur une variable. Vous pouvez enregistrer les informations en tant que structure de données dans une variable de type de données __SYSTEM.VAR_INFO.
Syntaxe dans la déclaration
<name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable
Syntaxe des appels
<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 locallyPROGRAM 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();le iCounter et arrA les variables sont reconnues dans le code de l'application. Les informations variables sont enregistrées dans le infoCounter et infoA variables. De plus, le FB_Velocity bloc fonction est instancié.
Type de données : __SYSTEM.VAR_INFO
Nom  | Type de données  | Initialisation  | La description  | 
|---|---|---|---|
  | 
  | 0  | Adresse de la variable Exemple:  Remarque : Pour l'accès au bit d'une variable   | 
  | 
  | 0  | Décalage de l'adresse de la variable (en octets) Exemple:  Remarque : Si la variable est globale, le décalage est relatif au début de la zone. Si la variable est une variable locale dans une fonction ou une méthode, le décalage est relatif au cadre de pile actuel. Si la variable est une variable locale dans un bloc fonction, le décalage est relatif à l'instance du bloc fonction.  | 
  | 
  | 0  | Numéro de zone mémoire  Exemple:  Signifie que la variable n'est pas globale dans la mémoire, mais relative à une instance ou sur la pile Remarque : Les zones de mémoire dépendent de l'appareil.  | 
  | 
  | 0  | Nombre de bits (en octets) Exemple:  Remarque : Si la variable est ne pas un type de données entier, alors :   | 
  | 
  | 0  | Taille mémoire de la variable (en bits) Exemple:   | 
  | 
  | 0  | Adresse de bit de la variable Condition : la variable se trouve dans la zone de mémoire d'entrée   | 
  | 
  | 
  | Classe de type de données de la variable Exemple:  Remarque : Pour les types de données définis par l'utilisateur ou les instances de bloc fonction,   | 
  | 
  | ‚'  | Nom du type de date de la variable comme  Remarque : Pour les types de données définis par l'utilisateur, le nom du bloc fonction ou le nom du DUT est sorti. Exemple:   | 
  | 
  | 0  | Nombre d'éléments du tableau Exigence : la variable a le type de données  Exemple:   | 
  | 
  | 
  | Type de données de base élémentaire des éléments du tableau Exigence : la variable a le type de données  Exemple:   | 
  | 
  | 0  | Taille mémoire de l'élément du tableau (en bits) Exigence : la variable a le type de données  Exemple:   | 
  | 
  | 
  | Informations sur la zone de mémoire 
 Exemple:  Remarque : La configuration de la zone mémoire dépend de l'appareil.  | 
  | 
  | ‚'  | Nom de la variable comme  Exemple:   | 
  | 
  | ‚'  | Commentaire de la déclaration de variable Exemple:   |