基于LabSQL 的故障诊断系统研究

2013-12-14 09:13吴刚施建礼焦吉祥
机床与液压 2013年17期
关键词:推理机故障诊断数据库

吴刚,施建礼,焦吉祥

(1. 海军潜艇学院,山东青岛266042;2. 中国人民解放军92196 部队,山东青岛266042)

LabSQL 是一个源代码开放的、多数据库、跨平台的LabVIEW 数据库访问工具包,支持Windows 操作系统中任何基于ODBC 的数据库,包括Access、SQL Server、Oracle、Pervasive 等,其优点是易于理解、操作简单,开发人员进行简单的编程,就可以在LabVIEW 中实现对数据库的访问[1-2]。

目前,由于虚拟仪器技术的迅猛发展,基于LabVIEW 平台构建数据采集与分析系统已经成为设备状态监测的重要途径[3-4],且根据采集样本进行智能的、实时的故障诊断已经越来越受到重视,因此如何在统一的LabVIEW 平台下建立基于LabSQL 技术的故障诊断系统,是实现设备状态监测与故障诊断相融合的关键环节。作者根据此思想对采用LabSQL 技术进行故障诊断系统构建进行了研究。

1 LabSQL 工具

LabSQL 是利用Microsoft ADO 和SQL 语言来完成数据库访问的LabVIEW 数据库访问工具包,它将复杂的底层ADO 及SQL 操作封装成一系列的LabSQL VIs,用户只需要了解各个VIs 的接口及其所实现的功能就可以实现所有的数据库操作,简单易用。LabSQL VIs 按照功能可以分为4 类,即[5]:

(1)Command VIs。LabSQL 包含10 个Command VIs,用于完成一些列的基本ADO 操作;

(2)Connection VIs。LabSQL 包含10 个Connection VIs,用于管理LabVIEW 与数据库之间的连接;

(3)Recordset VIs。LabSQL 包含22 个Recordset VIs,用于对数据库中的记录进行各种操作;

(4)Top Level VIs。用于对前3 类LabSQL VIs 的某些功能进行封装,属于顶层LabSQL 应用。

2 故障诊断系统

2.1 基本结构

故障诊断系统包括数据库及其管理模块、知识库及知识获取模块、推理机模块、解释机构模块和人机接口模块五大部分,基本结构如图1 所示。

图1 故障诊断系统基本结构

其基本原理是从知识库获取故障推理的相应知识,从数据库获取故障推理的相应推理规则,综合以后通过推理机进行推理,然后通过解释机构向用户显示便于识别的信息。

从故障诊断系统的基本结构不难看出,故障诊断的过程实际上是一个对知识库、数据库等进行查询控制的过程,由此可见,推理机模块的设计是实现故障诊断的关键环节。

2.2 推理机模块流程设计

推理机模块主要作用是在故障诊断系统软件查询指令的作用下,根据相应的查询参数在数据库中查询相关记录,并通过系统软件的显示功能予以显示,其基本流程如图2 所示。

图2 推理机模块流程图

图2中的查询程序实际就是对数据库进行访问和查询的程序语言,在LabVIEW 平台下,该程序语言可以用LabSQL 工具进行开发。

2.3 数据库数据结构

图2 所示的流程图中包括了故障诊断系统数据库的3 个表,即故障表(FaultTable)、规则表(RuleTable)和原因表(ReasonTable)。这3 个表记录的数据主要结构如表1 所示。

表1 数据库记录主要结构

其基本思路是根据故障内容查询故障表,确定故障编号;再根据故障编号查询故障规则表,确定相应的原因编号和规则内容;最后根据原因编号查询故障原因表,确定相应的故障原因,并根据最终原因标识的有无判断显示最终故障原因还是继续进行故障原因的推理查询。

3 系统程序实现

由上所述,可以看到,推理机模块的核心便是对数据库中的故障表、规则表和原因表的查询控制。采用LabSQL 工具进行开发时,主要用到表2 所示的函数节点。

表2 LabSQL 函数节点及功能

主要步骤包括:

(1)建立与数据库的连接。首先利用ADO Connection Create. vi 创建Connection 对象,然后利用ADO Connection Open. vi 建立与数据库的连接。在建立的连接中,需要指定连接数据库名称,如“FaultDiag”。

(2)建立与记录集的连接。首先利用

ADO Recordset Create. vi 创建Recordset 对象,然后利用ADO Recordset Open. vi 打开Recordset 对象,同时利用SQL 对故障表进行查询,查询命令为“Select * From FaultTable”。

(3)查找故障记录并获取故障编号。首先利用ADO Recordset Find. vi 根据故障现象查询故障表,获取故障记录,然后利用ADO Recordset Get Item. vi 获取故障编号。

(4)查找推理规则记录并获取故障原因编号。首先利用ADO Recordset Find. vi 根据故障编号查询规则表,获取规则记录,然后利用ADO Recordset Get Item. vi 获取故障原因编号。

(5)查找故障原因记录并获取最终原因标识。首先利用ADO Recordset Find. vi 根据故障原因编号查询原因表,获取原因记录,然后利用ADO Recordset Get Item. vi 获取最终原因标识,如果是最终原因,则进行显示;否则返回第(3)步,继续进行故障推理。

(6)关闭对记录集和数据库的连接。分别利用ADO Recordset Close. vi 和ADO Connection Close. vi 关闭对记录集和数据库的连接。

4 结论

对在统一的LabVIEW 平台下如何使用LabSQL 工具进行故障诊断系统的开发进行了研究,通过LabSQL 的函数节点可以可靠地对数据库进行访问,解决故障诊断系统中故障推理的过程,能够很好地与LabVIEW 平台下采集到的数据有效融合,实现基于设备实时状态的故障诊断。

【1】彭汉国,艾瑞东,王明方,等.基于LabVIEW 的数据库访问技术[J].舰船电子工程,2009(8):151 -154.

【2】尹仁平,刘刚,汪立新,等. LabVIEW 中的数据库访问[J].计算机测量,2006(3):51 -52.

【3】张捍东,纪文志.数据采集系统中的LabVIEW 数据库访问技术[J].工业仪表与自动化装置,2009(4):63 -66.

【4】姜志保,郑波. 基于LabVIEW 的引信密封性测试中的Access 数据库访问[J].电气自动化,2008(5):48 -49.

【5】杨乐平,李海涛,赵勇,等. LabVIEW 高级程序设计[M].北京:清华大学出版社,2007.

猜你喜欢
推理机故障诊断数据库
面向对象的几何定理推导系统的设计与实现
基于Naive Bayesian算法改进的智能诊病系统研究
数据库
数据库
数据库
数据库
因果图定性分析法及其在故障诊断中的应用
继电保护整定计算模块的设计
基于LCD和排列熵的滚动轴承故障诊断
基于WPD-HHT的滚动轴承故障诊断