4. TSN关键机制
在 OPC UA FX 与 TSN 融合的控制网络中,TSN 并不是单一协议,而是一组 IEEE 802.1 标准的组合。它要解决的核心问题是:在同一个以太网物理链路上,如何让周期性控制数据、视频流、普通 IT 流量共存,同时保证关键控制帧的时延、抖动和丢包率满足工业要求。本节围绕四个关键机制展开:802.1AS 时间同步、802.1Qbv 流量调度、802.1Qbu 帧抢占、802.1Qat 流预留。它们分别回答“大家的时间是否一致”“谁先发”“发到一半能否让路”“带宽是否提前留好”四个问题。
一句话理解四者关系:802.1AS 提供统一时间基准,802.1Qbv 基于该时间基准编排门控队列,802.1Qbu 在门控切换瞬间允许高优先级帧抢占低优先级帧,802.1Qat 则为特定数据流预留带宽并建立路径。四者协同,才能形成确定性的工业控制网络。
一、802.1AS:时间同步是确定性的基础
TSN 中所有调度、门控、采样和输出动作都依赖一个共同的时间轴。802.1AS(gPTP,通用精确时间协议)通过主时钟(Grandmaster)向全网分发时间,逐跳测量链路时延并进行频率与相位校正。与普通 NTP 不同,802.1AS 工作在二层,通常可达到亚微秒级同步精度,适合运动控制、分布式采样等场景。
其基本流程是:先选举最优主时钟,再建立同步生成树,随后通过 Sync、Follow_Up、Pdelay_Req、Pdelay_Resp 等报文交换,计算路径延迟并修正本地时钟。每个支持 802.1AS 的桥和端点都参与转发与测量,因此同步精度不会因跳数增加而迅速恶化。
# 典型 gPTP 时间同步报文交互(简化)
Master -> Slave : Sync
Master -> Slave : Follow_Up (携带精确发送时间)
Slave -> Master: Pdelay_Req
Master -> Slave : Pdelay_Resp
Master -> Slave : Pdelay_Resp_Follow_Up
# 从时钟据此计算 offset 与 rate ratio,修正本地时间
在 OPC UA FX 场景中,时间同步不仅用于网络调度,也用于给过程数据打时间戳,使不同设备采集的数据能在同一时间基准下对齐。若同步失效,Qbv 门控将失去意义,控制周期可能出现抖动甚至错乱。
二、802.1Qbv:用时间感知整形器编排流量
802.1Qbv 的核心是时间感知整形器(Time-Aware Shaper,TAS)。它为每个出端口维护多个队列,并通过门控列表(Gate Control List,GCL)按周期控制每个队列的“开/关”状态。这样,高优先级控制流可以在指定时间窗口独占链路,普通流量则被安排在剩余窗口。
GCL 由若干门控条目组成,每个条目包含时间间隔和门控状态位图。例如,在一个 1 ms 周期内,前 200 μs 只允许控制队列发送,后 800 μs 允许其他队列发送。交换机依据 802.1AS 同步时间执行 GCL,从而形成可预测的发送时序。
| 机制 | 标准 | 主要作用 | 关键对象 | 典型参数 |
|---|---|---|---|---|
| 时间同步 | 802.1AS | 建立全网统一时间基准 | 主时钟、从时钟、Pdelay | 同步精度、周期 |
| 流量调度 | 802.1Qbv | 按时间窗口控制队列发送 | GCL、门控、队列 | 周期、时隙、门控位图 |
| 帧抢占 | 802.1Qbu | 高优先级帧打断低优先级帧 | pMAC、eMAC、mCRC | 最小帧长、抢占片段 |
| 流预留 | 802.1Qat | 为数据流预留带宽与路径 | MSRP、Talker、Listener | 带宽、时延、路径 |
三、802.1Qbu:帧抢占减少高优先级等待
即使有 Qbv 门控,若低优先级帧已经开始发送,高优先级帧仍需等待其发送完毕。一个 1500 字节的帧在 100 Mbps 链路上占用约 120 μs,这对控制周期而言可能不可接受。802.1Qbu 允许高优先级帧抢占正在发送的低优先级帧:低优先级帧被切分为片段,先发送高优先级帧,之后再继续发送剩余片段。
实现上,MAC 被划分为 eMAC(可抢占 MAC)和 pMAC(抢占 MAC),并引入 mCRC 校验和片段计数。接收端根据片段重组原始帧。需要注意的是,抢占不是“丢弃”,而是“暂停并续传”,因此不会破坏低优先级数据的完整性,但会增加实现复杂度。
理解要点:Qbv 解决“什么时候轮到谁发”,Qbu 解决“轮到高优先级时,低优先级是否必须发完”。两者结合,才能把高优先级帧的等待时间压缩到最小。
四、802.1Qat:流预留让带宽可承诺
802.1Qat 定义了流预留协议(SRP),其中 MSRP(多流注册协议)负责在 Talker 和 Listener 之间建立数据流,并沿路径逐跳预留带宽。Talker 声明流的特征,如数据速率、最大帧长、时延要求;交换机检查资源是否足够,若足够则预留,否则拒绝。这样,网络不再“尽力而为”,而是对关键流做出资源承诺。
在 OPC UA FX 中,控制器与现场设备之间的周期性控制流可以通过流预留获得稳定带宽,避免被突发视频或文件传输挤占。流预留通常与 Qbv、Qbu 配合使用:Qat 负责“留资源”,Qbv 负责“排时间”,Qbu 负责“抢瞬间”。
五、协同工作场景与常见误区
假设一条 1 Gbps 工业环网中,存在三类流量:运动控制流(周期 250 μs)、机器视觉流(周期 4 ms)、普通 IT 流。配置思路如下:
- 启用 802.1AS,确保所有交换机与端点同步到同一主时钟。
- 为运动控制流分配最高优先级队列,并用 802.1Qbv 在每 250 μs 周期内打开固定时隙。
- 启用 802.1Qbu,使视觉流或 IT 流的大帧在控制时隙到来时被抢占。
- 使用 802.1Qat 为运动控制流和视觉流分别预留带宽,防止超订。
- 通过 OPC UA FX 连接管理,将控制应用与 TSN 流绑定,实现参数化配置。
常见误区:只配置 Qbv 而不启用 802.1AS,门控将无法对齐;只启用 Qat 而不配置 Qbv,预留带宽仍可能被其他流量在时间上阻塞;忽略 Qbu 时,低优先级大帧会造成高优先级帧的额外排队时延。四者不是可选项的简单叠加,而是相互依赖的组合。
复盘时,应重点检查:时间同步是否稳定、GCL 周期是否与控制周期匹配、抢占片段是否被正确重组、流预留是否超订、以及交换机是否支持所需标准。只有这些机制协同工作,OPC UA FX 才能在 TSN 上实现真正可预测的工业通信。