基于B/S架构的航空发动机试验远程监控系统的设计与开发
2013-08-26李翔,刘轶
李 翔,刘 轶
(西北工业大学动力与能源学院,陕西 西安 710072)
0 引言
一种新型号发动机的总体性能设计、总体结构设计、部件研制和调试、发动机各系统设计都离不开相关试验。随着航空发动机技术性能水平的不断提升,试验技术应随之不断提高、发展。新机的性能指标在很大程度上取决于试验设备及试验、测试技术的水平,所以建立高技术试验系统是高性能航空发动机研制的关键技术之一[1]。
传统的航空发动机试验监控系统普遍采用C/S(客户端/服务器)架构,虽然其具有强大的数据操纵和事物处理能力,但随着应用规模的扩大、互联网时代对数据远程访问及共享的强烈需求,其缺陷也逐渐暴露。基于B/S(浏览器/服务器)架构的远程网络监控系统在继承了传统监控系统优点的基础上,对复杂多变的实现过程进行了“瘦身”,并实现了远程监控和远程数据管理等重要功能。
1 系统总体设计
1.1 需求分析
需求分析是系统开发过程中的关键环节[2]。在此环节中,开发者需要对用户需求加以确定。只有在确定了用户需求之后,开发者才能够开始分析、寻求新系统的解决方案。远程网络监控系统主要针对非现场的技术人员、行业专家而开发,其设计目标是实现实时数据的远端观察,以便于数据的事后分析。在航空发动机相关试验中,用户需要在异种网络之间,甚至要在地理位置相对分散的情况下进行数据访问和操作。用户特点决定了系统必须提供一个跨网络、跨平台的解决方案。
1.2 系统结构组成
远程网络实时监控系统主要由2部分组成:本地数据采集系统和实时数据监控站点。系统结构如图1所示。
图1 系统结构
本地数据采集系统在继承了传统数据采集方法的基础上,使用虚拟仪器技术对数据的采集过程进行了优化,可实现发动机试验现场的数据采集、数据分析处理和数据存储等相关功能。
实时数据监控站点由Web服务器和远程客户群组成,远程客户群在掌握浏览器的使用、操作的基础上,几乎不用安装其他软件,即可实现试验过程的监测,而后作出相应的分析与决策[3]。
1.3 三层架构程序设计
从逻辑上来说,一个典型的应用可以由3个部分组成:
a.表示逻辑层。直接面向用户的部分,主要完成应用的前端界面处理,即人机界面处理。
b.业务逻辑层。实现应用的业务规则处理,决定程序流程。
c.数据逻辑层。对数据进行管理的部分,主要完成应用中对数据的存取、更新和管理等工作,并保证数据访问的安全性、完整性和一致性。
三层架构如图2所示。
图2 三层架构
2 系统实现
2.1 本地数据采集系统的开发
设计的数据采集系统包含了“板卡采集”和“人工模拟”2个功能。
由于在实际应用中板卡采集程序可能会因为硬件的不同而有所区别,当系统在设计阶段,甚至投入实际生产后,“人工模拟”功能作为测试工具具有相当的必要性。
板卡数据采集、模拟数据生成的目的均是为Web服务器提供相关数据,Web服务器并不需要了解实时传输的数据细节,而是仅仅负责所接收到数据的显示、处理;数据生成器负责数据来源选择、数据采集和模拟数据生成等工作。为提高系统的执行效率,在系统开发中采用了多线程处理方式;在数据传输过程中使用了NI提供的Network Variable类,来完成数据在采集程序与Web应用程序之间的实时通讯。
线程对象的声明如下:
private Thread paramWorkerThread;
private Thread switchWorkerThread;
private Thread numeralWorkerThread;
paramWorkerThread,switchWorker-Thread,numeralWorkerThread分别用于模拟量数据、开关量数据和频率量数据的实时传输。
数据传输启用后,将会生成新的线程对象,并开始线程运行:
WriteParamData是线程入口函数,在此处负责模拟量数据传输,这部分代码为:
数据传输停止时,线程结束:
paramWorkerThread.Abort();
2.2 实时数据监控站点的开发
实时数据监控站点的开发是利用ASP.NET在Web服务器上建立Web应用程序,即实时数据监控站点。为说明所采集的数据在网络中的传输原理,故将对“远程实时监测页面”的开发过程进行详细的介绍。
要正确接收本地数据采集系统所提供的数据,首先应对数据源进行配置。NI Measurement Studio在ASP.NET中提供了Network Variable Data Source控件,可方便实现针对网络数据源的配置,此控件的任务框提供了Connection Cache Expiration连接过期时间以及Connection Timeout超时时间等属性的设置[4]。
在监控页面的后台代码中调用NetworkVariableDataSource被绑定成员的GetValue()方法,即可得到由试验现场传输来的实时数据。由于传输来的数据均为Object类型,所以需要对接收到的数据进行强制类型转换:将接收到的模拟量数据转化为double[]类型,开关量数据转换为bool[]类型,频率量数据则应转换为long[]类型。部分代码为:
接收到的数据将通过Web页面中的各类控件实时显示给用户,AutoRefresh服务器控件的使用可以在给定时间间隔内对页面上的控件进行更新。Interval属性指明每次更新的时间间隔,定时器时间到后将激发Refresh事件。使用Refresh可指定需要更新的单个控件或控件组。Enabled属性指定定时器是否有效或者Refresh事件是否激活。DefaultRefreshItems集合包含了当Refresh事件发生时需要进行相应更新的控件集。
2.3 系统安全性设计与实现
在创建了可被远程访问的监控页面后,还没有阻止未授权用户访问网站的方法。因此,在系统开发的过程中必须考虑采用特定的安全策略,达到阻止未授权用户访问系统站点的设计目标。
在实现了系统站点的注册、登陆之后,还需要考虑将用户区分为不同角色,并根据角色的不同赋予不同的访问权限。随ASP.NET提供的Role Manager(角色管理器)即可实现系统的权限管理功能。
3 系统测试与验证
系统测试是指在将已确认的软件、计算机硬件、外设和网络等相关元素结合起来构成信息系统之后,针对信息系统进行的各种组装测试和确认测试。系统测试的目的是通过与系统需求进行比对,发现系统与用户需求不符或者相矛盾的地方。对所开发的系统进行了初步测试,主要方案是在数据采集接口程序的“人工模拟”状态下,切换模拟量与开关量的输出类型,接收端的Web应用程序通过实时显示页面对类型的一致性进行校核,从而达到判断通讯有效性的测试目的。
4 结束语
以改进传统监控系统的地域局限性为研究目的,以非现场的技术人员与行业专家为潜在用户,使用了以网络技术为主的分布式计算模型,即B/S架构,将虚拟仪器技术和Web应用程序相结合,提出了适用于航空发动机试验的远程网络监控系统。通过对本地数据采集系统的优化和实时数据监控站点的实现,完成了整个远程网络监控系统的开发。最后,通过调试数据采集接口程序与 Web站点的通讯,对系统效用进行了相关验证并取得了满意的结果。与传统监控系统相比,系统具有易维护性、较好的开放性和较高的安全性等特点,有一定的实际应用价值。
[1]张宝诚.航空发动机试验和测试技术[M].北京:北京航空航天大学出版社,2005.
[2]郑人杰,马素霞,殷人昆.软件工程概论[M].北京:机械工业出版社,2010.
[3]Li Fu-cai,He Zheng-jia,Zi Yany-ang.On-line condition monitoring and diagnostic network system for rotating machine set[J].International Journal of Plant Engineering and Management,2000,5(4):17-22.
[4]Imar Spaanjaar.ASP.NET3.5入门经典[M].张 云,译.北京:清华大学出版社,2008.