(1.武漢大學(xué),武漢 430072; 2.湖南鐵道職業(yè)技術(shù)學(xué)院,湖南 株洲 412000)
基于列車智能顯示器故障記錄處理的設(shè)計與研究
龔娟1,2
(1.武漢大學(xué),武漢430072; 2.湖南鐵道職業(yè)技術(shù)學(xué)院,湖南株洲412000)
列車在外部環(huán)境的影響下導(dǎo)致各設(shè)備的軟硬件產(chǎn)生缺陷從而引發(fā)故障,在一定程度上影響了列車的性能和安全;顯示器是列車必不可少的重要部件,是人機交互的橋梁,也是列車各設(shè)備故障狀態(tài)信息顯示的窗口;針對傳統(tǒng)列車顯示器的故障誤報和易產(chǎn)生故障空白記錄的現(xiàn)象,文章設(shè)計和實現(xiàn)了基于故障碼的列車顯示器故障信息搜索和分析方法,大大提高了列車顯示器應(yīng)用設(shè)計人員的開發(fā)效率,減少了故障記錄過程的工作量;并基于實際測試環(huán)境對該方法進行了實驗,結(jié)果表明,該方法對列車顯示器故障記錄的處理具有高效性、健壯性,并保證了顯示器故障信息顯示的準確性。
顯示器;故障記錄;故障搜索;故障分析
列車運行過程中,由于操作環(huán)境和使用條件的影響,故障產(chǎn)生是必然的現(xiàn)象。及時地顯示故障信息,并通過故障提示對機車各設(shè)備進行檢修,是保證列車安全運行以及發(fā)揮最高效能的先決條件。顯示設(shè)備已成為列車網(wǎng)絡(luò)控制系統(tǒng)和信息化系統(tǒng)的重要部件,主要負責列車各設(shè)備狀態(tài)信息的顯示,作為列車控制系統(tǒng)的智能人機交互窗口,可對整車各設(shè)備進行故障診斷、分析及顯示,可對各故障進行詳細地記錄,記錄內(nèi)容確定故障發(fā)生的設(shè)備名稱、故障等級、故障名稱及發(fā)生故障的時間,當故障發(fā)生時,可協(xié)助司機采取適當?shù)牟僮?,并使維護人員更容易地查找并解決故障,幫助工作人員及時有效地排除故障,已成為保證機車安全運行的一個重要措施。故利用列車智能顯示器來及時有效地發(fā)現(xiàn)和定位故障,是機車的安全和消除隱患的必要前提。
列車故障檢測與診斷系統(tǒng)是一種列車在運行過程中出現(xiàn)或即將出現(xiàn)故障時,通過提示或人機直接對話形式達到在較短時間內(nèi)有效診斷列車故障的智能系統(tǒng)。其中,故障信息的顯示和提示則由列車顯示器應(yīng)用軟件來實現(xiàn)。
列車通信網(wǎng)絡(luò)TCN是面向控制的一種連接車載設(shè)備的數(shù)據(jù)通信系統(tǒng),是分布式列車控制系統(tǒng)的核心組成部分。它包含連接各車廂間的絞線式列車總線WTB和連接車廂內(nèi)各設(shè)備的多功能車輛總線MVB。列車智能顯示器HMI屬于MVB 3類設(shè)備,具有過程數(shù)據(jù)和消息數(shù)據(jù)的能力,支持MVB網(wǎng)絡(luò)接口是列車智能顯示器的基本要求。TCN與HMI的間的通信原理如圖1所示。
圖1 列車網(wǎng)絡(luò)控制系統(tǒng)與顯示器通信過程
從故障信息的通信流程圖可看出,“故障事件”是診斷機制的觸發(fā)源,列車通信網(wǎng)絡(luò)系統(tǒng)從車載各部件或子系統(tǒng)的電子控制單元(如空調(diào)控制單元、制動控制單元和牽引控制單元等)獲取故障信息及故障相關(guān)環(huán)境參數(shù)。若故障事件出現(xiàn),則列車通信網(wǎng)絡(luò)的中央處理單元將通過通信對故障源環(huán)境參數(shù)進行獲取、檢測、分類處理,同時根據(jù)協(xié)議發(fā)送相應(yīng)的故障代碼,顯示器接收到總線上的相關(guān)數(shù)據(jù)后對故障信息進行處理,完成故障列表、顯示和存儲,顯示器通過形象的圖形或文字方式將列車運行狀態(tài)和故障信息提供給司機。整個過程包含故障相關(guān)的界面設(shè)計、故障信息顯示的代碼設(shè)計,顯示器需要根據(jù)具體模式,顯示具體故障內(nèi)容信息和記錄,并包括故障的背景參數(shù)和故障等級。
列車智能顯示器是列車網(wǎng)絡(luò)控制系統(tǒng)的重要組成部分,它提供車載系統(tǒng)工作和運行相關(guān)的的實時狀態(tài)信息、故障顯示和人機交互功能,同時顯示器提供便捷的的網(wǎng)絡(luò)維護接口。顯示器硬件通常包括處理器、內(nèi)存、FLASH存儲器、鍵盤、觸摸屏、顯示屏、通信接口電路等部分,軟件方面,顯示器采用嵌入式Linux系統(tǒng),并設(shè)置基于Linux系統(tǒng)的圖形顯示接口(Graphical User Interface,GUI)和圖形界面開發(fā)工具Fluid,用戶通過開發(fā)工具和軟件進行顯示器具體界面和功能的開發(fā)。
目前,不同的車型(主要分為機車、城軌和動車)顯示器應(yīng)用軟件所設(shè)計的故障處理方式基本類似。通常,顯示器處理的故障分為現(xiàn)存故障、故障履歷和故障提示三部分,現(xiàn)存故障是列車當前已經(jīng)發(fā)生了且沒有消失的故障信息;故障履歷顯示現(xiàn)存故障和過去一段時間內(nèi)發(fā)生過的故障;故障提示是針對現(xiàn)存故障而設(shè)計的,它可對當前列車存在的故障進行故障提示,為司機或技術(shù)人員查找故障提供幫助。
列車顯示器故障處理方法如圖2所示。
圖2 列車顯示器故障記錄處理方法
列車網(wǎng)絡(luò)控制系統(tǒng)對整車各設(shè)備的故障信息進行采集與分析后將故障數(shù)據(jù)按照通信協(xié)議發(fā)送到相應(yīng)的通信端口,顯示器根據(jù)通信協(xié)議周期性的對端口數(shù)據(jù)進行讀取操作,根據(jù)圖2可知,顯示器根據(jù)讀取到的故障數(shù)據(jù)搜索故障,找到相應(yīng)的故障編碼后再進行故障分析,若確定當前故障為新產(chǎn)生的故障則存取新故障記錄信息和提示信息,并存至故障履歷中,反之,若當前故障為消失狀態(tài)則存儲故障結(jié)束時間并轉(zhuǎn)儲整條記錄信息,最后將故障信息分別顯示在現(xiàn)在故障、故障履歷和故障提示界面中。通常,列車顯示器故障信息讀取的操作流程如圖3所示。
圖3 列車顯示器故障信息讀取的操作流程
現(xiàn)今,列車整車中的設(shè)備日益增多,導(dǎo)致列車故障診斷系統(tǒng)產(chǎn)生了海量的數(shù)據(jù),從而顯著增加了列車顯示器與通信網(wǎng)絡(luò)控制系統(tǒng)間的通信負荷量[2],與之相對應(yīng)的是顯示器應(yīng)用軟件需處理和顯示的故障數(shù)據(jù)也將劇增。因此,如何對產(chǎn)生的故障數(shù)據(jù)進行分析,并在大量的故障記錄中查找到所對應(yīng)的故障代碼,保證故障數(shù)據(jù)顯示的完整性和準確性,已成為列車顯示器故障處理迫切需要考慮的問題。
圖4是目前列車顯示器故障搜索與故障分析方法,該故障搜索與故障分析過程首先是將當前最新的故障數(shù)據(jù)狀態(tài)按字節(jié)序存入故障狀態(tài)數(shù)組中,并按字節(jié)序?qū)γ總€字節(jié)的數(shù)據(jù)進行運算比較,若新故障字節(jié)數(shù)據(jù)與舊數(shù)據(jù)發(fā)生了變化,則認定當前字節(jié)存在相應(yīng)故障的變化。為了分析故障原因,對故障數(shù)據(jù)字節(jié)的每位去比較查找并計算故障序號,并據(jù)此分析該故障位是新故障的發(fā)生還是舊故障的消失。然后,針對具體事件是故障發(fā)生或消失的狀況分別執(zhí)行相應(yīng)的系統(tǒng)預(yù)定義的動作。如若是故障發(fā)生將添加此故障到故障記錄;若是故障消失則從故障記錄中刪除此故障的記錄項。
圖4 傳統(tǒng)列車顯示器的故障搜索與分析方法
如果列車存在故障信息,顯示器將按記錄條以純文本信息的形式顯示給司機或技術(shù)人員,每條純文本信息都分配有故障代碼,故障代碼有一定的編排依據(jù),通常是按不同的設(shè)備來進行分配。根據(jù)不同的故障類別可進行故障評估,一般分為嚴重、中等和輕微三個等級,嚴重故障將影響列車正常運營,需要司機立刻處理;中等故障將影響列車部分性能,需司機稍作處理就能繼續(xù)運營;輕微故障只需司機了解即可,不影響列車運營。故障代碼、類別、時間及故障內(nèi)容都將顯示在人機接口單元的故障界面上,故障顯示如圖5所示。
圖5 列車顯示器故障狀態(tài)信息記錄
傳統(tǒng)的故障搜索方法,通過比較故障序號成員的變化情況,逐行去對包含空白記錄的文本信息進行讀取,最終顯示故障信息,以此完成顯示功能。此方案不僅回溯周期長,并且相當不準確,對于并發(fā)故障,難以做到有效和精準性。開發(fā)人員必需反復(fù)檢測,回溯故障。此類故障檢索方法周期長,而且工作量巨大,難以保證開發(fā)、調(diào)試的進度,方法分析詳細說明如下:
1)在存儲最新故障數(shù)據(jù)狀態(tài)時,每個端口的每個字節(jié)都用一條語句來存取故障狀態(tài)值,而通常情況下列車存在成百上千條故障記錄,隨著數(shù)據(jù)量的增加,將會急劇降低開發(fā)效率。
2)由于存儲最新故障數(shù)據(jù)狀態(tài)的不靈活性,使得在故障文本的處理上也受到約束,嚴格按照每個字節(jié)的每個位來編排故障內(nèi)容,即使當前位不存在故障信息,也得在故障文本中為其保留空白記錄條,增加了設(shè)計工作量。
3)在開發(fā)過程中沒有充分利用故障代碼的優(yōu)勢,采用增加故障序號成員的方式來搜索故障,使得整個故障程序的邏輯性不強,無法保證故障顯示和提示信息的準確性。
基于以上分析,本文提出了一種新的基于故障碼的故障搜索和分析方法,從時間復(fù)雜性和空間復(fù)雜性上都很好地解決此類問題。
與傳統(tǒng)故障搜索方法不同的是,本文在故障搜索一開始就將故障的代碼、故障端口及存儲位置進行初始化,在判斷存在故障變化的情況下,不再需要計算故障序號,而是直接根據(jù)當前的故障代碼值進行判斷,若為非0值則獲取整個故障文本的信息,再去搜索故障代碼,最后,若故障發(fā)生則添加新的故障信息,若故障消失則刪除舊的故障信息。詳細的實現(xiàn)流程如圖6所示:
圖6 基于故障碼的列車顯示器故障搜索與分析方法
具體步驟說明如下:
(1)故障信息初始化。依次對各故障設(shè)備的故障代碼、故障端口及具體存儲位置進行初始化,值存于各數(shù)組元素中,為后續(xù)存儲最新故障數(shù)據(jù)狀態(tài)做準備。
(2)存儲最新故障狀態(tài)數(shù)據(jù)。通過MVB網(wǎng)絡(luò)接口協(xié)議對最新故障數(shù)據(jù)進行讀取并存儲,此處讀到的最新故障狀態(tài)數(shù)據(jù)主要是指的現(xiàn)存故障。根據(jù)已初始化的故障代碼、故障端口及其位置采用簡單的循環(huán)語句可實現(xiàn)。
(3)判斷。對已獲取到的新老故障字節(jié)序進行比較,若故障字節(jié)序不同則說明當前故障發(fā)生了變化,依次對當前字節(jié)序的各位進行判斷,若存在故障代碼值則進行下一步操作,否則本次搜索結(jié)束。
(4)獲取故障文本信息。依次對當前故障位的各故障文本信息進行轉(zhuǎn)儲,內(nèi)容包括:故障發(fā)生時間、故障內(nèi)容、故障發(fā)生裝置、故障等級、故障代碼等。
(5)搜索故障代碼。對整個存放故障數(shù)據(jù)的數(shù)組進行搜索,若找到故障碼則進行下一步操作,否則故障整個搜索結(jié)束。
(6)故障發(fā)生或消失的判斷。對老故障的故障位進行判斷,若有變化則說明是故障發(fā)生,否則是故障消失。
(7)故障文本的操作。若為故障發(fā)生,則將發(fā)生的故障記錄信息添加至現(xiàn)存故障文本文件和故障履歷文本文件內(nèi);若為故障消失,則將現(xiàn)存故障文本內(nèi)對應(yīng)的故障記錄信息進行轉(zhuǎn)儲,故障履歷的內(nèi)容不進行處理。
圖4給出了基于故障碼的列車顯示器故障搜索與分析方法的具體實現(xiàn)過程,為使設(shè)計方案的結(jié)構(gòu)更清晰,增強設(shè)計過程的易讀好,便于更好地實現(xiàn)本文的開發(fā)過程,現(xiàn)用另一種算法描述語言對上述方案設(shè)計的說明進行闡述,即偽代碼,詳細如下所示:
Dim Wrong_Device_No[][]←{the value of wrong code}; //故障初始化
Dim Wrong_Device_Port[][]←{the value of wrong port};
Dim Wrong_Device_Byte[][]←{the value of wrong byte};
for i=0 to the size of port //存儲最新故障狀態(tài)數(shù)據(jù)
WrongStatus[]←mvb.get_uchar();
for i=0 to WRONGBYTENO
{
if(OldWrongStatus[i]^WrongStatus[i]) //有故障變化
for j=1 to 8
{
if((OldWrongStatus[i]>>j)&0x01)
{
if(Wrong_Device_No[i][j]!=0) //故障代碼為非0值
{
for i=0 to List_Items //獲取整個故障文本信息
{
fseek(fp_wrongtxt,location,SEEK_SET);
fread(wrongtxtinfo[i].content,size,count,fp_wrongtxt);
}
for i = 0 to ListNo
{
if( WrongInfo[i].WrongRCode == Wrong_Device_No[i][j]) //找到故障代碼
{
if(WrongHappend) //故障發(fā)生
{
for i=0 to List_total
wronginfo[i].content←wrongtxtinfo[i].content;
}
Else //故障消失
{
for m=location to ListNo-1
wronginfo[m]=wronginfo[m+1];
}
} //end compare
}//end for
}//end Wrong_Device_No[i][j]
}//end OldWrongStatus
}//end for
}//end for
為了保證實驗結(jié)果的準確性和真實性,對基于故障碼的列車顯示器故障搜索及故障分析方法的測試主要分與列車通信網(wǎng)絡(luò)的通信測試和顯示屏本身的故障顯示測試。實驗所用的顯示屏為TPX系列屏,其硬件環(huán)境為包含了MVB網(wǎng)絡(luò)接口設(shè)計的PowerPC處理器,擴展了SDRAM、FLASH、鍵盤、觸摸屏、LCD顯示器、以太網(wǎng)等外部接口。軟件環(huán)境為嵌入式Linux操作系統(tǒng),以tiny-x為圖形顯示接口,開發(fā)工具為FLTK的圖形開發(fā)工具Fluid。
通過列車通信網(wǎng)絡(luò)對各設(shè)備故障端口數(shù)據(jù)傳送的模擬值進行實驗,實驗結(jié)果如圖7所示。實驗結(jié)果表明,基于故障碼的故障搜索與分析方法能有效地實現(xiàn)列車整車設(shè)備故障信息的記錄功能,并能可靠地與列車通信網(wǎng)絡(luò)進行實時通信,整車設(shè)備的信息記錄無誤報或無記錄現(xiàn)象,保證了顯示器故障信息顯示的準確性。
圖7 基于故障碼故障搜索與分析方法的實驗結(jié)果
在列車顯示器故障記錄處理過程中,無論采取哪種方法都要保證故障記錄數(shù)據(jù)顯示和提示的正確性。本文的列車故障顯示器故障搜索方法與傳統(tǒng)方法相比較而言有一定的優(yōu)勢。
首先,本文方法可減少顯示器應(yīng)用軟件設(shè)計工作量,傳統(tǒng)故障最新狀態(tài)數(shù)據(jù)的存取過程工作量較大,在將網(wǎng)絡(luò)接口中所有數(shù)據(jù)存放于故障狀態(tài)數(shù)組過程中,需要大量的按字節(jié)存放語句。而本文在經(jīng)過故障代碼、端口及存儲位置的初始化后,僅需簡單的循環(huán)即可實現(xiàn)故障狀態(tài)存取過程。
其次,顯示器應(yīng)用開發(fā)人員在故障文本的輸入過程中,傳統(tǒng)方法極易產(chǎn)生錯誤,必須嚴格按照端口數(shù)據(jù)字節(jié)的位來處理,即使當前位沒有故障數(shù)據(jù)也需輸入空白行,開發(fā)過程需十分謹慎,否則會有錯位現(xiàn)象。而本文方法僅需輸入存在的故障記錄文本即可,不需輸入空白記錄行,具體比較如圖8所示。
最后,傳統(tǒng)方法難以保證顯示器故障顯示的正確性,由于在文本中存在空行的現(xiàn)象,在程序設(shè)計過程中,若空白位沒有屏蔽則會顯示出空白記錄,而本文方法則完全不可能產(chǎn)生空白記錄現(xiàn)象,詳細如圖9所示。
圖8 顯示器故障搜索與分析方法故障文本處理的比較(左側(cè)為本文方法)
圖9 顯示器故障搜索與分析方法故障顯示結(jié)果的比較(左側(cè)為本文方法)
本文首先描述了列車顯示器與網(wǎng)絡(luò)控制系統(tǒng)的通信原理,并對傳統(tǒng)列車顯示器的故障記錄處理方法進行了闡述。針對傳統(tǒng)列車顯示器故障記錄易產(chǎn)生空白記錄的現(xiàn)象,本文設(shè)計和實現(xiàn)了一種新的列車顯示器故障搜索和分析方法,結(jié)合程序流程圖及偽代碼的形式,對該方法的實現(xiàn)過程進行了詳細的介紹,并與傳統(tǒng)列車顯示器記錄方法進行了比較。結(jié)果表明,該方法對列車顯示器故障記錄的處理具有高效性、健壯性,并保證了顯示器故障信息顯示的準確性。在今后的研究過程中,將側(cè)重于列車顯示器故障記錄處理方法的優(yōu)化,以幫助司機或維護人員能更準更快地查找并解決故障。
[1] 王佳佳,劉長清.輔助變流器故障診斷技術(shù)[J].大功率變流技術(shù),2010(4):12-15.
[2] 賀德強.地鐵列車故障檢測與診斷系統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu)及其仿真研究[J].機車電傳動,2009(5):30-31.
[3] 劉 軍.支持TCN的列車智能顯示器的研究與實現(xiàn)[D].長沙:中南大學(xué),2009.
DesignandResearchBasedonFaultRecordProcessingofTrainIntelligentDisplay
Gong Juan1,2
(1.WU HAN University, Wuhan 430072,China; 2.Hunan Rilway Professional Technology College,Zhuzhou 412000, China)
Under the influence of the external environment, the train causes the defects of the hardware and software of the equipment. The defects lead to fault and affect the performance and safety of the train to a certain extent. Monitor is an essential component of train, a bridge of human-computer interaction, and a window for displaying the fault information of train equipment. Aiming at the phenomenon of false alarm and blank record of traditional train monitor, this paper designs a new method about fault information searching and analyzing based on fault code. This method greatly promotes the efficiency of train display application designers and reduces the workload of fault recording process. Based on the actual test environment, this method is tested. Results show that the method is efficient and robust for fault record of train display and, to some extent, ensures the accuracy of display the fault information.
monitor; fault record; fault research; fault analysis
2017-06-29;
2017-08-29。
2017湖南省教育廳科學(xué)研究項目(17C1041)。
龔 娟(1978-),女,湖南汩羅人,碩士研究生,副教授/高級工程師,主要從事列車網(wǎng)絡(luò)控制方向的研究。
1671-4598(2017)11-0039-04
10.16526/j.cnki.11-4762/tp.2017.11.010
TN873
B