>
首页 » 技术文章 » 基于Web的故障诊断技术的实现

基于Web的故障诊断技术的实现

作者:闵华松,李爱平,陈爱平  时间:2007-04-30 21:42  来源:

摘要:介绍基于Web的故障诊断系统的结构及其故障诊断方法,并利用ASP和MATLAB技术实现在线诊断的方法,利用LabVIEW的DataSocket技术实现网络诊断的方法,以及如何用VisualC++设计COM组件实现基于Web的故障诊断方法。最后对三种网络故障诊断方法进行了比较。

关键词:故障诊断;组件;MATLAB;LabVIEW

随着Internet技术与Web技术的迅速发展,建立开放式、可扩展的远程故障诊断系统成为现实,它是Internet技术、通信技术与机械设备故障诊断技术相结合而发展的产物。随着Internet的日益普及,机电设备监测诊断模式正经历着新的革命。经过单机封闭式监测诊断系统到基于工业局域网的分布式监测诊断系统(DMDS)之后,基于广域网的远程故障诊断系统的研究和应用受到广泛的关注。

基于Web的远程在线故障诊断系统的结构

远程故障诊断系统采用的技术比较多,国内外在这一领域的研究也日益深入,在研究方案选择上有多种的思路。本系统采用B/S结构搭建,诊断服务器端实现了MATLAB诊断技术、LABVIEW诊断技术及COM诊断组件技术的融合,进行了一些新的探索。远程故障诊断系统结构,如图1所示。


图1 监测诊断系统结构

诊断过程

基于Web的远程故障诊断系统进行故障诊断的过程如下:设备运行现场的数据采集系统,根据设备运行特点,利用传感器在线获取设备运行的振动、温度、电流、电压等状态信息。同时,计算机监测系统对采集回来的信号进行实时处理,显示各种信号的数值和图表,判断设备是否正常运行。一旦出现异常情况,立即发出警报信号。此时,用户只需打开Web浏览器,输入故障诊断中武汉科技大学学报(自然科学版)2005年第4期心的URL地址,就可以访问到故障诊断中心服务器。该站点向用户提供Web页面指导,用户交互输入待诊断的有关观测数据,选择相关的诊断方法,提交后发送到Web服务器。Web服务器接着执行某一ASP程序,对用户请求进行处理,调用故障诊断服务器上的故障诊断组件,对数据进行诊断分析,并将处理结果以网页形式由Web服务器返回给客户浏览器,用户即可在浏览器上看到诊断结果。系统结构如图1所示。

关键技术

基于Web的故障诊断,主要是利用动态网页技术编制交互性较强的网页,由远程客户浏览器启动,实现对设备的诊断。本文主要介绍其中的关键软件实现技术:数据库访问技术、故障诊断组件的编制技术及其在网页中的调用技术。

数据库访问技术
数据库服务器安装Microsoft公司的SQLServer2000,现场在线监测系统得到的数据通过网络实时送往数据库服务器中保存和管理。目前在Windows环境下有多种访问Web数据库的技术,这里采用ActiveX数据对象(ADO)。ActiveX数据对象(ADO,ActiveX Data Objects)是通用数据访问(UDA,Universal Data Access)的核心技术。当用户使用浏览器请求ASP主页时,Web服务器响应,调用ASP引擎来执行ASP文件,解释其中的脚本语言(JavaScript或VBScript),用组件ADO(ActiveX Data Objects)完成数据库访问操作,最后ASP生成包含有数据查询结果的HTML页并返回用户端显示。在ASP中访问SQL Server数据库关键代码如下:

<%
setconn=Server.CreateObject(“ADODB.Connection”)//建立连接对象
conn.Opencon.open“PROVIDER=
SQLOLEDB;DATASOURCE=SQL服务器名称;UID=sa;PWD=数据库密码;DATABASE=数据库名称”
sqlStr=“SQL语句’”//指定要执行的SQL命令
rs=conn.Execute(sqlStr)rs=Server.CreateObject(“ADODB.RecordSet”)//建立记录集对象
rs.MoveNext//指向下一条记录
rs.close()//关闭连接
conn.close()//关闭数据库
%>

故障诊断组件的编制及其在网页中的调用技术

MATLAB诊断技术
MATLAB的含义是矩阵实验室(Matrix Laboratory)。它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。在系统开发中,要把时域波形、功率谱分析、相关分析、滤波、倒谱、频率细化、曲线拟合、小波分析等信号处理方法编成相应的m文件存放在SQL Server数据库服务器上,等待调用。客户端用户选用以上任一种方法后提交给服务器端执行,服务器将分析结果再返回给客户浏览器。MATLAB提供了COM/DCOM接口,用户可以在ASP网页程序中执行MATLAB命令。下面是MATLAB编写的小波分析的m文件的主要代码(其结果见图2):


图2 用Matlab进行小波分析

functionwavelet(J,K,CH,FS,FILENAME,SCALE,OFFSET)
//CH采样通道号;FS采样频率
DATA=load(FILENAME);
[lc]=size(DATA);
N=l;
SIGNAL=DATA(:,CH)3SCALE+OFFSET;
T1=0;T2=(N-1)/FS;T=T2-T1;[c,ll]=wavedec(SIGNAL,J,’db10’);//尺度
UD(:,1)=wrcoef(’a’,c,ll,‘db10’,J);
For
j=2:1:J+1 UD(:,j)=wrcoef(‘d’,c,ll,‘db10’,j-1);
End
t=(0:(N-1))/FS;
P=UD(:,K);
P=P’;
P=mat2str(P3100,3);
P
采用ASP调用MATLAB应用程序关键代码如下:
<%
SetMatlabapp=CreateObject(“MATLAB.Application”)//创建对象
StringReturn=Matlabapp.Execute(“MATLAB语句”)//执行MATLAB算法
SetMatlabapp=Nothing//关闭对象
%>

LabVIEW诊断技术
Labview是一种用图表代码来代替编程语言创建应用程序的开发工具。充分利用了PC价格便宜(相对于其他测控仪器)、功能强大的特点。使用图形语言(G语言)、图标和连线代替文本的形式编写程序。其最大的优点是编程简单、界面友好,可以很方便地把实验数据以图表的形式呈现出来。

在LabVIEW下设计虚拟仪器,用不同的仪器来显示速度、位移、功率等值。在浏览器中,用户可以获取系统设置和当前的运行状态,而且系统工作状态可以实现共享。GWebServer可以将LabVIEW环境下设计的虚拟仪器前面板发布到Intranet或Internet上,远程用户可以通过浏览器使用现场运行的虚拟仪器。利用GWebServer并结合LABIEW提供的CGIVis和CGIAnimations编程工具,在浏览器中就可实现启动、停止、参数传递、密码保护等用户交换功能。

LabVIEW采用DataSocket技术解决网络编程问题。DataSocket是NI公司提供的一种基于TCP/IP协议的网络编程新技术。它支持本地文件I/O操作、FTP和HTTP文件传输、实时数据共享,并提供通用的API编程接口。它包括两部分,即DataSocketAPI和DataSocketServer,前者提供统一的编程接口,作为客户,可以在多种编程环境下与多种数据类型通信。NI分别提供了DataSocket的ActiveX控件、LABWindows/CVIC库、一系列的LabVIEW的Vis,所以可以在任何编程环境下使用。本课题使用ActiveX控件形式,通过DataSocketServer,借助DataSocketAPI程序发布,并以很高的速度广播实时数据到多个远程客户端。并且将DataSocketActiveX控件进一步封装,实现具有一定功能的ActiveX控件并集成到Web页面上,同时将现场数据发布到DataSocketServer上。这样,用户通过浏览器就可以访问该Web页面。用此方法实现的滤波如图3所示。

COM组件诊断技术
COM组件是遵循COM规范编写,以Win32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行二进制代码。ActiveX控件是应用得最广泛的COM组件。通过ActiveX技术,程序员能把可重用的软部件组装到应用程序中去,控件由三部分组成:控件外观是公有的,用户能看到它并能同它进行交互;控件的接口,包括控件的所有属性、方法和事件也是公有的,任何包含该控件实例的程序都会用到它;控件的私有部分是它的实现,即控件工作的代码。也就是说,控件的实现效果是可见的,但代码本身不可见。用户通过继承控件私有部分,修改其可见部分,就能匹配新的应用需求。本课题采用VC++自编一个ActiveX控件,实现采集信号波形图的绘制。在使用VC++开发ActiveX控件时,有两种比较常用的选择:Microsoft基础类库(MFC)和Active模板库(ATL)。在这里,采用ATL进行开发。


图3 用LabVIEW进行滤波

ATL提供了生成ActiveX控件的小型精致框架。这种框架可以方便地建立小型的、快速的、基于COM的组件。ATL的使用给软件开发人员在实现组件的时候带来了更大的灵活性,可以不依赖于任何辅助的DLL文件。ATL是开发ActiveX的充满活力的平台,它将在不断地发展过程中,逐渐成为开发ActiveX组件的主流工具。但是MFC的长处正是它的短处,也就是它缺乏对通用类和工具的支持。

在VC++6.0开发平台中通过“ATLCOMAppWizard”建立ATL工程,并插入NewATL0bject,完成对象的属性设置,点击Next,在Name表项的shortname中输人控件名称Drboxt,这时可以看到在其他各栏中wizard自动生成了各项的名称,这些名称可以修改,单击确定。这时打开ClassView,将会发现增加了一个类CDrboxt和一个接口IDrboxt,这是为新建的控件准备的。该控件的属性和方法的声明,就加在接口的声明中,而把其实现加在新增加的类中。接口的声明在一个idl(InterfaceDefineLanguage)文件中。由于要在网络中使用此控件,所以必须对其安全性进行设置。在此采用IObjectSafety将控件标记为初始化/脚本安全。CDrboxt类的定义如图4所示。

classATL_NO_VTABLECDrboxt:
publicCComObjectRootEx
publicIObjectSafety,
……
{public:
STDMETHOD(get_Yunit)(/*[out,retval]*/short*pVal);
STDMETHOD(start)();
UINTm_timer;
……}
ASP调用组件关键代码如下:
<%
Set Obj=Server. CreateObject("Huabo.Drboxt")//创建对象
obj.start()//调用方法实现画波形图
set? Obj=nothing//释放对象


图4 COM组件实现绘波

三种诊断技术的比较

以上三种实现基于Web的故障诊断软件技术各有如下特点:

(1)MATLAB语言易学易用,不要求用户有高深的数学和程序语言知识,不需要用户深刻了解算法及编程技巧。MATLAB既是一种编程环境,又是一种程序设计语言。这种语言与C,FORTRAN等语言一样,有其内定的规则,但MATLAB的规则更接近数学表示,使用更为简便,可使用户大 大节约设计时间,提高设计质量。应用MATLAB技术不需开发专门的软件,它本身就带有大量的信号处理工具,直接调用就行,大大降低了对使用者的数学基础和计算机语言知识的要求,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,其成本较低。

(2)虚拟仪器技术的好处有:不需开发专门的客户端软件,开放性好,用户随时可以加入;服务器端不需编写专门的网关处理程序,可以直接用该工具包的VI实现;原有的LABVIEW应用可以提升到网络环境,通过FTP,SMTP自动传输数据和信息,便于远程进一步分析。虚拟仪器不但功能多样、测量准确,而且界面友好、操作简易,维护费用低廉。与其他设备集成方便灵活,还有可以扩展的功能。

(3)COM组件技术需要自己编写程序,开发及调试困难,技术难度较高,对开发人员有一定的要求,开发成本也较另外两种方法高。但是升级、修改组件不需修改页面,因此扩展性好,而且开发出来后,组件调用方便,节省代码,运行效率高,便于使用和管理。另外,编译之后的组件以二进制的形式发布,可跨Windows平台使用,而且源程序代码不会外泄,有效地保证了组件开发者的版权。

结语

本课题实现了ASP和MATLAB技术在线诊断的方法,LabVIEW的DataSocket技术实现网络诊断的方法,以及如何用VisualC++设计COM组件实现基于Web的故障诊断方法,并将三者融合与一体,在向用户提供多种诊断方法方面进行了探索。

相关推荐

LabVIEW天下会广召天下英雄

NI  LabVIEW  2012-04-16

NI携手FIRST共同推出第二届FTC科技挑战赛

NI  FTC  LabVIEW  2012-03-14

NI与清华大学精密仪器与机械学系共建教学创新基地

NI  LabVIEW  2011-11-23

MATLAB助力北京师范大学数学教学

MathWorks  MATLAB  2011-10-27

开发一款用于锥形球磨机的预防性维护监视系统

LabVIEW  传感器  2011-09-21

使用LabVIEW与PXI进行蓝光播放机视频和音频测试

蓝光播放机  LabVIEW  2011-09-13
在线研讨会
焦点