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 website 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.
- Git Repos containing the most of the nodsets - 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 Foundation UA Profile Reporting Visualization Tool - Overview of OPC UA Profiles.
- 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 zwischen Companion Specification
- Github Orga 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.
- 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
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)
- OPC UA SDK/Toolkit für Embedded-Geräte - C implementation for Server/Client and Pub/Sub
- Prosys OPC UA C/C++ SDKs - Server/Client proprietary
- Unified Automation C/C++ SDKs - Server/Client proprietary
- 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 proprietary
- dataFeed OPC UA - Server/Client proprietary (Softing)
- QuickOPC - Client proprietary (OPC Labs)
- OPC UA .NET SDK - Server/Client proprietary (Prosys)
- PicoOPC - OPC UA client library proprietary; NuGet pkg (OPC Labs)
- Unified Automation .NET SDK - Server/Client proprietary
- node-opcua - Server/Client - NodeOPCUA is a OPC UA stack fully written in TypeScript for NodeJS. [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 https://www.mathworks.com/discovery/opc-ua.html for more details. [Commercial]
- OPCFoundation.NetStandard.Opc.Ua - NuGet Package of the Reference Implementation [OPC-F redistributables license]
- 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)
- Unified Automation Delphi SDK - Server/Client proprietary
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).
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]
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 UANodeSet WebViewer - Make the XML NodeSets browsable.
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 based on open62541, 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 - Swagger prototype by @branstee for the OPC UA for Cloud Library OPC-Foundation JWG
- CloudLib GraphQL - CloudLib GraphQL Prototype by CESMII for the OPC UA for Cloud Library OPC-Foundation JWG
- UA-CloudLibrary - Reference implememtation UA-CloudLibrary REMARK: OPC-F members only for now
- 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
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.
Contributions are welcome! Read the contribution guidelines first.