Eine Eigenschaft oder Methode einer Klasse (FB) hinzufügen
In vielen Fällen soll der Umfang an Methoden und Eigenschaften einer Klasse geändert werden. Hierzu zählt neben dem Hinzufügen von neuen Elementen auch das Ändern oder Entfernen bestehender Elemente. In den folgenden Beispielen werden diese drei Vorhaben am Beispiel des Standard-Achstyps FB_Axis
erläutert.
Für alle drei Vorhaben sind folgende Schritte vorab durchzuführen:
- 1. Legen Sie eine neue Klasse (FB) an und entfernen Sie
VAR_INPUT
undVAR_OUTPUT.
FUNCTION_BLOCK FB_CustomAxis
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
- 2. Fügen Sie der Klassendefinition über das Schlüsselwort
EXTENDS
die zu erbende Klasse hinzu.
FUNCTION_BLOCK FB_CustomAxis EXTENDS FB_Axis
VAR
END_VAR
- 3. Damit Sie die Klasse und die hinzugefügten Elemente auch über eine Schnittstelle ansprechen können, legen Sie eine gleichnamige Schnittstelle an.
INTERFACE I_CustomAxis
- 4. Lassen Sie die Schnittstelle von der Schnittstelle der geerbten Klasse erben.
INTERFACE I_CustomAxis EXTENDS I_Axis
- 5. Implementieren Sie die Schnittstelle in der zuvor erstellten Klasse (FB).
FUNCTION_BLOCK FB_CustomAxis EXTENDS FB_Axis IMPLEMENTS I_CustomAxis
VAR
END_VAR
Eine neue Methode/Eigenschaft hinzufügen
- 1. Fügen Sie der Klasse eine neue Methode/Eigenschaft hinzu.
METHOD NewMethod : HRESULT
VAR
END_VAR
- 2. Kopieren Sie die Methode in die erstellte Schnittstelle, sofern die Methode von außen zugänglich sein soll.
- Sie haben erfolgreich eine neue Methode hinzugefügt und können mit der Implementation beginnen.
Eine Methode/Eigenschaft von der geerbten Klasse erweitern oder überschreiben
- 1. Fügen Sie der Klasse eine Methode/Eigenschaft mit dem Namen der zu erweiternden Methode/Eigenschaft hinzu.
METHOD Power : HRESULT
VAR_INPUT
bCommand: BOOL;
END_VAR
VAR
END_VAR
- 2. Falls Sie die Methode/Eigenschaft nicht überschreiben, sondern erweitern möchten, müssen Sie die Basis-Implementation an geeigneter Stelle aufrufen.
METHOD Power : HRESULT
VAR_INPUT
bCommand: BOOL;
END_VAR
VAR
nValue: INT;
END_VAR
IF bCommand THEN
nValue := 10;
END_IF
SUPER^.Power(bCommand);
- 3. Prüfen Sie den Rückgabewert und die
INPUT
Variablen auf Übereinstimmung. Die Basis-Implementation können Sie durch das Auswählen desSUPER^.MethodName()
und anschließendes Drücken der F12-Taste einsehen. - 4. Implementieren Sie ihre eigenen Code-Zeilen in der Methode.
- Sie haben erfolgreich eine Methode/Eigenschaft erweitert.
Eine Methode/Eigenschaft von der geerbten Klasse entfernen
![]() | Ein Entfernen einer Methode/Eigenschaft ist nur indirekt möglich Beachten Sie, dass Sie eine Methode/Eigenschaft nicht komplett entfernen können! Die im Folgenden beschriebenen Schritte führen lediglich dazu, dass der Aufruf der „entfernten“ Methode/Eigenschaft keine Reaktion hervorruft. |
- 1. Fügen Sie der Klasse eine Methode/Eigenschaft mit dem Namen der zu entfernenden Methode/Eigenschaft hinzu.
- 2. Lassen Sie den Inhalt der Methode/Eigenschaft leer und rufen Sie nicht die
SUPER^.Method()
auf.
METHOD Power : HRESULT
VAR_INPUT
bCommand: BOOL;
END_VAR
VAR
END_VAR
- 3. Optional: Fügen Sie der Methode/Eigenschaft das
{attribute „hide“}
hinzu, um die Methode/Eigenschaft in der Entwicklungsumgebung zu verbergen.
- Sie haben erfolgreich eine Methode/Eigenschaft deaktiviert.