Erweitern eines Funktionsbausteins
Die Erweiterung eines Funktionsbausteins basiert auf dem Konzept der Vererbung in der objektorientierten Programmierung. Ein abgeleiteter Funktionsbaustein „erweitert“ zu diesem Zweck einen Basis-Funktionsbaustein und erhält („erbt“) dadurch prinzipiell die Eigenschaften und Funktionalitäten des Basis-Funktionsbausteins – zusätzlich zu seinen eigenen Eigenschaften und Funktionalitäten.
Die Bezeichnung „Funktionsbaustein“ kann in TwinCAT synonym zur Bezeichnung „Klasse“ verwendet werden. Der abgeleitete Funktionsbaustein kann somit auch als „Unterklasse“ und der Basis-Funktionsbaustein als „Basisklasse“ bezeichnet werden.
Beachten Sie unbedingt die folgenden Informationen:
Anzahl der Erweiterungen pro Basis-Funktionsbaustein Die Anzahl der Erweiterungen pro Basis-Funktionsbaustein ist nicht beschränkt. Sie können also einen Funktionsbaustein durch mehrere andere Funktionsbausteine erweitern und dadurch auf verschiedene Arten spezialisieren.
|
Anzahl der Vererbungsebenen Die Anzahl der Vererbungsebenen ist nicht beschränkt. Sie können also einen Funktionsbaustein, der einen anderen Funktionsbaustein erweitert, in einem weiteren Funktionsbaustein spezialisieren etc.
|
Mehrfachvererbung nicht erlaubt Bei Funktionsbausteinen ist Mehrfachvererbung nicht erlaubt. Es ist nicht möglich, dass ein Funktionsbaustein mehr als einen anderen Funktionsbaustein erweitert. Ausnahme: Ein Funktionsbaustein kann mehrere Schnittstellen implementieren und eine Schnittstelle kann mehrere andere Schnittstellen erweitern.
|
Überladen Das Überladen von Methoden ist nicht möglich. Wenn Sie in einer Unterklasse also eine Methode der Basisklasse überschreiben oder erweitern (gleicher Methodenname), muss die Methodendeklaration der Deklaration in der Basisklasse entsprechen (Zugriffsmodifizierer, Rückgabetyp, Variablenschnittstelle). |
Erweitern eines Basis-Funktionsbausteins durch einen neuen Funktionsbaustein
- Das aktuell geöffnete Projekt besitzt einen Basis-Funktionsbaustein, zum Beispiel FB_Sample, der durch einen neuen Funktionsbaustein erweitert werden soll.
- 1. Selektieren Sie das SPS-Projektobjekt oder einen Unterordner im SPS-Projektbaum und wählen Sie im Kontextmenü den Befehl Hinzufügen > POU…
- Der Dialog POU hinzufügen öffnet sich.
- 2. Geben Sie einen Namen für den neuen Funktionsbaustein in das Eingabefeld Name ein, beispielsweise FB_SampleEx.
- 3. Wählen Sie Funktionsbaustein.
- 4. Wählen Sie Erweitert und klicken Sie auf die Schaltfläche .
- 5. Wählen Sie in der Eingabehilfe aus der Kategorie Funktionsbausteine unter dem Projekt die POU(FB) aus, die als Basis-Funktionsbaustein dienen soll, zum Beispiel „FB_Sample“ und klicken Sie auf OK.
- 6. Optional können Sie einen Zugriffsmodifizierer für den neuen Funktionsbaustein aus der Combobox auswählen.
- 7. Wählen Sie aus der Combobox Implementierungsprache zum Beispiel „Strukturierter Text (ST)“ aus.
- 8. Klicken Sie auf Öffnen.
- TwinCAT fügt den Funktionsbaustein FB_SampleEx in den SPS-Projektbaum ein und der Editor öffnet sich. In der ersten Zeile steht:
FUNCTION_BLOCK FB_SampleEx EXTENDS FB_Sample
Der Funktionsbaustein FB_SampleEx erweitert den Basis-Funktionsbaustein FB_Sample.
Erweitern eines Basis-Funktionsbausteins durch einen bestehenden Funktionsbaustein
- Das aktuell geöffnete Projekt besitzt einen Basis-Funktionsbaustein, zum Beispiel „FB_Sample“, und einen weiteren Funktionsbaustein, zum Beispiel „FB_SampleEx“, der noch nicht vom Basis-Funktionsbaustein abgeleitet ist. Der Funktionsbaustein FB_SampleEx soll den Basis-Funktionsbaustein erweitern, das bedeutet: FB_SampleEx soll FB_Sample erweitern.
- 1. Doppelklicken Sie im SPS-Projektbaum auf den Funktionsbaustein FB_SampleEx.
- Der Editor der POU öffnet sich.
- 2. Erweitern Sie den bestehenden Eintrag der obersten Zeile FUNCTION_BLOCK FB_SampleEx mit EXTENDS FB_Sample.
- Der Funktionsbaustein FB_SampleEx erweitert den Basis-Funktionsbaustein FB_Sample.
Siehe auch:
- Objekt Funktionsbaustein
- Objekt Eigenschaft
- Objekt Methode
- Objekt Aktion
- Objekt Transition
- Referenz Programmierung: SUPER
- Referenz Programmierung: THIS