Allgemeine Informationen

Überblick

Ein Funktionsbaustein ist eine POU, die bei der Ausführung eines SPS-Programms einen oder mehrere Werte liefert. Im Gegensatz zu einer Funktion werden die Werte der Ausgangsvariablen und der erforderlichen internen Variablen von einer Ausführung des Funktionsbausteins bis zur nächsten gespeichert. Somit werden beim Aufruf eines Funktionsbausteins mit denselben Argumenten (Eingabeparametern) nicht unbedingt dieselben Ausgabewerte geliefert.

Zusätzlich zur durch den Standard IEC11631-3 beschriebenen Funktion, wird objektorientiertes Programmieren unterstützt und Funktionsbausteine können als Erweiterungen anderer Funktionsbausteine definiert werden. Sie können Schnittstellendefinitionen hinsichtlich des Methodenaufrufs enthalten. Dies bedeutet, dass beim Programmieren mit Funktionsbausteinen das Prinzip der Vererbung angewendet werden kann.

Ein Funktionsbaustein wird immer über eine Instanz aufgerufen, die eine Reproduktion (Kopie) des Funktionsbausteins ist.

Hinzufügen eines Funktionsbausteins

Um einer bestehenden Applikation einen Funktionsbaustein hinzuzufügen, wählen Sie den entsprechenden Knoten in der Anwendungsbaumstruktur aus, klicken Sie auf die grüne Plus-Schaltfläche und führen Sie den Befehl POU... aus. Alternativ können Sie mit der rechten Maustaste auf den Knoten klicken und den Befehl Objekt hinzufügen > POU ausführen. Um einen applikationsunabhängigen Funktionsbaustein zu erstellen, wählen Sie den Knoten Global der Anwendungsbaumstruktur aus.

Wählen Sie im Dialogfeld Objekt hinzufügen die Option Funktionsbaustein aus, geben Sie einen Namen (<Bezeichner>) für den Funktionsbaustein ein, und legen Sie die gewünschte Implementierungssprache fest.

Außerdem können Sie folgende Optionen festlegen:

Option

Beschreibung

Erweitert

Geben Sie hier den Namen eines anderen Funktionsbausteins aus dem Projekt ein, der als Basis für den aktuellen Baustein verwendet werden soll. Für eine detaillierte Beschreibung siehe Erweiterung eines Funktionsbausteins.

Implementiert

Geben Sie hier die Namen der im Projekt definierten Schnittstellen an, die im aktuellen Funktionsbaustein implementiert werden sollen. Mehrere Schnittstellen können durch Kommata getrennt angegeben werden. Eine detaillierte Beschreibung finden Sie unter Implementieren von Schnittstellen.

Zugriffsbezeichner

Aus Kompatibilitätsgründen sind die Zugriffsbezeichner optional. Bezeichner PUBLIC ist äquivalent mit dem Angeben keines Bezeichners.

Alternativ kann eine der Optionen aus der Auswahlliste entnommen werden:

  • INTERNAL: Der Zugriff auf den Funktionsbaustein ist auf den aktuellen Namespace (die Bibliothek) beschränkt.

  • FINAL: Ein abgeleiteter Zugriff ist nicht möglich, d. h. der Funktionsbaustein kann nicht durch einen anderen erweitert werden. Dies ermöglicht eine optimierte Codegenerierung.

    HINWEIS: Die Zugriffsbezeichner gelten ab Compiler-Version 3.4.4.0 und können als Bezeichner für vorherige Versionen verwendet werden.

    Weitere Informationen finden Sie in der Zuordnungstabelle der Compiler-Version von EcoStruxure Machine Expert/CODESYS im EcoStruxure Machine Expert Kompatibilitäts- und Migrationshandbuch.

Methodenimplementierungssprache

Wählen Sie die gewünschte Programmiersprache für alle Methoden- und Eigenschaftsobjekte aus, die über die Schnittstellenimplementierung erstellt werden, unabhängig von der für den Funktionsbaustein festgelegten Programmiersprache.

Klicken Sie auf Hinzufügen, um die Einstellungen zu bestätigen. Die Editoransicht für den neuen Funktionsbaustein wird geöffnet und Sie können mit der Bearbeitung beginnen.

Deklarieren eines Funktionsbausteins

Syntax

FUNCTION_BLOCK<Zugriffsbezeichner> <Funktionsbausteinname> | EXTENDS <Funktionsbausteinname> | IMPLEMENTS <Mit Komma geteilte Liste an Schnittstellennamen>

Hier folgen die Variablendeklarationen. Sie können die Eingänge und Ausgänge auch für schnelles Ein- und Ausblenden gruppieren, wenn der Funktionsbaustein in einem FBD- oder LD-Editor verwendet wird. Siehe Kapitel Attribut-Anschlussgruppe.

Beispiel

FBexample, wie in der folgenden Abbildung gezeigt, hat 2 Eingangs- und 2 Ausgangsvariablen: out1 und out2.

out1 ist die Summe der 2 Eingänge, out2 ist das Ergebnis einer Prüfung auf Gleichheit.

Beispiel für einen Funktionsbaustein in ST