对于现场的各种干扰(例如类似快速脉冲群的干扰),软件上的抗干扰措施主要是考虑程序跑飞问题。针对程序跑飞的问题,已经有了不少的研究[11]。我们对在现场的故障问题中“显示屏死机或画屏”,“累计流量值无故损失”等问题也使用了部分抗干扰技术, 为此我们主要使用了看门狗,数字滤波,自检程序,软件陷阱等的方法以提高流量计的抗力。这里针对2.3.3 节中累计量异常问题的解决,重点对软件陷阱的方法加以介绍。
4.2.1 干扰信号影响信号处理模块工作电源的方法
如 2.3.3 节中的描述,流量计的信号处理模块中使用了电源监视芯片用于监视电源的异常波动,同时也是使用了非易失性nvram 在掉电时存储流量计数据。 电路结构如图4-5: 图4-5:电源监视和掉电时数据存储电路 fig.4-5: the circuit of power watches and data store in power-off 其中nvram 的结构[12]如图4-6: 图4-6:nvram 的结构 fig.4-6: nvram structure nvram 的结构中存在一个eeprom,在store 信号下将ram 中的数据存入eeprom 中,在recall 信号下将eeprom 中的数据存入ram 中。以实现数据在断电/上电时的使用 电源检测芯片n209(max709)上的小于1v 时,将给cpu 发出一个复位信号,cpu 在结束工作前将触发nvram 的store 信号完成数据保存。 我们的电磁流量计的结构中,将信号处理模块中模拟电路的电源的“地”做作为了信号的“地”(参见2.1.1),它通过信号电缆,从信号转换器中直接接到传感器中的地电位电极中,作为流量信号的参考地电位。在以前的设计中,数字电路电源与模拟电路的电源不分开。这样由于共电源,当信号的“地”也就是电源“地”受外部干扰下,如果5vd 的电源上受到干扰(如地电位被瞬间台高等)使n209(max709)发出复位信号,cpu 来不及完成触发nvram 的store 信号就直接非正常的重新启动。这时候由于数据没有保存,开机时读取的nvram 中eeprom 数据上再上一次保存的数据。这样累计量异常损失,参数数据丢失等问题就会发生。
对于这个问题我们的解决方法:
1. 硬件上:将数字电路电源于模拟电路的电源分开。(参见4.2.2)
2. 软件上:在主程序中,每隔一定的时间(15s)强制cpu 完成一次触发nvram 的store 信号的工作。使数据能在时间得到保存。 由于数字电路电源于模拟电路的电源分开,现场的干扰通过信号地窜入电路的情况将大大的被避免。同时如果cpu 确实受到得干扰没有及时存储nvram 中eeprom 数据, 也最多损失15s 的流量数据。这在常规口径,正常流速(3-5m/s)下,用户是可以接受的。
4.2.2 干扰信号影响信号处理模块中的 cpu 的方法-软件陷阱
如 2.3.3 节中的描述:正常情况下内部的存储器和累加器中的数据不允许被破坏的。但是在现场的干扰下,程序执行异常(如跑飞)时,看门狗会重启动系统。但在看门狗动作之前,程序是失控的,这个时候如果累加器中的数据没有被存储起来,就有可能引起累加器的数据丢失。
1. 为了抑制程序跑飞的情况对开封电磁流量计流量积算产生的影响我们采用了以下措施:
1) 在程序(特别是主程序)中加入判断 sp 指针、pc 指针是否出错,堆栈是否出错。 如果存在出错的情况,直接将pc 指针置为0000h ,sp 指针为0031h,并重新启动流量计。
2) 在未用的 eprom 程序空间中填充020000 数据。 由于020000 数据是指令“ljmp 0000h”的机器码,所以当程序飞入这些未用的程序空间时,程序能从零地址重新执行
2. 为了防止失控的程序对累加器进行误操作,我们在对ram 进行读写时,增加了以
下条件陷阱:
1) 读写操作前,对 ram 中的数据进行检查。
判断ram 中的数据是否正确,判断ram 芯片本身是否正常。如果检查发现有异常情况,则立即报错,并进入陷阱形成死循环,通过看门狗来恢复运行状态。
2) 读写操作前,对于累加器中的数据也进行一次检查。
流量计累加器中的数据不会无限增加下去,通常来说的情况下经过60s 的数据累加,必定会有一次需要存储的时机。这样根据流量计实际的口径/流速/量程等运行参数,累加器中的数据就存在一个上限,超过这个上限就可以认为是由于干扰引起的错误数据。同样如果累加器中的数据是负值,也认为是由于干扰引起的错误数据。 如果检查发现流量计累加器中的数据存在异常变化,则忽略本次的数据,并使程序进入陷阱形成死循环,通过看门狗来恢复运行状态。
3. 为了防止失控的程序对 eeprom 进行误操作,我们在对eeprom 进行读写时,增加了以下条件陷阱:
1) 读写操作前,对 eeprom 中的数据进行检查。 eeprom 存放的数据都是流量计的参数数据,特定地址存放特定参数。由于参数存在一定的范围,可以通过检查部分特定数据是否符合范围来测定eeprom 中的数据和eeprom 本身是否异常。 如果检查发现有异常情况,则立即报错,并进入陷阱形成死循环,通过看门狗来恢复运行状态。
2) 读写操作前,对于待写入的数据也进行一次检查。
如果待存入的数据为负,也认为是它是由于干扰引起的错误数据。 如果检查发现流量计累加器中的数据存在异常变化,则忽略本次的数据,并使存续进入陷阱形成死循环,通过看门狗来恢复运行状态。
4. 除零操作的软件陷阱。
在cpu处理除法操作指令时,特别加上判断其除数是否为0。如果发现除数为0, 则认为,这是外部的干扰引起的内部数据出错。同时忽略本次的操作,并使程序进入陷阱形成死循环,通过看门狗来恢复运行状态。 通过上述这些软件陷阱的方法,可以有效地将干扰引起的跑飞程拉回到正确的程序运行状态,对于数据异常等情况可起到有效的抑制,避免出现流量计瞬时流量/累计流量的异常变化。
4.3 智能型电磁流量计中特别使用抗干扰措施
工频跟踪技术是我们为电磁流量计专门设计的一种用于消除工频干扰的技术,分为硬件电路和软件算法两部分。 硬件电路上的构成如下图4-7: 图4-7:工频跟踪电路原理 fig.4-7: the circuit principle of 50hz track
我们在电源模块中工频通过光藕(图中元件u01)将50hz 的工频信号隔离、提取为工频的相位信号输入cpu(d206)。cpu 在参考工频的相位信号后,向电源模块中的励磁回路发出同一相位的励磁信号,以驱动励磁回路向传感器发出励磁电流。信号之间的相互关系如图4-8: 图4-8:工频与励磁信号 fig.4-8: the wave of power and excitation 软件程序中我们设置有两个中断:跟踪工频中断和发励磁控制信号中断,用于跟踪和指导励磁信号。 在此过程我们使用二个pca 计数器,他们都享有高优先级的中断。他们分别负责检测工频信号和指导cpu 发出励磁控制信号。每隔一定的时间对工频进行校验并且调整励磁信号的相位。软件中这样做的好处即可以以使ad 采样与工频同步,以消除正交干扰二,也可以消除工频本身的变化对影响。 试验表明(由一个脉冲发生器接至检测工频信号的pca 端口,脉冲频率时时变化), 即使工频信号突然发生干扰(以频率突变模拟),转换器也丝毫不受干扰。--扩展阅读:开封中仪流量仪表有限公司专业生产电磁流量计、孔板流量计、涡街流量计、文丘里流量计、v锥流量计、v型锥流量计、喷嘴流量计、插入式电磁流量计、智能电磁流量计、分体式电磁流量计、一体式电磁流量计、标准孔板流量计、标准孔板、一体化孔板流量计、标准喷嘴流量计、长径喷嘴流量计、标准喷嘴、长径喷嘴、插入式涡街流量计、智能涡街流量计、锥型流量计、v锥型流量计、节流装置、节流孔板、限流孔板等流量产品,更多有关电磁流量计、孔板流量计、涡街流量计的信息请访问开封中仪网站:
