Startseite Über EasyKit Über EasyLab Produkte Partner Downloads Kontakt Suche

Funktionsblockbibliothek

Über EasyLabDokumentation für EntwicklerBibliotheken 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:
  1. Aufbau von Funktionsblöcken
  2. Funktionsblockbibliothek

1. Aufbau von Funktionsblöcken

Konzeptionell umfasst die Definition eines Funktionsblocks folgende Komponenten:
  1. Typ (Klasse)
  2. Eingangskonnektoren (Eingänge) mit Vorgabewerten
  3. Zustandsvariablen
  4. Ausgangskonnektoren (Ausgänge)
  5. Verhaltensbeschreibung
    1. Simulationsbeschreibung
    2. Codevorlagen
  6. Visuelle Darstellung
    1. Benutzerfreundlicher Name
    2. 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.
Funktionsblock-Symbol

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)".