一种高速计数器计数失效故障的解决方法

时间:2022-07-08 11:37:57

一种高速计数器计数失效故障的解决方法

摘 要:文章以西门子S7200 PLC为例,讲述了在应用高速计数器对旋转编码器脉冲进行计数时,出现的故障及其排除方法。

关键词:旋转编码器;高速计数;故障

引言

旋转编码器安装于电机减速机旋转轴上,PLC对旋转编码器发出的脉冲进行计数,可以实现定位、定长距离运行功能。

1 应用情形

在一个应用中,链条的两端连着夹盘和配重,升降电机通过链条带动夹盘上升和下降。升降电机正转,夹盘上升;升降电机反转,夹盘下降。升降电机带抱闸。夹盘可停止在行程内的任一高度,完成各层产品的码垛。升降电机减速机的轴上安装一个旋转编码器,PLC通过高速计数器对旋转编码器发出的脉冲进行计数,自动计算夹盘的当前高度。操作台上有急停、暂停按钮。(1)急停按钮(一个NC急停按钮):按下急停按钮后直接使变频器断电、接触器线圈失电、PLC失电。(2)暂停按钮(一个NC急停按钮):按下暂停按钮后,PLC不失电,程序使所有的输出复位,所有设备停止动作,恢复按钮后,设备接着暂停时的状态继续运行。

2 硬件选型

PLC:西门子CPU 226 CN、触摸屏:步科MT4414T、旋转编码器:欧姆龙E6B2-CWZ5B 1000P 2M、分辨率:1000、输出相:A、B、Z相、输出相位差:A相、B相的位相差90±45℃(1/4±1/8T)、输出方式:PNP集电极开路输出、最高响应频率:50kHz。

不选用单相编码器的原因:从升降电机的抱闸动作到机械抱死有一定的时间延迟,夹盘的重量加上夹盘里产品的重量,会导致夹盘往下遛。停止升降电机反转输出后,夹盘还会冲下去一点,然后被抱闸抱死停住;停止升降电机正转输出后,夹盘由于惯性会再上冲一点然后由于重力作用再掉下来一点,然后被抱闸抱死停住。

因此,停止升降电机输出瞬间的高度并不是夹盘最后真实高度,这就需要PLC做额外处理。使用单相的编码器来计算夹盘的当前高度不容易准确:停止升降电机正转输出后,不管夹盘由于惯性上冲还是因重力下遛,单相旋转编码器的脉冲数都是增加的,那么停止升降电机正转输出后到底下遛多少距离,PLC无法判定,这就会造成误差,升降动作有几个来回后,误差积累起来,就会使控制越来越不精准。

选型中的编码器有A、B、Z这3个输出相,完全可以通过高速计数器计到的脉冲数来计算夹盘当前的高度:升降电机正转,计数器值增加;升降电机反转,计数器值减小(可能会到负值),即使夹盘遛,高速计数器的值也会做出相应的反应,夹盘当前的高度都是准确的。旋转编码器的Z相不需要接到PLC,因为不需要旋转编码器自动复位。需要我们做的就是每次夹盘停在高度零位的时候,程序清一次高速计数器值。

3 故障现象

在调试过程中,当拍下了急停和暂停按钮,然后恢复急停和暂停按钮后,手动操作升降电机,发现升降电机运行时,夹盘的当前高度并没有变化。为什么高速计数器的脉冲值没变?这是很严重的故障,当PLC无法计算夹盘的当前高度,就无法控制升降电机自动上升和下降。而且,这种故障并不是每次都会发生,这次有,似乎还有发生机率。

4 故障排除

4.1 硬件检查

确保旋转编码器、PLC、线路正常工作。拧紧旋转编码器连轴器,使轴带动连轴器同步运转。

4.2 软件检查

针对上述故障,一种方法是:当升降电机运行时,对一定时间间隔的脉冲数作判断,如果在上个时间间隔的开始和下一个时间间隔的开始,PLC接收到的脉冲数相等或差值的绝对值小于一个设定的值,那么就表示旋转编码器出现故障,马上停止升降电机运行,并报警给出故障提示。但是,这个时间间隔不容易选取,时间间隔选大了,升降电机移动一大块距离的时候才发现夹盘的高度值未变,这时可能夹盘就已经过了工艺要求的高度或压到下一层的产品;时间间隔选小了,那么夹盘还没升降多少,就报夹盘当前高度故障了,特别是当升降电机慢速运行的情况下。这是被动的方法,它只能检测,检测到故障后还是解决不了。所以,必须从根本上解决这个问题,除非,旋转编码器坏了、线路坏了或PLC坏了,否则,PLC计算的高度就应该真实反映夹盘的当前真实高度。检查程序如图1所示。

发现主程序的第一句有跳转指令,这是为增加“暂停”功能而添加的,按下暂停按钮后,跳过中间的程序处理部分,直接到后面将输出复位。这个跳转指令跳过了Init子程序和HSC4_INIT子程序,对高速计数器的初始和定义就是在HSC4_INIT子程序完成的。

拍下急停按钮后,PLC断电。拍下暂停按钮后,恢复急停按钮,PLC重新上电,开始执行程序,但是Init和HSC4_INIT子程序被跳转过去,所以高速计数器未被初始化。这样当暂停按钮也被恢复后,操作员操作升降电机运行,高速计数器未对旋转编码器的脉冲进行计数,那么夹盘的当前高度就不会随着升降电机的运行而做相应变化。

为什么这种故障这次有,下次又没有呢?这是在急停、暂停按钮都被拍下的时候,操作员先恢复哪一个的顺序问题。如要操作员先恢复了暂停按钮,再恢复急停按钮,那么高速计数器被初始,所以高速计数器能正常工作,由此计算出的夹盘高度也随升降电机运行而相应的变化。

解决方法:将用SM0.1调用的Init和HSC4_INIT子程序放在主程序的第一条,将跳转指令放在它们之后,这样,每次PLC上电,高速计数器都被初始和定义,就不会再发生高速计数器失效故障。(如图2所示)

开始时在主程序第一句的跳转指令,是为了实现暂停功能而添加。暂停是非常实用的一个功能,可以使PLC暂时停止输出,给设备或操作员一定的时间,当条件成立时,再从刚才暂停的地方继续输出,使系统非常灵活。

“差之毫厘,失之千里”,虽然只是简单的调换主程序中网络1和网络2代码的位置,但设备表现的结果却有很大差别,导致无法自动。

5 结束语

这种故障现象并不容易捕捉,比较隐蔽,不是每次都会发生,而是视操作员的操作顺序而定。这要求编写程序时全面考虑、不想当然、尊重科学和现实规律、不要将知识只停留在书本上,对指令的用法有比较深刻的理解,在添加新的功能时,一定要注意程序前后的逻辑关系,新添加的程序不要对原来的程序功能造成影响。有时,程序的执行结果可能不是我们所预料的结果,需要多实践,多发现问题,多积累。

上一篇:矿井瓦斯抽放系统效率低的原因分析和解决措施 下一篇:农村饮水安全巩固提升工程的设计探讨