SA0015: Zugriff auf globale Daten über FB_Init
Ermittelt Zugriffe eines Funktionsbausteins auf globale Variablen über die Methode FB_Init
. Der Wert dieser Variablen hängt von der Reihenfolge der Initialisierungen ab!
Begründung: Je nach Deklarationsstelle der Instanz eines Bausteins kann es sein dass bei Verletzung der Regel auf eine uninitialisierte Variable zugegriffen wird.
Wichtigkeit: Hoch
Beispiel 28. Beispiel
VAR_GLOBAL g_xTest1 : BOOL; g_iTest3 : INT; END_VAR
METHOD PUBLIC fb_init : BOOL VAR_INPUT (* If TRUE, the retain variables are initialized (warm start / cold start) *) bInitRetains : BOOL; (* If TRUE, the instance afterwards gets moved into the copy code (online change) *) bInCopyCode : BOOL; END_VAR
g_xTest1 := NOT g_xTest1; // SA0015 g_iTest3 := g_iTest3 + INT#1; // SA0015
Ausgabe unter Ansicht Meldungen:
SA0015: FB_Init-Methode des Funktionsbausteins 'POU' greift auf globale Daten zu