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_Sample
VAR
    ipSample : I_Sample;
    fbSample : FB_Sample;
    nResult  : INT;
END_VAR
ipSample := fbSample;
 
// calling a method of this interface
IF ipSample <> 0 THEN
    nResult := ipSample.Add(3, 6); // result is 9
END_IF

Die Verwendung von Schnittstellen und Schnittstellenzeigern wird ausführlich im Abschnitt Objektorientiert programmieren > Objekt Schnittstelle erläutert.

Typkonvertierungen sind mit dem Operator __QUERYINTERFACE() möglich.