qt opc ua-an overview · qt opc ua-an overview presented by: michele rossi-the qt company frank...
TRANSCRIPT
Qt OPC UA- An OverviewPresented by:Michele Rossi- The Qt CompanyFrank Meerkötter- basysKom
6/15/2018 Automation 20181
19 June, 2018
6/15/2018 Automation 20182
The Qt CompanyMichele Rossi, Product Manager Automation
The Qt Company at a Glance
36.3 M€
2017 Revenue
11.9 %
2017 YoY Growth
-3.2 M€
2017 EBIT 1995
285Professionalsin twelve countries, 1Q 2018
>5,000Customers
>70Industries
>1M
Developers2006 2008 2011 2012 2015 2016
Trolltech IPOto Oslo exchange
First public versionof Qt released by
Trolltech (Norway)Trolltech
acquired by Nokia
Digia acquired Qt Commercial licensing business from Nokia
Digia acquired”All rights to Qt”
from Nokia
”The Qt Company”becomes its own entity,
a subsidiary of Digia
Qt Group Plc demerger from Digia, listed independently in
NASDAQ Helsinki
2017
Raised 15 M€ equity to fund
growthinvestments
Qt in Industrial & Infrastructure AutomationSolutions at the edge of the internet
6/15/2018 Automation 20184
Remote UI
Connectivity
Tooling
Safety and Security
Advanced UI
Add-onQt for
Automation 5.11(Qt 5.11)
Qt VNC
Qt WebGLStreaming (TP)
Qt Webassembly (TP)
Qt SerialBus
Qt MQTT ✓
Qt KNX ✓
Qt OPC UA ✓ (TP)
Commercial License Evaluation License
15/06/18 Automation 20185
How to get ‘Qt for Automation‘
Qt for ApplicationDevelopment
Qt for Automation add-ons
Qt for Device Creation
1. Ask your Sales representative2. Download at https://www.qt.io/qt-in-automation/
1. Purchase add-on license for your existing Qt license2. Contact your Qt Sales representative for a quote
QT OPC UA – AN [email protected] 06/2018
19.06.2018FRANK MEERKÖTTER
Contents▪ About basysKom
▪ OPC UA – in a hurry
▪ Qt OPC UA
▪ Live demo
▪ Future directions
▪ Q&A
19.06.2018FRANK MEERKÖTTER
About basysKom▪ Long time Qt service partner
▪ Focused on embedded systems and industrial applications
▪ Customers in machine manufacturing, automation & measurement devices
▪ Located in Germany (Darmstadt/Nuremberg)
▪ Consulting, training, development
▪ www.basyskom.com
19.06.2018FRANK MEERKÖTTER
About myself▪ Development Lead
▪ Maintainer of Qt OPC UA
19.06.2018FRANK MEERKÖTTER
OPC UAIn a hurry
19.06.2018FRANK MEERKÖTTER
OPC UASuccessor to OPC (classic)
M2M communication protocol and architecture
Core Applications Industrial automation (eg. manufacturing)
Process control (eg. chemical processes)
Goal: Interoperability!
Developed by the OPC Foundation Open Standard, freely available
IEC 62541
Core standard 14 parts, over 500 pages
Companion standards Information models and definitions for certain problems/industries
15 and counting
19.06.2018FRANK MEERKÖTTER
Client/ServerWhere are servers to be found? Sensors
PLC
Aggregating servers
IT
Where are clients to be found? HMI/Visualization
Applications
PLCs
Aggregating servers, IT
Servers provide a fixed set of standardized services Clients consume these services Services allow to access and manipulate data on the server
Devices can be servers as well as clients at the same time
19.06.2018FRANK MEERKÖTTER
Data modelingServers organize data in an address space Split into name spaces
Fully meshed graph of nodes and references
Nodes contain attributes (values, descriptions, display names, …)
References have defined semantics (HasChild, HasComponent, Organizes, …)
Address space contains data AND meta data
Self describing
Standardized modeling rules
Standardized information models
19.06.2018FRANK MEERKÖTTER
Services
10 service sets Session Browse Attribute MonitoredItem Subscription ...
19.06.2018FRANK MEERKÖTTER
QT OPC UA
19.06.2018FRANK MEERKÖTTER
What is Qt OPC UA?A new Qt module 2015: Initiated and upstreamed by basysKom
2016: Research, user feedback
2017: Implementation of a new API concept
2018: Technology preview in Qt 5.11
One full time developer and the module maintainer are employed by basysKom
API
Wrapper for existing stacks open62541 (Open Source)
Unified Automation (Commercial)
19.06.2018FRANK MEERKÖTTER
Goals of Qt OPC UAFocus on the development of HMIs and visualizations
Goals Client API
Well integrated into Qt
Easy to use API
Qt types
Non-goals Server API, high performance applications
19.06.2018FRANK MEERKÖTTER
API elementsQOpcUaClient Connection management
Creation of node objects
See doc-snapshots.qt.io/qtopcua/qopcuaclient.html
QOpcUaNode Abstraction for server side nodes and attributes
Reading/writing of attributes
Allows to setup subscriptions and monitored items
See doc-snapshots.qt.io/qtopcua/qopcuanode.html
19.06.2018FRANK MEERKÖTTER
Features (as of 5.11) Fully asynchronous API Session/connection management Reading/writing of node attributes Monitoring of node attributes (value changes) Calling of methods on the server Browsing of the server address space
19.06.2018FRANK MEERKÖTTER
How to get Qt OPC UA?The code is triple licensed* Commercial
GPLv2
LGPLv3
*) with the exception of the Unified Automation Plugin
Available directly from the installer for “Qt for Automation” license holders
Needs to be installed from source for GPL or LGPL licensees See: http://code.qt.io/cgit/qt/qtopcua.git/
See: https://blog.basyskom.com/building-qt-opc-ua-with-open62541/
19.06.2018FRANK MEERKÖTTER
LIVE DEMO
19.06.2018FRANK MEERKÖTTER
Showcase Industrial HMI
19.06.2018FRANK MEERKÖTTER
Showcase Industrial HMI
19.06.2018FRANK MEERKÖTTER
FUTURE DIRECTIONS
19.06.2018FRANK MEERKÖTTER
Qt 5.12 and laterStabilizing the API Currently a tech preview
Needs user feedback!
• bugreports.qt.io (Component „OpcUa“)
• #qtopcua/freenode
Upcoming features Events
Endpoint discovery & transport security
Node management
Generalized browse support
QML API
...