这次我们来到了另外一个现场。
该现场使用的是西门子的S7 300 的PLC,该项目运行了一年多,一直有问题,但最近出现问题比较频繁,现象是每天从CPU第一次上电运行,大概30分钟后,开始出现停机的情况,停机时 SF、STOP灯亮。此时只能通过手动复位,CPU才能恢复运行。而之后,该现象将随时出现,并且越来越频繁,甚至有时几乎每个程序周期都会停机,因此严重影响了用户的生产。
根据故障情况,我们初步怀疑是现场存在电磁干扰。因此我们奔赴现场对问题进行处理。
到现场后,我们首先观察PLC运行的情况。
我们发现,现场采用的是西门子S7 314C-2PN/DP 的CPU,在运行过程中会出现系统故障,但能够自动消失(图1)。
图1 PLC报系统故障
之后,我们观察了故障出现的情况,发现该故障的出现是有规律的:当Q5.4动作时,该SF灯会亮,当Q3.4动作时,该SF灯消失。
因此,我们怀疑是程序出现问题。通过读取在线诊断信息,发现CPU报BCD码转换故障(图2)。
图2 CPU在线诊断信息报BCD码转换故障
经过与编程人员的交流,发现是上位机的某时间参数设定超限。该参数设计设定值范围应为0~99,但现场设定为100, 因此程序每次运行至此都会报BCD码转换故障,并导致SF灯亮,而当该部分程序运行结束后,故障就会消失。
将该值改为0~99 之间的任意值后,SF灯不再点亮,该系统故障不再出现。这是我们在现场发现的第一个故障,但这个故障并没有导致现场设备停机。
之后随着我们继续观察,大概经过了1个小时后,突然出现了一次停机故障。现象就是CPU停机时,SF灯和STOP灯亮,同时5V灯亮(图3)。
图3 CPU停机
此时,只能将CPU上的拨码开关拨至STOP位置再重新拨回RUN位置,CPU才可以正常重启。
我们在线检查CPU的诊断信息后发现,此时CPU报的是IO模板丢失的故障(图4)。
图4 在线诊断信息
从诊断信息情况看,应该是CPU在瞬间无法识别其模板,导致CPU进入停机状态。
由于现场的电气柜内有较多的继电器和接触器(图5),因此我们怀疑是由于这些感性负载动作时产生的干扰导致了CPU从而导致了停机,因此我们对CPU的电源进行了检测。
图5 柜内安装了继电器和接触器
通过波形,可以看到在CPU的24V电源线上,随着设备的动作,能够检测到有高频干扰的存在,其中有的信号较强(图6)。
图6 在24V电源线上检测到的共模干扰
同时,在柜内,我们发现了一块镀锌板(图5)。我们估计该镀锌板是用于系统接地的,但实际情况是,并没有任何的PLC系统接地线连到该镀锌板上,也没有发现该镀锌板接到外部的“地”(图5)。
为了减小感性负载对PLC的冲击,我们将PLC的安装底板与该镀锌板相连接,同时将该镀锌板连接到外部的金属结构上(图6)。
图6 PLC 做了接地处理
为此,现场进行了一系列的改动和布线、接线工作。但随后我们发现,系统接了“地”之后,CPU运行一段时间,依然出现停机现象。
然后我们又检测了PLC系统220V电源线上的干扰情况,果然发现干扰信号依然存在(图7)。
图7 PLC 220V电源线上的干扰
由于我们已经将系统进行了接地处理,那么该干扰信号是怎么进入到电源的呢?
我们进一步检测了CPU 的M端与PE之间的电阻,发现该CPU的M端与PE之间存在电阻值(图8)。并且该值在0~6M欧之间跳变。
图8 检测CPU的M与PE之间存在电阻
但314C系列的CPU的24V电源M端与PE端在内部应该是短接的,因此该电阻值是不应该存在的。现场刚好还有一个同样类型的CPU,我们对另外一块CPU进行了检测了,发现该CPU的电源M端对PE之间的电阻值为0欧姆。因此,这就意味着,出现停机现象的CPU本身也已经存在一些问题。
由于现场出现跳停大概要30分钟左右,因此我们每次需要观察到底是什么情况下该CPU会停机都得将近1个小时,而且每次停机的情况都不同,很难发现规律。但通过一段时间的观察,我们发现:当设备的某个关料阀动作的时候,PLC比较容易停机,而且几乎每次停机都是发生在该关料阀到位的时刻。而该阀对应了一个接触器,当阀体关到位时,该接触器会断开(图9)。
图9 控制关料阀的接触器
由于关料阀动作的同时,其液压系统电机会启动,因此,我们怀疑是电机电缆布线不规范导致其对系统的220V电源电缆产生了干扰,因此我们将该电机电缆从线缆沟里找出来,单独进行了布线,远离了供电电源电缆,从而避免了电缆之间的干扰,但随后我们发现,CPU依然会停机。。。因此,该干扰不是来自于电机电缆的,应该还有别的原因。
为此,我们再次对柜内的接触器动作的时刻的波形进行了检测。由于该接触器并没有配备浪涌吸收回路,因此在接触器动作的时刻,都会出现脉冲干扰,而且有时干扰脉冲的幅值还非常的高(>20V),但每次的干扰脉冲大小并不相同。是否是这些干扰导致CPU的停机呢?于是我们对该干扰脉冲进行了检测。通过一段时间的观察,我们发现:由于柜内安装了较多的接触器和继电器,因此从示波器上可以看到很多干扰脉冲,并且幅值也并不相同。由于我们此刻重点关注的是连接关断阀的接触器,因此我们在每次该接触器断开时都会格外注意示波器的屏幕,但我们发现,尽管该接触器的负载最大,但并不是每次的干扰幅值都是最高的,而有时屏幕上也会出现一些幅值很高的干扰脉冲,但此时最大的接触器却并没有动作。并且系统停机时,屏幕上并没有出现很高的干扰脉冲。
这就意味着--柜内每个接触器或者继电器动作时,都有可能导致CPU停机。但这与我们观察到的情况似乎有有些矛盾,因为我们逐渐发现,系统确实是在关断阀体的时候容易停机,尽管不是每次动作都停机,但每次停机几乎都是系统的关料阀动作到位时发生的。但为什么停机时没有看到最大的干扰脉冲出现呢?
带着疑问,我们进行了多次的测试,直到有一次,我们看到CPU停机的时刻,刚好是接触器断开的瞬间,同时在示波器上发现我们也发现了一个非常大的干扰脉冲(图10)。
图10 CPU停机的瞬间检测到该脉冲
至此,我们终于看到了该断路器断开的瞬间,出现了较大的干扰脉冲,导致CPU停机。原来,最终还真是这一个接触器引起了系统停机等等一系列的故障。当然,根据我们建议,现场将该接触器外面增加吸收回路后,问题得到彻底的解决。
但这里有个问题,就是为何停机时示波器并不是每次都能抓到最大的干扰脉冲?我们的分析,认为应该是由于设备动作时,并不见得每次都能产生最大的干扰;另外,系统干扰可能是一个累积的过程,由于之前感性设备断开时产生的干扰没有能及时的释放掉,因此甚至随后的一个很小的干扰也会最终导致系统出现问题。
通过这个现场出现的问题,我们可以总结出以下两点,是现场比较关键的:
1) 自动化现场的接触器、继电器等带感性负载线圈的设备必须增加浪涌吸收回路。
2) 现场电气系统必须接地。
以上心得,希望对大家有所帮助!