黃歡 徐坦
摘要:為解決現(xiàn)有飛行模擬訓(xùn)練設(shè)備數(shù)據(jù)管理人工成本高、效率低的問題,設(shè)計(jì)了基于python的數(shù)據(jù)自動(dòng)化統(tǒng)計(jì)程序,利用win32com和openpyxl庫對Access數(shù)據(jù)庫和Excel文檔的進(jìn)行操作和處理,完成對飛行模擬訓(xùn)練設(shè)備運(yùn)行保障數(shù)據(jù)的自動(dòng)統(tǒng)計(jì)和文檔的自動(dòng)保存。通過多次測試,能快速完整的生成選定時(shí)間的特定格式數(shù)據(jù)文檔,極大地提高工作效率。
關(guān)鍵詞:飛行模擬訓(xùn)練設(shè)備;自動(dòng)化統(tǒng)計(jì);python;win32com庫;openpyxl庫
中圖分類號(hào):TP317.1 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)21-0203-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
迅猛發(fā)展的計(jì)算機(jī)技術(shù)正加速影響企事業(yè)工作辦公方式。自動(dòng)化辦公是一種利用計(jì)算機(jī)技術(shù)替代傳統(tǒng)辦公模式的一種現(xiàn)代化辦公模式[1]。使用大量的先進(jìn)機(jī)器來代替?zhèn)鹘y(tǒng)中的紙記錄和筆書寫方式,極大提高工作效率。通過新型網(wǎng)絡(luò)辦公方式,加強(qiáng)成員的協(xié)同工作能力,改變了傳統(tǒng)辦公環(huán)境[2]。
2 概述
飛行模擬訓(xùn)練設(shè)備是在飛行員訓(xùn)練中常用的輔助訓(xùn)練設(shè)備,它能模擬特定飛機(jī)(如空客A320、波音737NG等)在飛行過程中所產(chǎn)生的視覺、聽覺和觸覺感受,為飛行員帶來真實(shí)的沉浸感。各航空公司廣泛使用飛行模擬訓(xùn)練設(shè)備,以提升飛行員培養(yǎng)的安全性及高效性,提高飛行員培訓(xùn)質(zhì)量,降低飛行安全風(fēng)險(xiǎn)[3][4]。
為保障飛行模擬訓(xùn)練設(shè)備運(yùn)行質(zhì)量,以某模擬機(jī)訓(xùn)練中心(以下簡稱“中心”)為例,其飛行模擬訓(xùn)練設(shè)備分布在兩個(gè)不同的機(jī)房。為保障設(shè)備正常運(yùn)行,設(shè)立兩組維護(hù)人員分別管理各個(gè)機(jī)房設(shè)備,并建立了一套基于web的B/S模式飛行模擬訓(xùn)練設(shè)備維護(hù)管理系統(tǒng),它記錄著飛行模擬訓(xùn)練設(shè)備運(yùn)行狀態(tài)、巡視檢查情況、故障情況和訓(xùn)練完成后的飛行器檢查。通過網(wǎng)絡(luò)管理方式,加強(qiáng)維護(hù)人員對飛行模擬訓(xùn)練設(shè)備運(yùn)行情況的掌握,實(shí)時(shí)跟蹤飛行模擬訓(xùn)練設(shè)備的運(yùn)行故障,并加強(qiáng)維護(hù)人員的相互溝通協(xié)助。
為保存飛行模擬訓(xùn)練設(shè)備運(yùn)行質(zhì)量的記錄文檔,采用人工采集數(shù)據(jù)的記錄方式。每個(gè)月將由專人對設(shè)備維護(hù)管理系統(tǒng)中的相關(guān)數(shù)據(jù)(如訓(xùn)練前后飛行模擬訓(xùn)練設(shè)備狀態(tài)檢查、巡視檢查、飛行模擬訓(xùn)練設(shè)備值班保障等)進(jìn)行統(tǒng)計(jì),形成新的Ex-cel文檔以供保存。但這種方式存在人工成本高、工作效率低等問題。
因此,基于Python編程語言設(shè)計(jì)飛行模擬訓(xùn)練設(shè)備保障數(shù)據(jù)的自動(dòng)化統(tǒng)計(jì)工作,以飛行模擬訓(xùn)練設(shè)備值班保障為例,完成飛行模擬訓(xùn)練設(shè)備數(shù)據(jù)的記錄,方便快捷地完成相關(guān)記錄的文檔統(tǒng)計(jì)保存。
3 總體設(shè)計(jì)
3.1 原理分析
分析基于Web的B/S模式飛行模擬訓(xùn)練設(shè)備維護(hù)管理系統(tǒng),發(fā)現(xiàn)它通過.Net語言設(shè)計(jì)維護(hù)管理網(wǎng)站結(jié)構(gòu),利用Access數(shù)據(jù)庫建立相應(yīng)的數(shù)據(jù)庫表單(如值班安排數(shù)據(jù)表單、i故障維護(hù)數(shù)據(jù)表單等),保存著飛行模擬訓(xùn)練設(shè)備的運(yùn)行保障數(shù)據(jù)。提取Access數(shù)據(jù)庫相應(yīng)數(shù)據(jù)表單,自動(dòng)收集相關(guān)行列數(shù)據(jù),根據(jù)現(xiàn)有Excel數(shù)據(jù)保存模板,建立最終的Excel電子保存文檔。
Python作為新型的解釋型語言,其具有豐富的第三方庫[1],且語法簡單直觀,容易上手等優(yōu)點(diǎn),在數(shù)據(jù)處理、人工智能等方面擁有廣泛的應(yīng)用。而對于Access數(shù)據(jù)庫和Excel文檔的處理,python擁有win32com庫和openpyxl庫來對Access和Excel進(jìn)行相關(guān)數(shù)據(jù)的讀取、修改等處理功能[5][6]。因此可使用python語言建立自動(dòng)化數(shù)據(jù)統(tǒng)計(jì)程序。
3.2 方案設(shè)計(jì)
根據(jù)現(xiàn)有飛行模擬訓(xùn)練設(shè)備值班保障的Excel保存模板,所需記錄的信息包括選擇的日期段,星期,機(jī)型,不同機(jī)房的值班人、時(shí)間、內(nèi)容,內(nèi)容標(biāo)題模板如圖l所示。
為建立相關(guān)數(shù)據(jù)的Excel模板,利用python語言完成三個(gè)方面:建立Access數(shù)據(jù)庫的通信、相關(guān)數(shù)據(jù)處理、Excel模板數(shù)據(jù)保存。
3.2.1建立Access數(shù)據(jù)庫通信
首先定義飛行模擬訓(xùn)練設(shè)備數(shù)據(jù)庫保存路徑字符串,利用win32com.client庫對Access數(shù)據(jù)庫進(jìn)行定位并建立連接,利用類似于VB語言的MoveFirst和MoveNext函數(shù)進(jìn)行讀取,提取相關(guān)所需的記錄數(shù)據(jù),最后利用文檔末尾標(biāo)記進(jìn)行剩余信息檢測,以完成對數(shù)據(jù)庫的數(shù)據(jù)處理工作。該步驟的流程圖如圖2所示。
3.2.1數(shù)據(jù)處理
該中心的相關(guān)保存記錄是以月份為單位的,因此使用date-time庫對所需要的月份進(jìn)行選擇;由于該中心的飛行模擬訓(xùn)練設(shè)備分布在兩個(gè)不同的區(qū)域,在數(shù)據(jù)統(tǒng)計(jì)時(shí),需要對不同區(qū)域的飛行模擬訓(xùn)練設(shè)備狀態(tài)數(shù)據(jù)進(jìn)行區(qū)分。分析數(shù)據(jù)庫中的數(shù)據(jù)發(fā)現(xiàn),在數(shù)據(jù)中會(huì)出現(xiàn)不同區(qū)域中的飛行模擬訓(xùn)練設(shè)備型號(hào),因此通過對特征數(shù)據(jù)的檢測完成數(shù)據(jù)不同區(qū)域的區(qū)分。并采用數(shù)據(jù)庫處理語句select完成數(shù)據(jù)選擇和篩選功能。流程圖如圖3所示。
3.2.3 數(shù)據(jù)保存
Python擁有豐富的第三方庫,如openpyxl庫[7],它能對Excel文檔進(jìn)行數(shù)據(jù)修改和寫入等操作,并可通過自定義相關(guān)的單元格合并、字體等要求,完成相關(guān)模板格式的設(shè)置。再將讀取出來的數(shù)據(jù)依次的按照順序保存到Excel模板中,完成保存。流程圖如圖4所示。
4 功能實(shí)現(xiàn)
為實(shí)現(xiàn)數(shù)據(jù)的提取與保存,設(shè)計(jì)三個(gè)相關(guān)類對象完成數(shù)據(jù)庫通信、數(shù)據(jù)處理及數(shù)據(jù)保存功能。
4.1 數(shù)據(jù)庫通信類
該類用于操作Access數(shù)據(jù)庫,提取相關(guān)數(shù)據(jù)用于后續(xù)處理。其UML圖[8]如圖5所示。
4.2 數(shù)據(jù)處理類
數(shù)據(jù)處理類用于完成對選擇時(shí)間段數(shù)據(jù)的提取及數(shù)據(jù)定位,它的UML圖[8]如圖6所示。
4.3 數(shù)據(jù)保存類
它用于完成對所選擇數(shù)據(jù)的Excel存儲(chǔ)。其UML功能圖如圖7[8]所示。
5 測試
運(yùn)行python程序時(shí),首先輸入需要統(tǒng)計(jì)的時(shí)間段,以2018年9月為例,輸入開始時(shí)間:“2018-09-1”,結(jié)束時(shí)間:“2018-09-31”,等待程序運(yùn)行完成,然后在data文件夾下面會(huì)生成一個(gè)名為2018年9月值班安排計(jì)劃表的Excel文檔,文檔中會(huì)自動(dòng)保存了模板中要求的相關(guān)要求數(shù)據(jù),生成選擇數(shù)據(jù)的Excel文檔。
通過多次不同時(shí)段的測試運(yùn)行后發(fā)現(xiàn),該程序運(yùn)行能在20s內(nèi)生成一個(gè)月所需數(shù)據(jù)的Excel文檔,能極大地縮短人工數(shù)據(jù)采集時(shí)間,提高工作效率。
6 總結(jié)
本文介紹了基于python的飛行模擬訓(xùn)練設(shè)備相關(guān)數(shù)據(jù)的自動(dòng)統(tǒng)計(jì)開發(fā),通過利用python豐富第三方庫文件,完成飛行模擬訓(xùn)練設(shè)備保障數(shù)據(jù)統(tǒng)計(jì)表單的自動(dòng)生成,提高了工作效率,節(jié)約了人工成本,建立了飛行模擬訓(xùn)練設(shè)備數(shù)據(jù)自動(dòng)化管理的基礎(chǔ),將辦公自動(dòng)化理念引入了飛行模擬訓(xùn)練設(shè)備數(shù)據(jù)的管理。
參考文獻(xiàn):
[1]嚴(yán)莉娜.辦公自動(dòng)化中計(jì)算機(jī)技術(shù)的應(yīng)用[J].信息通信,2019(8):291-292.
[2]張園園,袁煜婧.關(guān)于辦公自動(dòng)化中計(jì)算機(jī)技術(shù)應(yīng)用研究[Jl-信息與電腦(理論版),2019(13):19-20.
[3]萬羽.基于網(wǎng)絡(luò)的飛行模擬訓(xùn)練設(shè)備維護(hù)辦公自動(dòng)化系統(tǒng)[J].科技經(jīng)濟(jì)導(dǎo)刊,2018,26(29):56,58
[4]陳又軍.現(xiàn)代飛行模擬機(jī)技術(shù)發(fā)展概述[Jl.中國民航飛行學(xué)院學(xué)報(bào),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]劉振安.面向?qū)ο蠹夹g(shù)與UML[M].北京:機(jī)械工業(yè)出版社,2007.
【通聯(lián)編輯:梁書】
基金項(xiàng)目:中國民用航空飛行學(xué)院科研創(chuàng)新團(tuán)隊(duì)項(xiàng)目(JG2019-03-02)
作者簡介:黃歡(1988-),男,四川廣漢人,工程師,碩士,研究方向:模擬機(jī)維護(hù)、飛行仿真及軟件開發(fā);徐坦(1985-),男,四川廣漢人,助理研究員,學(xué)士,研究方向:行政管理。