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.
- Awesome OPC UA
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.
Information material apart from the standards documents.
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.
no longer available
OPC Foundation OPC UA Wiki - OPC UA Wiki of the OPC Foundation.updated
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
depublished
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 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
- 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
- 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
- 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 for creating OPC UA Servers, Clients, Publishers, Subscribers or Information Models.
SDKs to create OPC UA components.
- 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]
- 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]
- 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
- h-opc - OPC client made simpler, for UA and DA
- 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]
- 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)
- @opcua/for-node-red - Professional OPCUA for NodeRED (Commercial)
- HBM/opcua - only Client
- 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
- OPC Toolbox - MATLAB official toolbox that supports OPC UA. See Mathworks site for more details. [Commercial]
- OPCFoundation.NetStandard.Opc.Ua - NuGet Package of the Reference Implementation [OPC-F redistributables license]
- PicoOPC - OPC UA client library (OPC Labs) [Commercial]
- uaf - Client (wrapper over proprietary sdk)
deprecated
Python FreeOpcUa - Server /Client- opcua-asyncio - OPC UA / IEC 62541 Client and Server for Python >= 3.7 and pypy3. [LGPL-3.0]
- 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]
- gopcua/opcua - Server/Client - A native Go implementation of the OPC/UA Binary Protocol.
- awcullen/opcua - Server/Client. [MIT]
- Sentrol SDK for Delphi - Server/Client proprietary (Prosys) [Commercial]
- Unified Automation Delphi SDK - Server/Client proprietary [Commercial]
- OPC UA with Akri - A Kubernetes Resource Interface for OPC UA [Apache-2.0]
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.
- 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 Browser - Qt-based Mobile app based on open62541/Qt OPC UA (GPLv3).
- OPC UA Test tool - Automate OPC UA server performance testing
- https://opalopc.com/ - A vulnerability scanner for OPC UA applications.
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
deprecated
FreeOpcUa/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]
- prometheus_asyncua_exporter - OPC UA exporter for Prometheus [Apache-2.0]
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)
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)
depublished
opc.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
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]
deprecated
OPCUA2AAS - 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
open62541
and 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]
coming soon
- 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.
- 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.
depublished
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 UANodeSet2.xml
file, and then using theopen62541
OPC UA stack to create a running OPC UA server.depublished
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
Contributions are welcome! Read the contribution guidelines first.