工业实时业务对无线链路的确定性要求很高,但网管侧往往看不到空口发生了什么。IO 周期性断连这类问题,链路质量正常、重传率不高,问题却反复出现。本文介绍一套把断连从「偶发」变成「可解释」的诊断方法。
一、双点抓包对齐:区分链路问题与调度问题
对真实 PROFINET / PLC 链路,在 PLC 侧与空口侧同时抓包,按时间戳 1:1 对齐比对:
| 层级 | 过滤 / 说明 |
|---|---|
| PLC 面 | EthType 0x8892;周期 RT Frame ID 0x8010(Master→Slave)/ 0x8000(Slave→Master) |
| 无线封装 | 内层仍为 PNIO,可剥离外层观察 |
| 抓包位置 | PLC 可见侧 + 空口侧 inner PNIO |
对齐后的判断逻辑:
- 两侧帧 1:1 对齐 → 非桥接/转发滞留,问题更可能在空口
- 周期帧出现 连续 3~4 拍缺失 → 触发 PLC 判 IO 坏
- 稳定段周期 ~4ms 但偶发 16~31ms 空洞 → 指向调度层而非射频层
二、空口占用观测:看清邻居在干什么
网管看不到的空口竞争,可以通过被动空口观测量化。核心思路是对本射频可见范围内所有帧做被动观测,统计每个邻居设备的占用:
- 设备级统计:以 BSSID/TA 为键聚合 airtime、帧数、RSSI,区分关联与非关联 BSS
- 冲突分类:按频谱相交关系分为同信道(CO_CHANNEL)/ 频谱重叠(OVERLAP)/ 邻频泄漏(ADJACENT)/ 带外,只把真正影响本信道的计入有效占用
- 确定性预测源:Beacon TBTT 周期对齐(邻域 AP 的发送节拍)、RTS/CTS 的 NAV 前向填充(对未来忙时的预告)、per-MAC 周期数据帧 GCD 学习(周期流的发送规律)
- 背景异常探测:长时基线与当前窗口对比(delta_busy_pct),超过阈值标记异常告警
三、缺拍周期对准:在问题瞬间冻结现场
当周期业务(如 PNIO)缺拍时,立即冻结单个周期槽内的设备×类型剖面快照,回答四个问题:
- 是否有碰撞风险?
- 需要 hold 多久避开?
- 周期发送机会是否满足?
- air busy 是否为缺拍主因?
这比滚动平均占用更有诊断价值——不是看"平均有多忙",而是看"缺拍那一刻到底谁在抢空口"。
四、根因定位与配置试验矩阵
以 PROFINET 真机 IO 断连调查为例,通过上述方法把根因方向收敛到调度层:
- 周期锁相:两侧站点按各自时钟周期发送,未锁相时周期漂移叠加
- CSMA 同拍竞争:两个站点在同一时隙同时进入发送窗口,互相退避造成批量延迟抖动
通过配置试验矩阵(改变周期、锁相开关、信道宽度)复现断连窗口与碰撞时隙的对应关系,确认根因在调度层而非射频层,并沉淀为可复用的验证清单。
五、小结
空口观测 + 双点抓包对齐的组合,解决了工业无线诊断中"网管看不到、抓包难对齐"的两大难题:既能区分链路问题与调度问题,也能在缺拍瞬间锁定真正的冲突源,把反复偶发的断连变成可解释、可复现、可整改的问题。