基于TCP协议的A320起落架远程维修辅助系统设计

2019-07-08 03:44单琦
计算机时代 2019年5期
关键词:航空维修

单琦

摘  要: 为了解决航空机务与异地专家关于维护信息的沟通问题,基于TCP协议,利用Unity引擎、SOLIDWORKS及3ds Max等工具,开发出可用于Android\Windows平台的A320起落架远程维修辅助系统,详细描述了系统各项功能、关键技术及开发流程。最后以一个典型案例介绍了系统如何对起落装置的维护起到辅助作用。

关键词: 远程维修; TCP协议; 跨平台通信; 航空维修

中图分类号:TP399          文献标志码:A     文章编号:1006-8228(2019)05-46-04

Abstract: In order to solve the problem of communication of maintenance information between maintenance personnel and other experts, an A320 landing gear remote maintenance assistant system for Android and/or Windows based on TCP protocol is developed with tools such as Unity engine, SOLIDWORKS and 3ds Max. The functions, key technologies and development process of the system are described in detail. Finally, a typical case is given to illustrate the system how to play an auxiliary role in the maintenance of landing gear.

Key words: remote maintenance; TCP protocol; cross-platform communication; aviation maintenance

0 引言

随着民用航空器的发展,航空器械的集成度、复杂度越来越高,所以拥有丰富一线维修经验的航空机务人员越来越成为稀缺的优质资源。我国民航业快速扩张,优秀机务人员的培训速度不可避免地落后于新增航线的扩张速度。在一些关键维修业务上,欠缺经验的新手机务人员需要技术专家的指导与支持,而现有的电子工卡系统和一般通讯方式无法提供直观明了的维修操作步骤,难以满足工况需要。因此,远程维修的概念在航空器维修领域的提出,为快速提升维修人员的技能熟练度与排故障能力,提供了新的思路。

远程维修是一种基于无线通信和移动终端的新型维修支援方式,具有高便攜性、高即时性、可扩展性等特点。近年来,许多研究机构将网路通信技术引入航空维修工程之中。汪诚等认为跨地域、多领域专家的合作求解问题,是网络故障诊断和维修中所面临的一个重要课题[1],且将诊断结果、维修方案等通过网络反馈给外场维修人员,能够帮助其理解诊断过程,积累经验[2]。宋维嘉列举了航空维修数据远程传输的限制与瓶颈[3];耿汝光提出了使用虚拟专用网构建航空维修服务的数据通道的设想[4]。

空客A320是一款在我国各大航空公司都有引进的机型,保有数量较大,因此决定以该机型的起落装置作为技术验证方案的对象。本文将网络通信技术应用于民航维修领域,搭建了一个远程维修辅助系统,目的是让身处一线的机务和异地的技术专家能进行高效的沟通,并获取正确、直观、易懂的维修步骤指示,以提高维修勤务与故障排除的效率。

1 系统方案

A320起落架远程维修辅助系统是一个跨平台系统,按照服务对象不同分为3个独立的部分:一线维修人员使用的Android端软件、异地工程师与技术支持人员使用的Windows客户端以及架设在云服务器上的通信处理伺服程序。三者的关系及主要职能概述如图1所示。

1.1 系统功能

运行在Android系统上的机务端软件一般安装在智能手机、平板电脑或其他合适的移动设备上,其拥有在线和离线两种工作状态,在线状态下有电子工卡浏览、维修手册查看、起落架零部件拆解演示和远程呼叫工程师支持四个主要功能,离线状态下无法获取当日工卡及与工程师实时通讯,但仍可使用其他功能。

工程师端软件安装在Windows计算机上,必须在登陆后保持在线状态才可以使用,有查询在线机务名单、分发电子工卡、浏览维修手册、接收机务端呼叫并提供技术支持等功能,比机务端功能更强,权限更高。

运行在云计算平台的通信伺服程序用于实现机务端和工程师端的通信,由于在远程维修过程中,系统使用者之间有大量较为机密的信息通过网络传输,如结构维修记录、零部件故障率、机务人员工作情况等,云服务器需要确保以上信息顺利传输同时避免出现非法访问、数据泄露的可能。

1.2 三维模型制作

本文使用SOLIDWORKS软件建立三维模型,完成零件形状的建模后导出为STEP格式文件,并导入3ds Max软件进行零件表面的材质编辑与贴图渲染等工作,最终以FBX格式文件导出作为远程维修辅助系统的预置模型文件。

1.3 软件开发

远程维修辅助系统的交互式软件界面主要采用Unity引擎进行开发。我们选用该引擎的主要理由是其具有优秀的跨平台特性,使得开发人员只需要完成一次功能代码的编写,就能几乎无修改地发布到Unity支持的各个平台上运行,满足了本系统的多平台开发需求。

Unity引擎支持多种语言编写逻辑脚本,本文选用c#语言作为开发语言,其优点在于Windows上的Visual Studio集成开发环境功能强大,对c#特性支持完备,且能与Unity进行交互调试,比引擎自带的Mono编辑器拥有更多功能。

主要开发流程见图2所示,在系统开发中的首要任务是实现功能模块的分别建立。本文借助于Unity中场景(Scene)的概念,将不同的功能模块放置在不同的场景中,彼此相互独立而又能通过场景管理器(Scene Manager)进行切换,以实现各项功能的相互调用。在所有场景建完毕立后,本文使用引擎内置的UI编辑器分别为Android和Windows上的两个终端程序制作了各个场景的交互界面。

完成了功能分类和UI设计的工作后,主要工作集中在三维模型的导入和功能逻辑代码的编写上。在三维模型制作阶段完成的FBX格式的模型可以便捷且无损失地导入Unity中。而借助于Unity的对象(GameObject)组件系统,原有需要数百上千行代码才能实现逻辑功能可以被拆散为许多独立的代码脚本,通过挂载组件的方式使脚本生效,最终实现设计中的逻辑功能。

2 关键技术介绍

2.1 底层通讯架构

由于本系统涉及的通讯必须保证可靠的连接,由于现有无线通信方式(Wi-Fi或蜂窝网络)所支持的TCP协议具有传输可靠、遗漏重发的特点[5],因此将其作为主要通讯协议是最佳的选择。软件的基本架构为Client/Server模式,即典型的客户端-服务器模式,由C#语言实现编码,方便集成到Unity引擎内提供通讯功能。由于需要网络通信的内容大多为指令或者文字字符串,所以通信的数据量较小,对即时性的要求不高,因此本文选用异步socket编程[6]实现本系统的底层通讯架构完全满足系统需求。

在具体编程方面,本系统引用了.NET框架中的System.Net.Sockets命名空间,运用TcpCient类和TcpListener类及NetworkStream网络数据流构建了整个底层网络通讯代码。底层通信模块中的客户端(Client)将指令和数据以字符串的形式通过网络传递给服务器(Server),服务器收到字符串后加以解析,并按照预先制定好的规则向另一个客户端发送命令参数,从而完成了两个客户端之间的一次通信。在本系统的通讯架构中,无论是机务端还是工程师端的软件,均视作通信模型中的客户端(Client)。二者不能直接通讯,必须借助云端的服务器(Server)进行消息的传遞转发。

2.2 交互通信的实现

无论是安装在Android设备上的机务端软件,还是安装在Windows计算机上的工程师系统,系统的两个终端设备要实现相互通讯,必须其中一方拥有相对固定的公网IP。这一要求在当今互联网大环境以IPv4协议为主导致IP地址稀缺的情况下难以被满足[7],因此需要额外引入一台或多台拥有公网IP的服务器来提供消息处理和转发的功能。本文租用了阿里云服务器来承载云端伺服程序,云计算服务器和本系统的其他终端的指令流和信息流如图3所示。

2.3 维修步骤可视化

本系统的最大特点就是能以三维模型运动的形式为一线机务提供准确、直观的维修维护步骤,包括零部件拆装的顺序、说明、注意事项及推荐使用的工具型号。为了实现这一维修可视化的功能,本文使用了Unity引擎所提供Transform类的几个方法和属性[8]。

⑴ Translate方法:使物体沿XYZ三轴进行平移运动,主要用于零部件模型的平移。

⑵ Rotate方法:使物体绕XYZ三轴进行旋转运动,主要用于零部件模型的旋转。

⑶ Scale属性:通过改变其数值实现对物体的缩放,主要用于零部件的展示与强调。

3 系统展示

3.1 电子工卡查看

机务使用账号和密码从平板电脑登录本系统,进入电子工卡浏览模块,下载并查看当日工卡。电子工卡查看界面如图4所示,当机务完成任务卡上的某项操作后,代表该操作的标签将会改变颜色,作为工作进度的一种参考提示。查看界面的左侧实时加载操作步骤中相关三维零件的拆装辅助动画,以帮助新手机务熟悉操作。

3.2 机务与工程师的通信

在对前起落架的目视检查中,一名新手机务发现了前起落架的异常状况:前起落架在拖拽的过程中发出了较大的摩擦噪声。由于缺少故障排除的经验,该机务选择使用本系统的通信功能,立即呼叫在线的维修工程师请求技术支持,通信功能界面如图5所示。他首先在通信准备界面的左侧的故障部件菜单中选择了“NOSE GEAR”,界面右上方随之出现了前起落架的三维模型。他可以通过缩放旋转与点击操作从三维模型中选中出现故障的部件,也可使用右上角切换按键,将三维零件模型切换成更为清晰明了的文字选项进行选择操作。随后该机务通过下方的文本框输入一些简单的故障描述,即可通过发送按钮将故障信息快速传递给他所呼叫的工程师。

工程师接受机务的呼叫后,其工作界面左上侧出现了相关的TSM与AMM手册超链接,单击这些链接就会加载相关的手册内容到右侧的文字显示区,供工程师查阅。界面的右下侧则会加载相关故障部件的三维模型,方便参考。相关工作界面如图6所示。

工程师制定完排故方案后,可通过系统提供的选项生成排故指令,并以追加工卡的形式发送到机务端,机务接收该排故工卡后,可通过3.1节中的方式,在本系统提供的步骤指示和相关三维零件模型拆装动画的辅助下,顺利完成排故过程。

4 结论

本文基于TCP协议设计了A320起落架的远程维修辅助系统,为一线机务与异地专家提供了高效沟通的解决方案,充分利用了Unity引擎强大的跨平台特性和友好交互性,弥补了现有电子工卡系统不能提供形象维修步骤的缺陷。由于本系统涉及较多的飞机零部件拆装过程与维护步骤,因此以拓展系统适用零部件或机型为目的的二次开发周期较长,工作量较大。

本系统是远程维修这一概念在民航维修领域的一种探索实践,基于互联网通信的远程辅助维修具有迅速提高机务操作熟练度、降低维修专家人力成本等优点,互联网技术与维修可视化的结合将是未来民航维修的一种发展趋势。

参考文献(References):

[1] 汪诚,李应红,张恒喜.航空发动机远程智能故障诊断与维修[J].装备指挥技术学院学报,2003.14(3):42-45

[2] 汪诚,李应红,张恒喜.基于CBR技术的航空远程故障诊断和维修体系[J].航空维修与工程,2004.2:53-55

[3] 宋维嘉.航空维修数据的远程传输[J].航空维修与工程,2008.3:69-71

[4] 耿汝光.网络环境下航空远程维修服务的发展和应用[J].航空维修与工程,2009.5:44-45

[5] 谢希仁.计算机网络[M].电子工业出版社,2017.

[6] 马骏.C#网络应用高级编程[M].人民邮电出版社,2006.

[7] 黄晓华.物联网环境下IPv6与IPv4共存与过渡分析[J].通讯世界,2018.10:63-64

[8] Alan Thorn.Unity脚本设计[M].清华大学出版社,2016.

猜你喜欢
航空维修
探究航空维修生产中的人为因素管理
航空维修中人为因素的研究
浅析航空维修中人为因素研究
航空维修中人为差错诱因分析与预防建议
浅析航空维修与航材的保障
利用DEMATEL—ANP法对航空维修中人为因素的分析
建构主义理论在《航空维修原理与技术》本科教学中的应用与实践
基于虚拟维修技术的航空维修实践教学改革
通用航空维修保障能力的评估体系研究
智能化航空维修工具管理系统的研究