JavaDisplayComputing_Anlaufbild_CMYK_300dpi

(Bild: Demmel)

Intelligente Displays unterscheiden sich deutlich von herkömmlichen Displays. Sie sind bereits mit allen für die Ansteuerung eines Displays notwendigen Komponenten ausgestattet. State-of-the-Art sind unter anderem ein leistungsfähiger Controller, ein für alle Anwendungsfälle ausreichend großer Flash-Speicher, serielle Interface-Optionen und Touchpanel-Unterstützung. Die in Software realisierten Features sind wie die übrigen Displaymerkmale herstellerspezifisch sehr unterschiedlich.

Eck-Daten

Hardwaretechnische Features von iLCDs

Kommunikationsschnittstellen

  • RS232
  • USB
  • I2C
  • SPI
  • TCP/IP

Ports für

  • Tastaturmatrix mit bis zu 128 Tasten
  • Digitale IOs
  • Drehgeber
  • ADC-Eingänge für analoge Sensoren
  • DAC-Ausgang
  • Anschluss einer MicroSD-Karte
  • Ansteuerung von Relais
  • PWM-Ausgänge für Lautsprecher

Intelligente Displays werden nicht mehr auf Pixelebene angesprochen, sondern über parametrierbare High-Level-Kommandos. Deren Ausführung ist in der Firmware des Display-Controllers realisiert. Die Lösung zum Erstellen einer ansprechenden Mensch-Maschine-Schnittstelle (HMI) besteht einerseits aus der Hardware des Display-Moduls und andererseits aus einer intuitiven Entwicklungsumgebung. Dabei handelt es sich um ein Windows-basiertes Projektentwicklungs-Tool, mit dem sich alle Panels einer Produktlinie einrichten, konfigurieren, programmieren und testen lassen. Entwickler sind dadurch in der Lage, innerhalb kürzester Zeit Display-Prototypen zu erstellen, die rasch in die Serie übergehen können. Für die Realisierung einer grafischen Benutzerschnittstelle gibt es prinzipiell zwei Möglichkeiten.

Intelligentes Display als Komponente

Bild 1: Screenshot der Entwicklungsumgebung für intelligente Displays.

Bild 1: Screenshot der Entwicklungsumgebung für intelligente Displays. Demmel

Die konventionellen parametrierbaren Kommandos steuern die Display-Anwendung über eine der seriellen Schnittstellenoptionen. Das intelligente Display fungiert als eigenständige passive Komponente, die von der jeweiligen Applikation angesteuert wird. Diese Aufgabe kann eine Gerätebaugruppe, ein (embedded-) Computer oder auch ein einzelner Low-Cost-Mikrocontroller übernehmen.

Dabei führen die steuernden High-Level-Befehle einzelne Aktionen aus und greifen auf die Ressourcen zu, welche mit dem Projekt am Display-Modul abgespeichert wurden. Ressourcen können beispielsweise Grafiken, Fonts, Textbausteine oder Makros sein, die ihrerseits aus Kommandos bestehen. Auf diese Weise lassen sich mit wenigen Befehlen komplexe Aufgaben am Display erledigen. Die Ansteuerung erfolgt schmalbandig über eine der Interface-Optionen und ist über die gesamte Produktlinie gleich. Der Betrieb als „Master-Device“ und eine interne Verarbeitung von in Variablen gespeicherten Werten findet auf herkömmlichen intelligenten Displays nicht statt.

Technologiesprung Java-VM

Ebenso lässt sich die HMI-Applikation in Java realisieren. In der Firmware des intelligenten Displays ist eine Java Virtual Machine (VM) integriert, die kompilierten Java-Code direkt auf dem Panel ausführt. Die Möglichkeit der Programmierung in einer objektorientierten Hochsprache erlaubt neben der HMI-Ablaufsteuerung auch das Durchführen von Berechnungen direkt auf dem Display. Ein weiterer wesentlicher Unterschied ist, dass das intelligente Display dann zu einer aktiven, in einer objektorientierten Hochsprache programmierbaren Komponente wird, die ihrerseits externe Steuerfunktionen übernehmen kann. In diesem Fall ist ein externer Mikrocontroller nicht mehr vonnöten.

Für die Programmierung stehen die üblichen Java-Packages java/lang, java/io, java/util zur Verfügung. In einem spezifischen, auf die intelligenten Displays zugeschnittenen Package sind alle Funktionen, die in den „klassischen“ High-Level-Kommandos realisiert sind, auch in Java verfügbar.

Bild 2: Auto-Completion für Java-Kommandos.

Bild 2: Auto-Completion für Java-Kommandos. Demmel

Java ist die am weitesten verbreitete Programmiersprache, viele Entwickler lernen sie bereits während der Ausbildung. Ein großes Plus ist die gute Verfügbarkeit von frei zugänglichen Algorithmen und Datenstrukturen, die Entwickler in Projekten wiederverwenden können.

Der objektorientierte Ansatz von Java bietet im Gegensatz zu C oder C++ einen wesentlich besseren Schutz vor versteckten Fehlern. Bereits implementierte Features wie die Unterstützung der USB-Schnittstelle unter Java führen zu beschleunigter Entwicklung und machen aufwändige Low-Level-Programmierung unnötig. Die Anwendungsentwicklung über die Entwicklungsumgebung ermöglicht nicht nur eine verbesserte Time-to-Market-Strategie, auch weniger versierte Entwickler können ein Produkt erfolgreich lancieren.

Um die Java-VM einsetzen zu können, bedingt es keiner zusätzlichen oder neuen Hardware, sie lässt sich auch bei älterer Display-Hardware durch ein Firmware-Update installieren. Bei bereits bestehenden Projekten kann Java beispielsweise neue Teile realisieren. Entwickler können die Java-VM innerhalb von 20 ms vom Script weg, also aus einem „klassischen“ Makro heraus, starten. Klassische Kommandos und Java können sie mischen.

Beim Programmieren von Java-Applikationen für intelligente Displays können Entwickler die typischen Eigenschaften der Sprache verwenden. Dazu zählen etwa Multi-Threading und Floating-Point-Operationen, die hier ohne darunterliegendem Betriebssystem zur Verfügung stehen. Ein Event-Dispatcher für Touch-Felder und Keyboard (Observer Pattern) unterstützt das Event-Handling.

Sensoren wie solche für Temperatur, Druck oder Distanz integrieren Entwickler oftmals über I2C. Sie lassen sich mit einer Java-Applikation auf einfache Art und Weise aktiv ansprechen. Das gleiche gilt für Aktoren, die sich oftmals über SPI oder ebenfalls I2C ansteuern lassen.

Das Aufsetzen der gesamten Entwicklungs- und Debug-Umgebung geschieht innerhalb weniger Minuten per Installation oder Update der frei verfügbaren Management-Software. Auch hier ist keine zusätzliche Soft- oder Hardware nötig.

Management- und Entwicklungsumgebung ist Teil der Lösung

Bild 3: Breakpoints und Anzeige der zugehörigen Quellcode-Zeile.

Bild 3: Breakpoints und Anzeige der zugehörigen Quellcode-Zeile. Demmel

Ein wesentlicher Bestandteil einer Lösung zur Integration von Display-Modulen ist die Unterstützung durch eine intuitive Entwicklungsumgebung. Die Software – im aktuellen Windows-Layout gestaltet – bildet zusammen mit den Panels einen ganzheitlichen Ansatz zur Entwicklung moderner Benutzerschnittstellen. Sie erfüllt verschiedene Aufgaben in einem Entwicklungsprojekt: Projekt-Setup, Konfiguration, Management und Programmierung der Displays, Applikations-Entwicklung, Debugging, Simulation.

Grundsätzlich werden in der Entwicklungsumgebung die Ressourcen definiert, die im Betrieb zur Verfügung stehen. Dazu zählen beispielsweise Fonts, formatierte Texte und Grafiken oder die Festlegung von Aktionen bei Betätigen eines Touchfeldes. Die Hardwareeinstellungen der Panels wie die IP-Konfiguration, Verwendung der I/Os und Display-Orientierung definieren Entwickler in den entsprechenden „Settings“. Die oben genannten Einstellungen sind letztlich Bestandteil der Projektdatei, die im Flash-Speicher des intelligenten Displays gespeichert ist.

Um Java-Applikationen zu entwickeln, die auf der oben beschriebenen Java-VM laufen, ist eine vollständige Java-Entwicklungsumgebung im Projektierungstool integriert. Der Editor enthält neben dem üblichen Syntax-Highlighting eine Auto-Completion-Funktion für die implementierten Klassen und Methoden. Die Ergänzungshilfe ist auch für die klassischen Kommandos verfügbar.

Ein integrierter Controller erzeugt die Binärdatei, die das System dann über die USB-Schnittstelle in den Display-Controller lädt. Für die Projektentwicklung von besonderer Bedeutung ist der Debugger. Mit ihm lässt sich ein Remote-Debugging der erzeugten Java-Applikation über die vorhandene USB-Schnittstelle direkt auf dem angeschlossenen Display und virtuell im Simulator durchführen. Der Entwickler kann beliebige Haltepunkte setzen und aus der Haltepunktliste direkt zur zugehörigen Quellcode-Zeile springen. Zudem ist bei den Java-Kommandos das Hineinspringen, Überspringen und Herausspringen möglich. Parallel dazu lassen sich in der Variablen-Inspektion Ausdrücke zur Watchlist hinzufügen und ihre Werte überwachen. Der Debugger aktualisiert die Werte beim „Durchsteppen“ durch die Java-Kommandos (Abbildungen 3 und 4). Diese Leistungsmerkmale sind wie alle anderen hier beschriebenen Funktionen der Management-Software als All-in-One-Lösung in einer einzigen IDE integriert.

Simulator

Bild 4: Variablen-Inspektion mit aktuellen Werten beim Debuggen.

Bild 4: Variablen-Inspektion mit aktuellen Werten beim Debuggen. Demmel

Aus der Management-Software können Entwickler einen Simulator starten, mit dem sie Funktion und Aussehen des grafischen User-Interface testen können, noch bevor der erste Prototyp mit tatsächlicher Hardware existiert. Die Projekte können sowohl Java-Code als auch die klassischen Kontrollkommandos enthalten. Zudem erlaubt der Simulator den Test von Projekten ohne ein physisch vorhandenes Panel. Dazu können Entwickler jedes aktuell erhältliche Panel aus der Produktlinie auswählen. Ein Projekt, das im Simulator läuft, lässt sich unverändert in die Hardware laden und umgekehrt.

Frühzeitige User Interface Evaluation trägt dazu bei, den Entwicklungsprozess weiter zu verkürzen. Anwender können jede verfügbare Zwischenversion testen, ihr Feedback in die Entwicklung einfließen lassen und so mithelfen, kostspielige Fehlentwicklungen zu vermeiden. Der Simulator eignet sich für Projekte, an denen viele unterschiedliche Stakeholder beteiligt sind, deren Entwicklung an unterschiedlichen Standorten stattfindet oder in denen viele Change-Requests vorliegen.

Für alle Display-Modelle stehen Evaluations- oder Starter-Kits zur Verfügung. Diese beinhalten neben dem Evaluation-Board mit herausgeführten Pin-Anschlüssen alle nötigen Hard- und Software-Komponenten. Somit kann der Entwickler innerhalb weniger Minuten mit dem Programmieren und Testen beginnen.

Robustere Lösungen ohne Betriebssystem

Sämtliche Funktionalitäten eines intelligenten Displays sind in einer stabilen Firmware realisiert, die auf einem Controller läuft. Der Verzicht auf ein Betriebssystem schließt Overhead und mögliche Fehlerquellen sowohl im Gesamtsystem als auch in der Entwicklung aus und die Bootzeit ist kaum wahrnehmbar. Unmittelbar nach dem Einschalten der Stromversorgung steht die volle Funktionalität zur Verfügung. Auch im laufenden Betrieb ist das Zeitverhalten ohne Betriebssystem wesentlich besser.

Bild 5: Der Simulator ist Teil der Entwicklungsumgebung.

Bild 5: Der Simulator ist Teil der Entwicklungsumgebung. Demmel

Intelligente Displays sind daher eine Alternative bei kritischen Anwendungen in der Medizintechnik wie auch in der Industrie. Ebenso wie bei heiklen Produktionsprozessen darf ein User-Interface beispielsweise bei lebenserhaltenden Maßnahmen nicht abstürzen. Der Einsatz eines intelligenten Displays trägt wesentlich zur unterbrechungslosen Bedienbarkeit und somit zur funktionellen Sicherheit der Anwendung bei.

Anwendungsgebiete

Am Markt sind viele Visualisierungs- und Steuerungslösungen erhältlich. Bei der Auswahl für den industriellen Einsatz sind Kriterien wie Langzeitverfügbarkeit, Temperaturbereich, mechanische Robustheit, Zuverlässigkeit oder Lebensdauer zu berücksichtigen, die den Kreis der Möglichkeiten einschränken. Typische Anwendungsgebiete für intelligente Displays sind der Maschinenbau, die Medizintechnik, die Elektrotechnik oder der Automotive-Produktionsbereich. Zu finden sind sie unter anderem in Fabriken, Labors, Intensivstationen, Auto-Ladestationen, Zutrittssystemen, Bussen, Montageschiffen und auf Ölbohrplattformen.

Wolfgang Aichberger

(Bild: Demmel)
Marketing- und Sales-Verantwortlicher bei Demmel Products

(prm)

Sie möchten gerne weiterlesen?

Unternehmen

demmel products gmbh

An der Hoelle 31
1100 Wien
Austria