OPC UA 协议:特性、信息模型和信息模型MQTT协同

来源:  星创易联 发布时间: 2024-01-05 14:52:25
导读 OPC UA是一种独立于平台、面向服务、开放、安全的通信架构。它实现了不同供应商的工业自动化设备、系统和软件应用程序的互操作性。 OPC UA信息模型定义了使用各种传输协议交换数据的代码和格式。
image.png

OPC UA是一种独立于平台、面向服务、开放、安全的通信架构。它实现了不同供应商的工业自动化设备、系统和软件应用程序的互操作性。 OPC UA信息模型定义了使用各种传输协议交换数据的代码和格式。

同一基金会开发了 OPC UA 及其前身开放平台通信 (OPC),但它们有显着不同。该基金会持续开发 OPC UA,以创建比原始 OPC 通信更理想、更符合不断发展的工业自动化需求的架构。

OPC 基金会于 2006 年发布了 OPC UA 规范的第一个版本,截至目前,OPC UA 的版本为 1.05。除了客户端-服务器(订阅)模型之外,OPC UA 还包括 Pub-Sub 机制,该机制允许通过 UDP 协议推送 JSON 规范(也使用标准定义的二进制规范 - UADP), MQTT 协议,或 AMQP 协议。

通过 MQTT 协议提供的快速、安全、可靠的传输通道MQTT,OPC UA 可以直接利用互联网进行数据传输,同时保留 OPC UA 端到端安全性和标准化数据建模的主要优势。

image.png

OPC UA的特点

  • 功能等效 – 所有 OPC Classic 规范都映射到 UA,并且 OPC UA 包括 OPC Classic 中的 DA、A&E 和 HDA 功能:

功能性描述
发现查找本地 PC 和/或网络上可用的 OPC 服务器
地址空间所有数据均按层次结构表示(例如文件和文件夹),允许 OPC 客户端发现和利用简单和复杂的数据结构
一经请求根据访问权限读写数据/信息
订阅监控数据/信息并在值变化超出客户设置时报告异常
事件基于客户端的设置通知重要信息
方法客户端可以根据服务器上定义的方法等执行程序。
  • 安全性 – 消息加密、身份验证和审核,组织在选择技术标准时最重要的考虑因素之一就是安全性。 OPC UA 通过在穿过防火墙时提供一组控制来解决安全问题:

功能性描述
运输定义了许多协议,提供超快速 OPC 二进制传输或更通用的 SOAP-HTTPS 等选项
会话加密通过 128 位或 256 位加密级别安全传输信息
消息签名消息接收时和发送时的签名必须相同。
测序数据包通过排序消除已识别的消息重放攻击
认证每个 UA 客户端和服务器均由 OpenSSL 证书标识,该证书提供对应用程序和系统如何相互连接的控制。
用户控制应用程序可能需要用户身份验证(登录凭据、证书等),并且可以进一步限制或增强用户对权限和地址空间“视图”的访问。
审计记录用户和/或系统活动以提供访问审核跟踪
  • 综合信息建模:OPC UA 信息建模框架,用于定义复杂信息,将数据转换为信息。它允许通过完全面向对象的功能来建模和扩展甚至最复杂的多级结构,并能够在配置文件中定义数据类型和结构。

image.png

OPC UA 信息模型

OPC UA 信息模型(地址空间)是形成结构化图的节点和引用的网络。

标准形式的对象在地址空间中表示,其中模型元素称为节点。地址空间将对象及其组件表示为节点的集合,由属性描述并通过引用连接。 OPC UA 建模就是创建节点以及节点之间的引用。

对象模型

OPC UA 使用对象作为表示处理系统中的数据和活动的基础。变量、事件和方法通过对象内的引用互连。

image.png

节点模型

image.png
  • 属性描述节点,不同的节点类具有不同的属性集。节点类的定义包括定义属性,因此地址空间不包括属性。

  • 引用表示节点之间的关系。地址空间中存在的引用类型节点的实例定义了引用。

  • 节点模型的通用属性

image.png

参考模型

源节点是包含引用的节点,目标节点是被引用的节点。引用的目标节点可以与源节点位于同一地址空间,也可以位于另一个OPC服务器的地址空间,甚至目标节点可以不存在。

image.png

节点类型

OPC UA 中最重要的节点类别是对象、变量和方法。

  • 对象节点:用户使用对象节点组成地址空间,这些节点不包含数据。他们使用变量来公开对象的值。用户可以使用对象节点对管理对象、变量或方法进行分组;变量和方法始终属于一个对象。

  • 变量节点:变量节点代表一个值。值的数据类型取决于变量。客户端可以读取、写入和订阅该值。

  • 方法节点:方法节点表示客户端调用并接收结果的服务器中的方法。输入参数和输出结果以变量的形式作为方法节点的一部分。客户端指定输入参数,调用后获取输出结果。

为什么将 OPC UA 桥接到 MQTT?

MQTT 是一种轻量级、高效且可靠的 IoT 消息传递协议,采用发布订阅模型来支持实时通信。 MQTT 非常适合资源受限的环境,特别是需要高效使用电源和带宽的场景。

SparkplugB 基于 MQTT 3.1.1 构建,通过行业既定规范确保工业物联网灵活、高效的基础数据建模。得益于 MQTT 的出色设计,SparkPlugB 实现了强大的互操作性和网络状态感知。

OPC UA和MQTT有一定程度的功能重叠,但它们的使用场景却截然不同:

  • OPC UA通过使用标准化语言促进行业内不同设备和系统之间的无缝通信。

  • MQTT 通过互联网高效处理实时传感器数据,解决物联网应用中的低带宽和不可靠的网络状况。其读取/发布机制在使用上提供了显着的灵活性。

在工业场景中,MQTT 擅长于分布式系统中的消息传递,而 OPC UA 则专注于提供互操作性。 OPC UA对业务数据进行抽象和聚合,MQTT以其强大的连接能力促进无缝、分布式数据交换。

基于 MQTT 的 OPC UA

OPC 基金会在 OPC UA 最新规范中提出的 Pub-Sub 模型允许使用 MQTT 代理将数据更改推送给订阅者。

image.png

Pub-Sub 安全性比客户端/服务器中的安全性要复杂一些,而且规范也没有那么详细。在 MQTT 网络中,安全性基于 SSL/TLS,除了启用 SSL/TLS 传输之外,代理还可以定义应用程序级身份验证。

原则上,这些安全模型对于每个可以加入网络的订阅者和发布者来说要么全部,要么全无。 OPC UA 正在进行的标准化工作仍在进行中,目前还不清楚如何最好地将丰富的 OPC UA 信息模型映射到 MQTT。


文章对应产品

SR500工业路由器(双口)
SR510工业路由器(电力)
SR700路由器(单模双卡)
SR700-D路由器(双模)

产品对应解决方案

在线咨询
产品PK
样机申请
选购攻略

微信扫一扫

微信联系
返回顶部