摘 要:针对Access、SQL Server 2000以及LabVIEW自带的TDMS数据库进行了相关存储性能的测试。对前两种数据库分别采用LabSQL和数据库连接工具包所提供的算法进行了比较分析。
关键词:LabVIEW编程;存储性能;LabSQL;数据库连接工具包
LabVIEW是一种虚拟仪器的主流开发平台,它提供众多输入控件和显示控件,使用户方便地创建用户界面。LabVIEW不仅可与数据采集、视觉、运动控制设备等硬件通信,还可以与PXI以及RS485等仪器通信。应用LabVIEW开发的系统正越来越广泛地应用于各个领域。LabSQL工具包与数据库连接工具包(Database Connectivity Tookit)都是基于Microsoft ADO和SQL的LabVIEW 数据库访问工具包,利用它们几乎可以访问任何类型的数据库,执行各种SQL查询,对记录进行各种操作。TDMS(Technical Data Management Streaming)文件是NI主推的一种二进制记录文件,它兼顾了高速、易存取和方便等多种优势,能够在NI的各种数据分析或挖掘软件之间进行无缝交互,并提供一系列API函数供其他应用程序调用。
1 测试方案设计
首先进行数据源设计。设置数据源的具体方法是编辑一个数据源VI,建立一个DAQmx采样任务,采样设备可为一个仿真DAQmx设备(在Measure & Automation Explorer工具设备和接口中创建仿真设备)。将采样数据存入指定队列[1]中。数据源程序[2]框图如图1所示。
其次进行存储字段的设计。在TDMS数据文件中,数据的存储字段包括时间和对应的值。为保证数据存储单元的一致性,本文对SQL Server 2000和Access 2003的存储字段设计如表1所示。
最后设计存储程序。Access与SQL Server 2000存储VI的程序框图如图1所示,这里对LabSQL工具包以及数据库连接工具包分别进行测试。图2是使用LabSQL工具包进行数据库存储的程序框图(对Access以及SQL Server 2000均适用)。TDMS存储VI设计与前者类似。
存储单元(Save Unit)内部设计。图3为使用Parameterized SQL Query方法编写的存储单元程序。而使用SQL Query方法以及LabSQL工具包的SQL Execute子VI使用方式相同,读者可参考LabVIEW相关的示例程序。
程序运行成功后,将存储程序VI的执行系统设置为“仪器IO”配置,VI优先级设置为“标准”。重启LabVIEW进行在线测试,以保证存储程序在单线程模式下运行。
2 测试分析
在双核台式机上进行的测试分析。CPU的主频为2.0 GHz,测试的主要指标有CPU使用率、磁盘读速率以及磁盘写速率。
图4为在采样率为1 050 Hz时,Access、SQL Server 2000(使用LabSQL工具包中的前述存储方法)以及TDMS数据存储各项测试指标的对比(由于数据采集VI耗费的CPU极少,不进行磁盘读写,这里可认为各项指标均反映数据存储VI的运行情况)。这里通过增大数据源程序中DAQmx读取VI的每通道采样数,可使CPU使用率降低到5%以内。
表2为使用数据库连接工具包中的Parameterized SQL Query和SQL Query以及LabSQL工具包中的SQL Execute子VI进行数据库存储的各项性能统计。
对每种方法进行了反复测试,各种指标相对稳定,最大采样率的误差不超过100 Hz。
从本文的研究可以发现,使用不同的数据库和存储算法,存储性能差异很大。希望本文的研究能为广大应用LabVIEW的研究人员提供参考,提高软件各项性能指标。
参考文献
[1] 阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2009:146-147.
[2] 白云,高玉鹏,胡小江.基于LabVIEW的数据采集与处理技术[M].西安:西安电子科技大学出版社,2009:59-64.