1. OPC UA 概述:协议发展、核心特性与传统 OPC DA 对比

OPC UA(OPC Unified Architecture,统一架构)是工业自动化领域用于安全、可靠、跨平台数据交换的核心标准。本章从发展历史、核心特性及与传统 OPC DA 的差异三个维度,建立对 OPC UA 协议的基础认知。

1.1 OPC UA 协议发展历史

OPC 标准经历了从 Windows 绑定到平台无关的演进过程,关键里程碑如下:

时间 版本 / 事件 核心变化
1996 OPC DA 1.0(数据访问) 基于 COM/DCOM,仅限 Windows 平台,解决硬件驱动接口不统一问题
2003 OPC DA 2.0 / 3.0 增强性能与稳定性,但依然依赖 DCOM 远程配置,防火墙穿透困难
2006 OPC UA 1.0 发布 抛弃 COM/DCOM,采用面向服务架构(SOA),支持跨平台
2011 OPC UA 1.02 增加历史数据访问(HA)与报警条件(AC)规范
2018 OPC UA 1.04 引入 PubSub(发布/订阅)模型,支持 MQTT/AMQP 传输
2023+ OPC UA FX(Field eXchange) 面向现场级确定性通信,融合 TSN 时间敏感网络
关键认知: OPC UA 不是 OPC DA 的简单升级,而是完全重写的协议栈。从 2006 年至今,OPC UA 已成为 IEC 62541 国际标准,是工业 4.0 和智能制造中数据互操作的基础。

1.2 OPC UA 核心特性

OPC UA 围绕安全、跨平台、信息模型三大支柱设计,解决了传统 OPC 的固有缺陷。

1.2.1 安全(Security)

  • 传输加密: 支持 AES-128/256 对称加密,防止数据窃听。
  • 签名与认证: 基于 X.509 证书实现客户端与服务器双向认证,防止中间人攻击。
  • 用户授权: 支持用户名/密码、证书、Kerberos 等多种身份验证方式。
  • 审计日志: 所有会话与操作可追溯,满足工业合规要求。

1.2.2 跨平台(Cross-Platform)

  • 平台无关: 从嵌入式微控制器(Linux/RTOS)到 Windows Server、云端容器均可运行。
  • 传输协议: 支持 OPC UA 二进制(高效)与 OPC UA XML/JSON(Web 友好),可运行在 TCP、HTTPS、MQTT 之上。
  • 编程语言: 官方 SDK 覆盖 C/C++、C#、Java、Python、Go 等主流语言。

1.2.3 信息模型(Information Model)

  • 面向对象: 使用节点(Node)和引用(Reference)构建类型化地址空间,支持继承、组合。
  • 语义自描述: 服务器暴露元数据(类型、属性、方法),客户端可动态发现数据含义。
  • 标准配套规范: 如 PLCopen(运动控制)、MDIS(机器人)、ISA-95(MES/ERP 集成)等。
OPC UA 核心特性架构 安全 Security AES-256 加密 X.509 证书认证 用户授权 审计日志 会话加密 跨平台 Cross-Platform Windows / Linux / RTOS 嵌入式到云端 二进制 / JSON / XML TCP / HTTPS / MQTT 多语言 SDK 信息模型 Info Model 面向对象节点 类型继承与组合 语义自描述 配套规范 元数据暴露 三者共同构成 OPC UA 统一架构基础

1.3 OPC UA 与传统 OPC DA 的区别

OPC DA(Data Access)是经典 OPC 规范中最广泛使用的部分,但受限于 COM/DCOM 技术栈。下表从多个维度对比两者差异:

对比维度 OPC DA(Classic) OPC UA
底层技术 COM / DCOM(Windows 绑定) 面向服务架构(SOA),独立于平台
跨平台能力 仅限 Windows Windows、Linux、macOS、嵌入式 RTOS
安全性 依赖 DCOM 安全设置,防火墙穿透困难 内置加密、签名、证书认证、审计
数据模型 扁平标签(Tag),无类型信息 面向对象信息模型,支持类型、方法、元数据
历史数据 需额外 OPC HDA 规范 内置历史数据访问(HA)服务
报警与事件 需额外 OPC AE 规范 内置报警与条件(AC)服务
通信模式 客户端/服务器(C/S) C/S + PubSub(发布/订阅)
冗余机制 无标准冗余 支持服务器冗余、会话切换
国际标准 无 IEC 62541 系列标准
迁移建议: 新建项目应直接采用 OPC UA。对于存量 OPC DA 系统,可通过 OPC UA 网关(如 Kepware、Softing)实现桥接,逐步向统一架构迁移。

1.4 OPC UA 协议栈架构

OPC UA 协议栈采用分层设计,从传输层到应用层职责清晰。下图展示了标准 OPC UA 服务器与客户端的软件架构:

OPC UA 协议栈分层架构 OPC UA 客户端 应用层(Client Application) OPC UA 客户端 API 通信栈(SDK 通信层) 传输层(TCP / HTTPS / MQTT) 网络 OPC UA 服务器 传输层(TCP / HTTPS / MQTT) 通信栈(SDK 通信层) OPC UA 服务器 API 地址空间(信息模型实例) 数据源(PLC / 设备 / 数据库)
注意: 实际部署中,OPC UA 服务器地址空间的大小直接影响内存占用和启动时间。建议在信息模型设计阶段合理规划节点数量,避免将整个工厂所有变量不加筛选地暴露。

1.5 本章小结

  • OPC UA 从 2006 年发展至今,已成为 IEC 62541 国际标准,替代了基于 COM/DCOM 的传统 OPC。
  • 安全、跨平台、信息模型是 OPC UA 的三大核心特性,使其适用于从现场设备到云端的全场景数据采集。
  • 与传统 OPC DA 相比,OPC UA 在平台支持、安全机制、数据语义、历史数据、报警事件等方面具有全面优势。
  • OPC UA 协议栈采用分层架构,客户端与服务器通过标准通信栈交互,地址空间承载信息模型实例。