我公司在用的西门子400及300控制器5套,为了实现就地控制,分别组成了三套独立的PROFIBUS DP网络,共拓展了50多个远程站。其中一套是以CPU型号为6ES7-315-2AH14-OABO的300控制器通过IM153-1接口外拓9个远程站点,总线长度约为190米,通讯速率1.5Mbps,分别就近控制泵,调节阀,压力变送器等等过程设备。
在使用一年之后, 根据生产工艺的改进,拆除了6号站点,并删除所有有关6号站点的程序,实际组态剩下了8个远程站。
然而问题也就随之而来,最初是10号站出现了地址无法访问,几个(有时十几个)小时候后9、8号站点出现了同样的问题,直接表现为CPU上SF灯常亮,远程站点无法正常工作,有时远程站会出现闪断的情况。复位CPU后,重新下载硬件组态和新编程序(编辑新的功能块和更换无法访问的地址)之后短时间内正常,过一段时间就会出现同样的问题。例8号站点诊断记事本如下:
模块 CPU 315-2 DP 的诊断缓冲区
订货号/描述 组件 版本
6ES7 315-2AH14-0AB0 硬件 4
- - - 固件 V 3.3.2
Boot Loader 固件扩展 A 32.9.9
机架: 0
插槽: 2
序列号:S C-C2UV40642012
事件 1 / 10: 事件 ID 16# 38C4
分布式 I/0:站 返回
受影响 DP 从站的地址:站编号: 8
DP 主站系统 ID: 1
DP 从站的逻辑基址:输入地址: 2034
DP 主站的逻辑基址: 2047
所需的 OB:机架故障 OB (OB86)
优先等级:26
外部错误, 离开的事件
03:58:57.023 1994-02-19
事件 2 / 10: 事件 ID 16# 2942
读取时发生 I/O 访问错误
P 区域,字访问, 访问地址: 634
所需的 OB:I/O 访问错误 OB (OB122)
优先等级: 1
外部错误, 进入的事件
03:58:56.842 1994-02-19
故障分析与解决方法
出现I/O 访问错误的原因有多种,如:
1、 直接I/O访问错误(模块故障或丢失)
2、 访问CPU未知的I/O地址
3、 现场环境电磁干扰或接触不好
4、 供电电源异常
5、 背板总线连接异常
6、 模块安装松动
7、 模块外部连接异常等
从随着时间的推移,三个站点出现类似现象的情况分析,基本可以排除模块故障和环境电磁干扰的可能,然而通过编写硬件、新的功能块和重新定义I/O地址并下载后,还会出现类似的情况。因此断定程序并没用错误,应该是第六号远程站移除后遗留的问题。
第六号站点移除后,DP插头并没有拆除,而是当作总线连接继续使用。在拆除DP插头后,就近重新铺设总线,问题得到了彻底解决。
一个无用的DP插头给PROFIBUS网络的通讯带来瓶颈,一旦有一个地址读取不到,该站就会连续不断的利用优先级向主站发送错误报文,导致了网络的拥堵,从而致使越来越多的远程站I/O地址无法访问