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_VARGVL_CONFIG
{attribute 'qualified_only'}
VAR_CONFIG
// Generated instance path of variable at incomplete address
PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE;
END_VARBloc 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