飞行模拟训练设备数据自动化统计开发
2020-08-21黄欢徐坦
黄欢 徐坦
摘要:为解决现有飞行模拟训练设备数据管理人工成本高、效率低的问题,设计了基于python的数据自动化统计程序,利用win32com和openpyxl库对Access数据库和Excel文档的进行操作和处理,完成对飞行模拟训练设备运行保障数据的自动统计和文档的自动保存。通过多次测试,能快速完整的生成选定时间的特定格式数据文档,极大地提高工作效率。
关键词:飞行模拟训练设备;自动化统计;python;win32com库;openpyxl库
中图分类号:TP317.1 文献标识码:A
文章编号:1009-3044(2020)21-0203-03
开放科学(资源服务)标识码(OSID):
1 引言
迅猛发展的计算机技术正加速影响企事业工作办公方式。自动化办公是一种利用计算机技术替代传统办公模式的一种现代化办公模式[1]。使用大量的先进机器来代替传统中的纸记录和笔书写方式,极大提高工作效率。通过新型网络办公方式,加强成员的协同工作能力,改变了传统办公环境[2]。
2 概述
飞行模拟训练设备是在飞行员训练中常用的辅助训练设备,它能模拟特定飞机(如空客A320、波音737NG等)在飞行过程中所产生的视觉、听觉和触觉感受,为飞行员带来真实的沉浸感。各航空公司广泛使用飞行模拟训练设备,以提升飞行员培养的安全性及高效性,提高飞行员培训质量,降低飞行安全风险[3][4]。
为保障飞行模拟训练设备运行质量,以某模拟机训练中心(以下简称“中心”)为例,其飞行模拟训练设备分布在两个不同的机房。为保障设备正常运行,设立两组维护人员分别管理各个机房设备,并建立了一套基于web的B/S模式飞行模拟训练设备维护管理系统,它记录着飞行模拟训练设备运行状态、巡视检查情况、故障情况和训练完成后的飞行器检查。通过网络管理方式,加强维护人员对飞行模拟训练设备运行情况的掌握,实时跟踪飞行模拟训练设备的运行故障,并加强维护人员的相互沟通协助。
为保存飞行模拟训练设备运行质量的记录文档,采用人工采集数据的记录方式。每个月将由专人对设备维护管理系统中的相关数据(如训练前后飞行模拟训练设备状态检查、巡视检查、飞行模拟训练设备值班保障等)进行统计,形成新的Ex-cel文档以供保存。但这种方式存在人工成本高、工作效率低等问题。
因此,基于Python编程语言设计飞行模拟训练设备保障数据的自动化统计工作,以飞行模拟训练设备值班保障为例,完成飞行模拟训练设备数据的记录,方便快捷地完成相关记录的文档统计保存。
3 总体设计
3.1 原理分析
分析基于Web的B/S模式飞行模拟训练设备维护管理系统,发现它通过.Net语言设计维护管理网站结构,利用Access数据库建立相应的数据库表单(如值班安排数据表单、i故障维护数据表单等),保存着飞行模拟训练设备的运行保障数据。提取Access数据库相应数据表单,自动收集相关行列数据,根据现有Excel数据保存模板,建立最终的Excel电子保存文档。
Python作为新型的解释型语言,其具有丰富的第三方库[1],且语法简单直观,容易上手等优点,在数据处理、人工智能等方面拥有广泛的应用。而对于Access数据库和Excel文档的处理,python拥有win32com库和openpyxl库来对Access和Excel进行相关数据的读取、修改等处理功能[5][6]。因此可使用python语言建立自动化数据统计程序。
3.2 方案设计
根据现有飞行模拟训练设备值班保障的Excel保存模板,所需记录的信息包括选择的日期段,星期,机型,不同机房的值班人、时间、内容,内容标题模板如图l所示。
为建立相关数据的Excel模板,利用python语言完成三个方面:建立Access数据库的通信、相关数据处理、Excel模板数据保存。
3.2.1建立Access数据库通信
首先定义飞行模拟训练设备数据库保存路径字符串,利用win32com.client库对Access数据库进行定位并建立连接,利用类似于VB语言的MoveFirst和MoveNext函数进行读取,提取相关所需的记录数据,最后利用文档末尾标记进行剩余信息检测,以完成对数据库的数据处理工作。该步骤的流程图如图2所示。
3.2.1数据处理
该中心的相关保存记录是以月份为单位的,因此使用date-time库对所需要的月份进行选择;由于该中心的飞行模拟训练设备分布在两个不同的区域,在数据统计时,需要对不同区域的飞行模拟训练设备状态数据进行区分。分析数据库中的数据发现,在数据中会出现不同区域中的飞行模拟训练设备型号,因此通过对特征数据的检测完成数据不同区域的区分。并采用数据库处理语句select完成数据选择和筛选功能。流程图如图3所示。
3.2.3 数据保存
Python拥有丰富的第三方库,如openpyxl库[7],它能对Excel文档进行数据修改和写入等操作,并可通过自定义相关的单元格合并、字体等要求,完成相关模板格式的设置。再将读取出来的数据依次的按照顺序保存到Excel模板中,完成保存。流程图如图4所示。
4 功能实现
为实现数据的提取与保存,设计三个相关类对象完成数据库通信、数据处理及数据保存功能。
4.1 数据库通信类
该类用于操作Access数据库,提取相关数据用于后续处理。其UML图[8]如图5所示。
4.2 数据处理类
数据处理类用于完成对选择时间段数据的提取及数据定位,它的UML图[8]如图6所示。
4.3 數据保存类
它用于完成對所选择数据的Excel存储。其UML功能图如图7[8]所示。
5 测试
运行python程序时,首先输入需要统计的时间段,以2018年9月为例,输入开始时间:“2018-09-1”,结束时间:“2018-09-31”,等待程序运行完成,然后在data文件夹下面会生成一个名为2018年9月值班安排计划表的Excel文档,文档中会自动保存了模板中要求的相关要求数据,生成选择数据的Excel文档。
通过多次不同时段的测试运行后发现,该程序运行能在20s内生成一个月所需数据的Excel文档,能极大地缩短人工数据采集时间,提高工作效率。
6 总结
本文介绍了基于python的飞行模拟训练设备相关数据的自动统计开发,通过利用python丰富第三方库文件,完成飞行模拟训练设备保障数据统计表单的自动生成,提高了工作效率,节约了人工成本,建立了飞行模拟训练设备数据自动化管理的基础,将办公自动化理念引入了飞行模拟训练设备数据的管理。
参考文献:
[1]严莉娜.办公自动化中计算机技术的应用[J].信息通信,2019(8):291-292.
[2]张园园,袁煜婧.关于办公自动化中计算机技术应用研究[Jl-信息与电脑(理论版),2019(13):19-20.
[3]万羽.基于网络的飞行模拟训练设备维护办公自动化系统[J].科技经济导刊,2018,26(29):56,58
[4]陈又军.现代飞行模拟机技术发展概述[Jl.中国民航飞行学院学报,2011,22(2):25-27,32.
[5] Allen B.Downey, Think Python[M], CA:0 'Reilly Media,2012;
[6] Albert Sweigart, Automate the Boring Stuff with Python. NoStarch Press,2015;
[7] Eric Gazoni. Charlie Clark, openpyxl manual[EB/OLl, 2020,https://openpyxl.readthedocs.io/en/s table/;
[8]刘振安.面向对象技术与UML[M].北京:机械工业出版社,2007.
【通联编辑:梁书】
基金项目:中国民用航空飞行学院科研创新团队项目(JG2019-03-02)
作者简介:黄欢(1988-),男,四川广汉人,工程师,硕士,研究方向:模拟机维护、飞行仿真及软件开发;徐坦(1985-),男,四川广汉人,助理研究员,学士,研究方向:行政管理。