├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Ensure your pull request adheres to the following guidelines: 4 | 5 | - If you suggest a tool or a library, it should be either open source or freely available in some form 6 | - Always provide a short description of the suggested resource 7 | 8 | Thank you for your suggestions! 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome OPC UA [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | 3 | > A curated list of Open Platform Communications Unified Architecture (OPC UA) libraries, tools and resources. Inspired by awesome-... stuff. 4 | 5 | Including the information from [traversaro/awesome-opcua](https://github.com/traversaro/awesome-opcua) 6 | 7 | Open Platform Communications Unified Architecture (OPC UA) is the data exchange standard for safe, reliable, manufacturer- and platform-independent industrial communication. 8 | 9 | For a brief introduction to OPC UA, check the [What is OPC? UA in a Minute](https://www.youtube.com/watch?v=-tDGzwsBokY). 10 | 11 | See the [official OPC Foundation site](https://opcfoundation.org/about/opc-technologies/opc-ua/) for the official specifications and more information about the OPC UA standard. 12 | 13 | ## Contents 14 | 15 | - [Awesome OPC UA](#awesome-opc-ua-) 16 | - [OPC UA Standards Documents](#opc-ua-standards-documents) 17 | - [Resources](#resources) 18 | - [Online Resources](#online-resources) 19 | - [Books](#books) 20 | - [Articles](#articles) 21 | - [Videos](#videos) 22 | - [Podcasts](#podcasts) 23 | - [Software](#software) 24 | - [SDKs and Libraries](#sdks-and-libraries) 25 | - [C](#c) 26 | - [C++](#c-1) 27 | - [C#](#c-2) 28 | - [JavaScript/TypeScript](#javascript--typescript) 29 | - [Java](#java) 30 | - [MATLAB](#matlab) 31 | - [NuGet Packages](#nuget-packages) 32 | - [Python](#python) 33 | - [Rust](#rust) 34 | - [Golang](#golang) 35 | - [Delphi](#delphi) 36 | - [Cloud](#cloud) 37 | - [Test Clients](#test-clients) 38 | - [Modelling Tools](#modelling-tools) 39 | - [Monitoring Tools](#monitoring-tools) 40 | - [Online Tools](#online-tools) 41 | - [SimulationServer](#server-simulations) 42 | - [Server and Client examples](#server-and-client-applications) 43 | - [Gateways (OPC Classic)](#gateways-opc-classic) 44 | - [Community](#community) 45 | - [Related Lists](#related-lists) 46 | - [Tutorials](#tutorials) 47 | - [Contribute](#contribute) 48 | - [License](#license) 49 | 50 | ## OPC UA Standards Documents 51 | 52 | _Released OPC UA Specifications._ 53 | 54 | - [OPC Foundation Documents Overview](https://opcfoundation.org/developer-tools/documents/) - All Documents (Specification, Templates, Guidelines) published by the OPC Foundation 55 | - [OPC Unified Architecture Specification](https://opcfoundation.org/developer-tools/specifications-unified-architecture) - OPC UA Specification published by the OPC Foundation. Needs registration for download. 56 | - [OPC UA Information Models](https://opcfoundation.org/developer-tools/specifications-opc-ua-information-models) - OPC UA Companion Specifications released by the OPC Foundation. Needs registration for download. 57 | - [OPC Foundation Git repository of NodeSets](https://github.com/OPCFoundation/UA-Nodeset) - easy way to get the nodeset files without registration 58 | - [OPC UA Online Reference](https://reference.opcfoundation.org/) - 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. 59 | 60 | ## Resources 61 | 62 | _Information material apart from the standards documents._ 63 | 64 | ### Online Resources 65 | 66 | _Information material available online._ 67 | 68 | - [OPC Foundation Online Reference](https://reference.opcfoundation.org/) 69 | - [OPC UA Profile Reporting Application](https://profiles.opcfoundation.org/) - UA 1.05 forward 70 | - `deprecated` [OPC Foundation UA Profile Reporting Visualization Tool](https://profiles-old.opcfoundation.org/) - Overview of OPC UA Profiles. 71 | - `deprecated` [OPC Foundation UA Profile Reporting Visualization Tool with drafts](https://profiles-old.opcfoundation.org/v104/reporting/?All=true) - Same as above including (stable) drafts. 72 | - [OPC Foundation Templates](https://opcfoundation.org/developer-tools/documents/) - (select the "Template" filter) Templates for (joint) working groups. Including MS Visio shapes for OPC UA. 73 | - `no longer available`~~[OPC Foundation OPC UA Wiki](http://wiki.opcfoundation.org/index.php?title=Main_Page) - OPC UA Wiki of the OPC Foundation.~~ 74 | - `updated`[OPC Foundation Information Modelling Best Practices](https://reference.opcfoundation.org/Model-Best/v102/docs/) - Whitepaper intended to provide best practices while creating OPC UA information models. 75 | - [List of Collaborations Groups on Companion Specifications](https://docs.google.com/spreadsheets/d/10SOpad6uu7JA5ZSpccVyqaqkyhYBiIXqNus28-1cJtU/edit#gid=1248333029) - Overview of the different standardization activities 76 | - `depublished` ~~[https://opcua.rocks/](https://opcua.rocks/) - blog about OPC UA~~ 77 | - [https://sandervandevelde.wordpress.com/](https://sandervandevelde.wordpress.com/) - IoT Blog (use also OPC UA in some projects) 78 | - [OPCUA CS Graph](https://iswunistuttgart.github.io/opcua-cs-graph/) - Graph that shows the dependencies between Companion Specification 79 | - [GitHub Org of the OPC Foundation](https://github.com/OPCFoundation) - different software projects and reference implementations 80 | 81 | ### Books 82 | 83 | _Books about OPC UA._ 84 | 85 | - _Wolfgang Mahnke, Stefan-Helmut Leitner, Matthias Damm_, OPC Unified Architecture. _Springer; 2009_, ISBN: 978-3540688983. 86 | - _Etienne Rossignon_, [NodeOPCUA by example - edition 2024](https://leanpub.com/node-opcuabyexample-edition2024) 87 | 88 | ### Articles 89 | 90 | - [A Literature Survey on Open Platform Communications (OPC) Applied to Advanced Industrial Environments](https://www.mdpi.com/2079-9292/8/5/510) A literature Survey for OPC UA in 2019 with Trends and Open Research Issues 91 | - [OPC UA versus ROS, DDS, and MQTT: performance evaluation of industry 4.0 protocols](https://mediatum.ub.tum.de/doc/1470362/file.pdf) 92 | Performance evaluation of differente protocols 93 | - [Benchmarking of existing OPC UA implementations for Industrie 4.0-compliant digitalization solutions](https://ieeexplore.ieee.org/abstract/document/8104838) 94 | Compare different implementations for OPC UA 95 | - [Designentscheidungen für OPC-UA-Informationsmodelle](https://www.ingenieur.de/fachmedien/wt-werkstattstechnik/ausgaben-wt-werkstattstechnik-online/inhalte-der-online-ausgabe-5-2020/) (German) Description of OPC UA Design decisions in OPC UA for Weighing Technology and OPC UA for Machine Tools 96 | - [Der Trend zur branchenorienterten OPC UA Companion Specification und deren Herausforderungen](https://www.der-maschinenbau.de/markt-trends-technik/der-trend-und-seine-herausforderungen/) (German) Descriptes the Trends of OPC UA Companion Specification 97 | - [OPC UA for Devs in 10 Minutes](https://github.com/umati/hackathon/blob/main/2nd_hackathon/Presentations/20230516_OpcUaIn10Minutes.pdf) - short presentation for developers to grasp the concept of OPC UA information modelling 98 | - [File transfer via OPC UA](https://www.interop4x.de/news/file-transfer-opcua) compare the OPC UA file transfer with other protcols like HTTP, FTP 99 | 100 | ### Videos 101 | 102 | - [What is OPC? UA in a Minute](https://www.youtube.com/watch?v=-tDGzwsBokY) 103 | - [Tech-Intro "OPC UA Concepts" by Uwe Steinkrauss (06-2019)](https://www.youtube.com/watch?v=E2XJfmAEdqw) - A 10 minutes technical introduction to OPC UA basic concepts. 104 | - [20200622 02 OPC UA Technology](https://www.youtube.com/watch?v=OQC_kVYisS8) - 20 min Introduction into OPC UA (OPC UA Day 2020) 105 | - [OPC UA Security Deep Dive by Randy Armstrong (Chair of OPC UA Security Working Group), Dec 2020](https://www.youtube.com/watch?v=pa82WydVtPY) 106 | - [Creating Information Model and OPC UA Server Using NET - Industry40tv](https://www.youtube.com/watch?v=gxA7SDNLHgc) 107 | - [YouTube Channel of the OPC Foundation](https://www.youtube.com/user/TheOPCFoundation) 108 | - [OPC UA for Machine Tools YT Channel](https://youtube.com/playlist?list=PLkiLpeY1YPH1gEtEV7jmX9D8XPUEfS5EF) 109 | - [OPC UA PubSub Explained, Jouni Aro (Prosys OPC), OPC Day Finland 2021](https://www.youtube.com/watch?v=FWtrruzOvr4&list=PL98upRG1ESZSMFf18NK-OMFxNYWrIdHDU&index=14) 110 | - [Using Companion Specifications for type-based client applications](https://youtu.be/Ht2rxMkHGIs) - Shows how the umati dashboard works. 111 | 112 | ### Podcasts 113 | 114 | - [OPC Foundation Podcast](https://opcfoundation.org/resources/podcast/) - Official OPC Foundation podcast that gives insight into the OPC UA technology, applications in different industries and answers questions from the audience. 115 | - [OPC UA (OPC Unified Architecture) | Einfach Komplex Episode 17, May 2023](https://podcasters.spotify.com/pod/show/einfach-komplex/episodes/17-OPC-UA-OPC-Unified-Architecture--Industriestandard-zur-Datenkommunikation--Automatisierung--IoT-e238kj3) - (German) A 45min podcast about basic concepts, industry applications and comparison to MQTT 116 | 117 | ## Software 118 | 119 | _Software for creating OPC UA Servers, Clients, Publishers, Subscribers or Information Models._ 120 | 121 | ### SDKs and Libraries 122 | 123 | _SDKs to create OPC UA components._ 124 | 125 | #### C 126 | 127 | - [open62541](https://open62541.org/) - Open Source C (C99) implementation for Server/Client and Pub/Sub licensed under the Mozilla Public License v2.0. [MPL-2.0] 128 | - [OpenOpcUA](http://www.openopcua.org/) - Server/Client 129 | - [OpenScadaUA Interface](http://oscada.org/websvn/filedetails.php?repname=OpenSCADA&path=%2Ftrunk%2FOpenSCADA%2Fsrc%2Fmoduls%2Fdaq%2FOPC_UA%2FlibOPC_UA%2FlibOPC_UA.h) - only Server 130 | - [ASNeG](https://github.com/ASNeG/OpcUaStack) - Server/Client 131 | - [uaf](https://github.com/uaf/uaf) - Client (wrapper over proprietary sdk) 132 | - [UACL/CPP -](https://gitlab.com/falko.wiese/uacl_cpp) Server (wrapper over proprietary sdk) 133 | - [S2OPC](https://gitlab.com/systerel/S2OPC) - Client/Server 134 | - [dataFeed OPC UA](https://data-intelligence.softing.com/de/produkte/datafeed-opc-sdks/datafeed-opc-ua-c-server-client-sdk-for-windows/) - Server/Client proprietary (Softing) [Commercial] 135 | - [OPC UA SDK/Toolkit für Embedded-Geräte](https://industrial.softing.com/de/produkte/opc-ua-and-opc-classic-sdks/uatoolkit-embedded.html) - C implementation for Server/Client and Pub/Sub [Commercial] 136 | - [Prosys OPC UA C/C++ SDKs](https://www.prosysopc.com/products/opc-ua-cplusplus-sdk/) - Server/Client proprietary [Commercial] 137 | - [Unified Automation C/C++ SDKs](https://www.unified-automation.com/products/sdk-overview/choose-sdk.html) - Server/Client proprietary [Commercial] 138 | - [NodesetLoader](https://github.com/matkonnerth/nodesetLoader) - Library for importing nodesets in xml schema, add nodeset import to open62541 [MPL-2.0] 139 | 140 | #### C++ 141 | 142 | - [freeopcua](https://github.com/FreeOpcUa/freeopcua) - Open Source C++ OPC-UA Server and Client Library. [LGPL-3.0] 143 | - [QtOPCUA](https://doc.qt.io/qt-6/qtopcua-index.html) - Qt module that implements a Qt API to interact with OPC UA. [LGPL-3.0] 144 | - [QUaServer](https://github.com/juangburgos/QUaServer) - Qt C++ wrapper for open62541 server stack. [MIT] 145 | - [ASNeG OPC UA Stack](https://asneg.github.io/projects/opcuastack) - Open source C++ framework for development and distribution of OPC UA client\server applications. [Apache-2.0] 146 | - [open62541pp](https://open62541pp.github.io/open62541pp/) - C++ wrapper of the open62541 OPC UA library. [MPL-2.0] 147 | 148 | #### C\# 149 | 150 | - [UA.NET Standard](https://github.com/OPCFoundation/UA-.NETStandard) - Server/Client - Official OPC UA .NET Standard Stack from the OPC Foundation. [GPL-2.0 / RCL dual licensed] 151 | - [UACL/CS](https://gitlab.com/falko.wiese/uacl_cs) - Client/Server (wrapper over proprietary sdk) [LGPL-3.0] 152 | - [opc-ua-client](https://github.com/convertersystems/opc-ua-client)- only Client [MIT] 153 | - [LibUA](https://github.com/nauful/LibUA) - Server/Client [Apache-2.0] 154 | - [h-opc](https://github.com/hylasoft-usa/h-opc) - OPC client made simpler, for UA and DA [MIT] 155 | - [Träger](https://opcua.traeger.de/) - Server/Client [Commercial] 156 | - [dataFeed OPC UA](https://data-intelligence.softing.com/de/produkte/datafeed-opc-sdks/datafeed-opc-ua-net-standard-sdks/) - Server/Client (Softing) [Commercial] 157 | - [QuickOPC](https://www.opclabs.com/products/quickopc) - Client (OPC Labs) 158 | - [OPC UA .NET SDK](https://www.prosysopc.com/products/opc-ua-dotnet-sdk/) - Server/Client (Prosys) [Commercial] 159 | - [PicoOPC](https://www.opclabs.com/products/picoopc/for-dotnet) - OPC UA client library [Commercial] 160 | - [Unified Automation .NET SDK](https://www.unified-automation.com/products/sdk-overview/choose-sdk.html) - Server/Client [Commercial] 161 | - [Traeger .NET SDK](https://www.traeger.de/en/products/development/opcua/opcua-sdk) - Server/Client SDK and Tools like Codabix [Commercial] 162 | 163 | #### JavaScript / TypeScript 164 | 165 | - [node-opcua](http://node-opcua.github.io/) - Server/Client - NodeOPCUA is then OPC SDK UA stack fully written in TypeScript for Node.js. [MIT] 166 | - [node-red-contrib-opcua](https://flows.nodered.org/node/node-red-contrib-opcua) - Node-Red Plugin for OPC UA (Server/Client) [Apache-2.0] 167 | - [@opcua/for-node-red](https://flows.nodered.org/node/@opcua/for-node-red) - Professional OPCUA for NodeRED [Commercial] 168 | - [HBM/opcua](https://github.com/HBM/opcua) - only Client [MIT] 169 | - [@plus4nodered/opcua](https://plus4nodered.com) - 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](https://p4nr.com/) 170 | - [@p4nr/opcua-webapp-framework](https://plus4nodered.com) - 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](https://p4nr.com/) 171 | 172 | #### Java 173 | 174 | - [Eclipse Milo™](https://github.com/eclipse/milo) - Server/Client - Java open source implementation of OPC UA (IEC 62541). [EPL-2.0] 175 | - [opcua4j](https://code.google.com/p/opcua4j/) - only Server 176 | - [Prosys OPC UA](https://www.prosysopc.com/products/opc-ua-java-sdk/) - Server/Client proprietary 177 | 178 | #### MATLAB 179 | 180 | - [OPC Toolbox](https://www.mathworks.com/products/industrial-communication.html) - MATLAB official toolbox that supports OPC UA. See [Mathworks site](https://www.mathworks.com/discovery/opc-ua.html) for more details. [Commercial] 181 | 182 | #### NuGet Packages 183 | 184 | - [OPCFoundation.NetStandard.Opc.Ua](https://www.nuget.org/packages/OPCFoundation.NetStandard.Opc.Ua/) - NuGet Package of the Reference Implementation [[OPC-F redistributables license]](https://opcfoundation.org/license/redistributables/1.3/) 185 | - [PicoOPC](https://www.opclabs.com/products/picoopc/for-dotnet) - OPC UA client library (OPC Labs) [Commercial] 186 | 187 | #### Python 188 | 189 | - [uaf](https://github.com/uaf/uaf) - Client (wrapper over proprietary sdk) [LGPL-3.0] 190 | - `deprecated`[Python FreeOpcUa](https://github.com/FreeOpcUa/python-opcua) - Server /Client [LGPL-3.0] 191 | - [opcua-asyncio](https://github.com/FreeOpcUa/opcua-asyncio) - OPC UA / IEC 62541 Client and Server for Python >= 3.7 and pypy3. [LGPL-3.0] 192 | 193 | #### Rust 194 | 195 | - [locka99/opcua](https://github.com/locka99/opcua) - OPC UA server / client API implementation for Rust. [MPL-2.0] 196 | - [HMIProject/open62541](https://github.com/HMIProject/open62541) - crate provides high-level, safe bindings for the C99 library open62541. [MPL-2.0] 197 | 198 | #### Golang 199 | 200 | - [gopcua/opcua](https://github.com/gopcua/opcua) - Server/Client - A native Go implementation of the OPC/UA Binary Protocol. [MIT] 201 | - [awcullen/opcua](https://github.com/awcullen/opcua) - Server/Client. [MIT] 202 | 203 | #### Delphi 204 | 205 | - [Sentrol SDK for Delphi](https://www.prosysopc.com/products/opc-ua-sentrol-sdk/) - Server/Client proprietary (Prosys) [Commercial] 206 | - [Unified Automation Delphi SDK](https://www.unified-automation.com/products/sdk-overview/choose-sdk.html) - Server/Client proprietary [Commercial] 207 | 208 | ### Cloud 209 | 210 | - [OPC UA with Akri](https://docs.akri.sh/discovery-handlers/opc-ua) - A Kubernetes Resource Interface for OPC UA [Apache-2.0] 211 | 212 | ### Test Clients 213 | 214 | _Test Clients to check server implementations manually._ 215 | 216 | - [UaExpert](https://www.unified-automation.com/products/development-tools/uaexpert.html) - 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). 217 | - [opcua-commander](https://npmjs.com/package/opcua-commander) - Client Browser for the CLI to interact with OPC UA servers using ncurses. [MIT] 218 | - [dataFEED](https://data-intelligence.softing.com/de/produkte/opc-software-plattform/opc-ua-demo-client/) - Demo Client developed by Softing (free) 219 | - [FreeOpcUA](https://github.com/FreeOpcUa/opcua-client-gui) - OpenSource Client based on python. [GPL-3.0] 220 | - [Prosys OPC UA Monitor](https://www.prosysopc.com/products/opc-ua-monitor/) - HMI Tool (free evaluation license) 221 | - [OPC UA Browser](https://www.prosysopc.com/products/opc-ua-browser/) - Demo Client developed by Prosys (free evaluation license). 222 | - [OPC UA Browser](https://github.com/basysKom/opcua_browser) - Qt-based Mobile app based on open62541/Qt OPC UA. [GPL-3.0] 223 | - [OPC UA Test tool](https://github.com/matkonnerth/opcuatesttool) - Automate OPC UA server performance testing 224 | - [OPC UA Vulnerability Scanner - OpalOPC](https://opalopc.com/) - A vulnerability scanner for OPC UA applications. [GPL-3.0] 225 | 226 | ### Modelling Tools 227 | 228 | _Tools to create OPC UA Information Models._ 229 | 230 | - [UAModeler](https://www.unified-automation.com/products/development-tools/uamodeler.html) - Modeling Tool by Unified Automation. [Commercial] 231 | - [OPC UA Modeler](https://www.prosysopc.com/products/opc-ua-modeler/) - Modeling Tool by Prosys [Commercial] 232 | - [SiOME](https://support.industry.siemens.com/cs/document/109755133/siemens-opc-ua-modeling-editor-%28siome%29-for-implementing-opc-ua-companion-specifications?dti=0&lc=en-WW) - Modeling Tool by Siemens [Commercial] 233 | - [Sterfive's LowCode Modeler](https://www.sterfive.com/product/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] 234 | - [UA-ModelCompiler](https://github.com/OPCFoundation/UA-ModelCompiler) - Tool to convert OPC UA Information models in Model.xml format to NodeSet2.xml Format. [MIT] 235 | - [UML2OPCUA](https://github.com/model-UA/papyrus-opcua-plugin) - Papyrus plugin to model OPC UA Information models with Papyrus 236 | - `deprecated` [FreeOpcUa/opcua-modeler](https://github.com/FreeOpcUa/opcua-modeler) - Free OPC UA Modeler is a tool for designing OPC UA address spaces [GPL-3.0] 237 | - [NodeDoc](https://github.com/software-competence-center-hagenberg/NodeDoc/) - Tool for documentation and comparing nodesets [MIT] 238 | 239 | ### Monitoring Tools 240 | 241 | - [prometheus_asyncua_exporter](https://github.com/ainglessi/prometheus_asyncua_exporter) - OPC UA exporter for Prometheus [Apache-2.0] 242 | 243 | ### Online Tools 244 | 245 | _Tools available online to help with OPC UA components or Information Models._ 246 | 247 | - [OPC UA NodeSet Validator](https://apps.opcfoundation.org/NodeSetValidator/) - Check NodeSet XML Files against Word Documents following the OPC Foundation Specification Template. 248 | - [OPC UA CloudViewer](https://cloudviewer.umati.app/) - Make the XML NodeSets browsable, by DigitalTwinConsortium ([Source](https://github.com/digitaltwinconsortium/UA-CloudViewer)). 249 | - [OPC UA for Cloud Library](https://uacloudlibrary.opcfoundation.org/) - OPC UA Information Model database with a REST and GraphQL interface ([Source](https://github.com/OPCFoundation/UA-CloudLibrary)) 250 | 251 | ## Server Simulations 252 | 253 | _Implementations of Example, Simulation and SampleServer that are running on the internet or can be run local._ 254 | 255 | - [OPC UA Player](https://github.com/MileBuurmeijer/OPCUA-Player) - supports replaying OPC UA data from a data file 256 | - [OPC UA Simulation Server](https://www.prosysopc.com/products/opc-ua-simulation-server/) - free (professional Edition can import own information model) 257 | - `depublished` ~~`opc.tcp://opcua.rocks:4840` - Demo Server based on open62541~~ 258 | - `opc.tcp://opcua.umati.app:4840` - [umati Demo Server](https://github.com/umati/Sample-Server) implementing different umati endorsed companion specifications, based on [open62541](https://open62541.org/) 259 | - `opc.tcp://opcua.umati.app:4842` - [umati Demo Server 2](https://github.com/umati/Sample-Server-asyncio) implementing different umati endorsed companion specifications, based on [opcua-asyncio](https://github.com/FreeOpcUa/opcua-asyncio) 260 | - `opc.tcp://opcua.umati.app:4843` - [umati Demo Server 3](https://github.com/umati/Sample-Server-node-opcua) implementing different umati endorsed companion specifications, based on [node-opcua](https://node-opcua.github.io/) 261 | - `opc.tcp://milo.digitalpetri.com:62541/milo` - [Demo Server](https://github.com/eclipse/milo#public-demo-server) based on eclipse/milo 262 | - `opc.tcp://opcuademo.sterfive.com:26543` - [Demo Server based on NodeOPCUA](https://github.com/node-opcua) 263 | - [Azure OPC UA Sample](https://github.com/Azure-Samples/iot-edge-opc-plc) - sample server in c# 264 | - [List of publicly availavle OPC UA Servers and Clients](https://github.com/node-opcua/node-opcua/wiki/publicly-available-OPC-UA-Servers-and-Clients) 265 | - [UaExpert file with OPC UA servers accessible online](https://www.interop4x.de/en/news/uaexpert-project-file) 266 | 267 | ## Server and client applications 268 | 269 | _Implementations of server and client applications and other examples._ 270 | 271 | - [UA-CloudDashboard](https://github.com/barnstee/UA-CloudDashboard) - A cloud-based, dockerized dashboard for displaying OPC UA PubSub telemetry data, read directly from an Azure IoT Hub. [MIT] 272 | - [UA-CloudLibrary](https://github.com/OPCFoundation/UA-CloudLibrary) - The reference implementation of the UA Cloud Library [MIT] 273 | - `deprecated`[OPCUA2AAS](https://github.com/umati/OPCUA2AAS) - OPC UA Server that can generate an Industry 4.0 Asset Admin Shell from its info model. [MIT] 274 | - [MQTTPublisherMVP](https://github.com/barnstee/MQTTPublisherMVP) - Minimum Viable Product for an MQTT-based OPC UA PubSub Publisher for industrial cloud telemetry. [MIT] 275 | - [umati Dashboard](https://umati.app) - umati community online dashboard - [Specification](https://showcase.umati.org) 276 | - [umati Sample Server](https://github.com/umati/Sample-Server) based on [open62541](https://github.com/open62541/open62541) [MPL-2.0] 277 | - [umati Sample Server 2](https://github.com/umati/Sample-Server-asyncio) based on [opcua-asyncio](https://github.com/FreeOpcUa/opcua-asyncio) [APL-2.0] 278 | - [umati Sample Server 3](https://github.com/umati/SampleServer-node-opcua) based on [node-opcua](http://node-opcua.github.io/) [APL-2.0] 279 | - [OPCModbusUAServer](https://github.com/BoBiene/OPCModbusUAServer) - An open source OPC UA server for Modbus TCP devices [MIT] 280 | - [OPC Router Docker Sample](https://github.com/OPC-Router/opc-ua-umati-mssql-grafana) - A very easy to use sample showcasing data transfers from a umati server to a SQL database. 281 | - [OPC UA Thermometer with Akri](https://docs.akri.sh/demos/opc-thermometer-demo) - A demo of Akri - Discovering and Using OPC UA Thermometers [APL-2.0] 282 | - [OPC UA Transformer](https://github.com/alw-iwu/opcua-transformer) - Transforms OPC UA Server address space into RDF data structure [APL-2.0] 283 | - [OPC UA for Joining Systems](https://github.com/umati/UA-for-Industrial-Joining-Technologies) - Test clients and servers based on OPC UA for Joining Systems developed by VDMA Industrial Joining Technologies working group. [APL-2.0] 284 | - [OPC UA primer](https://github.com/ntd/opcua-primer) - A sample OPC UA server based on `open62541` and on a model design XML. [MIT] 285 | - [opcua-skills/plug-and-produce](https://github.com/opcua-skills/plug-and-produce) - Plug-and-Produce System Architecture for Robotic Applications using OPC UA [proprietary] 286 | - [convertersystems/opc-ua-samples](https://github.com/convertersystems/opc-ua-samples) - Sample HMIs using OPC Unified Architecture (OPC UA) and Visual Studio. [MIT] 287 | - [opcua-machinery-client](https://github.com/AndreasHeine/opcua-machinery-client) - Client example showcaseing the OPC UA for Machinery from a data consumer perspective. [MIT] 288 | 289 | ## Gateways (OPC Classic) 290 | 291 | coming soon 292 | 293 | ## Community 294 | 295 | - [Stack Overflow](https://stackoverflow.com/tags/opc-ua) - Questions related to OPC UA in Stack Overflow. 296 | - [OPC Foundation Twitter](https://twitter.com/OPCFoundation) - Official OPC Foundation account that shares update about the OPC UA standard. 297 | - [OPC Foundation Ebooks](https://opcfoundation.org/resources/ebooks/) - Information about OPC UA technology and applications in different industries as contributions by various authors. 298 | 299 | ## Related Lists 300 | 301 | - [open62541's List of Open Source OPC UA Implementations](https://github.com/open62541/open62541/wiki/List-of-Open-Source-OPC-UA-Implementations) - List of open source OPC UA implementations. 302 | - [Agile-IoT/awesome-open-iot](https://github.com/Agile-IoT/awesome-open-iot) - A curated list of awesome open source IoT frameworks, libraries and software. 303 | 304 | ## Tutorials 305 | 306 | - `depublished` ~~[From modelling to execution – OPC UA Information Model Tutorial](https://opcua.rocks/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 the `open62541` OPC UA stack to create a running OPC UA server.~~ 307 | - `depublished` ~~[Visualizing OPC UA Information Model using Graphviz](https://opcua.rocks/visualizing-opc-ua-information-model-using-graphviz/) - Tutorial on how to use Graphviz to visualize OPC UA Information Models.~~ 308 | - (WIP) [OPC UA Tutorials](https://github.com/AndreasHeine/opcua-tutorial) - Tutorial for [opcua-asyncio](https://github.com/FreeOpcUa/opcua-asyncio) 309 | 310 | ## Contribute 311 | 312 | Contributions are welcome! Read the [contribution guidelines](CONTRIBUTING.md) first. 313 | 314 | ## License 315 | 316 | [CC0 1.0 Universal](LICENSE) 317 | --------------------------------------------------------------------------------