SA0015: Accesso ai dati globali tramite FB_InitPermalink

Rileva l'accesso di un blocco funzione alle variabili globali mediante il metodo ‎FB_Init‎. Il valore di questa variabile dipende dall'ordine delle inizializzazioni.

Giustificazione: A seconda della posizione della dichiarazione dell'istanza POU, si potrebbe accedere a una variabile non inizializzata se la regola viene violata.

Importanza: Alto

Esempio

VAR_GLOBAL
	g_xTest1 : BOOL;
	g_iTest3 : INT;
END_VAR

METHOD PUBLIC 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_VAR 
g_xTest1 := NOT g_xTest1;  	 // SA0015
g_iTest3 := g_iTest3 + INT#1;   // SA0015

--> SA0015: FB_Init method of function block 'POU' accesses global data