Schnittstellenzeiger / INTERFACE
Ein Schnittstellenzeiger (auch Interfacepointer oder Schnittstellenvariable genannt) speichert die Adresse einer Funktionstabelle einer Funktionsbausteininstanz, welche die Schnittstelle implementiert. Über diese Indirektion können mit einem Schnittstellenzeiger alle Methoden und Eigenschaften aufgerufen werden, die von der Schnittstelle definiert werden. Daher müssen diese Methoden und Eigenschaften von dem Funktionsbaustein implementiert werden, dessen Instanz dem Schnittstellenzeiger zugewiesen wird.
Einem Schnittstellenzeiger muss vor der Verwendung immer eine Instanz eines Funktionsbausteines zugewiesen werden, der die entsprechende Schnittstelle implementiert.
Vor der Verwendung wird empfohlen, den Schnittstellenzeiger auf Gültigkeit (<> 0) zu prüfen.
Syntax:
<Kennzeichner> : <Interfacetyp>;FUNCTION_BLOCK <Funktionsbausteintyp> IMPLEMENTS <Interfacetyp>Beispiel:
FUNCTION_BLOCK FB_Sample IMPLEMENTS I_SampleVAR
ipSample : I_Sample;
fbSample : FB_Sample;
nResult : INT;
END_VARipSample := fbSample;
// calling a method of this interface
IF ipSample <> 0 THEN
nResult := ipSample.Add(3, 6); // result is 9
END_IFDie Verwendung von Schnittstellen und Schnittstellenzeigern wird ausführlich im Abschnitt Objektorientiert programmieren > Objekt Schnittstelle erläutert.
Typkonvertierungen sind mit dem Operator __QUERYINTERFACE() möglich.