电工学习网

 找回密码
 立即注册
查看: 3754|回复: 5
打印 上一主题 下一主题

PLC软件抗干扰技术措施

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-30 07:19:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    大量的工程实践表明,plc的外部输入、输出元件,如限位开关、电磁阀、接触器等的故障率远远高于PLC控制系统本身的故障率,而这些元件出现故障后,PLC控制系统一般不能检测出来,不会自动停机,可能使故障扩大,直至强电保护装置动作后停机,有时甚至会造成设备和人身事故。停机后,查找故障也要花费很多时间。为了及时发现故障,在酿成事故之前应使PLC控制系统自动停机和报警,也方便查找故障,提高维修效率。
    现代的PLC控制系统拥有大量的软件资源,如FX2N系列PLC有几千点辅助继电器、几百点定时器和计数器,有相当大的裕量。可以将这些资源利用起来,用于故障检测。有时只采用硬件措施不能完全消除干扰的影响,必须用软件措施加以配合以取得较好的抗干扰效果。
    对于开关量输入,可采用软件延时20ms,对同一信号作两次或两次以上读入,结果一致才确认输入有效。在现场设备信号不完全可靠的情况下,对于非严重影响设备运行的故障信号,在程序中应采取不同时间的延时判断,以防止输入接点抖动而产生“伪报警”。若延时后信号仍不消失,再执行相应动作。
    某些干扰是可以预知的,如PLC的输出命令使执行机构(如大功率电动机、电磁铁)动作,常会伴随产生火花、电弧等干扰信号,这些干扰信号可能使PLC接收错误的信息。在容易产生这些干扰的时间内,可用软件封锁PLC的某些输入信号,在干扰易发期过去后,再取消封锁。
    PLC的可靠性很高,本身有完善的自诊断功能,PLC若出现故障,借助自诊断程序可以方便地找到故障的部位与部件,更换后就可以恢复正常工作。
    在PLC控制系统的工作循环中,各工步的运行有严格的时间规定,设备在各自T步的动作所需的时间一般是不变的,即使变化也不会太大,因此可以以这些时间为参数,在要检测的工步动作开始的同时,在PLC发出输出信号,启动一个定时器,定时器的时间设定值比正常情况下该动作要持续的时间长25%左右;当某工步动作时间超过规定时间,达到对应的定时器预置时间而还未转入下一个工步动作时,定时器发出故障信号,停止正常工作循环程序,启动报警及显示程序。这就是所谓的“超节拍保护”。
    在PLC控制系统中,A/D、D/A、显示等输入、输出接口电路是必不可少的。这些接口与CPU之间采用查询或中断的方式工作,而这些设备或接口对干扰很敏感,干扰信号一旦破坏了某一接口的状态,就会导致CPU误认为该接口有输入、输出请求而停止现行工作,转去执行相应的输入、输出服务程序;但由于该接口本身并没有输入、输出数据,CPU资源被该服务程序长期占用而不释放,其他任务程序无法执行,使整个系统出现“死锁”。对于这种干扰造成的“死锁”问题,在软件编程中,可采用“时间片”的方法来解决,其具体步骤为:根据不同的输入、输出外设对时间的要求,分配相应的最大正常的输入、输出时间;在每一输入、输出的任务模块中,加入相应的超时判断程序。这样,当干扰破坏了接口的状态造成CPU误操作后,由于该外设准备好信息长期无效,经一定时间后,系统会从该外设的服务程序中自动返回,保证整个软件的周期性不受影响,从而避免“死锁”情况发生。
    例如,设某执行机构(如电动机)在正常情况下运行10s后,它驱动的部件使限位开关动作,发出动作结束信号。若该执行的动作时间超过12s(即对应定时器的设定时间),PLC还没有接收到动作结束信号,则定时器延时接通的常开触点发出故障信号,该信号停止正常的循环程序,启动报警和故障显示程序,使操作人员和维修人员能迅速判别故障的种类,及时采取排除故障的措施。
    充分利用信号间的组合逻辑关系构成条件判断,使个别信号出现错误时,系统不会因错误判断而影响其正常的逻辑功能。在系统正常运行时,PLC的输入、输出信号和内部的信号(如辅助继电器的状态)相互之间存在着确定的逻辑关系,如出现异常的逻辑信号,则说明出现了故障。因此,可以编制一些常见故障的异常逻辑关系,一旦异常逻辑关系为ON状态,就按故障处理。例如,某机械运动过程中先后有两个限位开关动作,这两个信号不会同时为ON状态,若它们同时为ON,说明至少有一个限位开关被卡死,应停机进行处理。在梯形图中,将这两个限位开关对应的输入继电器的常开触点串联,来驱动一个表示限位开关故障的辅助继电器。对易形成抖动的检测或控制回路,可采取不同时间的判断或保护子程序。
    所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序,因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。
    时间冗余是指在程序的适当位置设置若干检查点,在每一个检查点保存程序在该检查点之前正确运行而得到的全部信息及标志。如果故障是暂时性的,则程序回到上一检查点重新执行,这样可以完全消除错误。但它只能检出而不能消除永久性故障,是一种用时间换取可靠性的方法。

回复

使用道具 举报

沙发
 楼主| 发表于 2018-3-30 07:19:30 | 只看该作者
    CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误时,程序便脱离正常轨道“乱飞”;当乱飞到双字节指令,若取指令时刻落在操作数上,误将操作数作为操作码,程序将出错;若“飞”到了三字节指令,出错概率更大。
    所谓指令冗余技术是指在程序的关键地方人为地加入一些单字节指令NOP,或将有效单字节指令重写,当程序“跑飞”到单字节指令上,就不会发生将操作数作为指令来执行的错误,使程序迅速纳入正轨。通常是在双字节指令和三字节指令后插入两字节以上的NOP,这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,后面的指令也被作为操作数执行,程序自动纳入正轨。指令冗余会降低系统的效率,但确保了系统程序很快纳入程序轨道,避免程序混乱,适当的指令冗余不会对系统的实时性和功能产生明显的影响。
    通常在一些对程序流向起重要作用的指令(如RET、RETI、ACALL、LCALL、UMP、SJMP、JZ、JNZ、JC、JNC、JB、JBC、DJNZ等)和某些对系统工作状态起重要作用的指令(如SETB等)的前面插入两条NOP指令,以保证跑飞的程序迅速纳入轨道,确保这些指令的正确执行。
    值得注意的是,虽然加入冗余指令能提高软件系统的可靠性,但也降低了程序的执行效率,所以在一个程序巾,冗余指令不能过多,否则会降低程序的执行效率。

回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2018-3-30 07:19:42 | 只看该作者
    软件复位是指通过CPU接受外部的中断信号INT 0而执行中断子程序,此时CPU的动作是:
    ①关闭所有中断,以便进行故障的判别和处理。
    ②堆栈初始化以保证执行完成INT0中断服务子程序后栈底内容为初始状态。
    ③对系统的有关状态与控制量进行比较、判断来决定程序的重新入口地址,这些地址是主程序中基本功能模块的程序首选地址。
    通过这种软件条件复位,可以使系统在无扰动和小扰动下,尽快进入正常运行状态,尽量减少干扰对系统的影响。
    对于失控的CPU,最简单的方法是使其复位,程序自动从头开始执行。为完成复位功能,在硬件电路上应设置复位电路。上电复位是指PLC在开机上电时自动复位,此时所有硬件都从其初时状态开始,程序从第一条指令开始执行;人工复位是指操作员按下复位按钮时复位;自动复位是指系统在需要复位的状态时,由特定的电路自动将CPU复位。

回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2018-3-30 07:19:53 | 只看该作者
    重复技术是指在程序执行过程中,一旦发现现场故障或错误,就重新执行被干扰的先行指令若干次,若复执成功,说明为干扰,否则输出软件失败或声光报警,可通过CPU状态菜单进行查询。
    PLC控制系统的很多功能通常都是在主程序开始时的初始化程序里设定的,不需要后续的设定。这在正常情况下本无问题,但偶然的干扰会改变CPU内部这些寄存器或接口芯片的功能寄存器。例如,把中断的类型、中断的优先级别、串行口、并行口的设定修改了,控制设备的运行肯定会出错。因此,只要重复设定功能操作不影响其当前连续工作的性能,都应当纳入主程序的循环圈里。每个循环就可以刷新一次设定,避免了偶然不测发生。对于那些会影响当前连续工作性能的重复设定功能操作,要尽量找机会重新设定。例如串行口,如果接收完某帧信息或者发送完某帧信息之后,串口会有一个短暂的空闲,就应作出判断并且安排重新设定一次的操作。
    指令重复执行就是根据需要使作用相同的指令重复执行多次,一般适用于开关量或数字量输入、输出的抗干扰。在采集某些开关量或数字量时,可重复采集多次,直到连续两次或两次以上的采集结果完全相同时才视为有效。若多次采集后,信号总是变化不定,可停止采集,发出报警信号。在满足实时性要求的前提下,在各次采集信号之间插入一段延时,数据的可靠性会更高。如果在系统实时性要求不是很高的情况下,其指令重复周期应尽可能长些。

回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2018-3-30 07:20:04 | 只看该作者
    弃权规则就是当程序运行或继续运行的某些必要条件未能具备时,放弃对这些条件的要求;不是等待、中断、出错或停机,而是采用跳过、转移、N-1、默认等方式保证程序继续运行。这些方法只适用于屏蔽暂时故障,所以要求同时产生报警输出,以便确定是否需要人为干预来消除永久故障。弃权规则首先要不影响程序的正确性和适用性。常见的弃权规则如下:
    ①跳过是指在不影响PLC控制系统正常运行的前提下,跳过因条件不具备而故障的模块向下执行,这是软件失效运行的形式之一。所谓软件失效运行就是在故障发生时先把故障模块从系统中断开,再对系统的其余模块进行重构,使系统能继续运行,但功能降低,即降级运行。可靠性的提高是以某些功能的损失为代价的。
    ②N-1方式基于控制程序的循环执行特性,即采用上一次循环(第N-1次)的数据代替本次循环(第Ⅳ次)所需的却未出现或未具备的数据。
    ③默认也是弃权规则形式之一,与跳过不同的是,默认采用预先置入的合理条件代替未具备的条件,即默认条件存在,例如,将非法输入的操作指令替换为默认的无输入,继续原操作。
    总之,弃权规则的目的是使工作在实时方式的控制系统保证连续运行,以确保被控系统长期稳定工作,虽然系统的功能有可能降低。

回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2018-3-30 07:20:20 | 只看该作者
    较低信噪比的模拟信号常因现场瞬时干扰而产生较大波动,若仅用瞬时采样值进行控制计算,会产生较大误差,为此应采用数字滤波方法。现场模拟量信号经A/D转换后变为离散的数字量信号,然后将形成的数据按时间序列存入PLC内存,再利用数字滤波程序对其进行处理,滤去噪声部分获得单纯信号。数字滤波是一种软件算法,它实现从采样信号中提取出有效信号数值,滤除干扰信号的功能。数字滤波与模拟滤波相比,具有很多优点:
    ①由于采用软件实现滤波,无需硬件器件,不受外界的影响,也无参数变化等问题,所以可靠性高,稳定性好。
    ②数字滤波可以实现对频率很低(如0. 01Hz)的信号的滤波,克服模拟滤波器的不足。
    ③数字滤波还可以根据信号和干扰的不同,采用不同的滤波方法和滤波参数,具有灵活、方便、功能强等优点。
    当然,数字滤波的不足之处在于滤波速度比硬件滤波要慢,但鉴于上述优点,数字滤波在PLC控制系统中仍得到了广泛的应用。数字滤波常用以下几种方法:
    (1)算术平均值法
    算术平均值滤波是针对现场模拟量信号的干扰和噪声而常采用的一种数字滤波方法。算术平均值滤波法是要寻求一个Y,使该值与各采样值间误差的平方和为最小。这种方法反应速度快,具有良好的实时性,对周期性干扰有良好的抑制。采取平均值滤波的方法进行预处理时,对输入信号用10次采样值的平均值来代替当前值,但并不是通常的每采样10次求一次平均值,而是每采样一次与最近的9次历史采样值相加求平均值,即:
    Yn=1/10Xi    (2-1)
式中,Yn为滤波值,Xi为采样值。
    对一点数据连续采样多次,计算其算术平均值,以其平均值作为该点采样结果,这种方法可以减少系统的随机干扰对采样结果的影响,一般3~5次平均即可。N值较大时,信号平滑度较高,但灵敏度较低;N值较小时,信号平滑度较低,但灵敏度较高。N值的选取:一般流量,N=12;压力,N=4。
    算术平均值法的优点是适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在该平均值附近上下波动。缺点是对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。
    (2)比较取合法
    当PLC控制系统测量结果的个别数据存在偏差时,为了剔除个别错误数据,可采用比较取舍法,即对每个采样点连续采样几次,根据所采数据的变化规律,确定取舍,从而剔除偏差数据。例如,“采三取二”即对每个采样点连续采样三次,取两次相同的数据为采样结果。
    (3)中值法
    根据干扰造成采样数据偏大或偏小的情况,对一个采样点连续采样N次(N取奇数),把N次采样值按大小排列,并对这些采样值进行比较,取中间值为本次有效值。该方法优点是能有效克服因偶然因素引起的波动干扰,对温度、液位等变化缓慢的被测参数有良好的滤波效果。缺点是对流量、速度等快速变化的参数不适用。
    (4)一阶递推数字滤波法
    这种方法是利用软件完成RC低通滤波器的算法,实现用软件方法代替硬件RC滤波器。一阶递推数字滤波公式为:
    Yn=QXn+(1-Q)Yn-1    (2-2)
式中,Q为数字滤波器时间常数;Xn为第n次采样时的滤波器输入;Yn为第n次采样时的滤波器输出。
    递推平均滤波法把连续取的N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据就放入队尾,并扔掉原来队首的数据(先进先出原则);把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N= 12;压力:N=4;液面,N=4~12;温度,N=1~4。该方法的优点是对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。缺点是灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由脉冲干扰引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。
    (5) 一阶滞后滤波法
    在一阶滞后滤波法中取a=0~1,本次滤波结果为:
    Y=(1-a)X+aYN-1    (2-3)
式中,Y为本次滤波结果;X为本次采样值;YN-1为上次滤波结果。
    一阶滞后滤波法的优点是对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合。缺点是相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率1/2的干扰信号。
    (6)限幅滤波法(又称程序判断滤波法)
    根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时与上次值进行比较,如果本次值与上次值之差大于等于A,则本次值有效;如果本次值与上次值之差大于A,则本次值无效,放弃本次值,用上次值代替本次值。其优点是能有效克服因偶然因素引起的脉冲十扰,缺点是无法抑制周期性的干扰,平滑度差。
    (7)限幅平均滤波法
    相当于“限幅滤波法”+“递推平均滤波法”,每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理。优点是融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差;缺点是比较浪费RAM。
    (8)中位值平均滤波法(又称防脉冲干扰平均滤波法)
    相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。N值的选取:N=3~14。该法优点是融合了两种滤波法的优点,可消除偶然出现的脉冲干扰引起的采样值偏差。缺点是测量速度较慢,和算术平均滤波法一样,比较浪费RAM。
    (9)加权递推平均滤波法
    加权递推平均滤波法是对递推平均滤波法的改进,即不同时刻的数据加以不同的权,通常是越接近现时刻的数据,权取得越大。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。该法优点是适用于有较大纯滞后时间常数的对象和采样周期较短的系统,缺点是对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号,不能迅速反应系统当前所受干扰的严重程度,滤波效果差。
    (10)消抖滤波法
    设置一个滤波计数器,将每次采样值与当前有效值比较,如果采样值等于当前有效值,则计数器清零,否则计数器加1,并判断计数器是否大于等于上限N(溢出);如果计数器溢出,则将本次值替换当前有效值,并将计数器清零。该法优点是对于变化缓慢的被测参数有较好的滤波效果,可避免临界值附近控制器的反复开/关跳动或显示器上的数值抖动。缺点是对于快速变化的参数不适用,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值作为有效值导入系统。
    (11)限幅消抖滤波法
    限幅消抖滤波法相当于“限幅滤波法”+“消抖滤波法”,先限幅,后消抖。优点是继承了“限幅”和“消抖”的优点,改进了消抖滤波法中的某些缺陷,避免了将干扰值导入系统。缺点是对于快速变化的参数不适用。
    可靠性设计是一项系统工程,PLC控制系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是控制系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、设置软件“看门狗”等。通过软件系统的可靠性设计,能最大限度地降低干扰对PLC控制系统工作的影响,确保微处理器及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-5-19 12:32

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表