Les identificateurs sont définis :
lors de la déclaration de variables (nom de variable),
lors de la déclaration de types de données définis par l'utilisateur,
lors de la création de POU (fonctions, blocs fonction, programmes).
Outre les informations générales à prendre en compte lors de la définition d'un identificateur (consultez le chapitre Informations générales sur la déclaration des variables), respectez les recommandations suivantes afin de garantir autant que possible l'unicité des noms :
Dans la mesure du possible, respectez la notation hongroise lors de la dénomination de variables au sein d'applications et de bibliothèques.
Attribuez un nom significatif court à chaque variable. Il s'agira du nom standard. Chaque mot constituant ce nom doit commencer par une majuscule, Utilisez des lettres minuscules pour le reste (exemple : FileSize
).
Type de données |
Limite inférieure |
Limite supérieure |
Quantité d'informations |
Préfixe |
Commentaire |
---|---|---|---|---|---|
BOOL |
FALSE |
TRUE |
1 bit |
|
– |
|
réservé |
||||
BYTE |
– |
– |
8 bits |
|
chaîne de bits, ne convient pas aux opérations arithmétiques |
WORD |
– |
– |
16 bits |
|
chaîne de bits, ne convient pas aux opérations arithmétiques |
DWORD |
– |
– |
32 bits |
|
chaîne de bits, ne convient pas aux opérations arithmétiques |
LWORD |
– |
– |
64 bits |
|
chaîne de bits, ne convient pas aux opérations arithmétiques |
SINT |
-128 |
127 |
8 bits |
|
Type de données entier arithmétique, 8 bits |
USINT |
0 |
255 |
8 bits |
|
Type de données entier arithmétique, 8 bits |
INT |
-32 768 |
32 767 |
16 bits |
|
Type de données entier arithmétique, 16 bits |
UINT |
0 |
65 535 |
16 bits |
|
Type de données entier arithmétique, 16 bits |
DINT |
-2 147 483 648 |
2 147 483 647 |
32 bits |
|
Type de données entier arithmétique, 32 bits |
UDINT |
0 |
4 294 967 295 |
32 bits |
|
Type de données entier arithmétique, 32 bits |
LINT |
–263 |
263-1 |
64 bits |
|
Type de données entier arithmétique, 64 bits |
ULINT |
0 |
264-1 |
64 bits |
|
Type de données entier arithmétique, 64 bits |
REAL |
– |
– |
32 bits |
|
Type de données virgule flottante arithmétique, 32 bits |
LREAL |
– |
– |
64 bits |
|
Type de données virgule flottante arithmétique, 64 bits |
STRING |
– |
– |
– |
|
Chaîne de caractères codés sur un octet de longueur variable (par défaut : 80 caractères) |
WSTRING |
– |
– |
– |
|
Chaîne de caractères codés sur deux octets de longueur variable (par défaut : 80 caractères) |
TIME |
– |
– |
– |
|
Durée, 32 bits |
LTIME |
– |
– |
– |
|
Durée, 64 bits |
|
– |
– |
– |
|
Heure du jour (32 bits) |
|
– |
– |
– |
|
Heure du jour (64 bits) |
|
– |
– |
– |
|
Date et heure |
|
– |
– |
– |
|
– |
DATE |
– |
– |
– |
|
Date calendaire |
LDATE |
– |
– |
– |
|
Date calendaire |
Enumeration |
– |
– |
– |
|
– |
POINTER |
– |
– |
– |
|
– |
ARRAY |
– |
– |
– |
|
– |
Structure |
– |
– |
– |
|
– |
Function block |
– |
– |
– |
|
– |
Interface |
– |
– |
– |
|
– |
Union |
– |
– |
– |
|
– |
* Le préfixe « x » est volontairement attribué aux variables booléennes de manière à les différencier des variables de type BYTE, mais aussi pour plus de lisibilité par un programmeur IEC (consultez la section relative à l'adressage des variables |
Déclaration simple
Exemples de déclarations simples :
bySubIndex: BYTE;
sFileName: STRING;
udiCounter: UDINT;
Déclaration imbriquée
Exemple de déclaration imbriquée, où les préfixes sont juxtaposés les uns après les autres suivant l'ordre des déclarations :
pabyTelegramData: POINTER TO ARRAY [0..7] OF BYTE;
Instances de bloc fonction et variables de types de données définis par l'utilisateur
Un préfixe servant de raccourci pour le nom du bloc fonction ou du type de données est utilisé pour les instances de bloc fonction et les variables de type de donnée défini par l'utilisateur (par exemple : stSDO
).
Exemple
stSDOReceivedTelegram: ST_SDOTelegram;
TYPE ST_SDOTelegram :
STRUCT
wIndex:WORD;
bySubIndex:BYTE;
byLen:BYTE;
aby: ARRAY [0..3] OF BYTE;
END_STRUCT
END_TYPE
Constantes locales
Les constantes locales (c) commencent par le préfixe c
, suivi d'un trait de soulignement, du préfixe de type et du nom de la variable.
Exemple
VAR CONSTANT
c_uiSyncID: UINT := 16#80;
END_VAR
Variables et constantes globales
Les variables globales présentent le préfixe G_
(g_
) et les constantes globales présentent le préfixe Gc_
(gc_
).
Exemple
VAR_GLOBAL
G_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
Gc_dwExample: DWORD;
END_VAR
Structure
Reportez-vous à la description ci-dessus concernant les noms de variables. Pour accéder à une variable dans le code d'application, vous devez utiliser l'espace de noms de la bibliothèque en tant que préfixe.
Exemple
G_iTest: INT; (declaration)
CAN.G_iTest (implementation, call in an application program
Structure
Le nom de chaque type de données de structure se compose du préfixe de type correspondant (voir également Préfixe de POU) et d'un nom court et évocateur (par exemple, ET_Day
) de la structure.
Exemple (dans la bibliothèque associée à l'espace de noms CAL
) :
TYPE ET_Day :(
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY);
Déclaration :
etToday: CAL.ET_Day;
À utiliser dans l'application :
IF etToday = CAL.ET_Day.MONDAY THEN
Les noms des fonctions, blocs fonction et programmes se composent du préfixe de type correspondant (voir également Préfixe de POU) et d'un nom court et évocateur du POU (par exemple, FB_SendTelegram
). Tout comme pour les variables, chaque mot constituant le nom du POU doit commencer par une majuscule, les autres lettres étant indiquées en minuscules. Par exemple, composez le nom du POU avec un verbe et un substantif pour indiquer clairement le rôle du bloc fonction.
Exemple
FUNCTION_BLOCK FB_SendTelegram
Dans la partie déclaration, décrivez-vous brièvement le POU sous forme de commentaire. Les entrées et sorties doivent également être indiquées en commentaires. Pour les blocs fonction, ajoutez le préfixe des instances de configuration juste après le nom.
Actions
Les actions ne portent pas de préfixe. Seules les actions devant exclusivement être appelées en interne, c'est-à-dire par le POU lui-même, commencent par prv_
.
Structure
Les règles de dénomination des actions s'appliquent également aux méthodes. Indiquez en commentaires les entrées possibles d'une méthode. Ajoutez une brève description de la méthode dans la déclaration. Commencez les noms d'interface avec un préfixe IF_
(I
) ; par exemple, IF_CANDevice
.