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

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

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

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

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