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_VAR
Salida en el Mensajes vista:
SA0044: Referencia a la interfaz 'itf4_ref'
SA0044: Referencia a la interfaz 'itf_ref'