Skip to main content

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:

  • sa_icon_message.png SA0044: Referencia a la interfaz 'itf4_ref'

  • sa_icon_message.png SA0044: Referencia a la interfaz 'itf_ref'