• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2021-11-06 08:21:04王曙光張立鵬張奕男
      鐵路計算機應(yīng)用 2021年9期
      關(guān)鍵詞:枚舉診斷系統(tǒng)配置文件

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

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

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

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

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

      1 系統(tǒng)介紹

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

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

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

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

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

      在線診斷系統(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ù)接收與存儲模塊;(3)數(shù)據(jù)展現(xiàn)層包括個性化顯示模塊。在線診斷系統(tǒng)的通用性通過數(shù)據(jù)控制層來實現(xiàn),以更加靈活地適用于不同產(chǎn)品的設(shè)備。因此,數(shù)據(jù)控制層的設(shè)計是通用在線診斷系統(tǒng)的關(guān)鍵技術(shù)。

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

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

      2.1 協(xié)議配置模塊

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

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

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

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

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

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

      2.2 配置文件處理模塊

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

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

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

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

      圖4 通用在線診斷系統(tǒng)對報文的解析過程

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

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

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

      本文系統(tǒng)將數(shù)據(jù)持久化存儲到本地硬盤上,并把壓縮后的數(shù)據(jù)保存到日志文件。因為在線診斷系統(tǒng)需要記錄大量的數(shù)據(jù),所以通用在線診斷系統(tǒng)解決了以下問題。

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

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

      2.5 個性化顯示模塊

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

      圖5 個性化顯示模塊處理流程

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

      3.1 應(yīng)用場景

      通用在線診斷系統(tǒng)應(yīng)用場景有兩大類。

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

      圖6 通用在線診斷系統(tǒng)運行界面

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

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

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

      圖7 幀類型配置界面

      圖8 幀格式文件配置界面

      圖9 枚舉類型文件配置界面

      4 結(jié)束語

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

      猜你喜歡
      枚舉診斷系統(tǒng)配置文件
      提示用戶配置文件錯誤 這樣解決
      基于理解性教學的信息技術(shù)教學案例研究
      速讀·上旬(2022年2期)2022-04-10 16:42:14
      一種高效的概率圖上Top-K極大團枚舉算法
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      區(qū)間軌道電路智能診斷系統(tǒng)的探討
      忘記ESXi主機root密碼怎么辦
      設(shè)備在線診斷系統(tǒng)在唐鋼的建設(shè)與應(yīng)用
      電子測試(2018年13期)2018-09-26 03:30:20
      基于太陽影子定位枚舉法模型的研究
      連鑄板坯質(zhì)量在線診斷系統(tǒng)的應(yīng)用
      新疆鋼鐵(2015年2期)2015-11-07 03:27:52
      罗甸县| 彩票| 绵阳市| 平邑县| 邹城市| 买车| 东莞市| 永州市| 健康| 安远县| 蚌埠市| 北流市| 无极县| 湖北省| 英山县| 徐州市| 汉沽区| 大宁县| 新泰市| 临江市| 平和县| 左云县| 丹江口市| 海城市| 上虞市| 黄山市| 余姚市| 静安区| 息烽县| 东平县| 龙岩市| 庄浪县| 尼玛县| 太原市| 贵阳市| 五寨县| 汉中市| 黄平县| 资中县| 望谟县| 鹤岗市|