Recommandations pour la dénomination des identificateurs

Présentation générale

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 :

NOTE : Les conventions de dénomination et les exemples fournis dans les paragraphes suivants reposent sur les bonnes pratiques appliquées lors du développement des bibliothèques Schneider Electric et correspondent aux requêtes de conventions par défaut utilisées dans EcoStruxure Machine Expert Code Analysis. Les conventions de dénomination d'autres organismes sont fournies entre parenthèses dans les sections suivantes.

Noms de variables

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

x*

b

réservé

BYTE

8 bits

by

chaîne de bits, ne convient pas aux opérations arithmétiques

WORD

16 bits

w

chaîne de bits, ne convient pas aux opérations arithmétiques

DWORD

32 bits

dw

chaîne de bits, ne convient pas aux opérations arithmétiques

LWORD

64 bits

lw

chaîne de bits, ne convient pas aux opérations arithmétiques

SINT

-128

127

8 bits

si

Type de données entier arithmétique, 8 bits

USINT

0

255

8 bits

usi

Type de données entier arithmétique, 8 bits

INT

-32 768

32 767

16 bits

i

Type de données entier arithmétique, 16 bits

UINT

0

65 535

16 bits

ui

Type de données entier arithmétique, 16 bits

DINT

-2 147 483 648

2 147 483 647

32 bits

di

Type de données entier arithmétique, 32 bits

UDINT

0

4 294 967 295

32 bits

udi

Type de données entier arithmétique, 32 bits

LINT

–263

263-1

64 bits

li

Type de données entier arithmétique, 64 bits

ULINT

0

264-1

64 bits

uli

Type de données entier arithmétique, 64 bits

REAL

32 bits

r

Type de données virgule flottante arithmétique, 32 bits

LREAL

64 bits

lr

Type de données virgule flottante arithmétique, 64 bits

STRING

s

Chaîne de caractères codés sur un octet de longueur variable (par défaut : 80 caractères)

WSTRING

ws

Chaîne de caractères codés sur deux octets de longueur variable (par défaut : 80 caractères)

TIME

tim

Durée, 32 bits

LTIME

ltim

Durée, 64 bits

  • TIME_OF_DAY

  • TOD

tod

Heure du jour (32 bits)

  • LTIME_OF_DAY

  • LTOD

ltod

Heure du jour (64 bits)

  • DATE_AND_TIME

  • DT

dt

Date et heure

  • LDATE_AND_TIME

  • LDT

ldt

DATE

  • dat

  • d

Date calendaire

LDATE

  • ldat

  • ld

Date calendaire

Enumeration

et (e)

POINTER

p

ARRAY

a

Structure

st

Function block

fb

Interface

if (itf)

Union

ut

* 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 %IX0.0).

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

Noms de variables dans les bibliothèques

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

Types de données définis par l'utilisateur (DUT) dans les bibliothèques

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
NOTE : N'oubliez pas d'utiliser l'espace de noms avec des DUT ou des énumérations déclarées dans des bibliothèques.

Fonctions, blocs fonction, programmes (POU) et actions

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_.

POU dans les bibliothèques

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.

NOTE : N'oubliez pas d'indiquer l'espace de noms pour les POU déclarés dans des bibliothèques.