您所在的位置:e-works首页 > 工业自动化控制 > PC-BASED

基于IPC控制系统的实时高精度测频方法

发表时间:2008-6-5 张予生 王明武 王永华 来源:中国工控网
针对IPC控制系统中流量计高精度的实时测频问题,分析了PCI-1712L和KPCI-714的测频原理和实际测试结果;通过PLC高速计数功能完成了对流量计的测频,实现了实时流量的高精度测量;利用平均值滤波算法修正了误差,使得精度进一步提高。该方法测到的频率精度达到0.4%, 采集速度为20次秒。

    引言

    气动阀性能参数采集与处理系统是针对高标准的军用气动阀性能测试要求而设计的。介质流量是气动阀最重要的性能参数,它是通过流量计输出的一串幅值为 30VDC 的频率信号而获得的。测试介质是高压压缩空气,流速极快,所以如何实现流量计实时的高精度测频是整个控制系统设计的一个难点和重要环节。我们先后使用台湾研华公司 PCI-1712L数据采集卡和北京科日新公司 KPCI-7414 测频模块对流量计测频,结果都很不理想,满足不了系统设计的实时性和精度要求。我们最后用 PLC 高速计数功能成功完成了这一环节的设计。

    1、系统工作原理

    图1为气动阀性能参数采集与处理系统原理图。


图1 被测阀检测过程原理图

    系统采集的参数主要有前压、后压、压差、温度和流量等。测试气源由电磁阀来控制开断,气源开通后,被测阀前后的压力变送器实测值分别为 P1 和 P2,两者差即为被测阀的压差。调节阀用来调节测试介质的流量。科氏质量流量计选择瑞士 E+H  的产品,它精度高、响应速度快,提供两路输出信号,一路为频率信号,用来测试介质的流量;另一路为 4~20mA 标准信号,用来测试介质的温度。综合考虑,系统选用工控机(IPC)、数据采集卡和 PCAtuo 组态软件配合使用的控制方案。

    2、流量计测频 

    E+H流量计的频率信号用来测定介质的瞬时流量,其满量程为 2~1000Hz。压缩空气的流速极快,7~ 8 秒就测试完毕一次,系统设计要求每 60ms 采集一次流量计频率值,精度为 0.5%,这是系统设计的一个难点。

    2.1 PCI-1712L 数据采集卡测频

    由于本控制系统是基于 IPC 的,所以我们首先想到用数据采集卡上的集成功能对流量计进行测频。PCI-1712L是一款高速多功能 PCI 总线数据采集卡。它提供 16 路模拟量输入,16 路数字量输入/输出,以及 3 个10M Hz 时钟的16 位多功能计数器通道。
 
    PCI-1712L 是硬件和软件配合进行测频,需要两个计数器通道 CNT 来完成,如图 2 所示。CNT1的OUT端接到CNT2的GATE端,流量计的频率信号接到CNT2的CLK端。CNT1采用单触发(One Shot)方式,用来触发和结束 CNT2 计数;CNT2 用来累计 CNT1 的每个单触发周期内被测到的信号脉冲数,从而测出信号频率。流量计输出频率范围为 2~1000Hz(属于板卡的 0.2Hz~13kHz 低频信号),此时板卡的内部时钟频率默认为 10kHz  ,每个单触发周期为 6秒左右,即每 6 秒才能更新读数一次。实际的测试结果比这个延迟时间还长一些,所以无法满足流量计测频的实时性要求。


图2 PCI-1712L测频示意图

    2.1 KPCI-7414 模块测频

    K-7414是CAN总线脉冲计数测频模块,具有独立的 RS485串行通信接口,计数频率最高达 2MHZ,如图 3 所示。K-7414采用 8254 作为计数芯片,其工作方式由上位机通过串口总线设定,这里使用的 RS-485 串行通讯。实际接线时把被测信号接到 R485A 端和 R485B端,并短接 RR 端和 R485B 端。信号上升沿触发 K-7414 模块计数,下降沿终止计数。KPCI-7414输出信号通过 RS485/RS232 转换器送入 IPC 中进行处理。


图3 KPCI-1714测频示意图

    KPCI-7414的板载晶振是 2MHz(脉冲周期 0.5μs),它的测频原理是当模块采集到 N个现场脉冲频率信号时,通过所含有的晶振脉冲个数计算出现场脉冲信号的周期和频率。比如1 个信号半周内晶振脉冲个数是 100,那么被测的现场频率信号半周的脉宽为 100×0.5μs =50μs,一周的脉宽就是 100μs,从而其频率 f 就是 1/100μs=10000Hz。KPCI-7414 测频是严格以现场脉冲频率信号的占空比为 50%为前提的,另外在高频时现场脉冲信号的脉宽很小,这些都给实际测试结果造成较大的误差,无法达到流量计测频的精度要求。

    2.3 S7-200 PLC高速计数通道测频

    我们最后采用 S7-200 PLC(CPU 222)的高速计数功能有效地解决了这一问题。具体的实现框图如图 4 所示。PLC 高速计数通道在每个 50ms 时间内累加它采集到的脉冲个数,脉冲个数存放在 VD604 存储单元中。最后 VD604*20,即为流量计的实时频率值。


图4 PLC频率测试程序流程框图

    为了使数据精度更高,测频程序中还采用了平均值滤波算法。实际的测试结果表明,采用 PLC 高速计数通道测频,既能满足测频的实时性的要求,又能满足数据精度的要求。具体的系统程序如下。

    主程序:

    LD        SM0.1            
    MOVB    16#F8, SMB37  //初始化高速计数器0控制字节
    MOVD    +0, SMD38  //清高速计数器当前单元
    HDEF     0, 0  //定义高速计数器0为工作方式0
    CALL     SBR_0            //调用子程序0

    子程序:

    LD        SM0.0             
    MOVB    50, SMB34  //时基中段0,定时50ms
    ATCH     INT_0, 10  //50ms时间到,调用中断程序0
    ENI                 //全局开中段
    HSC       0        //启动高速计数器0

    中断程序:

    LD         SM0.0   //读高速计数器0的读数值到VD200
    MOVD     HC0, VD200      
    LD        SM0.0   //把脉冲个数依次压入到VD516- VD504中 
    MOVD    VD504, VD500
    MOVD    VD508, VD504
    MOVD    VD512 VD508
    MOVD    VD516, VD512
    MOVD    VD200, VD516
    LD        SM0.0   //求脉冲个数的5次累加和
    MOVD    VD500, VD600
    +D        VD504, VD600
    +D        VD508, VD600
    +D        VD512, VD600
    +D        VD516, VD600
    LD        SM0.0
    DTR       VD600, LD0
    LD        SM0.0
    MOVR     LD0, LD4
    /R         5, LD4  //得到脉冲的平均值
    LD        SM0.0
    MOVR     LD4, LD8
    *R         20.0, LD8   //测得频率信号的大小

    PLC 不仅完成了流量计的频率测定,同时,系统的几路数字量(电磁阀、接近开关以及指示灯等)也用 PLC 来实现其逻辑控制,这样就省去了在数据采集板上使用数字量 I/O时所必须采取的一些麻烦措施。

    3、结语

    采用 PCI-1712L数据采集卡对低频率信号进行测定,其测频周期的延迟时间太长;采用KPCI-1714进行测频,其测频结果误差比较大,它们都不能同时满足测频的实时性和精度要求。最后,在 IPC 测控系统中我们使用 PLC 高速计数通道对流量计进行测频,并且采用平均值滤波算法对误差进行修正,完成了测频环节的设计。该方法的使用结果表明它在实时性和精度两个方面都达到了设计的要求。

    本文的创新点是解决了在基于IPC的控制系统中高精度实时频率测量的问题。

责任编辑:江琦
;