DESIGN-Praxis / embedded-HMI Qt OPC UA – Ein Tutorial

Mit der Verbreitung von OPC UA in der Industrieautomation sind zunehmends flexible embedded-HMIs gefragt. Open Source Qt stellt eine flexible Alternative zu proprietären Einzelanbieterplattformen. Das Tutorial zeigt eine generische Implementierung.

Getrieben durch immer größere Ansprüche an die Kommunikationsfähigkeit industrieller Anlagen und Anwendungen hat sich OPC UA als offener, umfassender Kommunikationsstandard etabliert. Dabei formuliert OPC UA den Anspruch, durchgängig vom Sensor über die SPS bis hin zu IT- und Warenwirtschaftssystemen nutzbar zu sein. Plattformunabhängigkeit und Modularität machen den Standard zu einem zentralen Element der Industrie 4.0.

Qt ist ein populäres cross-plattform C++-Framework, das aufgrund seines großen Funktionsumfangs und einer nachhaltigen API-Strategie gerne für die Entwicklung industrieller Anwendungen eingesetzt wird. Der Fokus von Qt liegt auf der Entwicklung von HMIs, es kann aber ebenso für Headless-Anwendungen eingesetzt werden. Bei Qt  handelt es sich um Open Source Software.

Qt OPC UA ist ein neues Modul, das Ende Mai 2018 mit Qt 5.11 als TechPreview veröffentlicht wird. Das Ziel von Qt OPC UA ist die möglichst einfache Integration von Geräten mit OPC-UA-Schnittstelle und Qt-Anwendungen. Qt OPC UA stellt eine Untermenge der OPC-UA-Spezifikation als asynchrone C++-Client-API zur Verfügung. Die dazu notwendige OPC-UA-Kommunikation wird durch zur Laufzeit ladbare Plugins implementiert, die unterschiedliche OPC-UA-Bibliotheken anbinden.
Aktuell verfügbar sind Plugins für open62541 (MPLv2) und FreeOPCUA (LGPLv3) sowie für das unter kommerzieller Lizenz stehende OPC-UA-C++-SDK der Firma Unified Automation [1]. Der mit Qt 5.11 veröffentlichte Stand umfasst das Lesen und Schreiben von Attributen, Methodenaufrufe, das Aktivieren, Deaktivieren und Modifizieren von Subscriptions/MonitoredItems (Data Change), das Auffinden von Kindern eines Knotens im OPC-UA-Adressraums und das Auslesen des Namespace-Arrays des verbundenen Servers.

Qt OPC UA wurde von der basysKom initiiert und weiterentwickelt. basysKom stellt den Modul-Maintainer. Der Code ist, wie im Qt-Projekt üblich, wahlweise unter drei Lizenzen verfügbar: Commercial, GPLv2 und LGPLv3. Für Besitzer einer "Qt for Automation"-Lizenz wird Qt OPC UA im regulären Installer verfügbar sein. Ansonsten muss das Modul aus den Quellen gebaut werden. Die dazu nötigen Schritte sind in [2] dokumentiert.