4. 通信故障排查(下):以太网/TCP-IP通信故障、IP冲突排查、交换机/路由器配置检查、抓包工具Wireshark基础使用

好,咱们接着聊通信故障。上一章我们把物理层和串口通信的坑填了不少,这一章重点落在以太网和TCP/IP协议栈上。说实话,光伏储能系统里,以太网通信的故障率比很多人想象的要高。我见过不少项目,现场调试人员折腾了一整天,最后发现就是一根网线没插紧,或者IP地址写错了。

嗯,咱们直接进入正题。

4.1 以太网/TCP-IP通信故障的常见表现

先说说故障现象。你在EMS后台看到什么?

  • 设备离线:PCS、BMS、电表等设备在监控列表里显示灰色,状态为“通信中断”。
  • 数据跳变:电压、电流、SOC等数值偶尔更新,但大部分时间卡住不动。
  • 响应超时:下发控制指令(比如“启动充电”),设备没有回应,后台报“超时错误”。
  • 周期性断连:设备每隔几分钟掉线一次,然后又自动恢复。

为什么会这样?说白了,就是数据包没能在正确的时间到达正确的地方。我个人的排查习惯是:先看物理层,再看网络层,最后看应用层。别一上来就抓包,那是最后的手段。

4.2 IP冲突排查:最容易被忽略的“隐形杀手”

IP冲突,我愿称之为现场调试的“头号刺客”。

你在一个光伏电站里,可能有几十台设备:PCS、BMS、汇流箱、气象站、摄像头……如果网络规划没做好,或者有人手贱改了IP,两台设备用了同一个IP地址,那结果就是——两台设备轮流掉线,或者干脆都上不了线。

核心判断方法:

  • 在EMS后台ping目标IP,如果有时通有时不通,大概率是IP冲突。
  • 用ARP命令查看MAC地址:arp -a。如果同一个IP对应了两个不同的MAC地址,那就是冲突了。
  • 更直接的办法:拔掉疑似冲突设备的网线,再ping一次。如果通了,说明就是它在捣乱。

我的经验:有一次在西北某光伏电站,PCS总是每隔3分钟掉线一次。我排查了交换机、网线、光纤收发器,折腾了2小时。最后用arp -a一看,PCS的IP和现场一台笔记本电脑的IP一模一样。原来运维人员临时用笔记本调试,随手设了个静态IP,正好撞上了。嗯,从那以后,我要求所有现场设备必须使用DHCP静态分配,或者统一规划IP段,严禁随意设置。

4.3 交换机/路由器配置检查

很多工程师觉得交换机配置是网络工程师的事,自己不懂。其实不用怕,你只需要掌握几个关键点。

4.3.1 VLAN配置

光伏电站里,为了安全隔离,经常会把PCS、BMS、监控系统划分到不同的VLAN。如果VLAN没配好,设备之间就ping不通。检查方法:

  • 登录交换机,查看端口所属VLAN:show vlan brief(思科)或 display vlan(华为/H3C)。
  • 确认EMS所在的端口和PCS所在的端口是否在同一个VLAN里。
  • 如果跨VLAN通信,检查是否有三层接口或路由配置。

4.3.2 端口速率与双工模式

这个坑我踩过。有些老旧设备(比如某些电表)只支持10M半双工,而交换机默认是100M全双工。结果就是:能通,但丢包率极高。

  • 检查端口状态:show interface status
  • 如果发现大量CRC错误或碰撞,强制设置端口速率为10M半双工试试。

4.3.3 STP(生成树协议)

如果网络中有环路,STP会阻塞端口。但有时候STP收敛太慢,导致设备启动时无法及时通信。我建议:

  • 在连接终端设备的端口上开启portfast(思科)或边缘端口(华为),让端口立即进入转发状态。
  • 命令示例(思科):interface GigabitEthernet0/1spanning-tree portfast

注意:千万不要在连接其他交换机的端口上开portfast,否则会造成广播风暴。我曾经见过一个新手把核心交换机的上联口开了portfast,结果整个电站网络瘫痪了10分钟。

4.4 抓包工具Wireshark基础使用

当ping通、IP没冲突、交换机配置也没问题,但数据就是不对时,就该请出Wireshark了。说实话,Wireshark是排查通信故障的“终极武器”,但很多人觉得它太复杂。其实你只需要掌握几个核心功能。

4.4.1 安装与启动

Wireshark是免费的,官网下载即可。安装时注意勾选“WinPcap”或“Npcap”,否则抓不到包。

4.4.2 抓包过滤器

别一上来就点“开始”,那样会抓到海量数据,你根本看不过来。先设置过滤器:

  • 按IP过滤ip.addr == 192.168.1.100 —— 只看这个IP的流量。
  • 按协议过滤modbus —— 只看Modbus TCP报文(光伏系统里很常用)。
  • 按端口过滤tcp.port == 502 —— Modbus TCP默认端口是502。

4.4.3 分析关键信息

抓到包之后,看什么?

  • 三次握手:SYN → SYN-ACK → ACK。如果只有SYN没有ACK,说明对方没响应。
  • 重传包:Wireshark里标记为“TCP Retransmission”的包。如果重传率超过5%,说明网络质量很差。
  • 应用层数据:比如Modbus报文,看功能码和寄存器地址是否正确。

实战案例:有一次,EMS下发“启动PCS”指令,PCS没反应。我抓包一看,EMS发出的Modbus报文功能码是0x10(写多个寄存器),但PCS只支持0x06(写单个寄存器)。问题不在网络,在协议不匹配。嗯,这就是抓包的价值——让你看到“数据到底长什么样”。

4.4.4 常用技巧

  • 追踪流:右键点击一个TCP包 → Follow → TCP Stream,可以看整个会话的原始数据。
  • 统计:Statistics → IO Graph,可以看流量趋势,判断是否有周期性丢包。
  • 着色规则:Wireshark默认用颜色标记不同协议,比如HTTP是绿色,TCP重传是红色。熟悉这些颜色能帮你快速定位问题。

4.5 本章知识体系

下面这张图,是我自己总结的以太网通信故障排查流程。你照着这个顺序走,90%的问题都能解决。

以太网通信故障排查流程 1. 物理层检查 2. IP冲突排查 3. 交换机/路由器配置 4. Wireshark抓包分析 5. 定位并修复故障 关键检查项 • 网线/光纤是否松动 • 端口指示灯状态 • 设备电源是否正常 • arp -a 查看MAC • ping 测试稳定性 • VLAN配置 • 端口速率/双工 • STP portfast • 抓包过滤器设置 • 三次握手检查 • 重传包分析

4.6 避坑指南

最后,分享几个我踩过的坑,希望能帮你省点时间。

  • 别信“灯亮就是好的”:交换机端口指示灯亮,只代表物理层有信号,不代表数据能正常传输。我遇到过网线内部断了两根线,灯照样亮,但丢包率50%。
  • 防火墙和杀毒软件:在Windows上跑EMS时,Windows防火墙或第三方杀毒软件可能会拦截Modbus TCP报文。我建议先把防火墙关了测试,如果问题消失,再配置例外规则。
  • MTU设置:有些光伏设备(尤其是老款电表)不支持巨型帧。如果交换机开启了Jumbo Frame(MTU>1500),设备可能收不到大包。解决办法:把交换机端口MTU设为1500。
  • 抓包别在EMS上抓:如果条件允许,用一台独立的笔记本电脑,接到交换机的镜像端口上抓包。这样不会影响EMS本身的性能。

我的习惯:每次去现场,我都会带一台预装好Wireshark的笔记本,网线、串口线、USB转网口都备齐。到了现场,先不急着动配置,先抓5分钟的包看看背景流量。有时候你会发现,网络里有很多莫名其妙的广播包,那可能就是问题的根源。

好了,以太网通信故障排查就讲到这里。记住:从物理层开始,一步步往上走,别跳步。抓包是最后的手段,但也是最有力的手段。下一章我们会聊更高级的协议分析,但今天的内容,足够你应对现场80%的通信问题了。


专注资料整理