艾皖東,張 楊,王建榮,蘇 醒
(中車株洲電力機(jī)車有限公司,湖南 株洲 412000)
列車網(wǎng)絡(luò)控制系統(tǒng)(train control and management system,TCMS)是列車控制系統(tǒng)的大腦,其接收各部件系統(tǒng)狀態(tài)數(shù)據(jù)、輸出車輛控制指令的同時,也在時刻記錄網(wǎng)絡(luò)系統(tǒng)數(shù)據(jù)[1]。其中,中央控制單元(central control unit,CCU)作為TCMS系統(tǒng)中央控制單元,可通過設(shè)備內(nèi)置的鐵電存儲器記錄列車運(yùn)行數(shù)據(jù)。
為保證TCMS系統(tǒng)穩(wěn)定可靠運(yùn)行,列車配備2個CCU設(shè)備,二者互為主備冗余,當(dāng)一個運(yùn)行故障時,另一個立刻接替網(wǎng)絡(luò)控制。當(dāng)CCU運(yùn)行故障或因車輛試驗(yàn)需要手動關(guān)閉,或者通過HMI對2個CCU設(shè)置數(shù)據(jù)不同時,都將導(dǎo)致2個CCU所記錄的列車運(yùn)行數(shù)據(jù)產(chǎn)生差異,當(dāng)不同CCU作為主控時,發(fā)送給HMI的列車運(yùn)行數(shù)據(jù)就會出現(xiàn)差異錯誤。因此,需要通過應(yīng)用層完成對2個CCU存儲列車運(yùn)行數(shù)據(jù)的比較及同步,保證2個CCU存儲列車運(yùn)行數(shù)據(jù)的一致性。
CCU具有專用同步通信通道,但是隨著列車智能化和數(shù)字化的快速發(fā)展普及,原通信通道容量無法滿足智能化列車大數(shù)據(jù)的同步需要。因此,本文將主備CCU同步數(shù)據(jù)按照時間片傳輸,提出一種主備CCU數(shù)據(jù)分時同步方法,從時間維度增擴(kuò)數(shù)據(jù)同步容量,同時制定同步數(shù)據(jù)協(xié)議,更好地滿足列車運(yùn)行數(shù)據(jù)同步功能。
基于DTEC-2系統(tǒng)的TCMS采用模塊化分布式控制技術(shù)[2],具有車輛控制、通信管理、狀態(tài)監(jiān)控、故障診斷、顯示控制和數(shù)據(jù)累積等功能,其中,顯示控制包括與HMI交互數(shù)據(jù)并傳輸狀態(tài)數(shù)據(jù)故障報(bào)警等;數(shù)據(jù)累積包括記錄存儲列車車號、列車輪徑、列車?yán)锍毯土熊嚹芎牡冗\(yùn)行數(shù)據(jù)。
CCU采用主備雙冗余結(jié)構(gòu),CCU通過總線與各系統(tǒng)通信并交互狀態(tài)數(shù)據(jù)和指令數(shù)據(jù),協(xié)同控制車輛各個設(shè)備工作。同時CCU將列車運(yùn)行數(shù)據(jù)發(fā)送給HMI顯示,直觀地展示列車數(shù)據(jù)或提示報(bào)警異常數(shù)據(jù)。
CCU保留了0xFF0、0xFF1端口,用于主備CCU之間數(shù)據(jù)通信。0xFF0和0xFF1周期為512 ms,長度為32 Byte,前4個Byte為底層保留用,后28個Byte為應(yīng)用層數(shù)據(jù)。
首先在CCU設(shè)備配置文件mvb_confm中配置0xFF0和0xFF1為源端口,然后在應(yīng)用層調(diào)用MVB_MASTER_SEND和MVB_MASTER_RECV函數(shù),即開啟主備CCU之間數(shù)據(jù)發(fā)送和接收。
主備CCU列車運(yùn)行數(shù)據(jù)會存儲在CCU設(shè)備鐵電存儲器(FRAM,F(xiàn)erroelectric RAM)中,F(xiàn)ARM具備非易失性、更高讀寫耐久性和更低功耗等特點(diǎn),斷電后FARM記錄的列車運(yùn)行數(shù)據(jù)不會丟失。
CCU設(shè)備鐵電存儲器達(dá)1 024塊,每塊存儲器容量達(dá)128 Byte,由應(yīng)用層配置觸發(fā)CCU鐵電存儲器數(shù)據(jù)的讀取和寫入,調(diào)用SYS_SET_FDDATA函數(shù)將數(shù)據(jù)寫入鐵電存儲器,調(diào)用SYS_GET_FDDATA從鐵電存儲器讀取數(shù)據(jù)。
為更清晰地劃分同步時間片,更好地傳輸列車運(yùn)行數(shù)據(jù),根據(jù)列車功能需求制定主備CCU數(shù)據(jù)分時同步協(xié)議[3-4],如表1所示。0xFF0、0xFF1端口的長度均為32字節(jié),其中1~4字節(jié)為CCU設(shè)備系統(tǒng)預(yù)留,應(yīng)用層不可進(jìn)行讀寫操作;5~30字節(jié)為應(yīng)用層自定義數(shù)據(jù);第31字節(jié)為分時碼(范圍0~255,0代表分時無效)。

表1 主備CCU通信數(shù)據(jù)協(xié)議
表1中,第1時間片(分時碼1)主備CCU互相傳輸CCU版本、CCU狀態(tài)字、列車總里程、列車總能耗和列車車號等;第2時間片(分時碼2)互相傳輸列車輪徑值和空壓機(jī)工作時間;第3時間片(分時碼3)互相傳輸車輛各系統(tǒng)能耗;直到第N時間片(分時碼N)傳輸完成后,從第1時間片(分時碼1)重新傳輸。
協(xié)議中第32字節(jié)為本CCU自累加生命信號,他CCU借助數(shù)據(jù)同步可收到本CCU生命信號,他CCU通過連續(xù)8個周期本CCU生命信號是否跳變判斷本CCU是否正常運(yùn)行,同樣地,本CCU也在判斷他CCU的運(yùn)行狀態(tài)。
主備CCU數(shù)據(jù)分時同步方法主要包括獲取同步數(shù)據(jù)、打包同步數(shù)據(jù)、發(fā)送同步數(shù)據(jù)、接收同步數(shù)據(jù)、解析同步數(shù)據(jù)和使用同步數(shù)據(jù)6個步驟,具體如圖1所示。

圖1 數(shù)據(jù)分時同步流程圖
1)獲取同步數(shù)據(jù)。應(yīng)用層獲取對應(yīng)的實(shí)時數(shù)據(jù)。
2)打包同步數(shù)據(jù)。分時碼通過對本地循環(huán)計(jì)數(shù)值取余得到,若協(xié)議設(shè)定有3個分時碼,則循環(huán)計(jì)數(shù)對數(shù)值3取余。應(yīng)用層在對同步數(shù)據(jù)打包時,根據(jù)協(xié)議將獲取的數(shù)據(jù)對應(yīng)字節(jié)賦值,分時1傳輸?shù)臄?shù)據(jù)為同步數(shù)據(jù)內(nèi)容+分時碼1+本CCU生命信號,分時2傳輸?shù)臄?shù)據(jù)為同步數(shù)據(jù)內(nèi)容+分時碼2+本CCU生命信號,以此類推。
3)發(fā)送同步數(shù)據(jù)。使用MVB_MASTER_SEND函數(shù)發(fā)送數(shù)據(jù)。
4)接收同步數(shù)據(jù)。使用MVB_MASTER_RECV函數(shù)接收數(shù)據(jù)。
5)解析同步數(shù)據(jù)。本CCU接收到他CCU同步數(shù)據(jù)后,首先根據(jù)協(xié)議位解析他CCU的生命信號,若他CCU運(yùn)行異常,則將他CCU同步數(shù)據(jù)置為0,防止數(shù)據(jù)錯誤。若他CCU運(yùn)行正常,則解析分時碼數(shù)值,將分時的同步數(shù)據(jù)按照對應(yīng)協(xié)議解析取出后使用。
6)使用同步數(shù)據(jù)。本CCU完成對他CCU同步數(shù)據(jù)解析后,對于同步的數(shù)據(jù)變量,存在本CCU和他CCU兩個數(shù)據(jù)值,則需要本CCU對2個數(shù)據(jù)值進(jìn)行對比分析,具體處理規(guī)則示例如表2所示。

表2 主備CCU數(shù)據(jù)同步處理規(guī)則示例
根據(jù)同步規(guī)則處理后,使用SYS_SET_FDDATA函數(shù)將同步后的數(shù)據(jù)寫入鐵電存儲器,并在CCU上電啟動時使用SYS_GET_FDDATA函數(shù)從鐵電存儲器讀取數(shù)據(jù)。
列車總里程、列車總能耗和各系統(tǒng)能耗等數(shù)據(jù)可通過HMI設(shè)置。占有端HMI在設(shè)置列車運(yùn)行數(shù)據(jù)時須遵守?cái)?shù)據(jù)同步規(guī)則,若HMI設(shè)置數(shù)據(jù)不滿足同步規(guī)則(如HMI設(shè)置主CCU車輛能耗數(shù)據(jù)小于主備CCU車輛能耗數(shù)據(jù)),HMI設(shè)置數(shù)據(jù)無效。
根據(jù)列車網(wǎng)絡(luò)拓?fù)溥B接CCU、HMI及供電電源,通過試驗(yàn)測試,本文方法達(dá)到預(yù)期功能,如圖2所示。圖2(a)、2(b)為在HMI上分別單獨(dú)設(shè)置Ⅰ端、Ⅱ端CCU設(shè)備列車數(shù)據(jù);圖2(c)為將2個CCU設(shè)備通過MVB總線連接后同步的列車數(shù)據(jù)。
圖2(a)中累計(jì)里程、總能耗、再生能耗、牽引能耗、輔助能耗、空調(diào)能耗數(shù)據(jù)分別為10、21、32、43、54、65;圖2(b)中對應(yīng)為10、32、21、54、43、66;數(shù)據(jù)同步后,圖2(c)對應(yīng)為10、32、32、54、54、66。其中,空調(diào)能耗差值未達(dá)到設(shè)定閾值,HMI顯示II端主CCU數(shù)據(jù)。

圖2 列車運(yùn)行數(shù)據(jù)分時同步
主備CCU數(shù)據(jù)分時同步方法在低地板儲能式有軌電車上通過試驗(yàn)驗(yàn)證,達(dá)到了預(yù)期功能效果,并且已批量裝車應(yīng)用。
智能化列車的發(fā)展和普及對數(shù)據(jù)量提出了新的需求,限于原主備CCU數(shù)據(jù)同步通信容量,本文提出的主備CCU數(shù)據(jù)分時同步方法,將同步數(shù)據(jù)按照規(guī)定時間片傳輸,同時根據(jù)列車功能需求制定了數(shù)據(jù)協(xié)議,不僅從時間維度增擴(kuò)數(shù)據(jù)同步容量,更好地滿足現(xiàn)在的數(shù)據(jù)同步需求,也為后續(xù)項(xiàng)目提供應(yīng)用參考。