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 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 - 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 about OPC UA.
- Wolfgang Mahnke, Stefan-Helmut Leitner, Matthias Damm, OPC Unified Architecture. Springer; 2009, ISBN: 978-3540688983.
- Etienne Rossignon, node-opcua by example
- 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
- 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 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]
- 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]
- 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
- 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)
- 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]
- gopcua/opcua - Server/Client - A native Go implementation of the OPC/UA Binary Protocol.
- Sentrol SDK for Delphi - Server/Client proprietary (Prosys) [Commercial]
- Unified Automation Delphi SDK - Server/Client proprietary [Commercial]
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
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]
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)
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
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]
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 Podcast - Official OPC Foundation podcast that gives insight into the OPC UA technology, applications in different industries and answers questions from the audience.
- 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.
- 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
Contributions are welcome! Read the contribution guidelines first.