iswunistuttgart/awesome-opcua
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
deprecatedOPC Foundation UA Profile Reporting Visualization Tool - Overview of OPC UA Profiles.deprecatedOPC 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.
no longer availableOPC Foundation OPC UA Wiki - OPC UA Wiki of the OPC Foundation.updatedOPC 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
depublishedhttps://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, NodeOPCUA by example - edition 2024
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
- OPC UA for Devs in 10 Minutes - short presentation for developers to grasp the concept of OPC UA information modelling
- File transfer via OPC UA compare the OPC UA file transfer with other protcols like HTTP, FTP
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
- Using Companion Specifications for type-based client applications - Shows how the umati dashboard works.
Podcasts
- 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 UA (OPC Unified Architecture) | Einfach Komplex Episode 17, May 2023 - (German) A 45min podcast about basic concepts, industry applications and comparison to MQTT
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 - Open Source C (C99) implementation for Server/Client and Pub/Sub [Apache-2.0]
- 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]
- open62541pp - C++ wrapper of the open62541 OPC UA library. [MPL-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) [LGPL-3.0]
- opc-ua-client- only Client [MIT]
- LibUA - Server/Client [Apache-2.0]
- h-opc - OPC client made simpler, for UA and DA [MIT]
- 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]
- Traeger .NET SDK - Server/Client SDK and Tools like Codabix [Commercial]
JavaScript / TypeScript
- node-opcua - Server/Client - NodeOPCUA is then OPC SDK UA stack fully written in TypeScript for Node.js. [MIT]
- node-red-contrib-opcua - Node-Red Plugin for OPC UA (Server/Client) [Apache-2.0]
- @opcua/for-node-red - Professional OPCUA for NodeRED [Commercial]
- HBM/opcua - only Client [MIT]
- @plus4nodered/opcua - Professional OPC UA packages as a PLUS for Node-RED and FlowFuse inspired by our deprecated node-red-contrib-iiot-opcua package P4NR B2B Community
- @p4nr/opcua-webapp-framework - Professional OPC UA Framework based on node-opcua for Node.js Web-Apps to make it easier to use OPC UA in Web-Apps P4NR B2B Community
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) [LGPL-3.0]
deprecatedPython FreeOpcUa - Server /Client [LGPL-3.0]- 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]
- HMIProject/open62541 - crate provides high-level, safe bindings for the C99 library open62541. [MPL-2.0]
Golang
- gopcua/opcua - Server/Client - A native Go implementation of the OPC/UA Binary Protocol. [MIT]
- 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).
- opcua-commander - Client Browser for the CLI to interact with OPC UA servers using ncurses. [MIT]
- dataFEED - Demo Client developed by Softing (free)
- FreeOpcUA - OpenSource Client based on python. [GPL-3.0]
- Prosys OPC UA Monitor - HMI Tool (free evaluation license)
- OPC UA Browser - Demo Client developed by Prosys (free evaluation license).
- OPC UA Browser - Qt-based Mobile app based on open62541/Qt OPC UA. [GPL-3.0]
- OPC UA Test tool - Automate OPC UA server performance testing
- OPC UA Vulnerability Scanner - OpalOPC - A vulnerability scanner for OPC UA applications. [GPL-3.0]
- opcilloscope - Lightweight, cross-platform terminal-based OPC UA client with real-time oscilloscope view. Keyboard and mouse friendly. [MIT]
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]
- Sterfive's LowCode Modeler - Low code tool to generate compliant OPCUA Model with ease, provide a single source of truth for your model, the doc and the nodeset2.xml) [Commercial] [Free evaluation]
- 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
deprecatedFreeOpcUa/opcua-modeler - Free OPC UA Modeler is a tool for designing OPC UA address spaces [GPL-3.0]- NodeDoc - Tool for documentation and comparing nodesets [MIT]
Monitoring Tools
- prometheus_asyncua_exporter - OPC UA exporter for Prometheus [Apache-2.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 CloudViewer - Make the XML NodeSets browsable, by DigitalTwinConsortium (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)
depublishedopc.tcp://opcua.rocks:4840- Demo Server based on open62541opc.tcp://opcua.umati.app:4840- umati Demo Server implementing different umati endorsed companion specifications, based on open62541opc.tcp://opcua.umati.app:4842- umati Demo Server 2 implementing different umati endorsed companion specifications, based on opcua-asyncioopc.tcp://opcua.umati.app:4843- umati Demo Server 3 implementing different umati endorsed companion specifications, based on node-opcuaopc.tcp://milo.digitalpetri.com:62541/milo- Demo Server based on eclipse/miloopc.tcp://opcuademo.sterfive.com:26543- Demo Server based on NodeOPCUA- Azure OPC UA Sample - sample server in c#
- List of publicly availavle OPC UA Servers and Clients
- UaExpert file with OPC UA servers accessible online
Server and client applications
Implementations of server and client applications and other examples.
- UA-CloudDashboard - A cloud-based, dockerized dashboard for displaying OPC UA PubSub telemetry data, read directly from an Azure IoT Hub. [MIT]
- UA-CloudLibrary - The reference implementation of the UA Cloud Library [MIT]
deprecatedOPCUA2AAS - OPC UA Server that can generate an Industry 4.0 Asset Admin Shell from its info model. [MIT]- MQTTPublisherMVP - Minimum Viable Product for an MQTT-based OPC UA PubSub Publisher for industrial cloud telemetry. [MIT]
- 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 [APL-2.0]
- OPC UA Transformer - Transforms OPC UA Server address space into RDF data structure [APL-2.0]
- OPC UA for Joining Systems - Test clients and servers based on OPC UA for Joining Systems developed by VDMA Industrial Joining Technologies working group. [APL-2.0]
- OPC UA primer - A sample OPC UA server based on
open62541and on a model design XML. [MIT] - opcua-skills/plug-and-produce - Plug-and-Produce System Architecture for Robotic Applications using OPC UA [proprietary]
- convertersystems/opc-ua-samples - Sample HMIs using OPC Unified Architecture (OPC UA) and Visual Studio. [MIT]
- opcua-machinery-client - Client example showcaseing the OPC UA for Machinery from a data consumer perspective. [MIT]
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 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
depublishedFrom modelling to execution – OPC UA Information Model Tutorial - Complete walkthrough from creating a custom OPC UA information model, compiling this model into an OPC UANodeSet2.xmlfile, and then using theopen62541OPC UA stack to create a running OPC UA server.depublishedVisualizing 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.