Funktionsblockbibliothek
Über EasyLab →
Dokumentation für Entwickler →
Bibliotheken und Schnittstellen → Funktionsblockbibliothek
Funktionsblöcke stellen in
EasyLab die Basiselemente zur Beschreibung der Anwendungslogik dar. Dieses Kapitel beschreibt die Schnittstellen der Funktionsblockbibliothek und zeigt Möglichkeiten zur Erweiterung für Entwickler auf. Allgemeine Informationen zu Funktionsblöcken finden Sie in der
Endbenutzer-Dokumentation.
Weitere Themen auf dieser Seite:
- Aufbau von Funktionsblöcken
- Funktionsblockbibliothek
1. Aufbau von Funktionsblöcken
Konzeptionell umfasst die Definition eines Funktionsblocks folgende Komponenten:
- Typ (Klasse)
- Eingangskonnektoren (Eingänge) mit Vorgabewerten
- Zustandsvariablen
- Ausgangskonnektoren (Ausgänge)
- Verhaltensbeschreibung
- Simulationsbeschreibung
- Codevorlagen
- Visuelle Darstellung
- Benutzerfreundlicher Name
- Symbol
Die hier aufgelisteten Informationen werden in einer Datei namens
unit.xml im Unterverzeichnis
units von
EasyLab abgelegt. Hierfür kommt die XML-Schemadefinition
unit.xsd zum Einsatz. Siehe auch
XML-Schemas.
Typ
Jeder Funktionsblock gehört hat einen eindeutigen
Typ oder auch
Klasse. Dieser Name beschreibt, welchen Zweck der Funktionsblock erfüllt. Ein Funktionsblock zur mathematischen Addition hat beispielsweise den Typ "REC GmbH Addition". Typnamen bestehen laut Konvention aus dem Namen des Herstellers des Funktionsblocks und einer kurzen Beschreibung des Funktionsumfangs.
Eingangskonnektoren
Eingangskonnektoren oder einfach Eingänge sind Schnittstellen, mit denen der Funktionsblock Daten aus seiner Umgebung einlesen kann. Ein Funktionsblock zur Addition besitzt beispielsweise je einen Eingang für jeden Summanden
s1...
sn.
Zustandsvariablen
Manche Funktionsblöcke besitzen einen inneren Zustand, d.h. sie speichern Informationen.
Zustandsvariablen sind Bereiche, in denen Daten gespeichert werden können, die den aktuellen Zustand beschreiben. Ein Funktionsblock zur Summation muss sich beispielsweise das letzte Ergebnis merken und zu diesem Wert jeweils den Wert an seinem Eingang hinzuzählen. Dafür wird eine Zustandsvariable
wert benötigt, in der die jeweilige Zahl gespeichert wird.
Viele Funktionsblöcke benötigen keine Zustandsvariablen, so beispielsweise die Addition.
Ausgangskonnektoren
/Ausgangskonnektoren oder einfach Ausgänge sind Schnittstellen, die es einem Funktionsblock ermöglichen, Daten an seine Umgebung weiterzugeben. Ein Funktionsblock zur Addition besitzt beispielsweise einen einzigen Ausgang
summe.
Verhaltensbeschreibung
Die
Verhaltensbeschreibung eines Funktionsblocks gibt an, wie Daten an den Eingängen möglicherweise unter Hinzunahme der Werte von Zustandsvariablen verrechnet werden, um daraus Daten für die Ausgänge zu erzeugen. Ein Funktionsblock zur Addition würde beispielsweise die Werte
s1...
sn aller Eingänge als Zahlen interpretieren, diese summieren und das Ergebnis am Ausgang
summe ausgeben.
Simulationsbeschreibung
Für den
Simulationsmodus von
EasyLab muss für jeden Funktionsblock eine binäre Beschreibung des Verhaltens existieren. Zu diesem Zweck wird die jeweilige Beschreibung als Programm (textuell) formuliert und als Programmbibliothek zur Verfügung gestellt.
Codevorlagen
Für die
Codegenerierung in
EasyLab existieren für jeden Funktionsblock Codevorlagen. Codevorlagen sind Abschnitte von (textuellem) Quellcode, der die Funktionalität des Funktionsblocks für das jeweilige Zielsystem implementiert.
Visuelle Darstellung
Die visuelle Darstellung eines Funktionsblocks wird durch die Anordnung der Konnektoren, dem Symbol und eventuellen Plug-Ins beeinflusst. Außerdem ist jedem Funktionsblock in der Regel ein Symbol zugeordnet, um diesen leicht zuordnen zu können.
2. Funktionsblockbibliothek
In
EasyLab sind die verfügbaren Funktionsblöcke in einer Bibliothek angeordnet. Die Funktionsblöcke sind nach ihrer Funktion in verschiedene Kategorien eingeteilt, um den Überblick zu erleichtern. Außerdem ist es möglich, Funktionsblöcke nach Namen oder Stichwörtern zu suchen.
Typ, Variante und Instanz
Beim Arbeiten mit Funktionsblöcken muss zwischen drei Begriffen unterschieden werden:
- Funktionsblocktypen sind Arten von Funktionsblöcken wie z.B. Addition, Konstante, PID-Regler oder Digitaler Eingang. Jeder Funktionsblocktyp definiert die unter "Aufbau von Funktionsblöcken" beschriebenen Eigenschaften. Jedoch sind Funktionsblocktypen in der Regel für den Benutzer nicht sichtbar.
- Funktionsblockvarianten sind von Funktionsblocktypen abgeleitete Beschreibungen, die in der Funktionsblockbibliothek auftauchen. Jedes Element in der Funktionsblockbibliothek abgesehen von den Kategorien ist eine Variante eines bestimmten Funktionsblocktypen. Varianten können zusätzliche Eigenschaften angeben, z.B.
- Vorgabewerte für Eingänge und Zustandsvariablen
- Eigene visuelle Darstellungsmerkmale
- Funktionsblockinstanzen sind Funktionsblockvarianten, die in einem Programm verwendet werden. Obwohl jede Variante nur einmal existiert, können von einer Variante oftmals mehrere Instanzen gleichzeitig in einem Programm verwendet werden. So ist es beispielsweise möglich, mehrere Funktionsblöcke zur Addition in einem Programm zu verwenden. Beim Instanziieren eines Funktionsblocks wird die jeweilige Variante als Vorlage verwendet, d.h. die Eingänge und Zustandsvariablen werden mit den entsprechenden Werten initialisiert.
Eindeutiger Name
Funktionsblock-Instanzen besitzen zusätzlich zu den von ihrem Typ oder ihrer Variante geerbten Eigenschaften noch einen innerhalb des jeweiligen Unterprogramms eindeutigen Namen.Damit können Funktionsblöcke referenziert werden. Standardmäßig entspricht der Name eines Funktionsblocks dem Namen seiner Variante sowie einer laufenden Nummer, z.B. "Addition (1)".