Scada-Lösungen mit dem Qt GUI Framework
Industrielles Monitoring in Zeiten von Smartphones
Scada-Systeme müssen vor allem zuverlässig sein. Weil das auch oft gut funktioniert, erinnern die HMIs alter Anlagen zuweilen an die Optik von Windows 3.11. Mit dem C++ GUIFramework Qt lassen sich zuverlässige Scada-Lösungen so bewerkstelligen, dass die Oberflächen selbst Smartphone-Anwender zufriedenstellen können.
Alte Scada-Lösungen legen gewissermaßen Zeugnis über die Langlebigkeit einer Infrastruktur ab. Im Zeitalter der Tablets und Smartphones braucht es allerdings zeitgemäße Technologien und Konzepte für eine attraktive Benutzerschnittstelle zur Anlage. Der Qt, C++ und OpenGL Spezialist KDAB Deutschland bietet seinen Kunden solche Lösungen an und setzt dabei ganz auf Qt. Warum ausgerechnet dieses Technologiegerüst zum Einsatz kommt, schildert dieser Artikel.
Nah an der Hardware bleiben
Scada-HMIs bilden in der Regel die Schnittstelle zu Geräten mit strengen Echtzeitanforderungen. Eine leicht verspätete Reaktion kann in bestimmten Fällen genauso schlimm sein wie eine Nichtreaktion. Mit dem C/C++-Backend von Qt können Entwickler Code so entwickeln, dass direkt mit der Hardware kommuniziert wird - ohne virtuelle Laufzeitumgebungen, kein zwischenzeitliches automatisches Speichermanagement oder unvorhergesehene Ereignisse. Die grundlegenden Bausteine jedes Scada-Systems sind speicherprogrammierbare Steuerungen (SPSen), Industriecomputer mit einer großen Anzahl von I/O-Ports, die zum Auslesen von Messgeräten oder zum Kontrollieren von Steuerungsstellgliedern verwendet werden. Die typische SPS-Implementierung bietet für die Datenweitergabe an Kontrolloberflächen ein Memory-Mapping für den Zugriff auf die Werte angeschlossener Hardware. Man muss also in der Lage sein, bestimmte Speicheradressen direkt zu lesen und zu schreiben. Dies ist mit C/C++ (und damit Qt) möglich.
Überall kompatibel anwendbar
Industrie-Kontrollsysteme sollten viele Datenquellen und deren Plattformen flexibel unterstützen. Qt ist auf Wunsch auf den Embedded-Systemen, auf Remote-Desktops und mobilen Geräten zugänglich. Weit verbreitete Echtzeitbetriebssysteme wie VxWorks, QNX, WinRT, Integrity und RTLinux werden von Qt direkt unterstützt, so dass die Software direkt auf der Plattform laufen kann. Qt unterstützt all diese Betriebssysteme ebenso wie konventionellere Desktop-Betriebssysteme wie man sie in Kontrollräumen finden könnte, sowie jene von Telefonen und Tablets. Am wichtigsten ist jedoch, dass für alle diese Plattformen von einer gemeinsamen Codebasis aus entwickelt wird, so dass Entwickler Komponenten erstellen, die in allen drei Umgebungen (Embedded, Desktop und Mobile) wiederverwendet werden können.
Moderne Interaktionskonzepte
Um ein gut benutzbares Scada-System zu erstellen, müssen auch moderne Elemente mit in die Benutzeroberfläche integriert werden. Wer würde heute umständliche Tastaturbefehle, 8-Bit-Grafiken und textlastige Menüs in neuen Systemen integrieren. Alle heute üblichen Bedienkonzepte und Verhaltensweisen der Benutzeroberfläche - wie Drag&Drop, Slider, Touch, Pinch und Zoom, Tabellen und Popups sind Teil von Qt. Das Erscheinungsbild des HMI lässt sich kundenspezifisch individualisieren oder an White-Label-Lösungen anpassen. Dies ist sowohl mit dem bewährten Qt-Widgets-Ansatz von als auch mit den dynamischeren Qt-Quick-Oberflächen möglich. Globale Styleänderungen können in wenigen Klassen vorgenommen werden, die sich dann im gesamten HMI auswirken.
Überwachen auch in 3D
Scada-Anwendungen erfordern heute mitunter dreidimensionale Modelle der zu automatisierenden Fabrikhallen, Gebäuden oder Anlagen. Auch dies ist mit Qt 3D möglich. Es bietet eine Reihe von Klassen mit denen 3D-Objekte geladen und hardwarebeschleunigt dargestellt werden können. Auch lassen sich existierende 3D-OpenGL Visualisierungen von Anlagen, Werkstücke oder Datendarstellungen nativ durch QOpenGLWindow in Qt-Anwendungen integrieren. KDAB bietet außerdem KUESA, eine Zusatzlösung die einen integrierten und vereinheitlichen Workflow für Grafikdesigner und Softwareentwickler ermöglicht um dynamische 3D Inhalte zu erstellen, zu optimieren und in 3D- oder hybride 2D/3D-Benutzeroberflächen zu integrieren. Wie Qt selbst kann KUESA sowohl auf eingebetteten wie auch Desktopplattformen eingesetzt werden.
Bewegtbild
Live-Video wird in Scada-Applikationen verwendet, um Standorte und Geräte aus der Entfernung zu überprüfen und Situationen zu überwachen, die für eine Person vor Ort möglicherweise gefährlich oder zu weitläufig sind. Ob es darum geht, das Kühlsystem eines Kraftwerks zu überwachen, die Lackierarbeiten eines Roboters für Teile an einer Montagelinie zu überprüfen oder eine Qualitätsprüfmaschine zu erkennen, die falsche Produkte akzeptiert - Remote-Kameras sind notwendiger Bestandteil vieler Scada-Systeme. Qt verfügt über APIs zum nativen Einbetten von Videostreams in einzelne Fenster. Ohne spezielle Videomonitore lassen sich so ganze Vorgänge als Teil einer gesamten Kontrollanwendung effizient überwachen.
Fernüberwachen und -steuern
Wenn die Spezifikation es zulässt, sollen sich Scada-Systeme per HMI auch aus der Ferne bedienen lassen. Hierzu liefern die SPSen aus der Hardware Daten, die auf einem Remote-Tablet oder Desktop visualisiert werden. So können Nutzer ihre Geräte aus der Ferne im Auge behalten, selbst über Standorte und Länder. Das ist vor allem entscheidend für SPS-Systeme ohne eigenes Display. Qt verfügt über eine Reihe von Tools für das Fernsteuern. Qt VNC als vielleicht einfachste Lösung bietet einen Remotezugang mit dem standardisierten VNC-Protokoll. Neuere Erweiterungen der Qt-Familie sind WebGL für den Transport von 3D-Anweisungen und schnelles WebAssembly um Qt-Anwendungen direkt im Browser auszuführen, was noch individuellere Remoting-Lösungen ermöglicht. Für Entwickler, die ihre Backend-SPS mit einer Frontend-Anwendung verknüpfen möchten, ermöglichen QRemoteObjects den Austausch logischer Zustandsinformationen zwischen den beiden Anwendungen und halten diese synchron.
Stabil und sicher
Ein Qualitätsmerkmal eines Scada-Systems ist seine Langlebigkeit. Geräte können viele Jahre oder Jahrzehnte lang im Einsatz sein, weshalb kurzlebige Techniktrends oder unbewährte Ansätze in diesem Umfeld meist unangebracht sind. Qt ist eine schon lange am Markt verfügbare und erprobt zuverlässige Technologie. The Qt Company bietet Long Term Support (LTS) für ausgewählte Qt-Versionen an, um für diese Plattformen langfristige Stabilität, Support und Wartung sicherzustellen. Unternehmen, die Qt LTS verwenden, können für ihren jeweiligen Anwendungsfall selbst entscheiden, welche Patches oder Updates sie einspielen möchten, um die Produkte für die kommenden Jahre aktuell zu halten. Je nach Branche können Scada-Systeme unter ISO- oder IEC Zertifizierungsanforderungen fallen. Dafür stellt die Qt Company den Qt Safe Renderer zur Verfügung. Ein sicherheitskritisches System, das grafische Warnungen mit diesem Tool umsetzt, kann nach ISO26262 für Automotive, EN50128 für Bahnsysteme, IEC62304 für medizinische Geräte oder IEC61508 für allgemeine Sicherheitssysteme zertifiziert werden. Um das Scada-System vor unerwünschten Zugriffen zu schützen, werden aktuelle Kryptografie und TLS-Implementierungen eingesetzt. Der Datenaustausch kann mit den zuletzt geprüften Bibliotheken verschlüsselt werden.
Zukunftsfähige Lösungen
Die aufgezählten Argumente zeigen, dass Qt ein hervorragendes Werkzeug ist, um Grafikausgaben für moderne Scada-Systeme zu implementieren, gerade wenn es um attraktive Benutzeroberflächen geht. Denn die Langläufer unter den Industrieanwendungen sollen schließlich auch der Post-Smartphone-Generation noch hinreichend zusagen. n Senior-Softwareentwickler
Scada-Systeme müssen vor allem zuverlässig sein. Weil das auch oft gut funktioniert, erinnern die HMIs alter Anlagen zuweilen an die Optik von Windows 3.11. Mit dem C++ GUIFramework Qt lassen sich zuverlässige Scada-Lösungen so bewerkstelligen, dass die Oberflächen selbst Smartphone-Anwender zufriedenstellen können.
Alte Scada-Lösungen legen gewissermaßen Zeugnis über die Langlebigkeit einer Infrastruktur ab. Im Zeitalter der Tablets und Smartphones braucht es allerdings zeitgemäße Technologien und Konzepte für eine attraktive Benutzerschnittstelle zur Anlage. Der Qt, C++ und OpenGL Spezialist KDAB Deutschland bietet seinen Kunden solche Lösungen an und setzt dabei ganz auf Qt. Warum ausgerechnet dieses Technologiegerüst zum Einsatz kommt, schildert dieser Artikel.
Nah an der Hardware bleiben
Scada-HMIs bilden in der Regel die Schnittstelle zu Geräten mit strengen Echtzeitanforderungen. Eine leicht verspätete Reaktion kann in bestimmten Fällen genauso schlimm sein wie eine Nichtreaktion. Mit dem C/C++-Backend von Qt können Entwickler Code so entwickeln, dass direkt mit der Hardware kommuniziert wird - ohne virtuelle Laufzeitumgebungen, kein zwischenzeitliches automatisches Speichermanagement oder unvorhergesehene Ereignisse. Die grundlegenden Bausteine jedes Scada-Systems sind speicherprogrammierbare Steuerungen (SPSen), Industriecomputer mit einer großen Anzahl von I/O-Ports, die zum Auslesen von Messgeräten oder zum Kontrollieren von Steuerungsstellgliedern verwendet werden. Die typische SPS-Implementierung bietet für die Datenweitergabe an Kontrolloberflächen ein Memory-Mapping für den Zugriff auf die Werte angeschlossener Hardware. Man muss also in der Lage sein, bestimmte Speicheradressen direkt zu lesen und zu schreiben. Dies ist mit C/C++ (und damit Qt) möglich.
KDAB Deutschland GmbH
Dieser Artikel erschien in IT&Production Juli+August 2019 - 18.07.19.Für weitere Artikel besuchen Sie www.it-production.com