第二章:通信链路故障处理
大家好,我是老张。今天咱们聊聊通信链路故障。说实话,这是风场运维里最让人头疼的问题之一。风机明明在转,数据却传不上来,你说急不急?
2.1 风机与站控层通信中断(Modbus/IEC104)
先说说最常见的场景:风机和站控层之间“失联”了。我遇到过好几次,运维人员跑到现场一看,风机运行得好好的,但中控室就是看不到数据。
Modbus 通信中断
Modbus 在老旧风场里用得特别多。说白了,就是主站轮询从站,一问一答。如果断了,原因无非这么几个:
- 物理层问题:RS485 线断了、端子松了、屏蔽层没接地。我见过一个风场,整条链路时断时续,最后发现是屏蔽层在某段被老鼠咬断了。
- 参数不匹配:波特率、数据位、校验方式对不上。嗯,这个坑我踩过。有一次新换了一台风机控制器,默认波特率是 19200,老系统用的是 9600,结果怎么都连不上。
- 地址冲突:两台风机设了同一个 Modbus 地址。你想想看,主站问 01 号风机,结果两台都回答,数据不就乱了吗?
诊断步骤(我个人的习惯):
- 用万用表测 A/B 线之间的电压,正常应该在 2-5V 之间。
- 检查终端电阻,两端各 120Ω,不能多也不能少。
- 用 Modbus 调试工具(比如 ModScan)直接连风机,看能不能读到数据。
- 如果还不行,换一台已知正常的风机试试,排除控制器本身的问题。
IEC104 通信中断
IEC104 是基于 TCP/IP 的协议,现在新建风场基本都用它。中断的原因,我总结了一下:
- IP 地址或端口配置错误:这个太常见了。站控层配的 IP 和风机实际的不一致,或者端口号写错了。
- 防火墙拦截:有些风场为了安全,在交换机上做了 ACL 访问控制,把 IEC104 的端口(通常是 2404)给拦了。
- TCP 连接超时:网络质量不好,丢包严重,导致 TCP 连接反复断开重连。
避坑指南:我曾经遇到过一个风场,IEC104 通信每天凌晨 3 点准时中断。查了半个月,最后发现是站控层的服务器在那个时间点做系统更新,重启了网卡服务。所以,排查的时候别忘了看看站控层自己的日志。
2.2 交换机端口故障
交换机是通信网络的核心节点。端口故障,说白了就是端口“罢工”了。我把它分成两类:
硬件故障
- 端口物理损坏:比如雷击、静电打坏了 PHY 芯片。这种只能换交换机。
- 光模块故障:光模块的激光器老化,发光功率下降。我建议备几个光模块,换一下试试就知道是不是它的问题。
- 网线/光纤头接触不良:这个最常见。拔插一下,或者换个端口试试。
软件/配置故障
- 端口被 shutdown:有人误操作,或者 STP(生成树协议)把端口阻塞了。
- VLAN 配置错误:端口没加入正确的 VLAN,导致数据包过不去。
- 端口速率/双工不匹配:一端是 100M 全双工,另一端是 10M 半双工,就会产生大量冲突和错包。
注意:排查交换机端口故障时,先看端口指示灯。Link 灯不亮,大概率是物理层问题;Link 灯亮但数据不通,多半是配置问题。我习惯用 show interface 命令看端口状态和错误计数,如果 CRC 错误一直在涨,那基本就是物理层有问题。
2.3 光纤链路诊断
光纤在风场里用得越来越多,因为它抗干扰、传输距离远。但光纤出问题,诊断起来比网线麻烦。为什么?因为你看不见光啊。
常见故障
- 光纤断裂:施工挖断、老鼠咬断、或者弯曲半径太小导致断裂。
- 光衰过大:接头脏了、熔接点损耗大、或者光纤本身老化。
- 光模块不匹配:单模光纤配了多模光模块,或者波长不对(1310nm 和 1550nm 混用)。
诊断工具和方法
| 工具 | 用途 | 我的经验 |
|---|---|---|
| 光功率计 | 测量接收端的光功率 | 正常应该在 -20dBm 到 -3dBm 之间,低于 -25dBm 就容易丢包 |
| OTDR | 定位光纤断点或高损耗点 | 可以精确到米级,但需要专业培训才能看懂波形 |
| 红光笔 | 肉眼检查光纤是否通断 | 只能测通断,不能测质量。注意别直视,伤眼睛 |
| 光纤清洁工具 | 清洁光纤端面 | 很多“故障”其实就是接头脏了,擦一下就好 |
我的诊断流程:
- 先看光模块的指示灯。RX 灯不亮,说明对端没发过来光。
- 用光功率计测接收光功率。如果功率正常,那问题可能在交换机配置上。
- 如果功率偏低,用酒精棉清洁光纤接头,再测一次。
- 还不行,用 OTDR 打一下,看有没有断点或高损耗点。
2.4 环网冗余切换机制
风场通信网络通常做成环形,就是为了冗余。一条链路断了,数据还能从另一条走。但环网切换不是瞬间完成的,这里面的门道不少。
常见的环网协议
- STP/RSTP:标准协议,兼容性好,但 RSTP 切换时间在 1-2 秒,对于实时性要求高的场景可能不够。
- MRP:工业以太网常用,切换时间可以做到 20ms 以内,但需要专用交换机。
- 私有环网协议:比如某些交换机厂家的 Turbo Ring,切换时间更快,但不同品牌之间不互通。
切换失败的原因
我遇到过好几次环网切换失败的情况,总结下来主要是这几个原因:
- Hello 报文丢失:环网协议靠 Hello 报文来检测链路状态。如果网络拥塞导致 Hello 报文丢了,交换机就会误判链路中断,触发不必要的切换。
- 优先级配置错误:环网中需要指定一个“根桥”或“主节点”。如果配置乱了,可能导致环路或者切换时间变长。
- 链路震荡:光纤接触不良,导致链路频繁 up/down,环网协议反复切换,最后整个网络都不稳定。
避坑指南:我曾经在一个风场调试环网,发现切换时间总是超过 5 秒。查了半天,发现是交换机的 CPU 负载太高,处理环网协议报文不及时。后来把交换机的管理 VLAN 和数据 VLAN 分开,问题就解决了。所以,别忘了看看交换机的 CPU 利用率。
知识体系总览
下面这张图,是我自己画的通信链路故障处理的知识体系。你可以把它当成一张“作战地图”,遇到问题按图索骥就行。
好了,通信链路故障处理这块,核心就是“先物理后逻辑,先硬件后软件”。你按这个思路走,大部分问题都能搞定。下次咱们聊聊更具体的案例,到时候再细说。
公众号:蓝海资料掘金营,微信deep3321