首页  ·  知识 ·  
基于SOA的监测、诊断与预测系统架构
赵发刚 陈进 李毅      编辑:dezai   图片来源:网络
软件设计经历3个阶段:基于过程(process-oriented),基于对象(object-oriented)和基于组件(component-oriented)。在过去20年里,这些远程过程调用(Remote Proced
1 概述

软件设计经历3个阶段:基于过程(process-oriented),基于对象(object-oriented)和基于组件(component-oriented)。在过去20年里,这些远程过程调用(Remote Procedure Call),如分布式组件对象模型(Distributed Component Object Model)和通用对象请求代理体系结构(Common Object Request BrokerArchitecture)等,在许多领域取得较大成功。在设备故障诊断领域,研究者主要利用这些技术来开发状态监测和故障诊断系统实现对重要企业重要设备维修和维护,如风机、轴、蒸汽轮机、水力发电机等。然而,如果企业级系统功能繁多,企业内部程序的开发平台、编程语言等很可能各不相同,要在企业内部实现诸多功能的整合是非常困难的事情。同时还需要考虑到系统的安全性、扩展性等方面的要求。基于以往设计方法的诊断系统存在着重用性差、异构平台调用困难、互操作性差、紧耦合等诸多缺陷。要实现易于扩展的、功能可柔性组合、跨异构平台的企业级设备状态监测与故障诊断系统,基于以往的设计方法已无法满足这样的要求。

随着IT技术的发展,为解决异构性、互操作性以及软件系统不断改变的要求所带来的系列问题,面向服务架构(Service-Oriented Architecture, SOA)的研究已逐年深入并获得应用,将SOA及其相关技术引入机械设备的状态监测与故障诊断系统应用开发领域都具有重要意义。本文介绍基于SOA的状态监测与预测系统的架构设计,并应用WCF技术对预测模型加以实现并验证。

2 基于SOA的设备诊断和预测系统体系架构

目前,各个企业使用自身的故障诊断系统实现对机器设备的监测和故障诊断,有一定的局限性。企业的知识库、规则库有限,可能无法对各种设备故障进行及时诊断。如果各个企业和科研院所都将相关的知识库、方法库等商业逻辑通过SOA技术发布为服务,那么企业就可以充分利用网络资源来实现机械设备的远程故障诊断,这能够大大提高效率,减少成本,并实现诊断资源共享的目的。将SOA技术引入机械设备远程故障诊断领域,将在很大程度上提高故障诊断的准确性。

在分布式故障诊断系统中,应用SOA技术能够更好地解决原有系统中的跨平台和跨防火墙等问题,并且很好地改善系统的可扩展性和伸缩性。SOA的引入使得整个联合故障诊断系统体现松耦合、开放等特点,这就能随时允许故障诊断服务的加入或退出,解决了以往无法在异构平台间共享数据和服务的问题,提高网络诊断资源的利用率。

面向服务框架(Service-Oriented Framework Architecture,SOFA)是整个基于SOA状态监测和预测系统体系结构中的核心,它主要实现业务服务(Business Service)和业务处理逻辑(Business Process Logic),为智能客户端(Smart Client)提供服务。SOFA 分为基础业务服务层、业务服务总线以及业务处理层。

基础业务服务层包括很多细粒度的服务,如特征提取、诊断算法、数据分析算法、数据实时存储、权限设定、报表、设备各种管理等。这些服务被包装成单个服务或者根据复杂性对几个细粒度的服务进行合成形成一个粗粒度服务。

最终,这些服务被继承到业务服务总线上成为面向业务的服务。图1为基于SOA的设备诊断与预测系统架构。

图1 基于SOA的系统架构

为便于对业务进行访问,将基础业务层主要分为4种业务服务总线:权限验证,数据访问,诊断分析和文档报表服务。每个业务服务总线都是由若干个细粒度的服务集成的,因此,每个业务服务总线都包含了多个面向消费者的、独立于底层组件的粗粒度服务。这样做的好处在于有利于实现独立于组件的业务,当需求变化时只需要调整服务而不用修改底层细粒度服务。利用业务服务总线更具有实际意义的是:能够支持跨平台的不同服务组件之间的基本交互,还将异构平台间的基础结构功能整合为一体。

3 基于SOA的设备诊断和预测系统的实现

3.1远程数据采集

数据采集是系统的主要信息来源,一般情况下,数据采集位于工业现场,距离企业监测中心比较远。因此,为便于对数据采集系统进行操作,用WCF技术实现对采集系统的远程监控,企业工程师可以在监测中心非常容易地实现远程启动、停止采集和实时获取等功能。由于是基于面向服务的,因此客户端可通过配置服务的绑定(Binding),实现安全可靠的消息传输,以达到对数据采集子系统进行管理的目的。这也是SOA技术在远程故障诊断系统中的应用之一。

基于WCF的数据采集,它是作为服务的提供者存在的,它将与数据采集相关的服务发布出来由监控端进行调用,从而达到监视实时数据、控制数据采集系统的目的。如果每台数据采集系统都将其服务发布到企业网内,可以通过一台监控机完成对多台数据采集机器监控,有利于管理,从企业级设备监测和故障诊断系统的架构上看,好处在于将数据采集程序(数据层)的各个逻辑功能以服务的形式发布,完全符合SOA的概念,有利于整个系统的扩展和伸缩性。

 

3.2 故障诊断和趋势预测

近年来,设备维护逐渐从事后维护到预防性维护,一直转变到现在的状态维护。状态维护主要侧重于设备的智能诊断和趋势预测,能够在事发之前给维护人员提供可靠的维护依据,制定维修计划,这样可以避免意外停机,减少停机次数,提高生产效率,减小维修成本。

基于上述特点,设备监测需要不间断进行并且能够给出设备的状态变化情况及运行趋势。关于故障诊断方面的系统应用很多,这里不再赘述,本系统采用多种模型对设备的运行趋势进行预测,并结合监测指标的报警阈值,对设备的剩余寿命进行估算,本系统中采用的预测算法主要包括支持向量机(Support VectorMachine, SVM)[6]和神经网络(neural network)[7]等。下面给出用WCF技术实现SVM预测模型的具体方法。

3.2.1 SVM服务的发布

系统的开发是基于Visual Studio.Net 2005,首先定义WCF协议,协议里包括输入输出参数。在SVM服务中,需要设置2个函数:训练SVM和基于SVM的状态预测,因此,[OperationContract]可以创建为

[0perationContract]

void VsnSVM—Train(...);

void VsnSVM—Predict(...);

然后建立服务,通过添加引用将SVM算法的DLL文件加载到服务中,服务中需定义与协议中制定的形式相同的服务函数,在函数中调用DLL实现算法。由于在WCF技术中,服务是以类的形式建立的,因此需要建立宿主来承载服务,用以控制其启动与关闭。WCF支持的宿主类型有很多,这里用IIS承载的方式把服务进行发布。

在Host端,需要对端点进行配置来确保服务的唯一性以方便客户端调用,因此,需要定义地址(Address)、合同(Contract)和绑定(Binding)。主要配置如下:

点击图片查看大图

服务的相关信息注册在统一描述、发现和集成协议(Universal Description,Discovery,and Integration,UDDI)注册服务器上。客户端或者用户可以在服务器上找到这些服务进行调用。一般情况下,服务器提供服务描述和服务的相关参数,用户可以通过Web服务器描述语言(Web ServiceDescription Language,WSDL)和XML Schema定义(XSD)获得服务描述。

3.2.2 SVM服务的消费

创建一个WCF服务并不复杂,当客户端查找SVM服务时,可以请求此服务的配置文件(包含端点、服务合同),并将配置文件加载到本地应用程序中然后对服务进行消费。需要注意的是,客户端调用时必须采用如下配置才能正确调用:

点击图片查看大图

模型训练完毕后,相应的变量存入数据库。当需要对设备的状态进行预测时,调用数据库中的相应参数,再建立预测通道对数据进行预测。预测服务的调用与训练服务调用类似。图3为基于WCF的故障诊断界面。

4 结束语

本文将SOA引入到设备的状态监测、故障诊断和趋势预测领域中,并提出基于SOA的状态监测和预测系统的架构模型,实现不同软件平台的资源共享、降低系统间的耦合性、增加系统的可扩展性和伸缩性,因此,减少了开发时间。本文在企业网内实现了基于SOA的状态监测、故障诊断和趋势预测系统,如服务的发布和消费,并将该系统应用到企业现场中。但实现真正意义上的基于SOA的远程分布式故障诊断系统,还需要做很多工作,尤其是安全性问题(跨企业网的安全问题)、部署、异构平台的解耦、记账和收费问题等。

本文作者:赵发刚 陈进 李毅 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读