SA0102: Zugriff von außen auf lokale Variablen
Ermittelt Zugriffe von außen auf lokale Variablen von Programmen oder Funktionsbausteinen.
Begründung: CODESYS ermöglicht einen Lesezugriff von außen auf lokale Variablen von Programmen oder von Funktionsbausteinen. Dies bricht mit dem Grundsatz der Datenkapselung (Verbergen von Daten) und entspricht nicht der Norm IEC 61131-3.
Wichtigkeit: Mittel
Beispiel 91. Beispiel
PROGRAM PLC_PRG
VAR
iCounter : INT;
afb_Instance : AFB;
bfb_Instance : BFB;
END_VARiCounter := 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_VARMETHOD 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_VARiLocal := iLocal + 1;
Ausgabe unter Ansicht Meldungen:
SA0102: Zugriff auf Programm- /FB-Variablen 'iLocal' von außen