在KEPSERVEROPC服务器的出口处抓包后分析发现,断电前与断电后数据包的发送间隔会出现变化,在断电前数据包的发送间隔为1s左右,而断电后数据的发送间隔在某个时刻会变为7-10s左右,如图6和图7所示。但从这里只能说明数据包的发送出了问题,没有足够的证据能够说明是KEPSERVEROPC服务器的S7驱动的问题,而不是网络的问题。
图6 断电前的数据包发送情况
图7 断电后的数据包发送情况
为了更进一步的确认问题的原因,于是在现场断开321车间的OSM TP62的所有的光纤如下图8所示
图8
断开后发现PI系统监视到321车间发来的心跳检测仍然异常,此时把321车间的OSM TP62换为SCALANEX204-2交换机后心跳检测仍然异常,这样判断不是交换机网络引起的问题。为了更好的说明问题,把321车间的一端的光纤断开,另一端的光纤保持连接状态如图9所示,此时在PI系统上监视到321车间发来的心跳检测为正常,更进步说明了与网络无关。
图9
此时已基本确定是KEPSERVEROPC服务器的S7驱动的问题导致了故障现象。为了让客户能确认,我们又做了一个测试,环网保持正常的连接断开231车间PLC与SCALANCEX200的以太网双绞线如图10所示。断开后发现心跳检测出现了异常,在此基础上继续断开241车间PLC与SCALANCEX200的以太网双绞线,发现异常现象更为严重。
图10
造成问题的原因找到了,但为什么会出现此现象,我们查看了KEPSERVEROPC服务器的设置,在通讯通道的设置中有一项是当KEPSERVEROPC服务器与下面的PLC通信时,当连接不能建立时有重新请求的机制,这会造成延时。如图11所示。而KEPSERVEROPC服务器对所有的站采用的是轮训机制。一个PLC站点造成的延时会影响其后站的数据刷新。这也就是为什么当有PLC出现掉站,系统就会出现用户所描述的问题。
图11
Zui终处理的方式是更换KEPSERVER 的OPC服务器为西门子的SIMATIC Net的OPC服务器,SIMATICNet的OPC服务器采用的不是轮训机制,所有的站都是并行发送数据,一个站点的掉站是不会影响其它的站。