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: |