Déclaration de variables
Déclaration de variables : où et comment ?
Vous pouvez déclarer des variables aux emplacements suivants :
Déclaration faisant partie d'un POU
Le Déclarer une variable dialog vous y aide.
Listes de variables (éditeur GVL, éditeur NVL)
Configuration du mappage d'E/S d'un objet de périphérique d'E/S
Pour plus d'informations, voir : Configuration des périphériques et du mappage des E/S
Pour plus d'informations, voir : Raccourcis pour la déclaration de variables
Syntaxe
<pragma>
<scope> <type qualifier>
<identifier> AT <address> : <data type> := <initial value> ;
END_VAR
<pragma> | Répété facultatif (jamais, une fois ou plusieurs fois) Pragme Un pragma est une instruction de compilateur (par exemple pour réaliser des optimisations telles que les besoins en mémoire ou les améliorations d'exécution). | |
| Nécessaire Portée
| |
| Facultatif Qualificateur de type
| |
| Nécessaire Identifiant, nom de variable Remarque : Les règles répertoriées dans le chapitre « Désignation de l'identifiant » doivent être respectées sans exception lors de l'attribution d'un identifiant. En outre, vous trouverez des recommandations pour une dénomination uniforme. | |
| Facultatif L'adresse est composée comme suit : <zone de mémoire> <préfixe de taille optionnel> <position de la mémoire> La zone mémoire est subdivisée en zone mémoire d'entrée, zone mémoire de sortie ou zone mémoire drapeau ( Exemple
| |
| Nécessaire Type de données
| |
| Facultatif Valeur initiale ; initialisation en tant que littéral, variable ou expression |
Liste globale de variables GVL
{attribute 'qualified_only'} {attribute 'linkalways'} VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
GVL_CONFIG
{attribute 'qualified_only'} VAR_CONFIG // Generated instance path of variable at incomplete address PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE; END_VAR
Bloc fonctionnel FB_DoIt
METHOD METH_Last : INT VAR_INPUT iVar : INT; END_VAR VAR_INST iLast : INT := 0; END_VAR METH_Last := iLast; iLast := iVar; FUNCTION_BLOCK FB_DoIt VAR_INPUT wInput AT %IW0 : WORD; (* Input variable *) END_VAR VAR_OUTPUT wOutput AT %QW0 : WORD; (* Output variable *) END_VAR VAR_IN_OUT aData_A : ARRAY[0..1] OF DATA_A; // Formal variable END_VAR VAR_EXTERNAL GVL.g_ciMAX_A : INT; // Declared in object GVL END_VAR VAR_STAT iNumberFBCalls : INT; END_VAR VAR iCounter: INT; xLocInput AT %I* : BOOL := TRUE; // VAR_CONFIG END_VAR iNumberFBCalls := iNumberFBCalls + 1;
Programme IEC PLC_PRG
PROGRAM PLC_PRG VAR iLoop: INT; iTest: INT; fbDoItNow : FB_DoIt; iTest_200: INT; aData_Now : ARRAY[0..1] OF DATA_A := [(iA_1 := 1, iA_2 := 10, dwA_3 := 16#00FF),(iA_1 := 2, iA_2 := 20, dwA_3 := 16#FF00)]; END_VAR iTest := GVL.g_ciMAX_A; iTest_200 := 2 * GVL.g_ciMAX_A; fbDoItNow(aData_A := aData_Now); FOR iLoop := 0 TO GVL.g_ciSPECIAL DO ; END_FOR