SA0015: Acceso a datos globales vía FB_Init
Detecta el acceso de un bloque de funciones a variables globales mediante el método FB_Init. El valor de esta variable depende del orden de las inicializaciones.
Justificación: Dependiendo de la ubicación de la declaración de la instancia de POU, se podría acceder a una variable no inicializada si se viola la regla.
Importancia: Alta
ejemplo 28. Ejemplo
VAR_GLOBAL
g_xTest1 : BOOL;
g_iTest3 : INT;
END_VARMETHOD 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
Salida en el Mensajes vista:
SA0015: El método FB_Init del bloque de funciones 'POU' accede a datos globales