open62541 是 OPC UA 规范的C语言开源实现。
OPC通信标准的核心是互通性 (Interoperability) 和标准化 (Standardization) 问题。传统的OPC技术在控制级别很好地解决了硬件设备间的互通性问题,在企业层面的通信标准化是同样需要的。OPC UA之前的访问规范都是基于微软的COM/DCOM技术, 这会给新增层面的通信带来不可根除的弱点。加上传统OPC技术不够灵活、平台局限等问题的逐渐凸显, OPC基金会 (OPC Foundation) 发布了最新的数据通讯统一方法 — OPC统一架构 (OPC UA), 涵盖了OPC 实时数据访问规范 (OPC DA)、OPC历史数据访问规范 (OPC HDA)、 OPC 报警事件访问规范 (OPC A&E) 和OPC安全协议 (OPC Security) 的不同方面, 但在其基础之上进行了功能扩展。
OPC UA,是在传统OPC技术取得很大成功之后的又一个突破,让数据采集、信息模型化以及工厂底层与企业层面之间的通讯更加安全、可靠。
特性
open62541 实现了 OPC UA 二进制协议栈以及客户端和服务器 SDK。它目前支持 Micro Embedded Device Server Profile 以及一些其他功能。最终的服务器二进制文件可以低于100kb,具体取决于信息模型的大小。
-
通信栈
-
OPC UA 二进制协议
-
分块(拆分大信息)
-
可交换网络层(插件),用于使用自定义网络 API (e.g. 用于嵌入式)
-
-
信息模型
-
支持所有 OPC UA 节点类型 (包括方法节点)
-
支持在运行时新增或删除节点与引用。
-
支持对象和变量类型的继承和实例化 (自定义构造函数/析构函数,子节点的实例化)
-
-
订阅
-
支持订阅/监控项目以获取数据更改通知
-
每个监控值的资源消耗非常低 (基于事件服务架构)
-
-
代码生成
-
支持从标准 XML 定义生成数据类型
-
支持从标准 XML 定义生成服务器端信息模型(节点集)
-