SA0015: Zugriff auf globale Daten über FB_init
Funktion | Ermittelt Zugriffe eines Funktionsbausteins auf globale Daten über die FB_init-Methode. 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 nicht-initialisierte Variable zugegriffen wird. |
Wichtigkeit | Hoch |
Beispiel:
Globale Variablenliste GVL_App:
VAR_GLOBAL
nVar : INT;
END_VARFunktionsbaustein FB_Sample:
FUNCTION_BLOCK FB_Sample
VAR
nLocal : INT;
END_VARMethode FB_Sample.FB_init:
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
END_VARnLocal := 2*nVar; // => SA0015Programm MAIN:
PROGRAM MAIN
VAR
fbSample : FB_Sample;
END_VAR