PubSub、MQTT 与 UNS
客户端-服务器模式无法扇出。本课程涵盖 OPC UA PubSub(Part 14 模型、UADP 和 JSON 编码、UDP、以太网和 MQTT 映射)以及它与统一命名空间、Sparkplug B 和 UAFX 确定性工作的关系。
| 课时 | 11 |
|---|---|
| 时间 | 约 88 分钟 |
| 先修要求 | A4 |
| 成本 | 免费:文字课程开放,视频和实验需要免费账号 |
学完你将能够做到
- 你能为某条数据流在客户端-服务器和 PubSub 之间做出选择。
- 你能够配置发布方和订阅方,并读懂线路格式。
- 你能设计出在第二台设备上依然成立的 MQTT 主题结构。
- 你能解释为什么不可逆 JSON 会悄悄丢失类型信息。
- 你能说清 UAFX 和 TSN 是做什么的,而不夸大它们。
课程大纲
-
1
判断你到底是否需要 PubSub7 分钟
大多数工厂并不需要。诚实的判断方法,以及在不需要时加上它的代价。
资料 一张覆盖八种真实数据流的决策表,附每一种的理由
-
2
学习 Part 14 模型9 分钟
PublishedDataSet、DataSetWriter、WriterGroup、DataSetReader。造成大部分困惑的四个对象。
资料 一组已配置的 publisher 和 subscriber,配置中每个对象都已命名
-
3
选择 UADP 还是 JSON7 分钟
二进制效率与人类可读性的取舍,以及各自适用的场合。
交付物 同一数据集在 UADP 和 JSON 两种线路形式下的对照,含字节数
-
4
避开不可逆 JSON 的陷阱8 分钟
不可逆 JSON 会丢失类型信息且无法往返还原。另外:Good 为 0 且会被省略,因此状态缺失意味着 Good,而不是数据缺失。
资料 同一个 DataValue 的可逆与不可逆 JSON 形式,并标出丢失了什么
-
5
通过 MQTT 发布9 分钟
broker 映射、主题命名、保留消息和 QoS:大多数人实际部署的那套配置。
Asset 一个向 Mosquitto 发布的 publisher,并在 MQTT Explorer 中捕获消息
-
6
通过 UDP 组播和以太网发布8 分钟
本地实时扇出、组播地址,以及什么时候原始以太网值得它带来的复杂度。
资料 在 Wireshark 中抓取的一个 UDP 组播 publisher,并解码 UADP 头
-
7
理解关键帧和增量帧7 分钟
只发送变化的部分,以及晚加入的订阅者在下一个关键帧之前什么也看不到的原因。
Asset 一段展示关键帧和增量帧的抓包,含一个晚到订阅者的空白期
-
8
用密钥服务保护 PubSub7 分钟
PubSub 没有会话,因此密钥分发的方式不同。SKS 做的是什么。
Asset 一个启用了安全的 PubSub 组,并追踪其密钥交换过程
-
9
构建可扩展的主题结构9 分钟
由浏览路径推导主题,以及那些在第二台设备而不是第一台设备上才让人难受的命名决策。
交付物 一个 40 台设备工厂的主题树,以及它规避掉的三个命名错误
-
10
与 Sparkplug B 对比9 分钟
Sparkplug 在哪里与之重叠、在哪里不重叠,以及为什么两者在真实工厂中共存。
资料 同一台设备分别以 OPC UA PubSub 和 Sparkplug B 发布,两种负载都给出
-
11
弄清 UAFX 和 TSN 的用途8 分钟
控制器之间的通信和确定性以太网。哪些已发布、哪些还没有,以及为什么这不是你的 OEE 项目所需要的。
Asset 已发布的 UAFX nodeset 及其版本和发布日期,以及各自涵盖的内容
实验
需要免费账户
用 OPC UA PubSub over MQTT 向本地 Mosquitto broker 发布两个值,在 MQTT Explorer 中检查负载,然后把编码切换为不可逆 JSON,并指出哪些内容消失了。
解锁实验 →最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。