Cross-Plattform-Entwicklung: Qt adressiert den Automatisierungssektor

Die Suite Qt for Automation zielt auf Anwendungen im Bereich Internet der Dinge beziehungsweise Industrie 4.0. Sie setzt auf Qt 5.9 auf und bringt zusätzliche Bibliotheken, unter anderem zur Implementierung des IoT-Protokolls MQTT.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Qt öffnet sich dem Automatisierungssektor
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Qt Company bringt mit Qt for Automation eine Suite, die speziell auf den Bereich Industrie 4.0 ausgelegt ist. Unter Automation verstehen die Macher dabei das Zusammenspiel der verbundenen Endgeräte mit den zugehörigen mobilen oder Desktopanwendungen. Als konkrete Beispiele nennt der Blogbeitrag zur Einführung von Qt for Automation unter anderem Smart Factories und Gebäude-Automatisierung.

Die Grundlage bildet Qt 5.9.x LTS (Long-Term Support), das im Juni erschienen ist. Für den Embedded-Bereich haben die Macher durch die Einführung von Qt Lite in Version 5.8 bereits eine Basis geschaffen. Es bietet verstärkte Modularisierung, wobei sich die benötigten Komponenten über das Qt Lite Configuration Tool passend mit den benötigten Komponenten zusammenstellen lassen. Das verringert sowohl den Speicherbedarf als auch die Startzeit der Anwendung.

Eine wichtige neue Komponente trägt den wunderschönen Namen QtMqtt. Dabei handelt es sich um die Client-Implentierung des im Internet der Dinge verbreiteten MQTT-Protokolls. Es deckt die aktuellen Protkollebenen 3.1 beziehungsweise 3.1.1 ab. Allerdings ist die Qt-Implementierung nicht auf das Erstellen von MQTT-Brokern ausgelegt. QtMqtt kennt alle QoS-Levels (Quality of Service), Wildcards zum Abonnieren mehrerer Topics sowie Last Will (letzter Wille) zur Bearbeitung unvorhergesehene Verbindungsabbrüche.

Zur Absicherung der Verbindungen bietet QtMqtt Authentifizierung über eine Kombination aus Nutzername und Passwort sowie SSL- (Secure Sockets Layer) beziehungsweise TLS-Verschlüsselung (Transport Layer Security). Dafür lassen sich QSslSocket-Objekte verwenden, und die Methode QMqttClient.connectToHostEncrypted() ist an die entsprechende Parameterliste von QSslSocket angepasst. QtMqtt lässt sich unter Verwendung der QWebSocket-Klasse auch für MQTT over Websockets verwenden.

Die Bibliothek QtKnx zielt vor allem auf den Bereich der Gebäude- beziehungsweise Heimautomatisierung. Sie bildet eine Schnittstelle zum KNX-Protokoll und besitzt insofern einen Sonderstatus, als sie nicht nur als Teil von Qt for Automation, sondern auch unter der GPL v3 Lizenz verfügbar ist.

Im ersten Schritt lässt sich QtKNX nutzen, um KNX-Clients zu erstellen, die mit vorhandenen KNX-Servern kommunizieren. Entwickler können über QKnxNetIpTunnelConnection Tunneling verwenden. Die Client-Funktionen will die Qt Company in Kürze erweitern, eine Implementierung für KNX-Server steht auf der langfristigen Roadmap.

Beispielanwendung eines QtKnx-Clients

(Bild: Qt)

Auch das Gesamtpaket soll mittelfristig zusätzliche Bibliotheken für unterschiedliche Anwendungen und Protokolle erhalten. Ganz oben stehen wohl derzeit das M2M-Kommunikationsprotokoll OPC UA (Unified Architecture) und das Advanced Message Queuing Protocol (AMQP).

Weitere Details lassen sich den Blogbeiträgen zu Qt for Automation, QtMQTT und QtKnx sowie der Projektseite entnehmen.

Siehe dazu auf heise Developer:

(rme)