La version V1.1 d' EcoStruxure Machine Expert ne prend pas en charge les contrôleurs M258, LMC058 et LMC078.

Types de variable

Présentation

Ce chapitre fournit des informations supplémentaires concernant les types de variable suivants :

oVAR variables locales

oVAR_INPUT variables d'entrée

oVAR_OUTPUT variables de sortie

oVAR_IN_OUT variables d'entrée et de sortie

oVAR_GLOBAL variables globales

oVAR_TEMP variables temporaires

oVAR_STAT variables statiques

oVAR_EXTERNAL variables externes

oVAR_INST variables d'instance

Variables locales - VAR

Toutes les variables locales d'un POU sont déclarées entre les mots clés VAR et END_VAR. Aucune connexion externe n'existe, c'est-à-dire qu'elles ne peuvent pas être écrites depuis l'extérieur.

Il est possible d'ajouter un attribut à une variable VAR.

Exemple

VAR
 iLoc1:INT; (* 1. Local Variable*)
END_VAR

Variables d'entrée - VAR_INPUT

Toutes les variables d'entrée d'un POU sont déclarées entre les mots clés VAR_INPUT et END_VAR. La valeur des variables peut donc être fournie avec un appel, à la position d'appel.

Il est possible d'ajouter un attribut.

Exemple

VAR_INPUT
 iIn1:INT (* 1. Inputvariable*)
END_VAR

Variables de sortie - VAR_OUTPUT

Toutes les variables de sortie d'un POU sont déclarées entre les mots clés VAR_OUTPUT et END_VAR. Ces valeurs sont donc transmises au POU à l'origine de l'appel.

Il est possible d'ajouter un attribut à une variable VAR_OUTPUT.

Exemple

VAR_OUTPUT
 iOut1:INT; (* 1. Outputvariable*)
END_VAR

Variables de sortie dans les fonctions et méthodes :

Conformément à la norme IEC 61131-3 version 2, les fonctions (et les méthodes) peuvent disposer de sorties supplémentaires. Vous pouvez attribuer ces dernières dans l'appel de la fonction, comme illustré ci-dessous.

Exemple

fun(iIn1 := 1, iIn2 := 2, iOut1 => iLoc1, iOut2 => iLoc2);

Variables d'entrée et de sortie - VAR_IN_OUT

Toutes les variables d'entrée et de sortie d'un POU sont déclarées entre les mots clés VAR_IN_OUT et END_VAR.

NOTE : la valeur des variables IN_OUT transmises varie (variable transmise comme pointeur, appel par référence). Cela signifie que la valeur d'entrée de ces variables n'est pas constante. C'est pourquoi il est impossible de lire ou d'écrire directement des variables VAR_IN_OUT d'un bloc fonction depuis l'extérieur via <FBinstance>.<InOutVariable>.

NOTE : n'attribuez pas de symboles de type bit (tels que %MXaa.b ou des variables BOOL associées à une adresse de type bit) à des paramètres BOOL VAR_IN_OUT de blocs fonction. Sinon, ces attributions seront signalées comme une erreur Compiler dans la vue Messages.

Exemple

VAR_IN_OUT
 iInOut1:INT; (* 1. Inputoutputvariable *)
END_VAR

Variables globales - VAR_GLOBAL

Vous pouvez déclarer des variables normales, des constantes et des variables externes ou rémanentes qui seront appelées variables globales dans tout le projet. Les variables globales sont à déclarer dans les listes de variables globales (GVL). Pour ajouter une GVL, exécutez la commande Ajouter un objet (disponible par défaut dans le menu Projet).

Déclarez les variables localement entre les mots clés VAR_GLOBAL et END_VAR.

Il est possible d'ajouter un attribut à une variable VAR_GLOBAL.

Les variables globales sont précédées d'un point (par exemple, .iGlobVar1).

Pour obtenir des informations détaillées sur l'usage multiple des noms de variables, l'opérateur de domaine de validité global dot (.) et les espaces de noms, reportez-vous au chapitre Opérateur de domaine de validité global.

Les variables globales ne peuvent être déclarées qu'au sein de GVL, qui servent à gérer les variables globales d'un projet. Pour ajouter une GVL, exécutez la commande Ajouter un objet (disponible par défaut dans le menu Projet).

NOTE : Lorsqu'une variable définie localement dans un POU porte le même nom qu'une variable globale, la priorité revient à la variable locale.

NOTE : Les variables globales sont initialisées avant les variables locales des POU.

Variables temporaires - VAR_TEMP

Cette fonction correspond à une extension de la norme IEC 61131-3.

Les variables temporaires sont (ré)initialisées à chaque appel du POU. Une variable VAR_TEMP ne peut être déclarée que dans un programme ou un bloc fonction. En outre, ce type de variable n'est accessible que depuis le corps du POU du programme ou du bloc fonction.

Déclarez les variables localement entre les mots clés VAR_TEMP et END_VAR.

NOTE : vous pouvez utiliser une variable VAR_TEMP à la place d'une variable VAR afin de limiter l'espace mémoire occupé par un POU (au sein d'un bloc fonction si la variable ne sert que temporairement, par exemple).

Variables statiques - VAR_STAT

Cette fonction correspond à une extension de la norme IEC 61131-3.

Les variables statiques peuvent être utilisées dans des blocs fonction, des méthodes et des fonctions. Déclarez-les localement entre les mots clés VAR_STAT et END_VAR. Ces variables sont initialisées au premier appel du POU correspondant.

À l'instar des variables globales, les variables statiques conservent leur valeur en cas de fermeture de la fenêtre du POU dans lequel elles sont déclarées. Elles sont partagées entre les POU dans lesquels elles sont déclarées (par exemple, plusieurs instances de blocs fonction, fonctions ou méthodes partagent la même variable statique). Vous pouvez les utiliser par exemple comme compteur dans une fonction afin de comptabiliser le nombre d'appels de fonction.

Il est possible d'ajouter un attribut à une variable VAR_STAT.

Variables externes - VAR_EXTERNAL

Il s'agit des variables globales importées dans le POU.

Déclarez-les localement entre les mots clés VAR_EXTERNAL et END_VAR, ainsi que dans la liste de variables globales (GVL). Les déclarations au niveau local et global doivent être identiques. Si la variable globale n'existe pas, un message s'affichera.

NOTE : Définir des variables externes n'est pas une obligation. Ces mots clés permettent d'assurer la compatibilité avec la norme IEC 61131-3.

Exemple

VAR_EXTERNAL
 iVarExt1:INT; (* 1st external variable *)
END_VAR

Variables d'instance - VAR_INST

Lorsqu'une variable de méthode est déclarée comme variable d'instance à l'aide de l'attribut VAR_INST, elle est enregistrée sur la pile de l'instance de bloc fonction, et non sur celle de la méthode. Elle se comporte alors comme les autres variables de l'instance de bloc fonction et n'est pas réinitialisée lors de l'appel de la méthode.

Les variables VAR_INST sont admises uniquement dans les méthodes. Vous ne pouvez y accéder que depuis la méthode. Les attributs tels que CONST et RETAIN sont interdits dans la déclaration. Il est possible de surveiller les valeurs des variables dans la partie déclaration de la méthode.

Exemple

METHOD meth_last : INT
VAR_INPUT
  iVar : INT;
END_VAR
VAR_INST
  iLast : INT := 0;
END_VAR
meth_last := iLast;
iLast := iVar;