王忠凯,史天运,张惟皎
(中国铁道科学研究院电子计算技术研究所,北京100081)
在动车组日常检修过程中,车内的检修工作人员需要便携式的信息交互终端,填报故障数据和一级检修作业记录单,并及时了解动车组检修进度,实现检修员、质检员和验收员的协调配合。
本文在动车组管理信息系统(Electric Multiple Units Management Information System,EMU-MIS)的总体框架下,设计、开发便携式移动终端,针对动车组检修过程的业务需求,主要实现故障与故障处理信息的填报、动车组一级检修记录单的填报和检修信息查询等功能。该系统与固定式工位终端功能互补,密切配合,结合便携式终端信息沟通实时和固定式终端全面的作业管理功能,保障动车组日常检修作业的各个环节能够顺畅衔接。
结合动车组检修过程操作繁忙、作业标准化等特点,移动终端系统的设计有以下原则:(1)操作流程力求简化;(2)检修人员易于使用;(3)系统应易于扩展,模块之间低耦合;(4)符合设计规范,实现与EMU-MIS的信息共享;(5)通过权限配置、口令设置等实现对系统严格的安全控制。
移动终端通过无线网络接入EMU-MIS,调用Web Services实现信息交互,提供了一个分布式的计算技术,它是一种基于标准和松散耦合的面向服务的架构技术,具有动态性、适应性和开放性等优势。系统集成方案如图1。
图1 系统集成方案图
为适应动车运用所不同的业务需求,软件各模块以插件方式集成到主框架,不同的角色登录系统后加载不同的模块,各模块可以在配置文件和数据库中配置。软件架构方案如图2。
图2 系统软件架构图
根据登录模块传递的用户信息,判断用户角色,检索系统配置文件和数据库中的权限信息,在系统中生成功能列表。各个业务模块被编译成单独的动态链接库,以易于系统扩展。数据同步模块中封装了一组同步逻辑,调用Web Services接口,实现移动终端的数据同步。
系统子模块按照3层架构模式设计,其中包括UI(User Interface)层,业务层和数据访问层。
UI层包括展示部分和UI控制逻辑部分,其中UI是客户端的用户界面,负责从用户方接收命令、请求和数据,传递给业务层处理,然后将结果呈现出来。UI控制逻辑负责处理UI和业务层之间的数据交互,UI之间状态流程的控制,同时负责简单的数据验证和格式化等功能。
业务层封装了实际业务逻辑,包含数据验证,事物处理,权限处理等业务相关操作,是整个应用系统的核心,分为业务数据和业务操作两部分。业务数据将数据库中的表映射到内存,本系统采用强数据类型的映射方式,基本的字典表随模块启动而被映射到内存,以减少对数据库的访问。
数据访问层是为数据源提供一个可供外界访问的统一接口,本系统直接封装ADO.Net的相关接口,其优势在于执行速度快,易于开发,适用于移动终端的应用环境。
依据铁道部制定的各车型动车组的检修规范,结合登录用户的当日检修任务,系统按照检修员行进线路,自动生成检修记录清单、质检记录单和验收记录单,并将数据实时同步到其他相关作业人员的移动终端上,支持各个工种的协同作业,检修记录信息最终被自动上传到EMU-MIS。
故障管理模块包括下载动车组历史故障、故障填报、故障处理信息填报功能。
该功能根据EMU-MIS的实时数据,查询当前配送的检修部件以及配件的库存数据,共享检修库内的物流信息,提供当前检修库通断电状态信息,监控动车组检修进度。
通过该功能更新移动终端的基础配置数据,主要包括:用户信息、角色信息、角色功能配置信息、车组信息、配件信息、车体架构信息、故障基础配置信息、检修记录配置信息。
系统采用基于角色的访问控制策略,用户登陆后,系统根据用户角色信息,生成系统功能列表。为方便用户登录,系统提供多种登录方式:工号方式、姓名方式、姓名拼音首字母方式,用户登录时系统通过模糊查询功能,简化登录过程。
考虑到EMU-MIS的整体架构、系统的开发周期以及用户操作等因素,本文选用Windows Mobile作为OS平台。
移动终端系统采用sqlCE作为数据库服务器,具备精简的数据库引擎和强大的查询优化器,支持合并复制与远程数据访问 (RDA),便于与远程数据库实现同步,方便部署。
本系统的开发环境包括:VS 2005、同步软件ActiveSync 4.5、Windows Mobile 6 Professional SDK Refresh.msi、Windows Mobile 6 Professional Images(CHS).msi[1]。
以检修记录数据的同步为例,说明系统的同步机制。同步流程如图3。
图3 故障数据同步流程图
同步模块靠定时器激活,先检索本地数据库中未上传的数据,调用Web Services的上传服务,服务器端接收到数据后,根据上传数据的用户信息,格式化数据,将数据保存到数据库服务器,最后同步到其它移动终端,通过监听线程接收服务器下发的数据,并激活相关业务模块。
sqlCE主要的优化方法包括[2]:(1)精简字典表;(2)自动清理数据表中的历史数据;(3)SQL语句减少使用DISTINCT, GROUP BY, ORDER BY等子句;(4)减少多表查询;(5)设计排序和索引,提高效率。
应用程序主要的优化方法包括:(1)减少使用异常捕获机制;(2)采用多线程模式;(3)减少Web Services的调用次数。
填报故障模块根据检修员选择的故障部件,系统自动关联出故障模式、故障分类、故障处理方法等相应信息项,从而减少检修员的信息录入量,适应动车组检修作业,发挥移动终端便捷的特点。
由于动车组的日常检修作业具有线路固定的特点,终端系统结合检修行进的线路,逐步缩小故障部件的收索范围,系统也可以根据故障部件的名称进行模糊匹配,方便故障部件的选择。故障填报模块的实现如图4。
目前,西安动车运用所共配属8组动车组,库内有2条检修股道,每日回所检修的动车组约有6-8辆,随着郑西高速铁路的日益繁忙,西安运用所的动车组检修任务量不断增大。
图4 故障填报的流程图
移动终端上线实施后,检修员在作业过程中,及时填报检修记录数据和故障处理信息,检修信息实时的同步到质检员、验收员以及其他相关检修员的移动终端中,方便各工种的协同作业和信息共享,满足了故障处理的实时性要求,为调度人员提供了准确的检修监控数据,促进了动车组的检修工作有序、顺畅进行。
试运行过程中,对系统的数据准确性、功能的完备性、安全性、维护性、可靠性等方面进行了测试,系统表现了良好的特性。该移动终端系统与固定式终端系统相互配合,实现了动车组检修过程中的故障、检修记录等基础数据的采集,建立了各个检修工种的信息实时交互平台,提高了动车组的检修效率。该移动终端方案是可行的,且取得了良好的效果。
通过该项目的设计、实现,基于Web Services技术的系统集成方案、插件式的模块设计和3层结构的模块架构方法具备良好的扩展性,结构合理,易于维护,缩短了开发周期,为系统在全路推广打下了基础。
[1] JEFFREY RICHTER. .NET框架程序设计[M] . 李建忠,译.北京:清华大学出版社,2005.
[2] Steve McConnell. 代码大全[M] . 金戈,汤凌,陈硕,张菲,译. 北京:电子工业出版社,2010.