PROFINET Handbuch

Was sind Funktionsblöcke?

Was sind Funktionsblöcke?

Vorangehendes Thema Nächstes Thema  

Was sind Funktionsblöcke?

Vorangehendes Thema Nächstes Thema JavaScript is required for the print function Fragen oder Bemerkungen zum Thema senden!  

Die Aufgabe von einem Funktionsblock ist die Kapselung der Daten und der Algorithmen. Der Algorithmus definiert wie die Eingangsdaten zu den Ausgangsdaten unter Berücksichtigung der lokalen Daten  verarbeitet werden sollen. Ein einzelner Funktionsblock oder eine Anordnung von Funktionsblöcken bildet dabei das Automatisierungsprogramm.

 

Der Funktionsblock stellt eine Komponente der Anlagensoftware dar. Eine Komponente ist ein Modell, das vom Hardware-Design übernommen worden ist: Eine Komponente wird einmal definiert und kann dann in unterschiedlichen Anwendungen immer wieder eingesetzt werden.

 

Bei einem Funktionsblock werden darum zwei Paradigmen unterschieden: Die Typendeklaration und die Instanz. Bei der Typendeklaration werden die Schnittstellen und Algorithmen des Funktionsblockes beschrieben. Zu den Schnittstellen gehören die Grösse und Bedeutung der Ein- und Ausgangsdaten. In einem Funktionsblock gibt es zusätzlich lokale Daten. Die Algorithmen beschreiben, wie aus den Eingangsdaten, unter Berücksichtigung der lokalen Daten die Ausgangsdaten bestimmt werden. Funktionsblock Typen werden in einer Bibliothek abgelegt, damit Sie später einfach eingesetzt werden können.

Bei Einsatz eines Funktionsblockes wird nun der Speicher für den lokalen Datensatz des Funktionsblocks reserviert, der Programmierer erzeugt eine Instanz. Ein Funktionsblock Typ, d.h. eine Beschreibung eines Funktionsblockes kann somit beliebig oft als Instanz erzeugt werden, indem jedes Mal ein neuer Speicher reserviert wird. Mit diesem Speicher und der Funktionsblock Typenbeschreibung ist die Instanz des Funktionsblockes eindeutig bezeichnet. Die Abbildung zeigt einen einfachen Funktionsblock PON (Puls ON) der zweimal instanziert wird.

Struktur der Funktionsblöcke

Funktionsblöcke sind nicht zu verwechseln mit Funktionen oder Prozeduren, wie Sie aus der Programmierung bekannt sind. Funktionen und Prozeduren haben keinen lokalen Speicher, d.h. wenn eine Prozedur verlassen wird, wird dem Betriebssystem auch aller Speicher für Daten zurückgegeben und es bleiben keine Daten über die Lebensdauer einer Prozedur hinaus bestehen. Ein Funktionsblock kann am besten noch mit einem Objekt der modernen Softwaretechnologie verglichen werden. Doch ein Funktionsblock kann in der Regel seine Eigenschaften nicht vererben um neue Funktionsblocktypen zu erstellen und somit gibt es auch keine Klassenstrukturen. Die Tabelle 1 fasst diese Unterschiede etwas zusammen.

 

Vergleich der Funktionsblöcke mit Software-Objekten

Eigenschaft

Objekte

Funktionsblöcke

Kapselung der Daten

Ja, Objekte können auch Instanzen von anderen Objekten enthalten.

Ja, Funktionsblöcke können auch Instanzen von anderen Funktionsblöcken enthalten.

Externe Schnittstellen

Ja

Ja, es wird nicht zwischen privaten und offenen Schnittstellen unterschieden.

Aufruf

Objekte haben Methoden mit Argumenten und Rückgabewerte.

Funktionsblöcke haben Ein- und Ausgabe Daten und Ereignisse.

Vererbung

Ja

In IEC 61499 ist keine Vererbung vorgesehen.

Polymorphismus

Ja

Ein spezielles Adapterkonzept in IEC 61499 erlaubt Funktionsblöcke gemeinsame Schnittstellen zu teilen.

Instanzierung

Objektklassen und Funktionsblock Typen sind vergleichbare Konstrukte.

Funktionsblock Instanzen werden von Funktionsblock Typen abgeleitet.