SA0102 : Accès aux variables programme/fb depuis l'extérieur
Détecte les accès externes aux variables locales des programmes ou des blocs fonctionnels.
Justification: CODESYS permet un accès externe en lecture aux variables locales des programmes ou des blocs fonctionnels. Cela contredit le principe d'encapsulation des données (cacher les données) et n'est pas conforme à la norme CEI 61131-3.
Importance : Moyenne
Exemple 91. Exemple
PROGRAM PLC_PRG VAR iCounter : INT; afb_Instance : AFB; bfb_Instance : BFB; END_VAR
iCounter := A_PRG.iLocal; // SA0102 iCounter := bfb_Instance.iLocal; // SA0102 A_PRG();
FUNCTION_BLOCK AFB VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR iLocal: INT; END_VAR
METHOD METH : INT VAR_INPUT END_VAR
iLocal := iLocal + 1;
FUNCTION_BLOCK BFB EXTENDS AFB VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR METHOD METH : INT VAR_INPUT END_VAR
iLocal := iLocal + 1;
PROGRAM A_PRG VAR iLocal: INT; END_VAR
iLocal := iLocal + 1;
Sortie dans le messages voir:
SA0102 : Accès au programme/variable fb 'iLocal' depuis l'extérieur