HMI und Visualisierung für Maschinen selbst programmieren

20.09.2022 Technischer Artikel

REACT HMI Demo Suchst Du nach Tools, um ein HMI oder eine Visualisierung für Deine Maschine oder Deine Anlage zu entwickeln? Die Programmierung eines HMIs ist ein wichtiger Teil einer Maschine, wenn nicht sogar die wichtigste, um Funktionen und Konzepte leicht an Deine Kunden und die Operatoren zu vermitteln.

Außerdem solltest du auf die gestiegenen Erwartungen Deiner Kunden eingehen – ein HMI mit ein paar grauen Buttons und ein paar farbloser Textboxen mit Zahlenwerten gehören der Vergangenheit an. Deine Kunden erwarten ein ästhetisch und modernes User Interface am Puls der Zeit. Die Bedienung einer Maschine muss so einfach sein, wie das Bedienen deines Smartphones. Die HMI Entwicklung nach modernen Kriterien erklären wir in diesem Artikel.

Bei X-WORKS lehnen wir uns bei HMI Projekten an den Aufbau von Smartphone Screens an, dessen Bedienung aktuell der kleinste gemeinsame Nenner ist. Wenn jemand ein Smartphone mit Burger Button und Menüfunktionen beherrscht, soll er damit schon in der Lage sein, die wichtigsten Funktionen einer Maschine zu verstehen.

Langwierige Einschulungen und Erklärungen die Visualisierung betreffend, sind Vergangenheit. In der Schulung der Operatoren soll das Augenmerk auf Abläufe und Produktionsprozesse der Maschine selbst gerichtet sein. Das HMI muss sich selbst erklären.

Wie Du diesen Erwartungen Deiner Kunden gerecht wirst, die 2 grundsätzlichen Wege ein HMI zu entwickeln, und die 4 wichtigen Punkte zum Thema HMI, erklären wir in diesem Artikel. Dieser Artikel wird regelmäßig aktualisiert, also zögere nicht, bei Bedarf wiederzukommen!

2 grundsätzliche Arten von HMIs?

Wenn Du ein neues HMI für deine Maschinen entwickeln willst, stehen 2 grundsätzliche Wege offen:

  • HMI in der Programmierumgebung der PLC entwickeln: Hersteller von PLCs (SPS) liefern eine Plattform zur Erstellung von HMIs üblicherweise mit. Mit den inkludierten Tools der Hersteller, kannst Du direkt in der PLC Software auch das HMI mitentwickeln. Das mag auf den ersten Blick verlockend wirken, weil die komplette Software in einer Umgebung entwickelt werden kann. Du kannst das HMI direkt an die SPS anbinden. Die Hersteller liefern dazu in der Programmierumgebung eine Lösung mit, wie sich das bewerkstelligen lässt.

    Diese ist sinnvoll, wenn Du z.B. nur eine Serie von Maschinen entwickelst und immer den gleichen Hersteller von PLCs einsetzt. Dann kann das HMI direkt in dieser Umgebung mitgestaltet werden. Dieser Ansatz hat aber aus Sicht der Gestaltungsfreiheit meist Einschränkungen.

  • HMI mit externen Programmierplattformen entwickeln: Willst Du ein wirklich modernes und hoch funktionales HMI für Deine Maschinen haben, dann wirst Du eher nur mit dieser Variante zum Ziel kommen. Du trennst deine Software in 2 klar abgegrenzte Teile.

    Den Teil der sich rein um die Steuerung der Maschine kümmert. In welcher Umgebung oder Sprache Du die Entwicklung umsetzt, ist meist zweitranging. Wichtiger ist hier die funktionale Lösung der Maschinensteuerung, d.h. dass Du hier möglichst effizient zum Ziel kommst, der Maschine das beizubringen, was sie eigentlichen tun soll.

    Und als anderen Teil das User Interface bzw. HMI. Hier kannst du dir dann aus den für dich besten Programmiersprachen und Frameworks das richtige aussuchen. Welche Tools Du dafür einsetzen kannst, erklären wir etwas weiter unten im Artikel.

REACT Demo HMI
REACT Demo HMI

Das REACT Demo HMI kann hier ausprobiert werden: LiveDemo

Nach der Umsetzung einer Vielzahl von HMIs für unterschiedliche Maschinen und Industrien bei X-WORKS, sehen wir eine klare Tendenz in Richtung Einsatz einer externen Programmierplattform für das HMI. Mit diesem Ansatz können die Projekte deutlich besser an die Kundenwünsche angepasst werden. Es lässt sich das HMI individueller und präziser gestalten. Die gewünschten Animationen in den letzten Projekten konnten speziell mit .NET und XAML rasch und effizient umgesetzt werden. Ein weiterer Vorteil sind die verfügbaren Libraries für .NET, die unkompliziert über NuGet eingebunden werden können. Die 4 wichtigsten Libraries aus unseren letzten Projekten sind:

  • ReactiveUI mit dem integrierten Routingkonzept zur Definition von Views oder View-Regionen und das Routing durch die Views. Die HMI Entwicklung mit ReactiveUI bietet den Vorteil auf bereits einer bestehenden Umgebung losstarten zu können.
  • RestSharp zur Anbindung des UIs an die Maschine, über einen Server oder an das Backend zur Datenbereitstellung
  • TinyEventAggregator zur losen Kopplung von Elementen innerhalb des HMIs und der Ansteuerung von Funktionen in anderen Modulen mittels Events
  • Dependency Injection zur Bereitstellungen von Diensten, welche zentrale Funktionen übernehmen, Dependency Injection bietet den Vorteil oft benötigte Klassen bei der Erzeugung über den Konstruktor einfach mitzubekommen

Die 4 wichtigsten Punkte zum Thema HMI

Wenn Du beginnst, ein HMI zu planen oder entwickeln, solltest Du dir vor dem Projektstart ein paar Gedanken zum Aufbau und Deinen Tools machen. Wir haben dir hier die 4 wichtigsten Punkte aus unseren Erfahrungen aus einer Vielzahl an programmierten HMIs zusammengefasst:

1. Aufbau eines intuitiv bedienbaren HMI

Wie soll Dein HMI aufgebaut werden? Diese Frage stellt sich immer zu Beginn eines solchen Projektes. Unsere Erfahrung nach macht es Sinn einen Top-down Ansatz zu verfolgen, wenn es um die Navigation und die dargestellten Informationen geht. Überlege welche Menüpunkte dein HMI benötigen wird, in welche Reihenfolge die Menüpunkte sinnvoll angeordnet sind. Und auch gleich, ob es unterschiedliche Benutzerrollen geben wird, oder ob es nur einen Benutzer gibt, der alle Menüpunkte aufrufen darf.

Wenn es dann um die Frage nach den notwendigen Controls geht, ist der Bottom-up Ansatz besser. Bevor noch die Screens im Detail ausgestaltet werden, solltest Du alle Arten von notwendigen Controls auflisten und festlegen, wie sie funktionieren. Erst wenn Du für alle Use Cases die Controls festgelegt hast, ist es sinnvoll mit der Detailplanung der Screens zu beginnen.

2. Burger Button und Burger Menü

Um die oben angesprochene einfache Bedienung zu ermöglichen, setzen wir auf auch bei Maschinen auf Burger Button und Burger Menü. Das mag zwar auf den ersten Blick für alteingesessene Maschinenbauer und SPS-Programmierer überraschend oder gar zu progressiv wirken, macht dennoch Sinn. Denn die Bedienung eines Smartphones ist in der Zwischenzeit bei jedem Operator angekommen. Mit dem Einsatz bekannter Elemente und deren Funktion sparst Du dir unnötige Zeit beim Erklären und beugst Missverständnissen vor.

Das sind nur 2 Elemente, die von Smartphones bekannt sind. Da gibt es noch weitere Elemente, aus der Welt der Smartphones:

  • PIN-Eingaben und PIN-Tastaturen
  • Play-Button zum Starten eines Vorganges
  • Schieber zum Aktivieren / Deaktivieren
.NET WPF Demo HMI
.NET WPF Demo HMI

3. Plattformen und Frameworks

Wenn Du dich für den Einsatz einer externen Programmierplattform entschieden hast, stellt eine C# .NET Lösung mit WPF und XAML aktuell eine sehr moderne und schnell zu implementierende Plattform bereit. Mit WPF können so ziemlich alle auch noch so ausgefallenen Kundenwünsche, angefangen von Animationen beim Screenwechsel, über visualisierte Abläufe an Maschinen bis hin zu detailliert ausgestalteten Diagrammen und Prozesskurven, rasch umgesetzt werden.

Als Alternative zur .NET Plattform bieten sich UI-Frameworks wie REACT oder Flutter an. Diese haben den Vorteil vollständig in JavaScript bzw. TypeScript programmiert zu werden und die erstellten HMIs sind zugleich auch webtauglich, z.B. für die Remotedarstellung oder für Demozwecke.

Mit beiden Plattformen können moderne UIs umgesetzt werden. Die .NET Plattform hat die Nase vorn, wenn es um die feine und präzise Gestaltung der Details und Animationen geht. Die UI-Frameworks sind besser, wenn es um einen Einsatz des gleichen HMIs auf unterschiedlichen Systemen geht. (Wobei hier anzumerken ist, dass wir bei X-WORKS Kunden haben, für wir ein .NET HMI plus Steuerung auf embedded Linux umgesetzt haben)

4. Remotezugriff

Das HMI soll eine Funktion zum Remotezugriff haben. Speziell nach der Auslieferung der ersten Maschinen ist oft notwendig noch kleinere Korrekturen durchzuführen oder Fehler zu beheben. Deswegen ist ein Remotezugriff auf das HMI also auf das User Interface wichtig. Die meisten Plattformen ermöglichen die Installation eines passenden Tools.

Sollte das dennoch nicht möglich sein, z.B. hatten wir einen Kunden, wo unser .NET HMI native auf Linux ausgeführt wurde und das .NET Programm direkt in das Framebuffer Device des Linux Systems den Bildschirm geschrieben hat. Dort war kein X Window vorhanden und damit kein Tool für den Remotezugriff über Screen verfügbar. Wir fanden die Lösung bei diesem Projekt in unserem IoT Framework mit Anbindung zu unserer Predictive Maintenance Console.

Ok, jetzt habe ich alle Infos…Was jetzt?

So…du hast es bis hier her geschafft. Jetzt gibt es noch von uns ein wichtiges Endstatement und einige Fragen:

  1. 1. Habe ich Erfahrung mit der Gestaltung von HMIs?
  2. 2. Was verstehe ich von der Programmierung von wiederverwendbaren User Controls?
  3. 3. Wie bekommen die User Controls die Daten von der Maschine?
  4. 4. Falls sie mit REST, oder OPC UA oder SECS/GEM oder … geladen werden, habe ich Erfahrung mit diesen Protokollen und Schnittstellen?
  5. 5. Wie sollen die Eingabedaten vom HMI an die Maschine gesendet werden?
  6. 6. Ist das Interface zwischen HMI und Maschine klar und schlank aufgebaut und lässt einfache Erweiterungen zu?
  7. 7. Habe Erfahrung mit der Programmierung von Animationen?
  8. 8. Wie viel Erfahrung habe ich mit der Entwicklung von integrierten oder standalone HMIs?
  9. 9. Was verstehe ich vom Aufbau von Diagrammen zur Anzeige von Prozessverläufen?
  10. 10. Habe ich schon eine Idee, wie der Remotezugriff erfolgen kann?

All diese Fragen solltest Du unbedingt beantworten können, noch bevor das Projekt zu weit fortgeschritten ist. Wenn Du zu Beginn dir ausreichend Gedanken über das Konzept und die Softwarearchitektur machst, bringt Dir das klare Vorteile. Denn nur mit einer gut durchdachten Struktur kannst Du auch im Laufe des Projektfortschritts auf Anpassungen einfach reagieren.

Wenn das Thema Neugestaltung eines modernen HMIs eher Neuland ist, bieten wir all unseren Interessenten ein kostenloses Erstgespräch an. In diesem Erstgespräch gehen wir auf Deine konkreten Anforderungen ein und erstellen Dir kostenlos einen Schritt für Schritt Umsetzungsplan. Fülle einfach das Formular hier unten aus.

Gleich mehr Infos erhalten ✍️


CAPTCHA