什么是 OPC UA?
OPC UA (Open Platform Communications Unified Architecture) 是用于在机器、控制器与企业软件之间交换工业数据的开放、平台无关的标准:安全、可靠,并且把数据的含义一并携带。它由 OPC Foundation 维护,已成为工业 4.0 的骨干协议。
精确的定义
OPC UA 是一项面向服务、平台无关的机器对机器通信标准。有两点使它区别于更早的工业协议:
- 它是平台无关的。与依赖 Windows COM/DCOM 的 OPC Classic 不同,OPC UA 可以运行在任何操作系统上,从 PLC 或边缘网关到 Linux 服务器或云端。
- 它传递的是含义,而不只是数值。OPC UA 不只传输一个数字:它传输一个模型,说明这个数字是什么(温度、设定值还是机器状态)、它的数据类型、单位,以及它与其他事物的关系。
OPC UA 为何存在
工厂里运行着数十家厂商的设备,历史上各说各的方言。集成它们意味着定制的、脆弱的一次性工程。OPC UA 通过为每台设备提供一种通用的、自描述的数据暴露方式解决了这个问题:于是 SCADA 系统、MES、历史数据库或云端分析平台都能以同样的方式读取同一台机器。典型用途包括设备监控、生产数据采集、远程控制、预测性维护、历史数据访问以及 OT/IT 集成。
客户端-服务器模型
在经典的 OPC UA 模型中,服务器暴露数据并等待连接;客户端连接到它,浏览其数据,并读、写或订阅变化。一个服务器可以服务多个客户端,一个客户端也可以连接多个服务器。
核心交互(“服务”)包括浏览(发现有什么)、读/写(获取或设置数值)和订阅(数值变化时收到通知,而不是轮询)。
发布-订阅(PubSub)
客户端-服务器是一对一的请求/响应关系。对于一对多的大规模遥测,OPC UA 增加了发布-订阅模型。发布方把消息推送到中间件层;任意数量的订阅方接收消息。PubSub 可以运行在 UDP 组播上用于本地实时流量,也可以运行在 MQTT 这样的代理上,用于边缘到云的分发。
地址空间与信息模型
服务器暴露的一切都存在于它的地址空间中:一张由引用连接节点构成的图。节点可以是对象(一台泵)、变量(它的压力)、方法(启动/停止)或类型定义。由于节点是有类型且相互关联的,客户端可以浏览并理解一台从未见过的服务器。这种自描述结构就是“信息模型”,定义在 OPC UA 规范的 Part 3 和 Part 5 中。
Objects
└─ Pump_17 (Object, type: PumpType)
├─ Pressure (Variable, Double, unit: bar)
├─ Status (Variable, enum: Run/Stop/Fault)
└─ Start() (Method)
伴随规范
在基础信息模型之上,行业组织发布伴随规范:针对某个领域(机器人、机床、包装、能源等众多领域)的标准模型。当厂商实现了某个伴随规范,其设备的自描述方式就与该类别中所有其他厂商的设备一致,从而把集成从定制项目变成接近即插即用的事情。伴随规范以标准化的 NodeSet XML 文件形式分发,服务器和客户端都可以加载。
安全简述
安全性内建于 OPC UA,而不是事后加装的。它提供加密(机密性)、签名(完整性)、身份验证(证书和/或用户凭据)以及授权。连接会协商一个安全模式(None、Sign 或 Sign&Encrypt)客户端与服务器交换必须互相信任的 X.509 证书。
OPC UA 与 OPC Classic 对比
| Aspect | OPC Classic | OPC UA |
|---|---|---|
| 平台 | 仅限 Windows(COM/DCOM) | 任意操作系统 / 设备 |
| 安全 | 依赖 Windows/DCOM | 内置(加密、签名、认证) |
| 数据建模 | 仅有值 | 丰富的、带类型的信息模型 |
| 通信模型 | 客户端-服务器 | 客户端-服务器 + PubSub |
| 传输 | DCOM | TCP、WebSockets、MQTT |
数据已经通过 OPC UA 流起来了?下一步(把它变成操作工可用的、排好序并核过成本的行动)正是 Jemba 的用武之地。
查看 Jemba →常见问题
OPC UA 可以免费使用吗?
OPC UA 使用哪个端口?
我需要 PubSub 吗?
最后更新 2026 年 9 月 4 日 · OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。