Skip to main content

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

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0102: Zugriff auf Programm- /FB-Variablen 'iLocal' von außen