参考
OPC UA SDK 与代码
按语言划分的开源 OPC UA 协议栈,带固定版本、真实约束,以及每种语言都写一遍的同样十二项任务:连接、浏览、读、写、订阅、调用方法、证书、自定义结构体、历史、报警、PubSub 和错误处理。
完整配方矩阵 4
Python:asyncua (FreeOpcUa/opcua-asyncio)asyncua 是维护中的 Python OPC UA 协议栈:原生基于 asyncio,兼具客户端和服务器,并为脚本提供同步封装。它是最快Node.js / TypeScript:node-opcuanode-opcua 是用 TypeScript 写的完整 OPC UA 实现:客户端、服务器、发现和聚合。采用 MIT 许可,这使它成为最容易上手的协议C# / .NET:OPCFoundation/UA-.NETStandardUA-.NETStandard 是官方参考实现,因此它是“这里应该怎么做?”的权威答案,也是最有可能C:open62541open62541 是面向嵌入式和资源受限目标的协议栈:可移植 C99、可直接放入构建的单文件合并版,以及 EventLoop 插
协议栈指南 6
Java:eclipse-milo/miloEclipse Milo 是主流的 JVM OPC UA 协议栈,兼具客户端和服务器,面向 1.05 规范系列。在已有的Go:gopcua/opcuagopcua 是用纯 Go 实现、以客户端为主的 OPC UA 实现,MIT 许可。它适合 Go 技术栈中的采集器或网关服务,在那里一个静Rust:locka99/opcua一个用 Rust 编写、采用 MPL-2.0 许可的 OPC UA 客户端与服务器实现。在需要无垃圾回收的内存安全的场合很有吸引力:例如边缘采C++:open62541pp 和厂商 SDK并不存在占主导地位的开源 C++ OPC UA 协议栈。实际上 C++ 项目要么用 open62541pp 封装 open62541 以获得 RAII 和类型安全,要么购买商Python(旧版): FreeOpcUa/python-opcua这是旧的 Python 协议栈,导入名为 `opcua`。它已废弃,由 asyncua 取代。它出现在这里只是因为大量已发布的MATLAB / LabVIEW:OPC Toolbox / OPC UA ToolkitMATLAB 和 LabVIEW 都提供第一方的 OPC UA 客户端附加组件。它们之所以重要,是因为大量试验台和研发工作就在这些环境里,而
最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。