Symbol:
Schlüsselwort: INTERFACE
Eine Schnittstelle ist ein Mittel der objektorientierten Programmierung. Das Objekt
ITF
beschreibt eine Reihe von Methoden- und Eigenschaftsprototypen. In diesem Zusammenhang
bedeutet Prototyp, dass die ⮫ Methoden, ⮫ Methoden, ⮫ Methoden, ⮫ Methoden, ⮫ Methoden, ⮫ Methoden, ⮫ Methoden, ⮫ Methoden und ⮫ Eigenschaften enthalten nur Deklarationen und keine Implementierung.
Dadurch können verschiedene Funktionsblöcke mit gemeinsamen Eigenschaften auf dieselbe Weise verwendet werden. Ein „ITF“ Objekt wird der Anwendung oder dem Projekt hinzugefügt, indem Sie auf „Projekt Objekt hinzufügen Schnittstelle“
Für weitere Informationen siehe: ⮫ „Implementierung einer Schnittstelle “
„Vererbung“ |
|
„Name“ |
Name der Schnittstelle |
„Fortgeschrittene“ |
Für weitere Informationen siehe: ⮫ „Erweiterung einer Schnittstelle “ |
Sie können die Objekte „Interface Property“ und „Interface Method“ zum Objekt „ITF“ hinzufügen. Interfacemethoden dürfen nur die Deklarationen von Eingabe-, Ausgabe- und VAR_IN_OUT-Variablen enthalten, aber keine Implementierung.
Damit Sie eine Schnittstelle auch im Programm verwenden können, muss es einen Funktionsblock geben, der diese Schnittstelle implementiert.
Das bedeutet:
-
Der Funktionsblock enthält die Schnittstelle in seiner IMPLEMENTS-Liste in seinem Deklarationsteil
-
Der Funktionsblock enthält eine Implementierung für alle Methoden und Eigenschaftsprototypen der Schnittstelle
Ein Funktionsblock kann eine oder mehrere Schnittstellen implementieren. Sie können die gleiche Methode mit identischen Parametern, aber unterschiedlichem Implementierungscode in verschiedenen Funktionsblöcken verwenden.
Beachten Sie das Folgende:
-
Sie dürfen keine Variablen innerhalb einer Schnittstelle definieren. Eine Schnittstelle hat keinen Implementierungsteil und keine Aktionen. Es wird nur eine Methodensammlung definiert, in der Sie nur Eingabe-, Ausgabe- und VAR_IN_OUT-Variablen definieren können.
-
CODESYS behandelt Variablen, die mit dem Typ einer Schnittstelle deklariert sind, immer als Referenzen.
-
Ein Funktionsblock, der eine Schnittstelle implementiert, muss Implementierungscode für die Methoden der Schnittstelle enthalten. Sie haben die Methoden genau wie in der Schnittstelle benannt, und die Methoden enthalten die gleichen Eingabe-, Ausgabe- und VAR_IN_OUT-Variablen wie in der Schnittstelle.




HINWEIS

Schnittstellenhinweise und Online-Änderung
Mit einer Compiler-Version < 3.4.1.0 kann folgendes passieren:
Wenn ein Funktionsblock seine Daten ändert, weil Variablen hinzugefügt oder gelöscht werden oder weil sich der Typ der Variablen ändert, dann kopiert CODESYS alle Instanzen des Funktionsblocks an einen neuen Speicherplatz. In diesem Fall bezieht sich eine Schnittstellenreferenz jedoch nicht auf den neuen Speicherplatz, sondern weiterhin auf den alten.
Bei Compiler-Versionen >= 3.4.1.0 adressiert CODESYS die Schnittstellenreferenzen automatisch um, so dass CODESYS auch bei einer Online-Änderung die korrekte Schnittstelle referenziert. CODESYS benötigt dafür zusätzlichen Code und mehr Zeit, so dass je nach Anzahl der betroffenen Objekte Jitter-Probleme auftreten können. Deshalb zeigt CODESYS vor der Ausführung der Online-Änderung die Anzahl der betroffenen Variablen und Schnittstellenreferenzen an und Sie können dann entscheiden, ob die Online-Änderung ausgeführt oder abgebrochen werden soll.
Beispiel
Definition einer Schnittstelle und ihre Verwendung in einem Funktionsblock
Sie haben die Schnittstelle „ITF“ unterhalb der Anwendung eingefügt. Die Schnittstelle enthält die Methoden „Method1“ und „Method2“. „ITF“, „Methode1“ und „Methode2“ enthalten keinen Implementierungscode. Sie fügen die erforderlichen Variablendeklarationen nur in den Deklarationsteil der Methoden ein.
Wenn Sie anschließend einen Funktionsblock in den Gerätebaum einfügen, der die Schnittstelle „ITF“ implementiert, fügt CODESYS automatisch auch die Methoden „Methode1“ und „Methode2“ unter dem Funktionsblock ein. Hier können Sie funktionsblockspezifischen Code in den Methoden implementieren.
