申宇燕,延九磊,張瑞芳,戴 津
(中國鐵道科學研究院 機車車輛研究所,北京100081)
基于QT的6A系統(tǒng)軟件可靠性研究與檢測設(shè)備開發(fā)
申宇燕,延九磊,張瑞芳,戴 津
(中國鐵道科學研究院 機車車輛研究所,北京100081)
通過對機車車載安全防護系統(tǒng)(6A系統(tǒng))車載軟件可靠性需求的分析,構(gòu)建了6A系統(tǒng)軟件可靠性架構(gòu)。結(jié)合QT圖形用戶界面IDE實現(xiàn)了ARM嵌入式檢測設(shè)備的開發(fā),從而實現(xiàn)了6A系統(tǒng)軟件檢測的人機交互,為6A系統(tǒng)軟件可靠性提高與維護提供了便攜式檢測平臺。
6A系統(tǒng);軟件可靠性;檢測設(shè)備
機車車載安全防護系統(tǒng)(簡稱6A系統(tǒng):ABDR:Air Brake safety monitoring and Data Record system,制動監(jiān)測子系統(tǒng);AFDR:Fire Alarm and Data Record system,防火監(jiān)測子系統(tǒng);AGDR:Anti-Ground Detection system for Resistance of high voltage equipment,高壓絕緣檢測子系統(tǒng);APDR:Appliances train Power Diagnosis and Record system,列車供電監(jiān)測子系統(tǒng);ATDR:Advanced Truck Defect diagnosis and Record system,走行部監(jiān)測子系統(tǒng);AVDR:Automatic Video Display and Record system,視頻監(jiān)控子系統(tǒng)。)是針對機車的制動系統(tǒng)、防火、高壓絕緣、列車供電(以下簡稱列供)、走行部、視頻等危及運行安全的重要事項、重點部件和部位,在前期已有的各獨立機車安全設(shè)備的基礎(chǔ)上,完善功能、綜合集成,形成完整的系統(tǒng)性、平臺化的安全防護裝置,用于提高機車防范安全事故的能力。
6A系統(tǒng)的組成與功能[1]如圖1所示:

圖1 6A系統(tǒng)組成與功能圖
6A系統(tǒng)產(chǎn)品設(shè)計與以往機車上安裝的獨立監(jiān)測設(shè)備有本質(zhì)不同,6A系統(tǒng)將每個監(jiān)測子系統(tǒng)所需要的供電、存儲、顯示、報警等功能集成在一起,子系統(tǒng)共享中央處理平臺,進行信息流的交換,因此對6A系統(tǒng)的軟件可靠性提出了更高的要求。
系統(tǒng)軟件可靠性設(shè)計的實質(zhì)是在常規(guī)的軟件設(shè)計中,應(yīng)用各種必須的方法和技術(shù),使程序設(shè)計在兼顧用戶各種需求的同時,全面滿足軟件的可靠性要求。如果軟件在使用中發(fā)生失效(不可靠)會導(dǎo)致任務(wù)的失敗,甚至導(dǎo)致災(zāi)難性的后果。因此,應(yīng)在軟件設(shè)計過程中,對可能發(fā)生的失效進行分析,采取必要的措施避免將可能失效的缺陷引入軟件,為失效糾正措施的制定提供依據(jù),同時為避免類似問題的發(fā)生提供借鑒。特別是嵌入式軟件的可靠性問題關(guān)系到設(shè)備安全甚至于人員生命,其軟件可靠性問題是需要融入系統(tǒng)設(shè)計之初統(tǒng)籌考慮的,6A系統(tǒng)的車載軟件就是如此。因而軟件可靠性設(shè)計工作將會大大提高使用中軟件的可靠性,減少由于軟件失效帶來的各種損失。
6A系統(tǒng)中對機車的故障診斷采用多級診斷、逐級上報的方式實現(xiàn)。6大監(jiān)測子系統(tǒng)中,每個監(jiān)測子系統(tǒng)負責診斷本系統(tǒng)的機車設(shè)備故障,并將診斷結(jié)果上報至中央處理平臺,主機進行子系統(tǒng)之間的關(guān)聯(lián)診斷并將結(jié)果發(fā)送至音頻、視頻(簡稱:音視頻)顯示終端,終端通過界面顯示和語音提示報告給司乘人員,同時記錄到日志文件中。故障診斷流程如圖2所示。
根據(jù)對6A系統(tǒng)整個故障診斷流程分析,日志文件需要記錄如下內(nèi)容,可以涵蓋軟件運行的整個過程,并可有效定位系統(tǒng)失效發(fā)生點,以便及時修正。6A系統(tǒng)軟件可靠性的架構(gòu)設(shè)計如下:
如圖3結(jié)構(gòu)圖所示,在該架構(gòu)設(shè)計中,系統(tǒng)可靠性及狀態(tài)記錄包括從系統(tǒng)上電加載、進程啟動、運行、信息相互交換及異常處理等各個方面。狀態(tài)監(jiān)控與過程記錄融合到軟件實現(xiàn)的全流程之中,因而各子系統(tǒng)與中央處理平臺的數(shù)據(jù)交互,中央處理平臺工作狀態(tài)完全在系統(tǒng)狀態(tài)監(jiān)控下進行,記錄結(jié)果見表1。

圖2 6A系統(tǒng)故障診斷流程圖

圖3 6A系統(tǒng)軟件可靠性框架結(jié)構(gòu)圖

表1 6 A系統(tǒng)部分運行狀態(tài)記錄
車載設(shè)備可靠性記錄的數(shù)據(jù)源可實現(xiàn)6A系統(tǒng)的綜合維護,包括機車配置信息維護、6A系統(tǒng)配置信息維護、6A系統(tǒng)軟件可靠性運行記錄分析與整理。
開發(fā)相應(yīng)的嵌入式設(shè)備是實現(xiàn)上述信息人機交互的有效方式。目前基于ARM的嵌入式設(shè)備由于具備低功耗、數(shù)據(jù)安全、便攜式等優(yōu)良特性使得完成上述功能成為可能。基于ARM平臺的圖形界面GUI系統(tǒng)開發(fā),將6A系統(tǒng)軟件可靠性的維護通過裝車過程的信息配置、運用過程狀態(tài)數(shù)據(jù)的下載分析、圖形化顯示6A系統(tǒng)的軟/硬件運行狀態(tài)來實現(xiàn)。
Qt是諾基亞開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立圖形用戶界面所需的所有功能。Qt Creator是支持Qt的跨平臺集成開發(fā)環(huán)境。它包括高級C++代碼編輯器;集成的圖形用戶界面外觀和板式設(shè)計器Qt Desinger;項目和生成管理工具;圖形化調(diào)試器等[2]。
Qt-Embedded是Qt的嵌入式版本,它在原Qt的基礎(chǔ)上做了許多調(diào)查以適合嵌入式環(huán)境成為Linux 4大主流GUI系統(tǒng)之一。Qt/Embedded是一個多平臺的C++圖形用戶界面的應(yīng)用程序框架,具有易擴展、可移植性好等特點,支持多個GUI平臺的交互開發(fā),廣泛地應(yīng)用于個人消費電子、工業(yè)控制設(shè)備等嵌入式產(chǎn)品和設(shè)備中。
在6A軟件檢測設(shè)備的開發(fā)過程中,程序開發(fā)步驟為:
(1)在linux系統(tǒng)下利用Qt Creator和Qt Desinger設(shè)計整個程序,并完成與6A主機的連接功能測試。
(2)然后在PC機的Linux下搭建交叉編譯環(huán)境,配置環(huán)境變量。
(3)在交叉編譯環(huán)境下編譯源程序,生成能在ARM開發(fā)板上運行的可執(zhí)行文件,等待移植到開發(fā)板上。
(4)在ARM開發(fā)板上搭建好程序運行的Qt-Embedded環(huán)境,包括程序運行所需的Qt-Embedded庫等。
(5)串口連接PC機和ARM開發(fā)板,將可執(zhí)行文件下載到開發(fā)板上,實現(xiàn)程序從PC機到ARM板的移植。
4.1 功能與通信原理
6A系統(tǒng)便攜式檢測設(shè)備功能模塊主要有:軟件檢測、修改車號、統(tǒng)計信息、下載數(shù)據(jù),時間校準,見圖4。
本項目中采用UDP傳輸協(xié)議來實現(xiàn)檢測設(shè)備與6A主機的通信。UDP主要用于基于網(wǎng)絡(luò)節(jié)點間離散信息包的傳輸,與TCP傳輸協(xié)議相比,它有輕量級、面向數(shù)據(jù)報文,傳輸速度快,系統(tǒng)開銷小的特點,所以在有些對數(shù)據(jù)安全性要求不是很高的情況下,如檢測設(shè)備與主機是短距離相連,網(wǎng)絡(luò)穩(wěn)定的環(huán)境下,采用UDP協(xié)議是一個不錯的選擇。
基于UDP協(xié)議的網(wǎng)絡(luò)應(yīng)用程序,實現(xiàn)起來比較簡單,并且基于UDP協(xié)議的網(wǎng)絡(luò)應(yīng)用程序在運行時,受到環(huán)境影響較小,所以不容易出錯。

圖4 檢測設(shè)備顯示屏
一般地一個UDP數(shù)據(jù)包的大小被設(shè)定為小于512字節(jié)的信息,同時IP地址與端口號被包含在發(fā)送端與接收端的數(shù)據(jù)中。如圖5所示檢測軟件的發(fā)送數(shù)據(jù)代碼函數(shù)中帶有3個參數(shù),分別為發(fā)送數(shù)據(jù)包,發(fā)送目的地IP地址和發(fā)送目的地端口號。
將功能窗口綁定預(yù)設(shè)的IP和端口號,準備接收6A主機發(fā)送的數(shù)據(jù)文件。如圖6所示。

圖5 UDP發(fā)送數(shù)據(jù)文件代碼

圖6 UDP接收數(shù)據(jù)文件代碼
4.2 功能實現(xiàn)
(1)建立連接
便攜式檢測設(shè)備通過網(wǎng)線與6A主機相連后,首先要建立與6A主機的連接。如圖7所示。

圖7 檢測設(shè)備連接主機界面
不同的車型與CPU的組合對應(yīng)不同的IP。
選擇車型(6軸機車、8軸A機車、8軸B機車)和CPU(CPU1、CPU2),點擊“建立連接”,發(fā)送連接請求報文給主機,主機經(jīng)過校驗同意連接并發(fā)送動態(tài)密碼給檢測設(shè)備。檢測設(shè)備此時顯示“連接成功”。此后對6A主機的任何操作都需要發(fā)送密碼校驗才能成功。
(2)軟件檢測
在6A主機的日志記錄文件中,見圖8所示,已詳細記錄了6A系統(tǒng)各組成部分、各子系統(tǒng)工作時的狀態(tài)參數(shù)。當其中某一個功能模塊發(fā)生故障或異常時,日志文件都會有明確體現(xiàn)。通過篩查日志故障記錄可以確認6A系統(tǒng)軟件是否工作正常,并及時修正。
(3)修改車號
通過點擊“修改車號”,在車號設(shè)置界面使用觸摸屏點擊方式,輸入車號編碼,發(fā)送給6A主機,主機確認后車號設(shè)置成功。
(4)數(shù)據(jù)下載
通過點擊“數(shù)據(jù)下載”,在下載數(shù)據(jù)界面選擇所需下載數(shù)據(jù)的起始日期和結(jié)束日期,將6A主機數(shù)據(jù)下載到檢測設(shè)備的CF卡中,檢測設(shè)備軟件監(jiān)測界面見圖9。
(5)統(tǒng)計信息
檢測設(shè)備可通過對報警數(shù)據(jù)的統(tǒng)計分析,給出各個子系統(tǒng)發(fā)送報文統(tǒng)計:圖10中黑色為接收報文數(shù)、灰色為錯誤報文數(shù)、白色為不連續(xù)幀數(shù)。

圖8 6A主機日志文件

圖9 檢測設(shè)備軟件監(jiān)測界面
機車車載安全防護系統(tǒng)(6A系統(tǒng))從概念設(shè)計到全路推廣運用歷時短短3年,在設(shè)計之初,軟件可靠性設(shè)計和功能設(shè)計的有機融合是取得這些成績的重要因素之一。模塊化的設(shè)計使得任何一個子系統(tǒng)可以全國范圍內(nèi)統(tǒng)籌開發(fā),軟件可靠性為系統(tǒng)集成提供了堅實的平臺基礎(chǔ)。
U269.32+2
A
10.3969/j.issn.1008-7842.2014.03.23
1008-7842(2014)03-0094-03
9—)女,助理研究員(
2014-01-07)