← 所有文章
项目实践

产线还在运转,我们却突然看不见它了

半夜11:42分控制系统发生故障,现场PLC还在运行,破碎机、皮带和给料机也没有出现全线停机。可监控室里的上位机突然失去了与PLC的通信,生产管理服务器和大屏上的数据也停止更新。 设备仍在运转,操作人员却看不到设备状态、料位和报警。 这种场面比直接停机更让人紧张。好比你正

刘刘星 记录与实践

半夜11:42分控制系统发生故障,现场PLC还在运行,破碎机、皮带和给料机也没有出现全线停机。可监控室里的上位机突然失去了与PLC的通信,生产管理服务器和大屏上的数据也停止更新。

设备仍在运转,操作人员却看不到设备状态、料位和报警。

这种场面比直接停机更让人紧张。好比你正在120km/h在高速上行驶,油门、刹车和仪表盘全部失去了响应。

因为没人知道下一秒会发生什么,也无法确认产线到底处于什么状态。

第一条线索,现场设备没有停机

这套系统的现场设备通过PROFINET环网与PLC通信。

操作箱的启停信号、设备状态和控制逻辑都集中在PLC中。如果PROFINET环网整体失效,大量现场设备会失去控制通信,产线不可能继续保持原来的运行状态。

可故障期间,现场生产仍在继续。

这条线索基本排除了PROFINET环网整体断线的可能。

故障并没有切断PLC与现场设备之间的控制通道,而是切断了上位机监控的通道。

第二条线索,失联设备指向同一条支路

故障发生后,服务器无法访问PLC,也无法访问多台工业交换机。两台上位机、大屏服务器和生产管理服务器几乎同时失去通信。

这些设备有一个共同点。

它们都通过同一台旁路交换机和同一条上联路径接入生产环网。

如果是某台上位机自身故障,不会同时影响服务器和大屏。

如果是PLC故障,现场控制也很难继续正常运行。

几台设备同时失联,把故障范围进一步缩小到了上位机共用的网络支路。

问题开始指向旁路交换机以及它的上联链路。

第三条线索,网线和端口并没有断

现场继续检查交换机端口。

端口指示灯正常,链路始终保持Link Up,工作状态也是100M全双工。系统日志中没有发现物理端口掉线。

从表面看,网线是通的。可数据就是过不去。

这种故障最麻烦的地方就在这里。网络设备没有彻底离线,端口灯也没有熄灭,但交换机已经不能正常转发数据。

它不像光纤被拔掉那样清楚,而是处于一种物理链路在线、数据通道失效的状态。

有人怀疑是不是网络流量太大,因为百兆端口都占满了。

监测结果又排除了这个方向。故障期间端口平均流量只有每秒几KB,远远没有达到百兆端口的容量。主机网卡也没有出现与带宽拥塞相对应的错误增长。

一个很像嫌疑人的薄弱链路

排查过程中,我们发现环网内一段光纤链路曾累计产生约36.8万次输入错误。

这段链路以前发生过异常,也更换过尾纤。虽然当时两端光功率仍在正常范围内,但大量输入错误说明它并不健康。

它看起来很像故障源。

现场一度考虑断开这段光纤,让环网转为单链运行。

可对照时间线以后发现,上位机与PLC的通信在拔掉这段光纤之前就恢复过。

它确实是网络中的一处薄弱环节,但不是这次上位机支路掉线的直接原因。

这条线索也纠正了一个常见误区。

光功率正常,不代表数据传输一定正常。光模块、尾纤、接头、端口和交换芯片都可能在光功率正常的情况下产生误码。

被忽略的那根企业网线

继续还原故障前后的操作,真正关键的变化浮现出来。

故障发生的当天下午,一根通往公司网络的网线被悄悄接到了旁路交换机上。

经过分析服务器生产网口,发现收到了来自 192.168.0.x、192.168.9.x、192.168.102.x 等多个网段的广播,后来得知公司网络与生产网络之间没有经过独立VLAN、三层路由或者工业防火墙隔离,而是直接进入了同一个二层网络。大量广播包触发了旁路交换机的异常转发状态,造成两台上位机、生产服务器和大屏与PLC通信中断。

网线已经拔掉,为什么还是没有恢复

发现企业网络接入的问题后,现场拔掉了公司网线。

按照直觉,外部网络已经断开,生产网络应该马上恢复。

实际情况却不是这样。上位机通信仍然存在异常。

这也是整次故障中最容易让人困惑的地方。

公司网络是触发源,旁路交换机失去正常转发能力是已经形成的故障状态。停止异常报文进入,不一定能够自动清除交换机内部已经形成的异常状态。

MAC地址表可能已经异常,端口转发状态可能没有恢复,缓存队列或者交换芯片也可能进入了无法自行退出的状态。

拔掉公司网线,只是停止继续触发。

交换机已经形成的错误状态仍然保留着。

现场最终将交换机全部断电重启。重启清空了MAC地址表、端口状态、缓存和协议运行状态,所有设备重新建立通信关系。

上位机与PLC恢复通信,原有丢包消失。环网恢复以后持续检查,关键链路通过了上亿个数据帧,端口错误计数没有继续增长。

一个没有边界的二层网络,破坏力有多大

很多生产网络在建设初期只考虑能不能通信。

PLC能访问,上位机能连接,服务器能读取数据,项目就算完成了。

后面需要接入公司网络、远程维护或者新增一台计算机时,再找一个交换机端口,把网线插进去。

这种做法看起来简单,却把企业网络和生产控制网络放进了同一个故障范围。

在没有隔离的二层网络中,广播、组播、未知单播和MAC地址学习变化,都可能跨越原本应该存在的系统边界。

公司网络中的一次环路、异常广播或者地址漂移,不会在生产网络门口停下来。

它可以直接进入工业交换机,影响上位机、服务器,甚至继续向现场控制网络传播。

VLAN也不是一个写在交换机配置里的标签。

生产网络与企业网络之间真正需要的是独立广播域、三层路由、访问控制和明确的通信白名单。需要交换的数据可以通过受控接口传递,不需要的报文必须被挡在生产网络之外。

网络隔离的目的不是让系统变复杂,而是让企业网络的故障停留在企业网络,让监控支路的问题停留在监控支路。

这次我们是幸运的

这次故障中,旁路交换机失去了正常转发能力,上位机和生产服务器看不到现场,但PROFINET环网承受住了冲击。

如果没有及时拔掉那根网线,环网也可能在异常流量和链路误码的共同作用下失稳,结果就不会只是画面掉线。

这套系统的操作箱信号都进入PLC。一旦现场控制通信中断,大量设备可能同时停机。

每小时上千吨的破碎和皮带系统突然停车,那时需要处理的就不再是网络故障。鄂破、圆锥破可能需要扒料盘车,长皮带也不是简单按下启动按钮重新运行。

现场最终没有走到这一步。

网络是看不见的手

在智能矿山项目中,PLC、传感器、算法、大屏和软件平台都是看得见的。

网络通常藏在机柜、光纤和交换机端口后面。只要设备能够通信,它就很少受到关注。

可控制指令要经过它,生产数据要经过它,报警和状态也要经过它。

网络没有参与破碎,也没有运输一吨矿石,却决定了所有系统能不能协同工作。一根网线就可能导致满负荷的系统全部停机。

这次故障给我的感受很直接。

工业网络不能只追求能通,还要保证异常进不来、故障扩不散、出了问题能够被看见。

生产网络没有边界,就等于把生产安全交给了一根随时可能被插入的网线。

网络平时是看不见的手。一旦边界失控,它离生产事故可能只有一步。