胡浩军+郭玲
摘 要: 随着分布式系统、计算机技术、网络通讯技术以及故障诊断技术的发展,远程协同诊断技术得到越来越多研究者的关注。在综合以上技术的前提下,设计并实现了一种基于Android系统的远程协同诊断平台。该系统服务器端采用了Struts2、Hibernate和Spring框架。结合Android Studio、MySQL和Tomcat等开发环境,并借助网易云信相关技术,构建一个群体性、分布性和协作性的虚拟设备诊断环境,实现用户与专家之间的多种共享交互功能、故障会诊的发起与分配以及故障诊断所需信息的管理和调用。
关键词: 分布性; 远程协同诊断; Android; 故障诊断
中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2018)01-04-05
Design of electrical equipment Remote Cooperative Fault Diagnosis platform for Android
Hu Haojun, Guo Ling
(School of Automation, Nanjing University of Science and Technology, Nanjing, Jiangsu 210094, China)
Abstract: With the development of distributed system, computer technology, network communication technology and fault diagnosis technology, more and more researchers pay attention to Remote Cooperative Fault Diagnosis (RCFD) technology. Based on the above technologies, a remote collaborative diagnosis platform for Android is designed and implemented, which uses the Struts2, Hibernate and Spring framework, and combines with Android Studio, MySQL, Tomcat and other development environments, via Netease.im, a virtual device diagnosis environment of group, distributed and collaborative is built. The system achieves a variety of shared interaction functions between experts and users, the initiation and distribution of fault diagnosis, and the management and invocation of information required for troubleshooting.
Key words: distribution; remote cooperative diagnosis; android; fault diagnosis
0 引言
在整个电力系统,电气设备的地位举足轻重,电气设备的运行状态直接影响到电力系统能否正常运行[1]。由于大部分电力设备本身结构复杂,设备的故障类型也变得复杂多样,并且电力设备故障经常存在连锁反应,因此增加了现场维修人员的维修难度。传统的故障维修方式,由于地域和时间限制,导致大部分诊断资源分散、诊断效率低、 断成本高等弊端,已经难以胜任复杂设备的维修任務。随着互联网科技的迅猛发展,远程协同故障诊断[2](Remote Cooperative Fault Diagnosis RCFD)技术得到了越来越多研究者的研究,并在复杂设备故障诊断领域得到广泛应用,有效的提高了故障诊断效率,降低了维修费用。远程协同故障诊断技术是以计算机学、移动计算技术和分布式人工智能等学科为基础,为处在不同地域、相同甚至不同领域的诊断资源(诊断专家,技术人员,设备厂商等)提供一个开放的协同诊断环境[3]。
“互联网+”时代的到来,为传统行业的发展带来了新的机遇。通过利用信息技术、通信技术和互联网平台,传统行业与互联网技术融合,取长补短,相互促进,共同发展。正是在此基础上,本文将远程协同故障诊断技术与移动互联网技术结合,以移动终端为诊断平台,整合不同地域、领域的专家资源,实现设备故障会诊[4]。远程协同诊断平台包括服务器端和移动终端。用户使用移动端发送诊断任务请求,系统会分析该诊断任务,然后根据已有的诊断专家的相关信息,将任务发送给合适的诊断专家,相应的专家与用户之间采用多种共享交互手段对故障进行协同诊断。
1 关键技术
1.1 SSH框架
SSH框架是将Struts 2、Spring和Hibernate三个技术融合在一起的一种开源框架,是目前比较流行的一种Web应用程序开发框架[5]。
Struts 2是一个结合了Servlet和JSP技术,基于J2EE平台实现MVC思想的优秀开源框架[6]。Struts 2框架充分体现了MVC开发模式,较低的开发周期、高维护性吸引了大量开发人员的青睐。Struts 2框架整合了Servlet、JSP、自定义标签和信息资源等开发技术,因此在使用框进行开发时,开发人员只需通过简单、集中的配置即可实现MVC开发模式,极大的提高了开发效率。endprint
Spring是一个具有高凝聚力和吸引力的企业级轻量框架。Spring框架采用IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Program,面向切口编程)两种技术为基础,使得组件之间具有高度的解耦性。同时,高度的整合性使得Spring框架能够与其他框架结合,从而为企业级应用提供了一个一站式解决方案。Spring的可重用性,使得抽象出来的代码可以移植到其他程序中,减少了开发成本。
Hibernate是一个开放源码的持久化技术框架,它对JDBC进行了轻量级封装,使得开发人员可以使用面向对象的思想来操作关系型数据库。因此,在Java客户端程序以及Web应用中,Hibernate可以像JDBC那样对数据库进行操作。同时,作为一个优秀的持久层框架,Hibernate也可以轻松和Struts 2、Spring等框架结合来解决系统问题。
SSH架构图如图1所示。
Struts 2管理Web层。首先,用户在前台网页表单中填写的数据会传给ActionForm,然后通过配置文件找到对应的Action进行处理,处理完成后再返回到指向的网页,在Struts-config.xml文件汇中配置了Action的映射对象。
Spring管理业务层,即Service层类。Service层主要处理业务流程和控制事物,扩展了DAO类对数据库的一些操作,通过实现Service类接口,融合多个DAO类的功能来形成业务逻辑。
Hibernate管理持久层,业务层通过持久化类对数据库进行增删查改操作。Hibernate需要配置hbm.xml文件和PO(Persistent Object),是与数据库中的表一一对应的,然后定义DAO类,主要负责与数据的交互。
1.2 网易云信技术[7]
网易云信是网易公司为广大开发者提供的一款即时通讯云服务产品,以PaaS为服务模式,向开发者提供相关SDK开发包以及开源的API,让开发者能够快速地将云信产品接入到自己的程序中。网易云信提供IM即时通讯、实时音视频、专线电话、短信等多种功能。本系统采用了网易云信提供的IM即时通讯和实时音视频服务。
IM服务提供了一整套即时通讯基础能力,通过该平台提供的产品服务可以将即时通讯、实时网络通信快速的集成到开发者自身应用当中。网易云信提供了一系列产品、技术解决方案,为开发者适应不同的应用环境,主要产品有客户端IM组件、客户端IM基础库、全平台SDK以及服务端API等。通过网易云信IM SDK,可以实现常见功能有私信、即时聊天、消息通知、游戏对战通讯等。
网易云通信实时音视频服务为开发者提供了实时音视频功能的相关接口,能够实现点对点和多人的音视频功能。实时音视频服务具有高稳定、高品质、高实时等特点,其小于200ms的延时、抗800ms的网络抖动、采样率最高支持48KHz等特性极大的保证了音视频的通话质量。为满足开发者各种需求,实时音频服務适用于各类场景,例如社交聊天、视频教学、远程医疗等领域。
2 系统需求分析与设计
2.1 需求分析
远程协同诊断平台面向普通用户和专家用户。普通用户为设备现场维护人员,通过注册登录诊断平台,完善各类相关信息,主要包括:用户单位信息、用户单位设备信息、设备实时数据。当普通用户无法及时解决现场故障诊断时,可将本次诊断任务及相关数据分发给相应的诊断专家,邀请诊断专家解答,并对专家的解答给予评价。专家用户通过平台获得来自普通用户的诊断邀请以及设备故障的相关信息,根据自身情况来确定是否接受诊断请求。系统为用户和接受邀请的专家提供一个能实时交流的平台,专家和用户通过平台共享信息和数据,商讨对策,从而达到对设备故障进行协同诊断的目的。诊断结束后,系统记录本次诊断结果,同时更新诊断家列表。
2.2 方案设计
本系统采用Struts、Spring、Hibernate的融合框架,结合它们各自的优点,进行系统开发。数据库采用MySQL轻量级关系型数据库,能够快速、灵活的对数据进行操作。在集成开发环境方面,服务器开发采用Eclipse开发环境。Eclipse是流行的Java开发工具,配合第三方插件,可以更快捷的开发Web应用。移动端采用Android Studio开发环境,它是Google公司推出的新一代Android开发工具,开发速度相比其他开发工具更快。
2.2.1 服务器端设计[8]
服务器端包括:用户信息管理、专家信息管理、企业信息管理、设备参数信息管理、诊断信息管理、公告信息管理六个功能模块。各模块功能如下。
⑴ 用户信息管理。通过用户名查询相关普通用户基本信息,对用户信息进行增加、删除、查询和修改操作。用户信息管理主要管理用户在注册时所填写的基本信息,例如用户名、密码、单位名称、联系电话、邮箱、密保问题和密保答案等。
⑵ 专家信息管理。通过专家用户名或研究领域等查询相关专家注册时填写的信息,其操作和用户是一样的,这里不再复述。
⑶ 企业信息管理。该模块主要管理所有用户的单位信息,可进行增删查改操作。
⑷ 设备参数信息管理。包括用户上传的所有设备基础信息,包括设备型号、设备规格、额定容量、额定电压、额定电流、空载电流、短路电流等。可根据设备型号进行查找。正在运行的设备会根据所在用户单位进行分类,可查看正在运行设备的在线监控数据[9]。其中,设备的在线实时数据由现场设备智能化监测系统采集,存储到该系统自带的实时数据库中,然后通过一些列接口转存到本地关系型数据库中。用户通过选择相应编号的设备,即可查看该设备在线数据。以变压器的在线数据为例,可查询变压器最近15天的8种特征气体(H2,CO,CO2,CH4,C2H2,C2H4,C2H6,总烃)的溶度。endprint
⑸ 诊断信息管理。可根据普通用户名、专家用户名或设备型号查询诊断记录,诊断记录包含诊断信息,即:诊断专家,诊断时间,专家解答等信息。
⑹ 公告信息管理。管理员对平台所有用户推送的公告信息。可对公告信息进行增删查改操作。
2.2.2 客户端设计
客户端为基于Android系统的移动终端,分为普通用户端和诊断专家端。
普通用户端主要功能如下。
⑴ 企业信息查询。查询当前用户所在企业的相关信息。
⑵ 设备信息查询。查询当前用户所在企业所有设备的基本信息。
⑶ 设备在线数据查询。包括用户所在企业所有设备的在线监测数据。
⑷ 未接受诊断查询。用户向诊断专家发出诊断邀请,但专家还未接受的诊断任务。
⑸ 已接受诊断查询。远程诊断专家已接受的故障诊断请求,同时用户可与相关专家进行交互。
⑹ 已完成诊断查询。已经完成的诊断任务,用户可查看诊断记录,同时对诊断结果进行评价。
诊断专家端主要功能如下。
⑴ 诊断邀请查询。查询接受到的普通用户诊断邀请,并选择是否接受诊断请求。
⑵ 正在进行的诊断查询。查询已接受的所有诊断任务,通过选择相应的任务可查看故障设备相关数据,进入诊断状态。
⑶ 已完成诊断查询。查询已完成的诊断任务。
2.2.3 数据库设计
本系统主要的数据库表包括普通用户信息数据表、专家信息数据表、设备信息数据表、设备在线数据表、故障诊断信息表等。数据库E-R图如图2所示。
3 系统结构与工作原理
3.1 系统结构
基于Android系统的设备远程协同诊断平台主要由移动终端、Web服务器、MySQL数据库以及网易云信服务器等部分组成。系统结构如图3所示。
3.2 工作原理
设备远程协同诊断是通过建立了动态诊断联盟[10],采用互联网通信技术,将不同地域、领域的诊断资源组织起来,并为相应的诊断资源(诊断专家)提供一个虚拟的远程协同诊断环境,在该环境中进行设备故障的远程协同诊断,以资源的集成实现了故障诊断的优化。
设备远程协同诊断流程如下:
⑴ 普通用户在移动端设备上发处诊断邀请,同时上传设备相关信息(包括图片、在线数据等);
⑵ 故障诊断中心(服务器端)接收到用户的诊断邀请后,对该次诊断任务进行分析,根据故障特征选择合适的诊断专家,然后将诊断邀请转发送给这些诊断专家;
⑶ 诊断专家通过专家端移动设备查看接受到的诊邀请,并从服务器端下载相关信息,通过查看信息决定是否参与诊断,然后向诊断中心反馈诊断意向;
⑷ 在规定的时间内,诊断中心根据接受到的诊断专家反馈信息,为决定参与诊断的专家以及用户提供给一个独立的诊断空间,进行故障会诊;
⑸ 普通用户根据故障会诊过程提出的诊断方案对设备进行维护,并将本次诊断结果上传到诊断中心;
⑹ 诊断中心根据诊断结果更新专家列表。
系统主要流程如图4所示。
4 运行环境
面向安卓系统的电气设备远程協同诊断平台的运行环境包括服务器端环境和移动终运行环境。
服务器运行环境:Windows Server 2012 R2,CPU 1核,内存2GB;
移动终端运行环境:移动终端为两台Android系统手机和Genymotion模拟器,CPU都为8核,系统版本分别为Android 5.0.2,Android 4.4.4和Android 5.1。
5 结束语
系统的设备远程协同诊断平台为电气设备的故障诊断提供了可靠的远程诊断支持,通过对诊断资源进行合理的分配,实现诊断资源分配最优化、诊断精确化,从而使设备故障诊断及时、准确和可靠,最大限度地减少了因设备故障没能得到及时排除而导致的企业损失。SSH框架的应用使得系统具有良好的扩展性、维护性和解耦性。通过使用移动终端设备,用户和专家即可进行设备相关数据的共享以及设备故障的分析,从而达到了系统使用的便携性特点。经过实践,与以往的故障诊断系统相比,本诊断平台提出的新型会诊方式在故障诊断的可靠性和准确性上显著提高,已经能完成比较复杂的设备故障协同诊断。同时,本系统仍然存在一些缺陷,比如当用户和专家数量庞大时,在诊断任务如何更有效的发送给相关专家上还存在不足。
参考文献(References):
[1] 柏德胜.2012电力系统自动化专委会学术交流研讨会论文
集[C].北京:中国电机工程学会电力系统自动化专业委员会学术交流会,2012.
[2] 刘建辉,胡立红,刘琼.远程协同故障诊断综述及研究[J].继电
器,2006.34(20):76-80
[3] 高庆,李田,魏震生.层次分析在故障诊断中的应用[J].火力与
指挥控制,2006.31(2):59-62
[4] 李桂林.基于Web的铁路设备远程故障诊断系统的设计[J].
自动化与仪器仪表,2012.32(5):28-31
[5] starskyhu.ssh框架介绍[EB/OL].http://www.cnblogs.
-com/hoobey/p/6100937.html.
[6] 张连福.基于J2EE轻量级框架的人力资源管理系统的研究
与实现[J].计算机与现代化,2012.10:148-150
[7] 网易(杭州)网络有限公司.网易云信开发手册[EB/OL].http:
//dev.netease.im/.
[8] 施盼,郭玲.面向安卓平台的电气设备远程诊断数据支持系
统[J].计算机与现代化,2017.1:84-88
[9] 葛二灵,符意德,年瑞等.基于云服务的设备远程诊断实时交
互平台设计[J].计算机与数字工程,2012.40(10):156-158
[10] 袁少辉.基于CSCW的设备故障远程协同诊断系统研究与
开发[D].湖南大学,2004.endprint