国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于協(xié)議配置的通用在線(xiàn)診斷系統(tǒng)設(shè)計(jì)與應(yīng)用

2021-11-06 08:21王曙光張立鵬張奕男
關(guān)鍵詞:診斷系統(tǒng)配置文件通信協(xié)議

李 倩,王曙光,張立鵬,張奕男

(卡斯柯信號(hào)有限公司,上海 200071)

軌道交通信號(hào)系統(tǒng)需要配備在線(xiàn)診斷系統(tǒng),以對(duì)系統(tǒng)中各設(shè)備的運(yùn)行狀態(tài)進(jìn)行診斷,對(duì)一些運(yùn)行參數(shù)進(jìn)行收集[1]。當(dāng)設(shè)備出現(xiàn)問(wèn)題時(shí),在線(xiàn)診斷系統(tǒng)所記錄的信息就成為分析或復(fù)盤(pán)的重要依據(jù)。在線(xiàn)診斷系統(tǒng)的開(kāi)發(fā)通常與各個(gè)品牌的設(shè)備上的下位機(jī)軟件開(kāi)發(fā)同步進(jìn)行[2]。而不同品牌的設(shè)備通常使用不同的通信協(xié)議及解析方法,如果其通信協(xié)議更新了,那么與之對(duì)應(yīng)的在線(xiàn)診斷系統(tǒng)需要重新開(kāi)發(fā),相關(guān)的解析方法和實(shí)現(xiàn)也需要同步進(jìn)行修改。而同一品牌的設(shè)備在進(jìn)行迭代更新的過(guò)程中,有可能增加或刪除通信協(xié)議的內(nèi)容,從而導(dǎo)致在線(xiàn)診斷系統(tǒng)也要進(jìn)行更新,不斷迭代。如此一來(lái),在線(xiàn)診斷系統(tǒng)的開(kāi)發(fā)工作既耗時(shí)又費(fèi)力,而且系統(tǒng)靈活性也被降低。

現(xiàn)有在線(xiàn)診斷系統(tǒng)主要是面向設(shè)備本身的解決方案。王琦等人[3]提出一套用于記錄和分析軌道交通車(chē)輛運(yùn)行及故障數(shù)據(jù)的在線(xiàn)診斷系統(tǒng),該系統(tǒng)通過(guò)多功能車(chē)輛總線(xiàn)(MVB,Multifunction Vehicle Bus)接口、無(wú)線(xiàn)局域網(wǎng)(WLAN,Wireless Local Area Network)等方式獲取車(chē)輛的運(yùn)行狀態(tài)信息。張?chǎng)┌氐热薣4]搭建了快速實(shí)現(xiàn)鐵路信號(hào)集中監(jiān)測(cè)、智能分析與故障診斷的腳本編制系統(tǒng)。孟曉升[5]針對(duì)CTCS2-200H 型列控車(chē)載設(shè)備,提出了采用無(wú)線(xiàn)傳輸及專(zhuān)家智能診斷技術(shù),對(duì)設(shè)備故障進(jìn)行定位與分析。

本文結(jié)合各診斷系統(tǒng)的共性[6],采用XML 文件協(xié)議配置的方法,設(shè)計(jì)了基于協(xié)議配置的通用在線(xiàn)診斷系統(tǒng),實(shí)現(xiàn)對(duì)軌道交通信號(hào)系統(tǒng)中各設(shè)備的診斷。該系統(tǒng)具有較高的靈活性,能夠減少故障診斷的迭代次數(shù),節(jié)省了人力成本,有效保障軌道交通信號(hào)系統(tǒng)的正常運(yùn)行[7]。

1 系統(tǒng)介紹

1.1 網(wǎng)絡(luò)結(jié)構(gòu)

在線(xiàn)診斷系統(tǒng)與設(shè)備之間的通信一般采用雙網(wǎng)冗余通信(紅網(wǎng)和藍(lán)網(wǎng))[8],傳輸層采用用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP,User Datagram Protocol)[9]。在線(xiàn)診斷系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。

圖1 在線(xiàn)診斷系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)

1.2 系統(tǒng)架構(gòu)

本文在多個(gè)在線(xiàn)診斷系統(tǒng)共性分析的基礎(chǔ)上,將不同品牌設(shè)備的報(bào)文協(xié)議進(jìn)行歸納和總結(jié),同時(shí)結(jié)合軌道交通系統(tǒng)設(shè)備的特點(diǎn),設(shè)計(jì)了基于協(xié)議配置的通用在線(xiàn)診斷系統(tǒng)(簡(jiǎn)稱(chēng):通用在線(xiàn)診斷系統(tǒng))。

在線(xiàn)診斷系統(tǒng)的架構(gòu)如圖2 所示,分為3 層:數(shù)據(jù)展現(xiàn)層、數(shù)據(jù)控制層、數(shù)據(jù)接收層。(1)數(shù)據(jù)控制層包括協(xié)議配置模塊、配置文件處理模塊、數(shù)據(jù)解析模塊;(2)數(shù)據(jù)接收層包括數(shù)據(jù)接收與存儲(chǔ)模塊;(3)數(shù)據(jù)展現(xiàn)層包括個(gè)性化顯示模塊。在線(xiàn)診斷系統(tǒng)的通用性通過(guò)數(shù)據(jù)控制層來(lái)實(shí)現(xiàn),以更加靈活地適用于不同產(chǎn)品的設(shè)備。因此,數(shù)據(jù)控制層的設(shè)計(jì)是通用在線(xiàn)診斷系統(tǒng)的關(guān)鍵技術(shù)。

圖2 通用在線(xiàn)診斷系統(tǒng)架構(gòu)

2 系統(tǒng)實(shí)現(xiàn)

2.1 協(xié)議配置模塊

在協(xié)議配置模塊中,用戶(hù)可以根據(jù)實(shí)際需求進(jìn)行個(gè)性化配置。配置時(shí),用戶(hù)需依據(jù)本文系統(tǒng)與設(shè)備的下位機(jī)之間的通信協(xié)議進(jìn)行配置。配置文件包括幀類(lèi)型配置文件(Frame.xml)、幀格式配置文件(Format.xml)、枚舉文件(Enumerate.xml),具體如下。

(1)幀類(lèi)型配置文件:配置通信協(xié)議中所有幀的幀類(lèi)型及其屬性,定義幀的名稱(chēng)、最大長(zhǎng)度等。

(2)幀格式配置文件:配置各個(gè)幀類(lèi)型所包括的字段(可以是全部字段,也可以是部分字段)的屬性,在屬性中對(duì)字段(和下位機(jī)的關(guān)鍵變量相對(duì)應(yīng))的名稱(chēng)、起始字節(jié)、長(zhǎng)度,在界面中所占頁(yè)數(shù)、行數(shù)、列數(shù),以及限制屬性等進(jìn)行定義。

(3)枚舉文件:配置某些字段值的宏定義或具體含義。例如,當(dāng)某字段的值為0 時(shí),表示燈滅;值為1 時(shí),表示燈亮。

通用在線(xiàn)診斷系統(tǒng)使用XML 文件來(lái)定義這3 種配置文件。幀類(lèi)型和幀格式是一對(duì)一的關(guān)系,即一種幀類(lèi)型對(duì)應(yīng)一種幀格式,那么配置n個(gè)幀類(lèi)型就要配置n個(gè)幀格式。幀格式和枚舉類(lèi)型是一對(duì)多的關(guān)系,即1 個(gè)幀格式可以對(duì)應(yīng)1 個(gè)或m個(gè)枚舉類(lèi)型。幀類(lèi)型、幀格式和枚舉類(lèi)型的對(duì)應(yīng)關(guān)系如圖3 所示。如果通信協(xié)議的內(nèi)容較簡(jiǎn)單,通用在線(xiàn)診斷系統(tǒng)支持通過(guò)人工配置或界面來(lái)修改字段屬性。如果通信協(xié)議的內(nèi)容較長(zhǎng),通用在線(xiàn)診斷系統(tǒng)支持通過(guò)Excel文件的形式修改字段屬性,然后使用轉(zhuǎn)換工具將Excel 文件轉(zhuǎn)換成系統(tǒng)可讀取的XML 文件。

圖3 幀類(lèi)型、幀格式和枚舉文件的對(duì)應(yīng)關(guān)系

2.2 配置文件處理模塊

配置文件處理模塊讀取配置文件Frame.xml、Format.xml、Enumerate.xml,并分別放到3 個(gè)類(lèi)對(duì)象創(chuàng)建的實(shí)例中。幀類(lèi)型類(lèi)對(duì)象定義了幀類(lèi)型的ID、幀名稱(chēng)、幀長(zhǎng)度等成員變量。幀格式類(lèi)對(duì)象定義了幀格式的ID、對(duì)應(yīng)的幀名稱(chēng)、字段名稱(chēng)、數(shù)據(jù)類(lèi)型、字段的開(kāi)始字節(jié)、字段所占的位數(shù)(需要按位顯示時(shí))、字段所占字節(jié)長(zhǎng)度、字段在界面上顯示的頁(yè)號(hào)、字段在界面上顯示的列號(hào)、字段在界面上顯示的行號(hào)等成員變量。枚舉文件類(lèi)對(duì)象定義枚舉文件的ID、枚舉類(lèi)型的名稱(chēng)、枚舉值等成員變量。3 個(gè)類(lèi)對(duì)象相互關(guān)聯(lián)后保存在Analyse Service。通用在線(xiàn)診斷系統(tǒng)所有的報(bào)文解析都基于Analyselyse Service進(jìn)行處理。

2.3 數(shù)據(jù)解析模塊

通用在線(xiàn)診斷系統(tǒng)啟動(dòng)時(shí)先獲取要接收的報(bào)文的幀類(lèi)型,然后開(kāi)啟相應(yīng)數(shù)量的線(xiàn)程來(lái)處理數(shù)據(jù)。其中,幀類(lèi)型既可以通過(guò)用戶(hù)交互來(lái)獲得,也可以從配置文件中得到。當(dāng)選擇某種幀類(lèi)型時(shí),系統(tǒng)會(huì)獲取對(duì)應(yīng)的所有幀格式和枚舉類(lèi)型,存放到AnalyseService 創(chuàng)建的類(lèi)對(duì)象。AnalyseService 為每個(gè)線(xiàn)程創(chuàng)建一個(gè)類(lèi)對(duì)象。

通用在線(xiàn)診斷系統(tǒng)收到下位機(jī)發(fā)送的報(bào)文后,會(huì)根據(jù)幀類(lèi)型來(lái)自動(dòng)匹配不同的線(xiàn)程。當(dāng)前線(xiàn)程對(duì)收到的報(bào)文進(jìn)行一致性判斷,當(dāng)且僅當(dāng)報(bào)文的循環(huán)冗余校驗(yàn)(CRC,Cyclic Redundancy Check)碼、長(zhǎng)度、幀類(lèi)型等一致時(shí),才會(huì)將其加入對(duì)應(yīng)的線(xiàn)程消息隊(duì)列。在加入線(xiàn)程消息隊(duì)列前,當(dāng)前線(xiàn)程會(huì)將報(bào)文的消息頭(冗余層、信號(hào)層等)、消息尾(CRC碼等)過(guò)濾,并將過(guò)濾后的報(bào)文加入線(xiàn)程消息隊(duì)列。通用在線(xiàn)診斷系統(tǒng)對(duì)報(bào)文的解析過(guò)程如圖4 所示。在多線(xiàn)程任務(wù)中,為了保證數(shù)據(jù)的安全性和一致性,消息隊(duì)列需要進(jìn)行加鎖處理。

圖4 通用在線(xiàn)診斷系統(tǒng)對(duì)報(bào)文的解析過(guò)程

通用在線(xiàn)診斷系統(tǒng)從線(xiàn)程消息隊(duì)列中取出數(shù)據(jù),并對(duì)AnalyseService的數(shù)組FormatArray 進(jìn)行賦值。FormatArray 定義了幀類(lèi)型、界面顯示的幀名稱(chēng)、字段名稱(chēng)、每個(gè)字段的起始字節(jié)數(shù)、每個(gè)字段的格式、每個(gè)字段在界面中顯示的頁(yè)、每個(gè)字段在界面中顯示的行、每個(gè)字段在界面中顯示的列數(shù),以及當(dāng)字段為數(shù)值時(shí),其值范圍的最大值和最小值等。通用在線(xiàn)診斷系統(tǒng)依次讀取每個(gè)數(shù)據(jù)包中的數(shù)據(jù),并存儲(chǔ)至字符串AnalysedReturnResult,同時(shí)根據(jù)字段類(lèi)型和字段值范圍,對(duì)相應(yīng)的字段值進(jìn)行判斷。如果當(dāng)前字段值在范圍之外,通用在線(xiàn)診斷系統(tǒng)使用Map 類(lèi)型的變量對(duì)該字段進(jìn)行標(biāo)記。

2.4 數(shù)據(jù)接收與存儲(chǔ)模塊

為了保證數(shù)據(jù)的正確性與可靠性,數(shù)據(jù)接收模塊采用Select 模式來(lái)接收數(shù)據(jù)。Select 模式采用多路復(fù)用的機(jī)制,一個(gè)進(jìn)程可以監(jiān)視一個(gè)或多個(gè)描述符(SocketID),將這些描述符放到一個(gè)表中。當(dāng)檢測(cè)到表中的某個(gè)描述符讀就緒時(shí),就立即返回并告訴內(nèi)核去讀取報(bào)文,故可以非阻塞地接收一個(gè)或多個(gè)系統(tǒng)設(shè)備周期性發(fā)出的網(wǎng)絡(luò)報(bào)文。

本文系統(tǒng)將數(shù)據(jù)持久化存儲(chǔ)到本地硬盤(pán)上,并把壓縮后的數(shù)據(jù)保存到日志文件。因?yàn)樵诰€(xiàn)診斷系統(tǒng)需要記錄大量的數(shù)據(jù),所以通用在線(xiàn)診斷系統(tǒng)解決了以下問(wèn)題。

(1)在線(xiàn)診斷系統(tǒng)接收網(wǎng)絡(luò)數(shù)據(jù)量大。設(shè)備中的下位機(jī)周期性地(最短周期為100 ms)發(fā)送報(bào)文,且發(fā)送的數(shù)據(jù)量大,這會(huì)引起數(shù)據(jù)丟失、文件損壞等問(wèn)題,因此下位機(jī)發(fā)出每個(gè)數(shù)據(jù)包時(shí),都使用Deflate 算法進(jìn)行數(shù)據(jù)壓縮[10]。通用在線(xiàn)診斷系統(tǒng)收到下位機(jī)發(fā)送的報(bào)文后,先采用Inflate 算法進(jìn)行解壓,解析完成后再使用Deflate 算法對(duì)數(shù)據(jù)進(jìn)行壓縮,然后保存為日志文件存儲(chǔ)到本地。這種處理方式不僅減輕了網(wǎng)絡(luò)通信的傳輸壓力,提高了傳輸效率,而且節(jié)省了本地硬盤(pán)的存儲(chǔ)空間。

(2)在線(xiàn)診斷系統(tǒng)本地存儲(chǔ)報(bào)文數(shù)據(jù)量大。由于在線(xiàn)診斷系統(tǒng)需要長(zhǎng)期無(wú)間斷地在地鐵現(xiàn)場(chǎng)運(yùn)行,以記錄設(shè)備信息。因此,通用在線(xiàn)診斷系統(tǒng)采用定期刪除存儲(chǔ)數(shù)據(jù)的策略,根據(jù)現(xiàn)場(chǎng)具體情況和設(shè)備的需要,設(shè)置定期策略,例如每天1:00(24 h 制)刪除一個(gè)月以前的數(shù)據(jù)。

2.5 個(gè)性化顯示模塊

當(dāng)收到下位機(jī)設(shè)備發(fā)送的報(bào)文,且經(jīng)過(guò)2.3 節(jié)的數(shù)據(jù)處理后,通用在線(xiàn)診斷系統(tǒng)根據(jù)用戶(hù)選擇的頁(yè)數(shù)m_page 和幀類(lèi)型m_frame 進(jìn)入顯示模塊。在這個(gè)模塊中,通用在線(xiàn)診斷系統(tǒng)調(diào)用AnalyseService 類(lèi)的DoAnalyse 函數(shù)。此函數(shù)根據(jù)當(dāng)前數(shù)據(jù)包報(bào)文中的數(shù)值來(lái)設(shè)置當(dāng)前頁(yè)m_page 各行各列的字段值。與之對(duì)應(yīng)的是數(shù)組FormatArray的各個(gè)變量值,然后DoAnalyse 返回字符串AnalysedReturnResult。當(dāng)AnalysedReturnResult 不為空時(shí),個(gè)性化顯示模塊將字符串的內(nèi)容顯示到通用在線(xiàn)診斷系統(tǒng)的界面上。個(gè)性化顯示模塊處理流程如圖5 所示。其中,個(gè)性化顯示模塊支持界面的頁(yè)、行、列等屬性的選擇和修改,以及對(duì)部分字段顯示項(xiàng)的設(shè)置(配置文件Format.xml 只配置相應(yīng)位置的字段),以使字段顯示到相應(yīng)的位置。

圖5 個(gè)性化顯示模塊處理流程

3 系統(tǒng)應(yīng)用

3.1 應(yīng)用場(chǎng)景

通用在線(xiàn)診斷系統(tǒng)應(yīng)用場(chǎng)景有兩大類(lèi)。

(1)地鐵現(xiàn)場(chǎng)。目前,通用在線(xiàn)診斷系統(tǒng)已隨列車(chē)自動(dòng)控制系統(tǒng)產(chǎn)品被廣泛應(yīng)用于多個(gè)地鐵項(xiàng)目中,如上海某地鐵線(xiàn)、北京某地鐵線(xiàn)等。當(dāng)通用在線(xiàn)診斷系統(tǒng)運(yùn)行在工控機(jī)時(shí),會(huì)隨著工控機(jī)的啟動(dòng)而自動(dòng)運(yùn)行,并根據(jù)地鐵現(xiàn)場(chǎng)的需要,按所配置的通信協(xié)議來(lái)接收指定幀類(lèi)型的報(bào)文。通用在線(xiàn)診斷系統(tǒng)的運(yùn)行界面如圖6所示,能夠清晰地顯示系統(tǒng)中各設(shè)備的運(yùn)行情況。當(dāng)發(fā)生故障時(shí),工作人員只需要拷貝相關(guān)運(yùn)行日志文件,使用通用在線(xiàn)診斷系統(tǒng)來(lái)分析問(wèn)題。其中,通用在線(xiàn)診斷系統(tǒng)的分析方法是根據(jù)故障時(shí)間段,鎖定相關(guān)數(shù)據(jù)文件,根據(jù)關(guān)鍵變量進(jìn)行搜索,查找相關(guān)聯(lián)的關(guān)鍵變量值的變化,協(xié)助工作人員查找故障原因。

圖6 通用在線(xiàn)診斷系統(tǒng)運(yùn)行界面

(2)系統(tǒng)研發(fā)或測(cè)試。該應(yīng)用場(chǎng)景的主要用戶(hù)是研發(fā)或測(cè)試人員。由于下位機(jī)軟件不方便打印更多的日志,通用在線(xiàn)診斷系統(tǒng)可以使研發(fā)或測(cè)試人員方便地對(duì)系統(tǒng)運(yùn)行時(shí)各字段值(關(guān)鍵變量)進(jìn)行診斷與分析,以輔助開(kāi)發(fā)或測(cè)試,提高了工作效率。

3.2 通信協(xié)議模塊配置

通用在線(xiàn)診斷系統(tǒng)在運(yùn)行前需要配置通信協(xié)議。幀類(lèi)型、幀格式、枚舉文件這3 種配置文件的配置可以通過(guò)系統(tǒng)來(lái)進(jìn)行(配置界面如圖7~圖9 所示),也可以通過(guò)XML 文件進(jìn)行配置,或者在Excel 中配置好后轉(zhuǎn)換成XML 文件。

圖7 幀類(lèi)型配置界面

圖8 幀格式文件配置界面

圖9 枚舉類(lèi)型文件配置界面

4 結(jié)束語(yǔ)

基于協(xié)議配置的通用在線(xiàn)診斷系統(tǒng)實(shí)現(xiàn)了對(duì)不同設(shè)備的在線(xiàn)診斷,節(jié)省了開(kāi)發(fā)時(shí)間,提高了開(kāi)發(fā)效率,保障了開(kāi)發(fā)質(zhì)量,減少系統(tǒng)及相關(guān)產(chǎn)品的迭代次數(shù),降低了開(kāi)發(fā)成本。同時(shí),通用在線(xiàn)診斷系統(tǒng)也有效地分析與診斷軌道交通信號(hào)系統(tǒng)設(shè)備的運(yùn)行狀態(tài),為設(shè)備故障時(shí)的分析與復(fù)盤(pán)提供了依據(jù),大大提高了維護(hù)保障效率與故障處理速度護(hù)保障效率與故障處理速度[11]。目前,基于協(xié)議配置的通用在線(xiàn)診斷系統(tǒng)已在上海、北京等多個(gè)地鐵現(xiàn)場(chǎng)穩(wěn)定運(yùn)行,不足之處是還未實(shí)現(xiàn)批量搜索功能。下一步,將從固定日期的數(shù)據(jù)文件中根據(jù)關(guān)鍵字,批量生成符合用戶(hù)條件的分析報(bào)告等方向進(jìn)行研究。

猜你喜歡
診斷系統(tǒng)配置文件通信協(xié)議
基于Docker的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)配置文件管理軟件的設(shè)計(jì)與實(shí)現(xiàn)
從Windows 10中刪除所有網(wǎng)絡(luò)配置文件
用軟件處理Windows沙盒配置文件
互不干涉混用Chromium Edge
歐克診斷儀推出行業(yè)高配極致雙模診斷系統(tǒng)
斷路器檢測(cè)系統(tǒng)與診斷系統(tǒng)研究
數(shù)控機(jī)床故障診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
獎(jiǎng)狀訓(xùn)練器飛行管理系統(tǒng)研究
基于R8C的汽車(chē)OBD通用故障診斷儀設(shè)計(jì)
SIP協(xié)議系統(tǒng)模型的形式化研究
东兴市| 通化县| 黄冈市| 新化县| 都昌县| 黄大仙区| 北海市| 新绛县| 淮滨县| 江安县| 漠河县| 遵义县| 莎车县| 万全县| 珲春市| 象山县| 涡阳县| 宜兴市| 红安县| 逊克县| 昭苏县| 文昌市| 清流县| 台东县| 凤凰县| 兴安盟| 澜沧| 宁德市| 灵寿县| 安陆市| 绥化市| 独山县| 根河市| 阜阳市| 青川县| 千阳县| 肇州县| 信丰县| 定陶县| 临朐县| 宜昌市|