Element: Klasse
Eine Klasse ist eine logische Einheit, in der Daten und Operationen gekapselt werden. Sie stellt außerdem einen Variablentyp dar, der instanziiert werden kann. Wenn die Instanz einer Klasse als Variable einer anderen Klasse zugeordnet ist, wird das als Rolle oder Ausprägung der Klasse bezeichnet.
Eine Klasse kann eine Methode FB_Init
bereit stellen, die bei der Initialisierung einer Instanz aufgerufen wird.
Eine Klasse kann von einer anderen Klasse erben, die Beziehung wird Generalisierung genannt.
Eine Klasse kann eine andere Klasse instanziieren, dann ist dies eine Komposition.
Eine Klasse kann eine andere Klasse kennen, dann ist es eine Assoziation.
Eine Klasse kann ein Programmierbaustein oder Bibliotheksbaustein des Typs Programm, Funktionsbaustein oder Funktion sein.

(1) | Befehlssymbole TippWenn Sie eine Klasse selektieren, werden dessen Befehlssymbole sichtbar. |
(2) | Header
|
(3) | Liste der Attribute Der Eintrag folgt dem Schema: Beispiel: Kennung
|
(4) | Liste der Operationen (Aktionen, Methoden oder Eigenschaften) Beispiel:
Ein Eintrag für Methoden folgt dem Schema:
Bei einem Eintrag für eine Schnittstelleneigenschaft Ein Eintrag für Aktionen folgt dem Schema:
Dabei gilt für <label>:
|
Eigenschaften
Bezeichner | Name der Klasse Beispiel: |
Benutzereingaben
Die Klasse hat expandierte Attribut- und Operationslisten, die mit gekennzeichnet sind. Oberhalb der Klasse sind Befehlssymbole sichtbar. Damit können Sie Beziehungselemente einfügen.
Aktion | Ergebnis | |
---|---|---|
Klicken Sie in der Klasse | Die Klasse TippNach dem Löschen wird die Klasse in der Ansicht Werkzeuge unter Eingehende Querverweise oder Ausgehende Querverweise angezeigt. Voraussetzung dafür ist, dass Sie ein Element im Klassendiagramm selektieren, das eine Beziehung zu der gelöschten Klasse hat. | |
Klicken Sie auf das Befehlsicon | Die Klasse | |
Der Funktionsbaustein | Ein Kompositionspfeil weist von der neuen Klasse Die Klasse wurde ergänzt um die Deklaration einer Funktionsbaustein-Instanz der ersten Klasse. FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
| Ein Kompositionspfeil weist von der zweiten Klasse auf die erste Klasse. Die zweite Klasse wurde ergänzt um die Deklaration einer Funktionsbaustein-Instanz der ersten Klasse FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
Die neue Klasse | Ein Assoziationspfeil weist von der neuen Klasse zur ersten Klasse. Die erste Klasse Die Klasse FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
| Ein Assoziationspfeil weist von der ersten Klasse zur zweiten Klasse. Die erste Klasse kennt die zweite Klasse. Die erste Klasse wurde ergänzt um die Deklaration eines Pointers auf die zweite Klasse. FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
Eine neue Klassse wird erzeugt, die von der ersten Klasse erbt. | Eine Generalisierung weist von der neuen Klasse zur ersten Klasse. Die neue Klasse erbt von der ersten. Die Deklaration der neuen Klasse wurde mit FUNCTION_BLOCK ClassNew EXTENDS BaseClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| Eine Generalisierung weist von der zweiten Klasse zur ersten Klasse. Die Deklaration der zweiten Klasse wurde um die Erweiterung mit der ersten Klasse ergänzt.
| |
Eine Schnittstelle wird erzeugt, die von der ausgehenden Klasse implementiert wird. | Ein Realisierungspfeil weist von der Klasse zur neuen Schnittstelle Die Klasse implementiert nun die neue Schnittstelle. Die Deklaration der Klasse wurde erweitert um die Implementierung. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_New VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
Die Schnittstelle wird von der Klasse implementiert. | Ein Realisierungspfeil weist von der Klasse zur Schnittstelle. Die Deklaration der Klasse wurde erweitert um die Implementierung der Schnittstelle. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| Der Objektname (im Gerätebaum oder in der Ansicht POUs ) und in der Deklaration wurde automatisch angepasst. | |
| Die Änderung wird im Projekt synchron und automatisch übernommen. | |
Doppelklicken Sie auf das Klassenelement. | Der zugehörige Objekteditor öffnet sich. |
Beispiele

FUNCTION_BLOCK Fb_D VAR VarFb_A: Fb_A; ... END_VAR

FUNCTION_BLOCK Fb_A VAR Class_2 : POINTER TO Class_2; END_VAR

FUNCTION_BLOCK Fb_A EXTENDS Fb_Base

FUNCTION_BLOCK Class_A IMPLEMENTS Itf_A