您现在的位置是:首页 > PLC技术 > PLC技术
PLC软件抗干扰设计技术措施
来源:艾特贸易2017-06-04
简介大量的工程实践表明, PLC 的外部输入、输出元件,如限位开关、电磁阀、接触器等的故障率远远高于 PLC 控制系统本身的故障率,而这些元件出现故障后, PLC 控制系统一般不能检测出
大量的工程实践表明,PLC的外部输入、输出元件,如限位开关、电磁阀、接触器等的故障率远远高于PLC控制系统本身的故障率,而这些元件出现故障后,PLC控制系统一般不能检测出来,不会自动停机,可能使故障扩大,直至强电保护装置动作后停机,有时甚至会造成设备和人身事故。停机后,查找故障也要花费很多时间。为了及时发现故障,在没有酿成事故之前使PLC控制系统自动停机和报警,也方便查找故障,提高维修效率。 现代的PLC控制系统拥有大量的软件资源,如FX2N系列PLC有几千点辅助继电器、几百点定时器和计数器,有相当大的裕量。可以将这些资源利用起来,用于故障检测。有时只采用硬件措施不能完全消除干扰的影响,必须用软件措施加以配合以取得较好的抗干扰效果。在软件抗干扰设计中可采用如下措施。 (1)延时确认 对于开关量输入,可采用软件延时20ms,对同一信号作两次或两次以上读入,结果一致才确认输入有效。在现场设备信号不完全可靠的情况下,对于非严重影响设备运行的故障信号,在程序中采取不同时间的延时判断,以防止输入接点抖动而产生“伪报警”。若延时后信号仍不消失,再执行相应动作。 (2)封锁干扰 某些干扰是可以预知的,如工控机的输出命令使执行机构(如大功率电动机、电磁铁)动作,常会伴随产生火花、电弧等干扰信号,这些干扰信号可能使工控机接收错误的信息。在容易产生这些干扰的时间内,可用软件封锁工控机的某些输入信号,在干扰易发期过去后,再取消封锁。 (3)故障的检测与诊断 工控机的可靠性很高,本身有完善的自诊断功能,工控机若出现故障,借助自诊断程序可以方便地找到故障的部位与部件,更换后就可以恢复正常工作。 (4)超时检测 在控制系统工作循环中,各工步的运行有严格的时间规定,设备在各自工步的动作所需的时间一般是不变的,即使变化也不会太大,因此可以这些时间为参考,以这些时间为参数,在要检测的工步动作开始的同时,在工控机发出输出信号,启动一个定时器,定时器的时间设定值比正常情况下该动作要持续的时间长25%左右。当某工步动作时间超过规定时间,达到对应的定时器预置时间还未转入下一个工步动作时,定时器发出故障信号,停止正常工作循环程序,启动报警及显示程序,这就是所谓的“超节拍保护”。 在PLC控制系统中,A/D、D/A、显示屏等输入、输出接口电路是必不可少的。这些接口与CPU之间采用查询或中断方式工作,而这些设备或接口对干扰很敏感,干扰信号一旦破坏了某一接口的状态字后,就会导致CPU误认为该接口有输入、输出请求而停止现行工作,转去执行相应的输入、输出服务程序。但由于该接口本身并没有输入、输出数据,从而使CPU资源被该服务程序长期占用,而不释放,其他任务程序无法执行,使整个系统出现“死锁”。对这种干扰造成的“死锁”问题,在软件编程中,可采用“时间片”的方法来解决。其具体步骤为:根据不同的输入、输出外设对时间的要求,分配相应的最大正常的输入、输出时间。在每一输入、输出的任务模块中,加入相应的超时判断程序。这样当干扰破坏了接口的状态造成CPU误操作后,由于该外设准备和信息长期无效,经一定时间后,系统会从该外设的服务程序中自动返回,保证整个软件的周期性不受影响,从而避免“死锁”情况的发生。 例如设某执行机构(如电动机)在正常情况下运行10s后,它驱动的部件使限位开关动作,发出动作结束信号。若该执行的动作时间超过12s(即对应定时器的设定时间),工控机还没有接收到动作结束信号,定时器延时接通的常开触点发出故障信号,该信号停止正常的循环程序,启动报警和故障显示程序,使操作人员和维修人员能迅速判别故障的种类,及时采取排除故障的措施。 (5)逻辑错误检测 充分利用信号间的组合逻辑关系构成条件判断,使个别信号出现错误时,系统不会因错误判断而影响其正常的逻辑功能。在系统正常运行时,PLC的输入、输出信号和内部的信号(如辅助继电器的状态)相互之间存在着确定的逻辑关系,如出现异常的逻辑信号,则说明出现了故障。因此,可以编制一些常见故障的异常逻辑关系,一旦异常逻辑关系为ON状态,就应该按故障处理。例如某机械运动过程中先后有两个限位开关动作,这两个信号不会同时为ON状态,若它们同时为ON,说明至少有一个限位开关被卡死,应停机进行处理。在梯形图中,用这两个限位开关对应的输入继电器的常开触点串联,来驱动一个表示限位开关故障的辅助继电器。对易形成抖动的检测或控制回路,采取不同时间的判断或保护子程序。 (6)拦截技术 所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序,因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。 (7)消抖 在振动环境中,行程开关或按钮常常会因为抖动而发出错误信号,一般的抖动时间都比较短,针对抖动时间短的特点,可用工控机内部计时器经过一定时间的延时,得到消除抖动后的可靠有效信号,从而达到抗干扰的目的。 在实际应用中,有些开关输入信号接通时,由于外界的干扰而出现时通时断的“抖动”现象。这种现象在继电器系统中由于继电器的电磁惯性一般不会造成什么影响,但在PLC系统中,由于PLC扫描工作的速度快,扫描周期比实际继电器的动作时间短得多,所以抖动信号就可能被PLC检测到,从而造成错误的结果。因此,必须对某些“抖动”信号进行处理,以保证系统正常工作。 图2-18 输入信号抖动的影响及消除 输入信号抖动的影响如图2-18(a)所示,输入X0抖动会引起输出Y0发生抖动,可采用计数器或定时器,经过适当编程,以消除这种干扰。 消除输入信号抖动的梯形图程序如图2-18(b)所示。当抖动干扰X0断开时间间隔△t<K×0.1s,计数器C0不会动作,输出继电器Y0保持接通,干扰不会影响正常工作;只有当X0抖动断开时间△t≥K×0.1s时,计数器C0计满K次动作,C0常闭断开,输出继电器Y0才断开。K为计数常数,实际调试时可根据干扰情况而定。 (8)时间冗余 时间冗余是在程序的适当位置设置若干检查点,在每一个检查点保存程序在该检查点之前正确运行而得到的全部信息及标志。如果故障是暂时性的,则程序回到上一检查点开始重新执行,这样可以完全消除错误。但它只能检出而不能消除永久性故障,用时间换取可靠性。 (9)指令冗余 CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错概率更大。 所谓指令冗余技术是指在程序的关键地方人为地加入一些单字节指令NOP,或将有效单字节指令重写,当程序“跑飞”到某条单字节指令上,就不会发生将操作数当作指令来执行的错误,使程序迅速进入正轨。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。指令冗余会降低系统的效率,但确保了系统程序很快纳入程序轨道,避免程序混乱,适当的指令冗余不会对系统的实时性和功能产生明显的影响。 通常,在一些对程序流向起重要作用的指令(如RET、RETI、ACALL、LCALL、LJMP、SJMP、JZ、JNZ、JC、JNC、JB、JBC、DJNZ等)和某些对系统工作状态起重要作用的指令(如SETB等)的前面插入两条NOP指令,以保证跑飞的程序迅速纳入轨道,确保这些指令的正确执行。 值得注意的是:虽然加入冗余指令,能提高软件系统的可靠性,但却降低了程序的执行效率,所以在一个程序中,“指令冗余”不能过多,否则会降低程序的执行效率。 (10)软件复位 软件复位是通过CPU接收外部的中断信号INT0而执行中断子程序,此时CPU的运行是: ①关闭所有中断,以便进行故障的判别和处理。 ②堆栈初始化以保证执行完成INT0中断服务子程序后栈底内容为初始状态。 ③对系统的有关状态与控制量进行比较、判断来决定程序的重新人口地址,这些地址是主程序中基本功能模块的程序首选地址。 通过这种软件条件复位,可以使系统在无扰动和小扰动下,尽快进入正常运行状态,尽量减少干扰对系统的影响。 对于失控的CPU,最简单的方法是使其复位,程序自动从头开始执行。为完成复位功能,在硬件电路上应设置复位电路。上电复位是指计算机在开机上电时自动复位,此时所有硬件都从其初时状态开始,程序从第一条指令开始执行;人工复位是指操作员按下复位按钮时的复位;自动复位是指系统在需要复位的状态时,由特定的电路自动将CPU复位的一种方式。
点击排行
