Skip to main content

SA0042 : Utilisation de différents chemins d'accès

Détecte l'utilisation de différents chemins d'accès pour la même variable

Justification : Des accès différents à un même élément diminuent la lisibilité et la maintenabilité d'un programme. Nous recommandons l'utilisation régulière de {attribute 'qualified-only'} pour les bibliothèques, les listes de variables globales et les énumérations. Cela force un accès entièrement qualifié.

Importance : faible

Exemple 51. Exemple
VAR_GLOBAL
    iTemp:INT;
    instPOU:POU;
END_VAR
FUNCTION_BLOCK POU
VAR
    a:INT;
END_VAR
a := INT#1;
PROGRAM SA0042
VAR
    ptiTemp:POINTER TO INT;
    sTemp:STRING;
END_VAR
ptiTemp := ADR(iTemp);

ptiTemp^ := INT#1;
iTemp := INT#2;    //  SA0042 - direct access on variable
GVL.iTemp := INT#3;    //  SA0042 - access on variable via GVL

sTemp := CONCAT( 'ab', 'cd');    // SA0042 - direct access on function
sTemp := Standard.CONCAT( 'ab', 'cd');    // SA0042 - access on function via Standard

instPOU();    //  SA0042 - direct access on POU instance
GVL.instPOU();    //  SA0042 - access via GVL

Sortie dans le messages voir:

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'CONCAT'

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'Standard.CONCAT'

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'instPOU'

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'GVL.instPOU'

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'iTemp'

  • sa_icon_message.png SA0042 : Différents chemins d'accès pour 'GVL.iTemp'