- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
在LabVIEW中利用ActiveX技术访问数据库
摘 要:本文介绍了在不使用LabVIEW附加数据库连接工具包的情况下,利用ActiveX技术实现LabVIEW访问数据库的方法。
关键词:数据库访问,ActiveX,LabVIEW
Using ActiveX Technology to Access the Database In LabVIEW
Gao Guo-hua Zhang Yong-zhong
Abstract: This paper presents a method using ActiveX technology to access the database without the Database Connectivity Toolset in LabVIEW
Key words: Database accessing,ActiveX,LabVIEW
引言
LabVIEW是面向仪器与测控过程的图形化软件开发平台,全称是Laboratory Virtual Instrument Engineering Workbench——实验室虚拟仪器工程平台。其突出特点是基于图形化编程语言G的虚拟仪器开发环境,为仪器设计人员提供了一种全新的编程方法,即使用直观的前面板与流程图相结合的编程方法来构建虚拟仪器。LabVIEW在自动化、通信、航空、半导体电路设计和生产、过程控制及生物医学等在内的全世界各种工业领域中都发挥了积极的作用。基于LabVIEW的众多优势,在设计一个“旋转机械故障诊断系统”时,我们选择其作为主要编程工具。
图1 LabVIEW中ActiveX控件的程序流程图
作为一个强大的软件设计工具,LabVIEW拥有很多的专业设计功能(如:应用程序生成器、数据库连接工具、Microsoft Office报告生成工具、Internet工具等),而这些都以附加工具包的形式向用户发布,这些附加工具包的价格都比较昂贵,从而提高了使用者的设计成本。为了在不提高设计成本的前提下实现对ACCESS数据库的访问,我们充分利用LabVIEW提供的ActiveX控件设计了数据库访问程序。
ActiveX技术定义及在LabVIEW中的应用
ActiveX是指为达到某种处理需要,允许用户对单独程序重复使用代码并将其链接整合的一系列微软技术。它是基于COM(组件对象模型)技术,是对先前称为OLE(对象链接和嵌入)技术的扩展。
LabVIEW自4.1版本就引入了支持ActiveX 自动控制的功能模块,在5.1版本之后支持客户和服务器双方,即虽然程序是在双方各自独立存在,但它们的信息是共享的。这种信息共享是通过客户端使用由服务器端发布的ActiveX控件来实现的。LabVIEW在其应用编程接口中提供了为客户端和服务器之间链接的功能模块,图1展示的是LabVIEW中使用ActiveX控件的程序流程。
从图中可以看到程序设计主要包括了三个步骤:1.打开自动调用参数:指定所要调用数据库的类型(即调用方法),为数据库调用作好准备;2.设置(获得)参数属性和调用方法:通过使用属性和方法来访问数据库,“方法”通常包括打开数据库、数据记录查询等,“属性”包括数据库的名称、记录数据的类型等。3.关闭自动调用参数:结束数据库调用。其中关键的是第二步,只有充分的利用“属性”和“方法”的设置才能成功地实现对数据库的访问。
为了便于说明,本文给出实例如下:
该例子是利用LabVIEW的ActiveX来访问一个用ACCESS搭建的“轴承故障参数.mdb”数据库。数据库中含有一个表:轴承故障参数。该表中包括有“轴承型号”、“内圈特征频率”、“外圈特征频率”、“滚动体特征频率”4个字段。程序完成后的效果是通过在前面板选择“轴承型号”来获得其它相应的参数,从而为设备故障诊断提供依据。
图2 LabVIEW数据库访问程序框图
LabVIEW设计的程序框图如图2所示。
程序设计按照前述的三个步骤:
(1)打开自动调用参数
在使用“Automation Open”时,首先应为其指定“Automation Refnum”(自动链接参量)。在控制模块中选择ActiveX/Automation Refnum,添加之后点击鼠标右键选择“Select ActiveX Class/Browse……”,此时会打开一个对话框,从中选择“Microsoft Access 9.0 Object Library Version 9.0”,在“Objects”中选择“Application”。最后在框图程序中完成连线,这样就实现了链接类型的指定。
(2)设置(获得)参数属性和调用方法
第二步首先要打开指定的数据库。在功能模块中选择“Communication/ActiveX/Invoke Node”添加一个方法控件。将“Automation Open”的“Automation Refnum”引脚和“Invoke Node”的“reference”引脚相连,而后从“Invoke Node”右键下拉菜单“Methods”中选择“OpenCurrentDatabase”。此时只需要指定的是数据库的地址。这里我们预先编辑了一个名为“轴承参数.mdb”的数据库,将该数据库的保存路径连接到“filepath”。
使用ACCESS建立的数据库具有多种查询方法,本文采用的是参数查询,即根据用户指定的查询准则来检索相应的记录。查询准则是由“OpenCurrentDatabase”的“BuildCriteria”方法来建立的,该方法有三个输入参数,分别是:field(字符串表达式,标识要定义准则的字段),fieldtype(固有常量,指示字段的数据类型),expression(字符串表达式,标识要进行语法分析的准则)。这三个参数的输入端如图2所示:field字段为“轴承型号”,fieldtype数据类型为0(文本类型),expression查询准则由“〔轴承型号〕=”和型号代码(由用户在前面板选择)组合而成。
在建立了查询准则之后,就可以从数据库中检索相应记录。使用“OpenCurrentDatabase”的“Dlookup”方法,该方法也有三个输入参数,分别是:expr(表达式,用于标识需要返回其值的字段),domain(字符串表达式,代表组成域的记录集,可以是表的名称或查询的名称),criteria (用于限制 DLookup 函数执行的数据范围,即查询准则)。按照图2所示连接。
在完成查询之后,要将相应的记录输出。使用“Variant To Data”模块可以将数据库中的参数转换为文本文件显示。
本程序的要求是输出根据“轴承型号”查询得到的“内圈特征频率”、“外圈特征频率”、“滚动体特征频率”三个数据,因而要分别连接。
(3)关闭自动调用参数
在完成所有的查询和显示后,要关闭自动调用参数。
步骤是首先关闭打开的数据库,然后关闭自动调用参数。
完成以上的程序设计后,用户就可以在前面板的“轴承型号”选择要查看的轴承,在“滚动体故障特征参数”、“外滚道故障特征参数”、“内滚道故障特征参数”中得到所要的故障诊断依据。
要特别指出的是:本文给出的例子是对数据库的记录进行查询,在实际应用中还会用到其它的数据库访问方法,如字段的添加和删除、记录项目的统计、数据的写入和修改等。这些数据库的操作都可以按照本文的查询例子,利用LabVIEW提供的相应功能模块来完成,由于篇幅所限,这里就不再详述。
4.结论
本文使用虚拟仪器设计语言LabVIEW中ActiveX功能模块来完成了对ACCESS数据库的访问工作,通过使用ActiveX来替代了数据库连接工具包(SQL 5.0),充分发挥了软件的潜在能力,降低了系统的设计成本,在设计中小型虚拟仪器数据库中可得到很好的应用。
1. National Instrument,LabVIEW User Manual[DB/OL],2001
2. 郑敬云,ACCESS2000中文版速成[M],机械工业出版社,1999
3. 周世雄,ActiveX 轻松入门[M],机械工业出版社,1997.9