SA0044: Deklarationen mit SchnittstellenreferenzPermanentlink

Ermittelt Deklarationen mit ‎REFERENCE TO‎-Schnittstellen und Deklarationen von ‎VAR_IN_OUT‎-Variablen mit Schnittstellen (implizit über ‎REFERENCE TO‎ realisiert).

Begründung: Ein Schnittstellentyp ist immer implizit eine Referenz auf eine Instanz eines Funktionsbausteins, der diese Schnittstelle implementiert. Eine Referenz auf eine Schnittstelle ist demnach eine Referenz auf eine Referenz und kann zu sehr unerwünschtem Verhalten führen.

Wichtigkeit: Hoch

Beispiel

‎ITF‎ ist eine im Projekt definierte Schnittstelle.

PROGRAM PLC_PRG
VAR
	inst:POU;
	itf_inst1 : ITF;
	itf_ref : REFERENCE TO ITF; // SA0044 
END_VAR
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

--> SA0044: Referenz auf Schnittstelle 'itf_ref'
--> SA0044: Referenz auf Schnittstelle 'itf4_ref'