SA0102: Acceso a variables de programa/fb desde el exterior
Detecta el acceso externo a variables locales de programas o bloques de funciones.
Justificación: CODESYS permite el acceso de lectura externo a variables locales de programas o bloques de funciones. Esto contradice el principio de encapsulación de datos (ocultar datos) y no cumple con el estándar IEC 61131-3.
Importancia: Media
ejemplo 91. Ejemplo
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;
Salida en el Mensajes vista:
SA0102: Acceso al programa/variable fb 'iLocal' desde el exterior