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 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();
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: |