Embedded Grafik

Embedded Grafik

Visualisieren ohne
Programmieren

Die Anforderungen an die Anzeigequalität und Bedienmöglichkeiten von Mensch-Maschine-Interfaces von Anlagen oder Geräten steigen ständig. Hier setzten Vorbilder aus der ‚Consumerwelt‘ wie Smartphones Maßstäbe. Ansprechende, animierte Objekte sind inzwischen auch für Embedded-Anwendungen zunehmend von Interesse. Dazu werden u.a. aufwändige Grafiken mit Farbverläufen, Schattenwürfen, 3D-Darstellung, animierte Objekte für bewegte Darstellungen von Prozesszuständen oder Touch-Funktionen benötigt.

Entkoppelung der Visualisierung von der Maschinenlogik durch die Middleware (Bild: XiSys Software GmbH)

Entkoppelung der Visualisierung von der Maschinenlogik durch die Middleware (Bild: XiSys Software GmbH)


Programmierer von Maschinenprozessen sind mit der Umsetzung dieser Grafikanforderungen häufig überfordert. Mit der modellorientierten Methode ‚Visualisieren ohne zu Programmieren‘ bietet XiSys einen neuen Ansatz, schneller und kostengünstiger ans Ziel zu gelangen. Durch das Abbilden der Visualisierungsaufgaben in einem Modell und dem daraus resultierenden Wegfall der Hochsprachenprogrammierung reduziert sich der Aufwand zum Erstellen einer Visualisierung auf das grafische Design von Objekten und Bildschirmmasken und deren Verknüpfung mit den zu visualisierenden Daten. Stellen Sie sich vor, Sie entwickeln eine neue Maschine und müssen im Rahmen dessen auch eine Bedienung bzw. Visualisierung realisieren. Nach intensiver Analyse der zu erledigenden Aufgaben und der zur Verfügung stehenden Lösungen werden sich folgende Kernpunkte herauskristallisieren: Primär ist zu klären, welche Daten visualisiert werden müssen und wie der Zugriff auf diese Daten erfolgt. Für die spätere Anzeige müssen die Wertebereiche, Grenzwerte und Datentypen ermittelt bzw. festgelegt werden. Zudem wollen diese Daten auch verwaltet und organisiert werden. Für die Darstellung wird ein Anzeigemedium ausgewählt. Dies kann eine lokale Grafik, ein PC mit Windows oder ein Webbrowser sein. Dementsprechend müssen die Bildschirmmasken aufgebaut werden. In vielen Fällen ist eine Interaktion mit dem Bediener erforderlich. Das heißt, es müssen die Ereignisse, die vom Bediener ausgelöst werden, weitergereicht oder behandelt werden. Die Abarbeitung dieser Aufgaben erfolgt oft in einem individuellen Programm, das unter Zuhilfenahme einer Hochsprache erstellt wird. Hierfür stehen meist hohe Investitionskosten an. Bei genauer Betrachtung der Aufgaben des Visualisierungsprogramms ist festzustellen, dass für viele Visualisierungs- und Bedienaufgaben ähnliche Voraussetzungen anzutreffen sind und ähnliche logische Abläufe realisiert werden müssen. Warum also nicht diese Aufgaben durch ein Modell beschreiben und dieses Modell in einem allgemeinen Visualisierungsprogramm abbilden? Die individuellen Unterschiede der Visualisierungsaufgaben lassen sich in einer Konfigurationsdatei erfassen und von einem Visualisierungsprogramm zur Laufzeit interpretieren.
Das Visualisierungsmodell und seine Schnittstellen (Bild: XiSys Software GmbH)

Das Visualisierungsmodell und seine Schnittstellen (Bild: XiSys Software GmbH)

Voraussetzungen für das Abbilden im Modell

Das Abbilden der Aufgaben in einem Modell erfordert einige Voraussetzungen: Die Visualisierungslogik muss autark lauffähig und entkoppelt von der Ablauflogik der Maschine sein. Zudem muss sie automatisch generiert werden können. Interaktionen mit der Ablauflogik der Maschine erfolgen ausschließlich über eine Datenrepräsentanz im Datenmodell. Es muss eine Möglichkeit geschaffen werden, die es erlaubt, individuelle Anzeige- und Bedienobjekte zu entwerfen und zu dynamisieren, ohne expliziten Programmcode einer Hochsprache zu verwenden.

Notwendige Abstrahierung

Um Visualisierungsaufgaben von der Ablauflogik und der Hardware einer Maschine sauber zu trennen, ist eine Abstrahierung der Daten zwingend notwendig. Das Abstrahieren erfolgt in einer Zwischenschicht (Middleware), die alle für die Visualisierung und Bedienung der Maschine benötigten Größen verwaltet und zur Verfügung stellt. Mit Hilfe der Abstraktionsschicht können auch verschiedene Standards eingebunden und unterstützt werden, wie z.B. OPC UA, Gamma, lokale Datenmodelle, Soft-SPS usw. In der Middleware werden in hierarchisch organisierten Strukturen Variablen angelegt. Jede Variable kann über ihren Namen adressiert werden. Eine Variable repräsentiert u.a. einen Wert (physikalischer Wert, Zustand, Text etc.), einen Zeitstempel, optional Grenzwerte für Skalierungen und den Datentyp. Für Interaktionen mit der Ablauflogik der Maschine besteht die Möglichkeit, Variablen für die bidirektionale Verwendung zu definieren. Diese Variablen können durch eine Benutzereingabe geändert werden. Dadurch kann die Ablauflogik zu Reaktionen auf Ereignisse veranlasst werden.

Visualisierungsmodell als Herzstück

Das eigentliche Herz der Visualisierung ist das Visualisierungsmodell. Im Modell sind alle Regeln, die für Visualisierungen nötig sind, festgelegt. Das Regelwerk des Modells ist als Programmlogik im Visualisierungsprogramm komplett abgebildet. Das Visualisierungsprogramm lädt nach dem Start aus einer Konfigurationsdatei sein individuelles Regelwerk. Somit weiß das Programm, welche Variablenwerte wann und wo angezeigt werden sollen. Es werden die in der Konfiguration spezifizierten Bildschirmmasken geöffnet, die zugehörigen Variablen ermittelt und deren Werte zur Weitergabe an Anzeigeobjekte aufbereitet. Die Variablenwerte erfahren eine Transformation vom ursprünglichen Wertebereich in den Wertebereich des Anzeigeobjektes. Zu den Aufgaben des Visualisierungsprogramms zählt auch das Handling von Benutzereingaben. Sobald der Benutzer ein Ereignis auslöst, wird die Reaktion darauf in der Konfiguration gesucht. Mögliche Aktionen könnten sein: Manipulieren einer Variablen, Ändern eines Objektes, Umschalten der Landessprache, Öffnen oder Schließen von Bildschirmmasken usw. Der HMI-Editor ist ein Werkzeug, mit welchem Bildschirmmasken und das zugehörige Regelwerk für die Visualisierung erstellt werden. Bildschirmmasken werden aus Standardobjekten und in letzter Zeit immer häufiger aus kundenspezifischen Objekten aufgebaut. Mit dem HMI-Editor werden Objekte ausgewählt und in einer Bildschirmmaske platziert. Danach können die Eigenschaften der Objekte eingestellt werden. Zu diesen Eigenschaften zählen u.a. Verknüpfungen mit Variablen und Reaktionen auf Benutzereingaben. Der HMI-Editor ist auch bei der Erzeugung und Verwaltung von hierarchischen Variablenstrukturen, wie sie in der Middleware verwendet werden, behilflich. Es können sowohl Variablenstrukturen importiert als auch neue Variable erzeugt werden.

Unterstützung individueller Objekte

Die größte Herausforderung zur Umsetzung des Konzeptes ist die Unterstützung von individuellen, dynamisierbaren Objekten. Üblicherweise entwerfen Designer die Objekte und Programmierer erstellen die nötige Software für die Dynamik. Diese Vorgehensweise erfordert einen hohen Zeitaufwand mit damit verbundenen Kosten. Eine Lösung dieser Problematik sind Objekte, welche die Logik in Form einer eingebetteten Interpretersprache beinhalten, die zur Laufzeit interpretiert wird. Aus diesem Grund wurde eine erweiterte Beschreibungssprache für Vektorobjekte entwickelt. Diese Sprache ist im Objekteditor von XiSys, der wie ein Zeichenwerkzeug verwendet werden kann, vollständig abgebildet. Somit ist ein Designer in der Lage, die Dynamisierungslogik schon während der Entwurfsphase im Objekt selbst zu hinterlegen. Eine weitere wichtige Eigenschaft ist die Sprachunabhängigkeit der Objekte. Das heißt, die Objekte müssen zu jedem Zeitpunkt in der Lage sein, textbasierte Einträge selbstständig durch Einträge einer anderen Sprache auszutauschen. Die Realisierung dieser Aufgabe erfolgt durch das Einführen von nachträglichen Verweisen auf Textobjekte in einer Ressource. So kann einem Objekt durch den HMI-Editor ein individueller Texteintrag nachträglich zugewiesen werden. Mit diesen Verweisen lässt sich auch die Sprachumschaltung ‚on the fly‘ jederzeit durchführen.

Dynamisierung von Objekten ohne Hochsprache

Dynamisiert wird durch das Ändern des Wertes eines sogenannten Animationseintrages. Animationseinträge sind Vektoren, die mit einem ASCII-Namen adressiert werden. In Animationseinträgen werden Wertebereiche für die interne Skalierung und externe Repräsentation festgelegt. Außerdem kann zwischen verschiedenen Verhaltensmustern ausgewählt werden (z.B. Animation via Maus, Touch, Software usw.). Beschreibende Vektoren legen geometrische Eigenschaften, wie den Ort oder den Rotationswinkel fest. Zusätzlich bestimmen sie auch optische Eigenschaften wie Farben, Schatten, Transparenz usw. Alle Eigenschaften können durch Referenzieren auf einen Animationseintrag manipuliert werden. Das heißt, durch Ändern des Wertes eines Animationseintrages werden alle Eigenschaften von Vektoren, die sich auf diesen Eintrag beziehen, gleichzeitig geändert. Das Animieren eines Objektes wird angestoßen durch Softwarebefehle aus einem Programm, die Verknüpfung mit einer Variablen oder durch eine Benutzereingabe via Maus oder Touch. Die Vorteile sind, dass Visualisierungsaufgaben durch ein Modell beschrieben und in einem Visualisierungsprogramm abgebildet werden. Wiederkehrende Programmierarbeiten in einer Hochsprache entfallen. Der HMI-Editor übernimmt als Maskengenerator und Verknüpfungswerkzeug die gestalterischen Aufgaben und erzeugt das Regelwerk für das Visualisierungsprogramm. Die neue Programmiersprache für dynamisierbare Objekte in Verbindung mit dem Objekteditor ermöglicht es dem Grafikdesigner, Objekte zu entwickeln und selbstständig mit Leben zu erfüllen. Somit entfallen alle Programmierarbeiten zugunsten von Konfigurationsarbeiten.

XiSys Software GmbH
www.xisys.de

Das könnte Sie auch Interessieren