《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > 基于LabVIEW数据采集系统分析与设计
基于LabVIEW数据采集系统分析与设计
摘要: LabVIEW是一款优秀的虚拟仪器软件开发平台。LabVIEW以其直观、简便的编程方式,众多的源码级设备驱动程序,多种多样的分析和表达支持功能,可为用户快捷地构建实际生产中所需要的仪器系统创造有力的基础条件。其中数据采集与仪器控制是LabVIEW最具竞争力的核心技术。
Abstract:
Key words :
0 引言
    现代技术的进步,特别是以计算机技术为代表的不断革新的计算机技术,正从各个层面上影响并引导着各行各业的技术革新,基于计算机技术的虚拟仪器系统技术也正以不可逆转的力量推动着测量控制技术、数据采集和分析等技术的发展。传统仪器主要由信号采集与控制模块、分析与处理模块、以及测量结果的表达与输出模块这三大功能模块组成。传统仪器的这些功能都是以硬件(或固化的软件)形式存在的。而虚拟仪器则是将这些功能移植到计算机上完成。它在计算机上插上数据采集卡,然后利用软件在屏幕上生成仪器面板,并利用软件进行信号的分析与处理。相对于传统仪器,虚拟仪器具有性能高、扩展性强、开发时间少、完美的集成功能等特点。
    LabVIEW是一款优秀的虚拟仪器软件开发平台。LabVIEW以其直观、简便的编程方式,众多的源码级设备驱动程序,多种多样的分析和表达支持功能,可为用户快捷地构建实际生产中所需要的仪器系统创造有力的基础条件。其中数据采集与仪器控制是LabVIEW最具竞争力的核心技术。


1 系统整体方案设计
    一个完整的LabVIEW程序主要包括前面板、程序框图、连接器三部分。前面板是一种交互式图形化用户界面,用于设置输入数值和观察输出:框图是定义VI功能的图形化源代码,可利用图形语言对前面板的控制量和指示量进行控制;图标和连接器窗格用于把程序定义成一个子程序,以便在其他程序中加以调用。本系统包括波形信号采集、保存标准信号、信号处理和分析、采集数据回放四个部分。图1是信号采集与分析系统框图。

1.1 波形信号的采集
    该部分主要利用外部触发方式发出触发信号,以使发出信号和通道的采集达到同步。以信号发生器发出信号为例;为了分析有限个波形的数据,必须保证采集卡采集的数据是发出的全部信号并且只有一个发出信号。本系统通过采集卡输出一个脉冲信号来触发信号发生器,以使采集卡的输入通道和脉冲输出通道同步。实际上,正是基于这一点,其发出的任意信号才必须被无遗漏的同步采集过来。本设计正好满足了此要求。该部分的前面板控件包括采集信号参数的设置控件、脉冲输出端口、信号输入端口以及存放信号处理后峰值点位置的三个数组。其中采样率的设置比较重要,例如根据需要发出的信号周期是0.4ms,每个周期采集200个点,采5个周期就需要rate=l MHz,那么,每个点之间的时间间隔就是lμs,这样推理便于后面的信号处理。

 

    程序中可利用数据采集的工具DAQmx中的各种子vi来实现数据的通信,并可通过Get Terminal Name with Device Prefix.vi来实现输入与输出之间的同步。最后通过波形图显示所采集到的信号,同时通过Waveform Peak Detection for l Chan.vi获得信号超过阈值的峰值点。其数据采集程序框图如图2所示。

 

1.2 信号处理与分析
    此部分首先选择以前保存过的标准信号作为信号处理的标准。选择路径后,相应的标准会存放到处理中的位置。然后点击前面板中的“信号处理”按钮,这样,相应的处理结果就会显示出来。标准信号和采集信号峰值点的位置和个数相应的显示出来,最后的相减结果也以数组的形式给出。其中无论是重新选择的标准信号还是以前默认的信号,都可以通过波形再次回放出来。通过一个选择结构来实现用什么样的标准信号来处理,其信号处理子模块的程序框图如图3所示。

l.3 信号的保存
    在信号采集模块中,每次采集都默认保存,而且采集信号每次保存后都会覆盖上一个,这样,在程序运行过程中,用户可以随机地保存标准信号。其方法是把默认目录下的test.1vb文件复制到想要保存的路径下,然后通过读取测量文件把该目录下的波形提取出来。在此,标准信号的回放在信号处理的过程中已经用波形图的形式显示出来,但要用到此处保存路径的属性节点。其保存标准信号的程序框图如图4所示。

2 设计模式的选择
    该程序的设计模式是基于事件结构的人机界面(UI EventLoop),即用控件的事件结构来响应用户操作。它可以避免因轮询导致的CPU浪费,而且会自动产生事件队列,从而避免丢失事件。

 

 

    事件结构不仅使程序变得简单,提高了CPU的利用率,而且可以使几个子程序同时运行,从而在LabVIEW中实现多线程操作。这一性能取决于LabVIEW是一种自动多线程语言,它可自动根据用户编写的程序决定线程的数目、分配、管理和切换等。而该线程的执行系统则可在VI的属性对话框中直接进行配置。一般来说,一个独立的循环或者子VI就是一个独立的线程。前面板上的一个单击事件响应一个线程的执行,但多个线程可以并行运行,互不影响。

 


3 整体结构
    本系统中各个部分的模块均可通过事件结构来实现,单击前面板中相应的操作程序,可相应地运行有关事件。前面板的整体结构如图5所示。

4 结束语
    本系统可通过采集卡采集到由传感器感知到的波形信号,并进行相应的处理,同时对信号进行分析,以得出信号异变情况。事实上,基于LabVIEW平台开发的系统具有体积小巧,功能强大,处理速度快等优点,可用于各种结构的检测工程中。当然,本系统还存在着某些需要改进之处,由于是首次独立开发,主要功能模块只是初步通过调试,故在系统的纠错能力和信息提示等方面还需完善。

 

此内容为AET网站原创,未经授权禁止转载。