Awesome OPC UA
A curated list of Open Platform Communications Unified Architecture (OPC UA) libraries, tools and resources. Inspired by awesome-... stuff.
Including the information from traversaro/awesome-opcua
Open Platform Communications Unified Architecture (OPC UA) is the data exchange standard for safe, reliable, manufacturer- and platform-independent industrial communication.
For a brief introduction to OPC UA, check the What is OPC? UA in a Minute.
See the official OPC Foundation site for the official specifications and more information about the OPC UA standard.
Contents
- Awesome OPC UA
OPC UA Standards Documents
Released OPC UA Specifications.
- OPC Foundation Documents Overview - All Documents (Specification, Templates, Guidelines) published by the OPC Foundation
- OPC Unified Architecture Specification - OPC UA Specification published by the OPC Foundation. Needs registration for download.
- OPC UA Information Models - OPC UA Companion Specifications released by the OPC Foundation. Needs registration for download.
- OPC Foundation Git repository of NodeSets - easy way to get the nodeset files without registration
- OPC UA Online Reference - Online versions of OPC UA specifications and information models. Harder to read than the PDF versions due to each chapter being a separate site. Search function over all parts of the standard and the information models.
Resources
Information material apart from the standards documents.
Online Resources
Information material available online.
- OPC Foundation Online Reference
- OPC UA Profile Reporting Application - UA 1.05 forward
deprecated
OPC Foundation UA Profile Reporting Visualization Tool - Overview of OPC UA Profiles.deprecated
OPC Foundation UA Profile Reporting Visualization Tool with drafts - Same as above including (stable) drafts.- OPC Foundation Templates - (select the "Template" filter) Templates for (joint) working groups. Including MS Visio shapes for OPC UA.
- OPC Foundation OPC UA Wiki - OPC UA Wiki of the OPC Foundation. Not up to the latest specification state!
- OPC Foundation Information Modelling Best Practices - Whitepaper intended to provide best practices while creating OPC UA information models.
- List of Collaborations Groups on Companion Specifications - Overview of the different standardization activities
- https://opcua.rocks/ - blog about OPC UA
- https://sandervandevelde.wordpress.com/ - IoT Blog (use also OPC UA in some projects)
- OPCUA CS Graph - Graph that shows the dependencies between Companion Specification
- GitHub Org of the OPC Foundation - different software projects and reference implementations
Books
Books about OPC UA.
- Wolfgang Mahnke, Stefan-Helmut Leitner, Matthias Damm, OPC Unified Architecture. Springer; 2009, ISBN: 978-3540688983.
- Etienne Rossignon, node-opcua by example
Articles
- A Literature Survey on Open Platform Communications (OPC) Applied to Advanced Industrial Environments A literature Survey for OPC UA in 2019 with Trends and Open Research Issues
- OPC UA versus ROS, DDS, and MQTT: performance evaluation of industry 4.0 protocols Performance evaluation of differente protocols
- Benchmarking of existing OPC UA implementations for Industrie 4.0-compliant digitalization solutions Compare different implementations for OPC UA
- Designentscheidungen für OPC-UA-Informationsmodelle (German) Description of OPC UA Design decisions in OPC UA for Weighing Technology and OPC UA for Machine Tools
- Der Trend zur branchenorienterten OPC UA Companion Specification und deren Herausforderungen (German) Descriptes the Trends of OPC UA Companion Specification
Videos
- What is OPC? UA in a Minute
- Tech-Intro "OPC UA Concepts" by Uwe Steinkrauss (06-2019) - A 10 minutes technical introduction to OPC UA basic concepts.
- 20200622 02 OPC UA Technology - 20 min Introduction into OPC UA (OPC UA Day 2020)
- OPC UA Security Deep Dive by Randy Armstrong (Chair of OPC UA Security Working Group), Dec 2020
- Creating Information Model and OPC UA Server Using NET - Industry40tv
- YouTube Channel of the OPC Foundation
- OPC UA for Machine Tools YT Channel
- OPC UA PubSub Explained, Jouni Aro (Prosys OPC), OPC Day Finland 2021
Software
Software for creating OPC UA Servers, Clients, Publishers, Subscribers or Information Models.
SDKs and Libraries
SDKs to create OPC UA components.
C
- open62541 - Open Source C (C99) implementation for Server/Client and Pub/Sub licensed under the Mozilla Public License v2.0. [MPL-2.0]
- OpenOpcUA - Server/Client
- OpenScadaUA Interface - only Server
- ASNeG - Server/Client
- uaf - Client (wrapper over proprietary sdk)
- UACL/CPP - Server (wrapper over proprietary sdk)
- S2OPC - Client/Server
- dataFeed OPC UA - Server/Client proprietary (Softing) [Commercial]
- OPC UA SDK/Toolkit für Embedded-Geräte - C implementation for Server/Client and Pub/Sub [Commercial]
- Prosys OPC UA C/C++ SDKs - Server/Client proprietary [Commercial]
- Unified Automation C/C++ SDKs - Server/Client proprietary [Commercial]
- NodesetLoader - Library for importing nodesets in xml schema, add nodeset import to open62541 [MPL-2.0]
C++
- freeopcua - Open Source C++ OPC-UA Server and Client Library. [LGPL-3.0]
- QtOPCUA - Qt module that implements a Qt API to interact with OPC UA. [LGPL-3.0]
- QUaServer - Qt C++ wrapper for open62541 server stack. [MIT]
- ASNeG OPC UA Stack - Open source C++ framework for development and distribution of OPC UA client\server applications. [Apache-2.0]
C#
- UA.NET Standard - Server/Client - Official OPC UA .NET Standard Stack from the OPC Foundation. [GPL-2.0 / RCL dual licensed]
- UACL/CS - Client/Server (wrapper over proprietary sdk)
- opc-ua-client- only Client
- LibUA - Server/Client
- Träger - Server/Client [Commercial]
- dataFeed OPC UA - Server/Client (Softing) [Commercial]
- QuickOPC - Client (OPC Labs)
- OPC UA .NET SDK - Server/Client (Prosys) [Commercial]
- PicoOPC - OPC UA client library [Commercial]
- Unified Automation .NET SDK - Server/Client [Commercial]
JavaScript / TypeScript
- node-opcua - Server/Client - NodeOPCUA is a OPC UA stack fully written in TypeScript for Node.js. [MIT]
- node-red-contrib-opcua - Node-Red Plugin for OPC UA (Server/Client)
- HBM/opcua - only Client
Java
- Eclipse Milo™ - Server/Client - Java open source implementation of OPC UA (IEC 62541). [EPL-2.0]
- opcua4j - only Server
- Prosys OPC UA - Server/Client proprietary
MATLAB
- OPC Toolbox - MATLAB official toolbox that supports OPC UA. See Mathworks site for more details. [Commercial]
NuGet Packages
- OPCFoundation.NetStandard.Opc.Ua - NuGet Package of the Reference Implementation [OPC-F redistributables license]
- PicoOPC - OPC UA client library (OPC Labs) [Commercial]
Python
- uaf - Client (wrapper over proprietary sdk)
- Python FreeOpcUa - Server /Client
- opcua-asyncio - OPC UA / IEC 62541 Client and Server for Python >= 3.7 and pypy3. [LGPL-3.0]
Rust
- locka99/opcua - OPC UA server / client API implementation for Rust. [MPL-2.0]
Golang
- gopcua/opcua - Server/Client - A native Go implementation of the OPC/UA Binary Protocol.
- awcullen/opcua - Server/Client. [MIT]
Delphi
- Sentrol SDK for Delphi - Server/Client proprietary (Prosys) [Commercial]
- Unified Automation Delphi SDK - Server/Client proprietary [Commercial]
Cloud
- OPC UA with Akri - A Kubernetes Resource Interface for OPC UA [Apache-2.0]
Test Clients
Test Clients to check server implementations manually.
- UaExpert - General purpose graphical test client supporting OPC UA features like DataAccess, Alarms & Conditions, Historical Access and calling of UA Methods by Unified Automation [Commercial] (free evaluation license).
- dataFEED - Demo Client developed by Softing (free)
- FreeOpcUA - OpenSource Client based on python
- Prosys OPC UA Monitor - HMI Tool (Evaluation for Free)
- OPC UA Browser - Demo Client developed by Prosys (free evaluation license).
- OPC UA Test tool - Automate OPC UA server performance testing
Modelling Tools
Tools to create OPC UA Information Models.
- UAModeler - Modeling Tool by Unified Automation. [Commercial]
- OPC UA Modeler - Modeling Tool by Prosys [Commercial]
- SiOME - Modeling Tool by Siemens [Commercial]
- UA-ModelCompiler - Tool to convert OPC UA Information models in Model.xml format to NodeSet2.xml Format. [MIT]
- UML2OPCUA - Papyrus plugin to model OPC UA Information models with Papyrus
deprecated
FreeOpcUa/opcua-modeler - Free OPC UA Modeler is a tool for designing OPC UA address spaces [GPL-3.0]
Online Tools
Tools available online to help with OPC UA components or Information Models.
- OPC UA NodeSet Validator - Check NodeSet XML Files against Word Documents following the OPC Foundation Specification Template.
- OPC UA NodeSet Web Viewer - Make the XML NodeSets browsable (Source).
- OPC UA for Cloud Library - OPC UA Information Model database with a REST and GraphQL interface (Source)
Server Simulations
Implementations of Example, Simulation and SampleServer that are running on the internet or can be run local.
- OPC UA Player - supports replaying OPC UA data from a data file
- OPC UA Simulation Server - free (professional Edition can import own information model)
opc.tcp://opcua.rocks:4840
- Demo Server based on open62541opc.tcp://opcua.umati.app:4840
- umati Demo Server implementing different umati endorsed companion specificationsopc.tcp://opcua2.umati.app:4840
- umati Demo Server 2 implementing different umati endorsed companion specificationsopc.tcp://milo.digitalpetri.com:62541/milo
- Demo Server based on eclipse/milo- List of publicly availavle OPC UA Servers and Clients
Server and client applications
Implementations of server and client applications and other examples.
- OpcUaWebDashboard - A cloud-based, dockerized dashboard for displaying OPC UA PubSub telemetry data, read directly from an Azure IoT Hub.
- UA-CloudLibrary - The reference implementation of the UA Cloud Library
- CloudLib GraphQL - CloudLib GraphQL Prototype by CESMII for the OPC UA for Cloud Library OPC-Foundation JWG
- OPCUA2AAS - OPC UA Server that can generate an Industry 4.0 Asset Admin Shell from its info model.
- MQTTPublisherMVP - Minimum Viable Product for an MQTT-based OPC UA PubSub Publisher for industrial cloud telemetry.
- umati Dashboard - umati community online dashboard - Specification
- umati Sample Server based on open62541 [MPL-2.0]
- umati Sample Server 2 based on opcua-asyncio [APL-2.0]
- umati Sample Server 3 based on node-opcua [APL-2.0]
- OPCModbusUAServer - An open source OPC UA server for Modbus TCP devices [MIT]
- OPC Router Docker Sample - A very easy to use sample showcasing data transfers from a umati server to a SQL database.
- OPC UA Thermometer with Akri - A demo of Akri - Discovering and Using OPC UA Thermometers
Gateways (OPC Classic)
coming soon
Community
- Stack Overflow - Questions related to OPC UA in Stack Overflow.
- OPC Foundation Twitter - Official OPC Foundation account that shares update about the OPC UA standard.
- OPC Foundation Podcast - Official OPC Foundation podcast that gives insight into the OPC UA technology, applications in different industries and answers questions from the audience.
- OPC Foundation Ebooks - Information about OPC UA technology and applications in different industries as contributions by various authors.
Related Lists
- open62541's List of Open Source OPC UA Implementations - List of open source OPC UA implementations.
- Agile-IoT/awesome-open-iot - A curated list of awesome open source IoT frameworks, libraries and software.
Tutorials
- From modelling to execution – OPC UA Information Model Tutorial - Complete walkthrough from creating a custom OPC UA information model, compiling this model into an OPC UA
NodeSet2.xml
file, and then using theopen62541
OPC UA stack to create a running OPC UA server. - Visualizing OPC UA Information Model using Graphviz - Tutorial on how to use Graphviz to visualize OPC UA Information Models.
- (WIP) OPC UA Tutorials - Tutorial for opcua-asyncio
Contribute
Contributions are welcome! Read the contribution guidelines first.