Skip to main content

SA0013 : Déclarations avec le même nom de variable

Détecte les variables dont les noms sont déjà utilisés par d'autres variables (par exemple, les variables globales et locales portant le même nom). Les variables sont également détectées dont les noms de fonctions, d'actions, de méthodes ou de propriétés sont utilisés dans la même plage d'accès. Les variables sont également détectées qui sont déclarées dans un GVL dans le Dispositifs vue ou dans la piscine des POU. Mais pour cela, le GVL du POU La vue doit être utilisée dans le programme d'application.

Justification : Les mêmes noms peuvent prêter à confusion lors de la lecture du code et peuvent provoquer des erreurs si le mauvais objet est accédé par inadvertance. Nous vous recommandons d'utiliser des conventions de dénomination pour éviter ces situations.

Règle PLCopen : N5 / N9

Importance : Moyenne

Exemple 25. Exemple
VAR_GLOBAL
    xVar1 : BOOL;
    iVar3 : INT;
END_VAR
PROGRAM PLC_PRG
VAR
    xVar1 : BOOL;  // SA0013
    iVar3 : INT;   // SA0013
END_VAR
xVar1 := NOT GVL.xVar1;
iVar3 := iVar3 + INT#2;
iVar3 := GVL.iVar3;

Sortie dans le messages voir:

  • sa_icon_message.png SA0013 : La déclaration de 'iVar1' masque le symbole 'GVL.iVar1'

  • sa_icon_message.png SA0013 : La déclaration de 'xVar3' masque le symbole 'GVL.xVar3'



Exemple 26. Exemple

Le FB_Pou Le bloc fonctionnel a le ACT action, le METH méthode et des variables locales portant les mêmes noms.

_san_rule_0013_fb.png
FUNCTION_BLOCK FB_Pou
VAR
    ACT : UINT;  // SA0013
    METH : BYTE; // SA0013
END_VAR
PROGRAM PLC_PRG
VAR
    fbPou : FB_Pou;
END_VAR
fbPou();

Sortie dans le messages voir:

  • sa_icon_message.png SA0013 : La déclaration de 'ACT' masque le symbole 'FB_Pou.ACT'

  • sa_icon_message.png SA0013 : La déclaration de 'METH' masque le symbole 'FB_Pou.METH'