董慧群,王福明
(中北大学,山西太原030051)
在测试系统的应用开发中,测试数据通常是以文件的方式进行组织管理的。这样的数据存储方式有一定的局限性,特别是远程测试系统,对于大量的数据不能及时的反馈。要实现方便灵活的管理和访问,数据库是一种必然的选择。
LabWindows/CVI是一个完全的标准C开发环境,用于开发虚拟仪器应用系统[3]。CVI5.5及以后的版本提供了支持数据库的SQL TOOLKIT工具包,该工具包提供了丰富的数据库操作函数,给开发带来了方便和快捷。
对于非NI公司的PCI数据采集卡,一般的驱动程序都是以动态链接库的形式提供的。对于CVI而言,可以直接利用驱动程序的动态链接库文件实现对采集卡的控制。本文采用中泰PCI-8333数据采集卡进行信号采集、存储和输出。PCI-8333数据采集卡具备丰富的采集与控制方法,同时也提供了动态链接库文件和头文件。
虽然厂商提供了头文件,但是LabWindows/CVI需要用c语言对头文件进行改写,参照厂商提供的头文件,编写部分方法声明如下:
//打开设备
int OpenDevicePlx(nZT_PCIBOARD*bs);
//初始化设备
int ZT8333Init(nZT_PCIBOARD*bs);
//数据采集
int ZT8333AI(nZT_PCIBOARD*bs);
注意,头文件中包含的方法一定要与动态链接库中的方法一致。编写后,将该头文件添加到应用程序中。在程序源文件中声明头文件,添加#include“PCI8KP.h”。
将采集卡厂商提供的动态链接库文件加入到应用程序所在的文件夹中,选择菜单:Option-Generate DLL Import Library,在弹出的对话框中选择OK按钮,会弹出动态链接库选择对话框,选择加入到程序中的动态链接库后,会在该文件夹下产生导入库。将该导入库也加入到当前程序的工程中。
上面的两个步骤完成后,便可在 CVI应用程序中使用该动态链接库,调用头文件中已声明的方法进行数据采集源程序的编写,实现对数据采集卡的控制。
ODBC(Open Database Connectivity,开放数据库互连)是Microsoft公司开发的一套开放数据库系统应用程序接口规范,它提供了统一的数据库应用编程接口(API),为应用程序提供了一套高层调用接口规范和基于动态连接库的运行支持环境。使用ODBC开发数据库应用时,应用程序调用的是标准的ODBC函数和SQL语句,数据库底层操作由各个数据库的驱动程序完成。因此应用程序有很好的适应性和可移植性。
LabWindows/CVI SQL Toolkit是用于CVI数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大部分的数据库操作和一些高级数据库访问功能。LabWindows/CVI SQL Toolkit支持主流的数据库驱动,对于数据库开发商及第三方开发者提供的驱动,LabWindows/CVI SQL Toolkit也一样采用标准的ODBC编译方式,通过这种扩展方式,可以灵活支持任何符合ODBC开发标准的数据库系统。
图1 ODBC的体系结构
Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统。Oracle数据库有如下几个强大的特性:支持多用户、大事务量的事务处理,数据安全性和完整性的有效控制,支持分布式数据处理等。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。
在使用工具包之前,首先需要在操作系统中的ODBC数据源中创建一个DSN,工具包与数据库的链接就是建立在DSN基础上的[1]。创建DSN的步骤如下:
(1)在操作系统控制面板中选择“数据源(ODBC)”。
(2)选择“系统DSN选项卡”添加按钮。
(3)在出现的“创建新数据源”对话框驱动程序列表中选“Oracle in OraDb10g_home1”,点击完成。
(4)配置“Oracle ODBC Driver Configuration”,如图2所示:
图2 配置DSN
这样就完成了DSN的创建,从此以后,工具包就可以利用这个DSN访问与之相关联的数据库了。
检索数据库中所有的数据,提取DATA字段,将数据组合成数组,通过Graph控件把数据显示出来。也可以按照时间条件检索数据库,Graph控件中将会显示符合查询条件的数据。
图3 数据库检索结果
CVI和数据库是开发虚拟仪器应用软件的不可缺少的组成部分,利用专门的数据库接口工具包可以方便地实现CVI应用程序与数据库的链接。本系统的实现表明,通过CVI与Oracle数据库质检进行数据交互,使得测试系统有了强大的功能,在组建复杂的测试系统中具有广泛的应用价值。
[1]王建新,杨世凤,隋美丽,等.LabWindows/CVI测试技术及工程应用[M].北京:化学工业出版社,2006.10.
[2]National Instrument Corporation.Labwindows/CVI User Manual[M].2005.
[3]孙晓云,郭力炜,孙会琴,等.基于LabWindows/CVI的虚拟仪器设计与应用[M].北京:电子工业出版社,2006.11.