您现在的位置是:首页 > 变频技术 > 变频技术

变频设备测控软件抗干扰

来源:艾特贸易2017-06-04

简介当测控对象为变频调速系统时,测控装置中的微处理器、微机系统或网络设备等将受到电磁辐射、高频噪声和高次谐波等相当强烈干扰,造成控制系统可靠性降低,轻则产生误动作,重

    当测控对象为变频调速系统时,测控装置中的微处理器、微机系统或网络设备等将受到电磁辐射、高频噪声和高次谐波等相当强烈干扰,造成控制系统可靠性降低,轻则产生误动作,重则系统“死机”。因此相对于普通系统而言,此时对测控系统性能指标要求更高。    1.防止系统“死机”的软件设计    测控系统的可靠性除了与硬件系统有关外,与软件系统有直接关系。成功的软件设计在某种程度上取决于对现场各种因素的分析、总结。通过分析干扰影响程序运行的现象,不断改进软件设计,以得到满足系统实际运行要求的可靠性软件系统。正常设计的软件,在现场使用中有可能出现问题,必须根据现场实际情况采取相应的保护手段,如防“死机”的watching dog软件程序等,或加入常规的数据采集采用多次取数、用取大数法或平均法、数字滤波计算处理等。    (1) watching dog的正确使用。测控系统“死机”,使系统进入死循环或停机状态。防止“死机”是对在线运行的变频测控系统最基本的要求。最有效的方法是设计完善的系统watching dog电路,使系统在进入“死机”状态后能重新启动回到正常的状态下运行。watching dog硬件可以采用专用的集成电路,关键在于软件程序,不仅要考虑干扰对系统造成影响产生的结果,还要分析这种结果可能造成程序运行的改变。    watching dog电路的核心是一个可反复触发的单稳电路。一旦发生程序“跑飞”,watching dog电路触发翻转,保证程序恢复运行,在线路及CPU接口无误的条件下,必须保证有以下功能:    1) CPU正常执行程序期间,定时给watching dog电路发送触发脉冲使其复位;一旦因干扰使CPU程序“跑飞”,watching dog电路不应再收到定时触发脉冲。    2) watching dog电路在暂态过程结束后发生翻转,输出非屏蔽中断的脉冲信号,其宽度足以引起CPU重新复位。    (2) watching dog电路程序设计要点。失效是常见的watching dog电路故障,表现为系统在无干扰场合,CPU可以正常执行监控程序,而一旦干扰出现或干扰严重时,即发生程序“跑飞”,而watching dog电路无动作,导致系统“死机”。    常见的失效原因在于程序“跑飞”后,watching dog电路仍收到不应再出现的定时“复位”信号。因此,系统监控程序应针对不论程序何时何地“跑飞”,均应封锁定时“复位”信号。为此应根据CPUwatching dog电路的连接形式进行全面考虑和设计。下述措施经实践证明非常有效。    1)各中断服务子程序中均不可写入RST指令。因为CPU运行到何处“跑飞”、“跑飞”到何处及干扰对CPU片内寄存器(中断寄存器)RAM输入输出端口破坏情况等均有很大的随机性,而在程序“跑飞”时,只要CPU片内中断允许(控制)寄存器不受破坏,则不论程序“跑飞”到什么地方,CPU仍能像正常运行时一样响应和执行中断服务子程序。    2)不可在局部循环国内写入RST指令,这样一旦出现程序“跑飞”,非正常进入该循环圈的程序将会由于watching dog电路无法接受“复位”信号而使系统恢复正常运行。    3)排除watching dog电路非正常“复位”的隐患。程序“跑飞”原因为其PC值变成一个新的随机值,此时CPU执行的可能是随机“程序”,在这随机程序中,如果形成死循环,其循环中又构造有“复位”指令,这就使watching dog电路意外失效。    4)编程过程中以一条或几条其他指令代替可能会引起“复位”的指令,特别在程序的数据表格、字符表格中有RST字符机器码的,可用表格中不可能出现的字符代替,在程序读入该字符时,作该代码处理。    2.软件的容错设计    采用容错设计可使测控系统即使受干扰发生程序执行方面的错乱也不致系统停止或执行错误的工作,而是使系统自动回到正常的运行状态,从而提高整个系统的稳定性和安全性。    (1)加入软件陷阱的方法。当PC值失控造成程序失控后,CPU离开原程轨道而不断进入非程序区。在这种情况下,可在非程序区设置拦截措施。这就是使程序进入陷阱,然后强迫程序进入初始入口状态。对MCS - 96系列单片机的微机应用系统,理论上可用指令LJPM# 0000H,即在非程序区,程序存储器中写入机器码020000H。因为UMP的机器码是02JB的机器码是20NOP的机器码是00,可以将这些指令连续使用:    LJMP# 0000H    NOP    JB# 0000H    NOP    LJMP# 0000H    机器码的组合为020000000020000…,用这种码填满非程序区,不论PC失控后指向这串码中的那个字节,最后都能导致程序执行02000机器码,回到首地址0000H重新运行。    (2)设立标志判断。定义某单元为标志,在模块主程序中把该单元的值设为某个特征值,然后在主程序末尾判断该单元的值是否仍为该特征值,若不是则说明有误,程序转入错误处理子程序。根据该单元的值判断,可知从哪一个中断子程序“跑飞”进入不同的错误处理模型。在中断子程序的开头.把标志单元置为某一特殊值,在中断子程序的末尾判断该标志单元的值是否仍为该值,若不是则说明非正常进入中断子程序,而转到相应的错误处理模块,在此模块中可以根据预先设定错误的处理模型,进行相应的容错和纠错的处理。对于模块内部的失控,可根据该模块的功能对其结果的合理性进行判断,若判断结果合理,则进入下一功能模块运行,否则返回本模块重新运行。    (3)增加数据安全备份。重要的数据开辟两个以上存储区,设在RAM的不同地方作备份;对重要的大容量应用系统可采用外接RAM存储器;将永久性数据制成表格固化于EPROM中,既能防止数据和表格遭到破坏,又能防止程序逻辑混乱时将其当作指令去执行。    (4)软件复位。软件复位是通过CPU接受外部的中断信号INT0而执行中断子程序,此时CPU的运行是:    1)关闭所有中断,以便进行故障的判别和处理。    2)堆栈初始化以保证执行完成INT0中断服务子程序后栈底内容为初始状态。    3)对系统的有关状态与控制量进行比较、判断来决定程序的重新入口地址,这些地址是主程序中基本功能模块的程序首选地址。通过这种软件条件复位,可以使系统在无扰动和小扰动下,尽快进入正常运行状态,尽量减少干扰对变频调速系统的影响。