LabVIEW 中利用LabSQL 访问数据库
虚拟仪器VI(virtual instruments)是National Instruments 公司在其产品LabVIEW 中首先提出的创新概念。随着现代测试技术与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想,成为设计复杂测试系统和测试仪器的主要方法和手段。同时LabVIEW 也以成为测试与测量领域的工业标准应用编程软件。
现代的测试测量系统大多需要对被测目标进行全方位检测,多传感器网络协调应用,从而有利于获取对目标系统的全面认识,这同时也会使产生的数据量急剧增长。面对大量的数据信息无论是手工数据管理还是文件系统管理方式都无法正确反映各类数据之间的密切联系,都不能有效的管理和组织数据。因此以数据库为中心,以数据管理为重点,构建的基于数据库管理数据的虚拟仪器系统是现代的测试测量系统的发展趋势。其结构框图如图1 所示:
但由于LabVIEW 本身并不具备数据库访问功能,因此以LabVIEW 编制的虚拟仪器系统需要其它辅助的方法来进行数据库访问。
1 LabVIEW 中与数据库接口的方法
在基于数据库的虚拟仪器测量测试系统中,很重要的一部分工作是对实时采集地的数据进行显示、查询、统计、生成报表分析等。这其中涉及的最主要的任务就是对数据的读取和写入,即与数据库系统进行交互。据笔者所知,在LabVIEW 编程环境下,通常通过以下几种方法来完成与数据库的接口。
- 利用NI 公司的附加工具包LabVIEW SQL Toolkit 进行数据库访问。但是这种工具包比较昂贵,对于很多LabVIEW 用户来讲,这个价格是不可能承受的。
- 利用其他语言如Visual C++编写DULL 程序访问数据库,再利用LabVIEW 所带的DULL 接口访问该程序,这样可以实现间接访问数据库。但这样工作量太大。
- 利用LabVIEW 的ActiveX 功能,调用Microsoft ADO 控件,利用SQL 语言实现数据库访问。利用这种方式进行数据库访问需要用户对Microsoft ADO 控件以及SQL语言有较深的了解,并且需要从底层进行复杂的编程才能实现。这对于大多数用户来讲也是不现实的。
这几种方法虽然都可以完成对数据库的访问,但各有缺点不能满足系统对数据库实时访问的要求。本文提出通过LabVIEW 用户开发的免费LabVIEW 数据库访问的工具包LabSQL来解决以上存在的问题。
2 数据库访问的工具包LabSQL 简介
LabSQL 是一个免费的、多数据库、跨平台的LabVIEW 数据库访问工具包。目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系统中任何基于OBDC 的数据库,包括Acess,SQL Server,Orcale,Pervasive,Sybase 等。LabSQL 是利用Microsoft ADO 以及SQL 语言来完成数据库访问,将复杂的底层ADO 及SQL 操作封装成一系列的LabSQL VIs。利用LabSQL 几乎可以访问任何类型地数据库,执行各种查询,对记录进行各种操作。它的优点是易于理解,操作简单,不熟悉SQL 语言的用户也可以很容易地使用。只需进行简单地编程,就可在LabVIEW 中实现数据库访问。它还有一个最大的优点是源代码开放,并且是全面免费的。(注:LabSQL 的下载网址
3.3 LabSQL VIs 分类
LabSQL VIs 按照功能可分为四类:Command VIs;Connection VIs;Recordset VIs;Top Level VIs。
- Command VIs 的功能是完成一系列的基本ADO 操作,例如,创建或删除一个Command,对数据库中的某一个参数进行读或写等。
- Connection VIs 的功能是管理LabVIEW 与数据库之间的连接。
- Recordset VIs 用于对数据库中的记录进行各种操作,例如,创建或删除一条记录,对记录中的某一条目进行读或写等。
- Top Level VIs 属于顶层的LabSQL 应用,对前三类LabSQL VIs 某些功能的封装,例如,SQL Execute.VIs 可用于直接执行SQL 命令。
3.4 利用LabSQL 开发的基本步骤
利用LabSQL 在数据库操作中可实现应用程序与数据库之间的数据交互传递。一般的简单操作步骤如图3 所示。
4 LabSQL 应用实例
本应用实例是基于VI 的随动测试系统,该测试系统需要对事先存储的各测试点的基本资料,标准值、上下限值进行读取,然后与采集的数据值进行计算、判断,并进行状态记录存储和管理。其数据库采用的是Microsoft Access 系统,它的使用和维护较简单,并且能够满足本系统的需要。限于篇幅,本文只对打开数据库、查询指定的记录的字段值和向数据库添加、删除、修改记录的实现方法作一下介绍,以起到抛砖引玉的作用。图四即为笔者编写的对数据库进行简单操作的框图。
具体步骤如下:
第一步:首先通过ADO Create.vi 创建一个Connection 对象,然后利用ADO Connection Open.vi 建立与数据库的连接,数据库由字符串ConnectionString“DSN=myDB”。(myDB 是一个在Windows ODBC 数据源中创建的一个DSN,并与想要连接的数据库相连接。
第二步:利用ADO Recordset Create.vi 创建一个Recordset 对象,然后利用ADO Recordset Open.vi 打开Recordset 对象,并同时利用SQL 查询命令获得数据库表中的全部或部分记录。
第三步:通过功能选择按钮来选择控制对数据库的操作(查询、添加、删除、修改)。
第四步:利用ADO Recordset Close.vi 和ADO Connection Close.vi 关闭与数据库之间的连接。
以上所举的例子只是对数据库的基本操作,如果综合利用LabSQL 的四类VIs,就可以实现复杂的数据库操作。另外注意Microsoft ADO 控件具有远程数据库访问的功能,但是LabSQL 并没有开发这一功能。
4 小结
实践证明,在LabVIEW 利用LabSQL 数据库访问工具包实现对数据库的访问,比其它方式操作更简洁,更容易理解,不用精通ActiveX 技术和SQL 语言。充分利用了现有的资源,就可以数据库的实时操作,应该是一个值得学习和推广的方法。
本文出自家电维修网: http://www.bjjdwx.com/wz/2009/dz1572.html欢迎转载,转载请保留链接。
- 刊登此文只为传递信息,并不表示赞同或者反对作者观点。
- 如果此内容给您造成了负面影响或者损失,本站不承担任何责任。
- 如果内容涉及版权问题,请及时与我们取得联系。

文章评论