SA0044: Declaraciones con referencia a interfaz
Detecta declaraciones con REFERENCE TO interfaces y declaraciones de VAR_IN_OUT variables con interfaces (implementadas implícitamente por medio de REFERENCE TO)
Justificación: un tipo de interfaz siempre es implícitamente una referencia a una instancia de un bloque de funciones que implementa esta interfaz. Por lo tanto, una referencia a una interfaz es una referencia a una referencia y puede provocar un comportamiento no deseado.
Importancia: Alta
ejemplo 53. Ejemplo
ITF es una interfaz que se define en el proyecto.
FUNCTION_BLOCK POU
VAR_INPUT
inst_itf2 : ITF;
END_VAR
VAR_OUTPUT
inst_itf3 : ITF;
END_VAR
VAR_IN_OUT
inst_itf4 : ITF; // SA0044
END_VAR
PROGRAM PLC_PRG
VAR
inst : POU;
itf_inst1 : ITF;
itf_ref : REFERENCE TO ITF; // SA0044
END_VARSalida en el Mensajes vista:
SA0044: Referencia a la interfaz 'itf4_ref'
SA0044: Referencia a la interfaz 'itf_ref'