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 und VAR_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.
Eine Eigenschaft oder Methode einer Klasse (FB) hinzufügen 1:
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.
Eine Eigenschaft oder Methode einer Klasse (FB) hinzufügen 2:
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 des SUPER^.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

Eine Eigenschaft oder Methode einer Klasse (FB) hinzufügen 3:

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.
Eine Eigenschaft oder Methode einer Klasse (FB) hinzufügen 4:
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.