LabSQL在LabVIEW中访问数据库的应用
[摘要] LabSQL可以实现LabVIEW与数据库的链接。针对数据存储、查询不便于用户操作的缺点,本文基于液压测试平台介绍了在LabVIEW环境下,利用LabSQL软件包对实验数据进行实时存储、多条件查询的方法。结果证明,操作简单,可行有效。
[关键词] LabVIEW 数据库 LabSQL
[Abstract] LabSQL can realize the link of LabVIEW and database. In allusion to disadvantages of data storage and inquiry , this paper introduced a method of experiment data real time storage and inquiry by using LabSQL software package under the background of LabVIEW based on a hydraulic pressure testing platform. Practice has proved that , this method is briefness、feasible and effective.
[Keywords] LabVIEW database LabSQL
0 引言
LabVIEW是可视化的图形语言,是目前应用最广泛的虚拟仪器开发环境。它面向应用,支持模块化和层次化结构,同时提供了大量的函数库供用户直接调用。在测试测量中,需要对产生的数据进行管理和维护。因此把数据库技术应用在虚拟仪器开发中,不但可以有效管理和组织数据,准确反映各个变量之间的关系,也可以扩展虚拟仪器的功能。LabVIEW并没有提供直接与数据库连接的接口,需要通过其它辅助方法来进行数据库访问。
1 LabVIEW中数据库访问技术
在LabVIEW编程环境下,通常以几种方法来完成与数据库的接口:
①利用NI公司的附加工具包LabVIEW SQL Toolkit进行数据库访问;
②利用其他语言如Visual C++编写DLL程序访问数据库,再利用LabVIEW所带的DLL接口访问该程序,实现间接访问数据库;
③利用LabVIEW的ActiveX功能,调用Microsoft ADO控件,利用SQL语言实现数据库访问。
其中,LabVIEW提供的数据库访问工具包LabSQL,利用Microsoft ADO以及SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列子VI,简单易用。通过LabSQL,用户可以直接在LabVIEW中以调用子VI的方式轻松实现对数据库的访问。在建立好数据源的情况下,可以直接实现数据表的建立、修改等操作。
2LabSQL及其VIs简介
LabSQL支持Windows操作系统中任何基于ODBC的数据库。ODBC(Open Database Connectivity,开放数据互连)是数据库与应用程序之间的一个公共接口,LabVIEW通过访问ODBC而不是直接访问具体数据库来与数据库通信。
LabSQL VIs按照ADO对象分为3类:Command VIs、Connection VIs、Recordset VIs。
Command VIs的功能是完成一系列的基本ADO操作,例如创建或删除一个Command、对数据库中的某一个参数进行读或写等。
Connection VIs用于管理LabVIEW与数据库之间的连接。
Recordset VIs用于对数据库中的记录进行各种操作,例如创建或删除一条记录,对记录中的某一条目进行读或写等。
最顶层提供了3个VI,其中最常用的就是SQL Execute.vi。它将底层的一些VI封装起来提供了一个最简单的接口,即直接执行SQL语句。通过SQL语句可以实现任何数据库操作。
关于LabSQL在数据库中实现数据存储、修改、删除、添加的文章介绍中,操作大多以用户直接输入SQL语句,由LabSQL执行命令为主。不能实现多次实验数据存储,不便于用户在多数据表间进行选择,不符合实际应用。针对操作界面不完善、命令更改复杂的缺点。下面以液压测试程序为例,详细介绍一种LabSQL在数据库访问中,面向用户的、操作简便的程序设计。
3 使用LabSQL实现数据库访问
3.1 LabSQL实现数据存储
测试实验次数多、数据量大,要求对测试数据实时存储;同时,为方便单次实验准确查询;比较不同数据间的变化关系,首先根据实验时间,为每次实验建立数据表:
第一步,利用ADO Connection Create.vi创建与数据库的连接,数据库由字符串“DSN=DSN_MT”指定。
第二步,通过ADO Connection Open.vi打开数据源,并执行SQL Execute命令。数据源由变量Connection String指定。在此基础上,利用“Create Table”SQL语句根据当前实验时间在数据库中创建数据表,设置数据表项,如电压、温度、频率、转速、流量等。
第三步,断开与数据库的连接。程序框图如图1所示。
在此基础上,利用“Insert Into”语句,可将实验所得的电压、温度、转速、流量、压力值实时存储在所建立的数据表内。方法同上,程序框图如图2所示。
3.2 LabSQL实现数据查询
3.2.1 查询程序流程
为方便操作者进行数据表调用和数据查询,应在前台操作面板中尽量体现实验信息,方便用户选择,简化操作过程。
第一步,在数据库中建立数据表“Catalogue” 作为实验数据目录,用于存储生成数据表的名称、采样频率以及对本次实验的备注等实验信息。程序如图3所示。
第二步,点击“列表信息”,显示“Catalogue”中存储的上述信息。由此,用户可进行选择,并在“选表序列号”中输入需要查询的数据表序号。操作界面如图4所示。
第三步,选择检索方式,为“查询所有值”或“按时间查询”;数据类型为“温度”、“转速”等单个数值显示,或“转速—流量”等两个数值,从而可通过数值曲线显示二者的变化关系。
第四步,点击“开始查询”。数值窗口显示相应数据,并在图形窗口以波形图形式表示。同时,利用LabView的统计函数“Statistics”可对实验数据进行数据分析,计算其方差、均方根等。
3.2.2 查询程序实现
确定所要查询的数据表后,综合选定条件对数据进行查询,并以图形显示。
第一步,与数据库建立连接,方法同上。根据输入的数据表名,选中表中所有值。
第二步,根据前面板选择的查询方式,组合条件,合成“SELECT”语句。
第三步,分别将结果输出至数据表和波形图。波形图横轴以时间表示。程序如图五所示。
3.3 操作界面设计
操作面板,尽量使用户操作简单、方便。左侧为数据表选择区,用来确认要查询的数据表;右侧为查询方式和查询数据选择区,确定要显示的数据类型。查询结果以数据表和波形图两种方式显示,波形图可以显示单个数据,也可以显示两个数据的变化关系,方便实验结果对比。左下侧显示用统计模块计算出的变量各统计