4. OPC UA通信机制
OPC UA 的通信机制并不是“一个协议包打天下”,而是由多种交互模式、安全层、会话层和传输绑定共同组成的通信栈。理解这套机制,是后续把 AI 模型、数据采集与工业现场可靠连接起来的基础。本节围绕四个关键点展开:客户端/服务器架构、发布/订阅模式、安全通道、会话管理与传输协议。
一、核心原理:两种交互模式与四层通信结构
OPC UA 最基础的交互模式是客户端/服务器(Client/Server)。客户端主动发起服务请求,服务器响应并返回结果,典型服务包括 Read、Write、Browse、Call、CreateSubscription 等。它适合按需查询、参数下发、方法调用等“请求—响应”场景。
第二种模式是发布/订阅(Pub/Sub)。发布者把数据编码为 DataSet,通过消息中间件或 UDP 多播发送;订阅者按主题或数据集接收,不需要与发布者建立点对点会话。它适合高吞吐、多消费者、低耦合的数据分发,例如把产线传感器数据同时推送给 AI 推理服务、历史库和看板。
从纵向看,OPC UA 通信可理解为四层:传输绑定层(TCP、HTTPS、UDP、MQTT、AMQP)、安全通道层(签名、加密、证书)、会话层(Session、认证、超时、续期)、服务/信息模型层(节点、方法、订阅、事件)。AI 集成时,数据语义由信息模型层决定,而可靠性、实时性和安全性主要由下面三层决定。
二、方法流程:一次安全会话的建立过程
以客户端/服务器模式为例,一次完整通信通常经历以下步骤:
- 传输连接:客户端与服务器建立 TCP 或 HTTPS 连接,默认端口 4840(opc.tcp)。
- 安全通道建立:双方交换证书,协商安全策略与消息安全模式,生成对称密钥。
- 创建会话:客户端发送 CreateSession 请求,携带应用实例证书和用户身份令牌。
- 激活会话:ActivateSession 完成用户认证,会话正式可用。
- 服务调用:执行 Read、Browse、CreateSubscription 等操作。
- 会话维护:通过心跳或超时机制保持会话,必要时续期。
- 关闭会话:CloseSession 释放资源,关闭安全通道。
发布/订阅模式则不同:发布者与订阅者不建立会话,而是通过 Broker 或 UDP 多播交换数据。发布者配置 PublishedDataSet 和 WriterGroup,订阅者配置 DataSetReader 和 ReaderGroup,双方通过数据集名称和版本匹配。
三、安全通道与会话管理的关键参数
安全通道决定“数据在传输中是否可信”,会话管理决定“谁在访问、访问多久”。两者常被混淆,实际职责不同。下表列出常见配置项与作用。
| 配置项 | 所属层 | 作用 | 常见取值/示例 |
|---|---|---|---|
| SecurityPolicy | 安全通道 | 决定签名与加密算法 | None、Basic256Sha256、Aes256Sha256RsaPss |
| MessageSecurityMode | 安全通道 | 消息保护级别 | None、Sign、SignAndEncrypt |
| UserTokenType | 会话 | 用户身份认证方式 | Anonymous、UserName、Certificate |
| SessionTimeout | 会话 | 会话空闲超时时间 | 60000 ms、3600000 ms |
| PublishingInterval | 订阅 | 数据发布周期 | 100 ms、1000 ms |
| TransportProfile | 传输 | 传输绑定类型 | opc.tcp、https、mqtt、udp |
四、案例场景:AI 质检产线的数据链路
某 AI 质检产线需要把 20 台相机的检测结果、PLC 状态和机器人坐标同时送入推理服务、MES 和历史库。若全部用客户端/服务器轮询,服务器压力大且延迟高。更合理的做法是:
- PLC 与相机网关作为 Publisher,把检测结果、状态字、坐标打包为 DataSet,通过 MQTT Broker 发布。
- AI 推理服务、MES、历史库作为 Subscriber,各自订阅所需数据集,互不干扰。
- 参数下发、配方切换、方法调用等低频操作,仍走 客户端/服务器 模式,保证确认与回执。
- 安全通道启用 Basic256Sha256 + SignAndEncrypt,用户令牌使用证书认证。
这样既保留了请求—响应的可控性,又获得了发布/订阅的扩展性。AI 模型只需关注数据集语义,不必关心底层是 MQTT 还是 UDP。
五、误区与复盘
复盘时可用一段配置片段检查关键参数:
Endpoint: opc.tcp://192.168.10.20:4840
SecurityPolicy: Basic256Sha256
MessageSecurityMode: SignAndEncrypt
UserTokenType: Certificate
SessionTimeout: 3600000
Subscription:
PublishingInterval: 200
SamplingInterval: 100
QueueSize: 10
PubSub:
Transport: MQTT
Broker: mqtt://192.168.10.30:1883
DataSet: Line1QualityResult
掌握这四类机制后,AI 与 OPC UA 的集成就有了清晰的落点:用客户端/服务器做控制与确认,用发布/订阅做高吞吐数据分发,用安全通道和会话管理保证可信访问,再根据现场条件选择合适的传输绑定。这样构建的系统,既能满足工业现场的确定性要求,也能为 AI 模型提供稳定、语义明确的数据入口。