技术频道

虚拟仪器技术在柴油机故障诊断系统中的应用

摘 要:介绍虚拟仪器的基本概念,以及利用此技术组建柴油机故障诊断系统的方法。在可视化编程环境中,实现多功能仪器软面板,并能对数据进行处理、显示和打印等操作。

关键词:虚拟仪器 柴油机 故障诊断

1 引言

  随着科学技术的发展,现在计算机已成为故障诊断设备中不可或缺的支撑环境,我们可以利用其丰富的软硬件资源提高数据采集的精度和数据的处理分析能力。传统仪器中的数据处理、结果显示等很多功能都可以由计算机软件来实现,只要辅以相应的传感器和数据采集设备,即可组成一套一般仪器所没有的特殊功能的故障诊断系统。这就运用了方兴未艾的虚拟仪器技术。

  虚拟仪器(Virtual instrument)是计算机技术同仪器技术深层次结合产生的全新概念的仪器,是对传统仪器概念的重大突破,是仪器领域内的一次革命。虚拟仪器是继第一代仪器——模拟式仪表、第二代仪器——分立元件式仪表、第三代仪表——数字式仪表、第四代仪器——智能化仪器之后的新一代仪器。在NI公司首先提出这个概念之后,这项技术得到了迅速的发展和广泛的应用,它给予用户极大的自由度,可以根据自己的实际需要通过虚拟仪器的软面板方便的构建实际系统。

  本文中针对柴油机故障诊断系统的特点和需求,利用虚拟仪器的思想,在可视化编程环境中实现多功能仪器的软面板,以及对数据分析处理和进行故障诊断的功能。

2 系统简介

  柴油机作为铁路、矿山、冶金等行业普遍使用的动力设备,其工作状况的好坏,直接影响着使用部门的生产能否正常运行。因此,对柴油机进行故障诊断和状态检测,确保其处于最佳工况,在提高使用安全性、降低污染和节约维修费用方面具有重要的意义。

  为了对正在使用中的柴油机设备进行不解体的故障诊断和状态监测,在这套系统中我们将所有设备均放置于一个箱体内,可以对柴油机的转速、高压油管压力波、功率、供油提前角、上止点、缸表面温度以及燃油消耗等进行测量。系统中上位机采用PALMAX便携计算机,用于人机界面、数据分析和处理、波形显示、磁盘操作和故障诊断。由于传感器输出端信号为非标准且包含干扰信号,必须经过调理电路板进行滤波、放大,转换成0~5V,4~20mA的标准信号。下位机使用RZAD-2型笔记本专用并口数据采集器,它采用仿总线操作方式,工作时只需一根接于笔记本的并口电缆,使用简便且易于扩展。采样频率通过对8253定时器编程实现,A/D转换与数据读入并行工作,不占用CPU时间,板上并具有32K数据缓冲区。其结构如图1所示:


图1 系统结构框图

3 虚拟仪器软件设计

  3.1 软件的整体框架

  本系统的软件主要通过Microsoft公司的Visual Basic(VB)开发而成,其整体框图如图2所示。VB是在Windows环境下的可视化开发工具,它简单易行,具有良好的图形用户接口、支持面向对象的程序设计、结构化的事件驱动编程模式和对数据库的方便操作功能。另外,VB可以直接使用第三方开发的控件和方便的调用动态链接库(DLL)。利用VB的这些灵活性和通用性的特点使得开发过程变得简单且可以设计出良好的人机界面。

  软件系统中主要由四个模块组成,其中柴油机参数管理、检测记录管理和专家知识库管理主要是对数据库的操作,分别对相关的数据进行管理,在本文中就不作过多的阐述。柴油机检测模块是本系统的核心部分,下面着重对其数据采集部分和各部分参数检测的软面板的实现加以讨论。


图2 软件结构框图

  3.2 数据采集系统

  在VB中不能直接对数据采集卡进行操作,所以需要调用其动态链接库中的API函数以实现数据采集功能。动态链接库的编写是通过VC++6.0完成的,基本结构如下:

  int __stdcall CMycjk::Rzads1 (int Inichel,int Chelsum,int SampFreq,int SampleLen,int *SampleData) //动态链接库入口

  {

  int cheladd=0x84,cheldat=0x40,retval;

  …

  //初始参数设定

  ini8253(SampFreq,Chelsum ); //初始化8253定时器

  …

  retval=datread();//数据采集

  …

  return retval;

  }

  void ini8253(int sampfreq,int chelsum) {…} //初始化8253的子程序

  void outputdata(char outadd,char outdat) {…} //向数据采集卡写数据子程序

  int datread() {…} //数据采集子程序

  VB中通过调用这个动态链接库中的API函数可以方便的对采样频率、采样通道等数据进行设置,使用中需要在标准模块中做如下声明:

  Public Declare Function Rzads1 Lib "c:\windows\system\myCJK.DLL" (ByVal nouse As Long, ByVal inichel As Long, ByVal chelsum As Long, ByVal fre As Long, ByVal samplen As Long, ByRef sampledata As Long) As Integer

  然后VB就可以象调用函数一样来进行数据采集工作:

  Private Sub run()

  …

  retPressure = Rzads1(0, 0, 2, 200, 19999, arrayBoth(0)) ‘数据采集

  …

  End Sub

  采集到的数据保存在arrayBoth的数组当中,然后即可对其进行软件滤波、显示、特征提取和故障诊断等工作。

  3.3 虚拟仪器软面板的设计与实现

  虚拟仪器的软面板,顾名思义,就是通过软件来完成原先仪器操作面板的功能,它是虚拟仪器的一个重要组成部分。用户使用的过程就是通过鼠标或键盘来操作软面板上的控件,此时相应的代码开始运行,完成指定的动作。这样就充分的利用了资源,对控件的不同组合就可以形成不同的仪器面板,体现了“软件即仪器”的思想。

  在设计的过程当中,我们采用了第三方的仪器仪表OCX控件,比如液晶显示和示波器控件等。它们表现为可嵌入的界面对象,具有一定的属性、事件和方法,编程时通过代码与控件进行交互。以示波器控件为例,首先对它的属性进行设置,使其在不同的要求下可以呈现不同的界面:

  picPre.DataInit = 3 ‘数据通道设置

  picPre.GraphType = 0 ‘显示方式设置

  然后只要将数据适时传送给控件,即可对采集到的波形进行显示:

  picPre.DataValue(maxShow + 2 - 360 / disVel * (avgZero - iBoth), 0) = -360 / disVel * (avgZero - iBoth)

  picPre.DataValue(maxShow + 2 - 360 / disVel * (avgZero - iBoth), 1) = avgPre(iBoth) / maxPre * 100

  在实际运行过程中,对于柴油机高压油管的油压波形采集如图3所示:


图3 油压波形采集界面

  同样的方法,可以组成对于其它信号采集界面,并且可以对波形进行存储和回放,满足了用户使用和维护需要。通过对数据的处理和分析,可以进一步完成对于柴油机的故障诊断工作。

4 结束语

  虚拟仪器技术作为今后仪器的一个发展方向,将仪器与计算机、DSP技术相结合,通过基本的硬件模块组成系统,只要设计不同的软件就可以实现不同仪器的功用。本系统采用了这种技术之后,使得其通用性和可扩展性都得到了提高,只要添加一些传感器,在采集通道够用的情况下,软件中增加相应的模块即可对柴油机的另外一些参数进行采集,大大方便了了用户的使用。

参考文献

  1 姜斯平,王军,贾继德. 虚拟仪器技术在内燃机台架测控系统中的应用. 农业机械学报,第31卷第2期,2000(3):75~78

  2 朴成日,崔汉国,高诚. 多功能虚拟仪器软面板的设计与实现. 海军工程大学学报,总第95期,2000(6):82~85

  3 朱宏辉,佟力. 一种实用的虚拟仪器软面板设计技术. 自动化与仪器仪表,总第91期,2000(5):32~34

  4 胡丹峰,方凯. 柴油机数据采集和故障诊断系统的研究. 计算机测量与控制,2002(5):298~300

文章版权归西部工控xbgk所有,未经许可不得转载。