李曉哲
(上海大學(xué)管理學(xué)院,上海 200444)
氫燃料是當(dāng)前新能源汽車領(lǐng)域研究的重點(diǎn),氫燃料電池系統(tǒng)因其高功率、低噪音、零污染等優(yōu)勢(shì)具備廣闊的市場(chǎng)應(yīng)用前景[1]。但是氫燃料電池系統(tǒng)整體的體積和重量較大,目前在乘用車領(lǐng)域應(yīng)用較少,特別是在國(guó)內(nèi),其應(yīng)用主要集中在公交車、叉車、重型卡車等方面[2-3]。X公司研發(fā)了一套氫燃料叉車系統(tǒng),在正式投入市場(chǎng)營(yíng)運(yùn)之前,有必要對(duì)車輛運(yùn)行中的各項(xiàng)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)與管理,記錄并評(píng)估其上路的各項(xiàng)性能。為此搭建了一套遠(yuǎn)程數(shù)據(jù)管理系統(tǒng),實(shí)現(xiàn)氫燃料叉車系統(tǒng)CAN總線數(shù)據(jù)上傳云平臺(tái),利用LabVIEW[4-5]編寫上位機(jī)并采集與管理數(shù)據(jù),協(xié)議解析,數(shù)據(jù)的顯示及存儲(chǔ)等功能。
氫燃料叉車數(shù)據(jù)管理系統(tǒng)的硬件系統(tǒng)主要由氫燃料電池系統(tǒng)、CAN總線、CANDTU-200UWG型無(wú)線終端、云端服務(wù)器以及數(shù)據(jù)流量卡組成,各個(gè)部分的關(guān)系示意圖與叉車運(yùn)行實(shí)物圖如圖1所示。
圖1 叉車數(shù)據(jù)采集系統(tǒng)示意圖與實(shí)物圖
CAN總線由CANH與CANL兩條總線構(gòu)成,相
較于RS485通信總線,CAN總線具備傳輸速度快、抗干擾能力強(qiáng)、總線利用率高且具備完整的錯(cuò)誤檢測(cè)與保護(hù)機(jī)制等優(yōu)勢(shì)[6],是目前應(yīng)用最廣泛的工業(yè)級(jí)現(xiàn)場(chǎng)總線之一。本文采用CAN總線數(shù)據(jù)幀類型為擴(kuò)展幀,主要由幀起始SOF、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC校驗(yàn)場(chǎng)、應(yīng)答場(chǎng)與幀結(jié)尾EOF構(gòu)成。本文采用了周立功的CANDTU-200UWG型終端,并取得云平臺(tái)技術(shù)支持,通過(guò)調(diào)用DLL文件可以快速獲取并解析CAN總線數(shù)據(jù)。
利用LabVIEW軟件編制上位機(jī),采用QMH(隊(duì)列消息處理器)[7-8]框架,QMH框架依賴于LabVIEW軟件的隊(duì)列技術(shù),具備高內(nèi)聚、低耦合、易擴(kuò)展的特性,適合多線程并行程序的開(kāi)發(fā)。本文利用此框架搭建了控制器、數(shù)據(jù)采集、數(shù)據(jù)顯示以及用戶界面等四個(gè)模塊。
首先創(chuàng)建隊(duì)列通道,為隊(duì)列創(chuàng)建程序框圖,利用“For循環(huán)”創(chuàng)建本文所需要的四個(gè)隊(duì)列并配置隊(duì)列名稱與數(shù)據(jù)類型,通過(guò)“強(qiáng)制類型轉(zhuǎn)換”函數(shù)將輸出的隊(duì)列引用數(shù)組轉(zhuǎn)換為簇,可以在程序的任意位置獲取各個(gè)模塊的隊(duì)列引用。
控制器模塊為整個(gè)程序的控制核心,負(fù)責(zé)響應(yīng)用戶界面、程序停止、隊(duì)列注銷等操作。
數(shù)據(jù)采集模塊主要依賴于周立功二次開(kāi)發(fā)函數(shù)庫(kù)與ZCloud云平臺(tái)支持,通過(guò)LabVIEW“調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)”函數(shù)調(diào)用DLL來(lái)實(shí)現(xiàn)上位機(jī)與云平臺(tái)的交互功能,主要的函數(shù)庫(kù)調(diào)用順序?yàn)椋?)首先調(diào)用“ZCLOUD_SetServerInfo”與“ZCLOUD_ConnectServer”函數(shù)連接云平臺(tái),并調(diào)用“ZCAN_OpenDevice”“ZCAN_InitCAN”與“ZCAN_StartCAN”函數(shù)配置設(shè)備句柄以及通道句柄;2)調(diào)用“ZCAN_GetReceiveNum”函數(shù)查詢當(dāng)前CAN卡緩沖區(qū)內(nèi)部的報(bào)文數(shù)目,若大于0,將調(diào)用“ZCAN_Receive”函數(shù)接收Buffer內(nèi)的所有數(shù)據(jù),若CAN卡內(nèi)的數(shù)據(jù)數(shù)目為0,則等待100 ms后繼續(xù)執(zhí)行此步驟;3)利用For循環(huán)將采集到的原始數(shù)據(jù)以“簇”的形式輸入“數(shù)據(jù)顯示”隊(duì)列處理。
數(shù)據(jù)顯示模塊主要包括數(shù)據(jù)解析與數(shù)據(jù)顯示模塊,本文通過(guò)X-NET工具包定義了DBC[9]文件,實(shí)現(xiàn)了DBC文件自動(dòng)解析,可以自動(dòng)識(shí)別報(bào)文參數(shù),并根據(jù)DBC文件反映的信息解析CAN報(bào)文。實(shí)現(xiàn)方法為:1)首先將數(shù)據(jù)簇解綁為ID與U8數(shù)組報(bào);2)將U8數(shù)組轉(zhuǎn)換為64位布爾數(shù)組,根據(jù)DBC定義的CAN節(jié)點(diǎn)信息,索引出布爾數(shù)組內(nèi)對(duì)應(yīng)的信號(hào)值;3)經(jīng)過(guò)程序自動(dòng)換算獲得解析值,將解析好的數(shù)據(jù)輸入“用戶界面”隊(duì)列中,DBC文件數(shù)據(jù)解析程序框圖如圖2所示。
圖2 DBC文件解析程序框圖
GUI界面主要負(fù)責(zé)與前面板控件與菜單欄事件響應(yīng)[10],用戶可以通過(guò)菜單按鈕切換選項(xiàng)卡主頁(yè)面,亦可存儲(chǔ)源數(shù)據(jù)或者解析數(shù)據(jù),并保存為CSV文件格式。氫燃料叉車數(shù)據(jù)管理系統(tǒng)用戶界面如圖3所示。
圖3 叉車數(shù)據(jù)管理系統(tǒng)的用戶界面
搭建完整的氫燃料叉車遠(yuǎn)程數(shù)據(jù)管理系統(tǒng),向車載儲(chǔ)氫罐充入一定量氫氣進(jìn)行測(cè)試,使用遠(yuǎn)程數(shù)據(jù)管理系統(tǒng)實(shí)時(shí)采集和解析數(shù)據(jù),氫燃料叉車系統(tǒng)輸出的電壓、電流和氫氣剩余量如圖4所示。
圖4 氫燃料叉車運(yùn)行數(shù)據(jù)
測(cè)試表明,遠(yuǎn)程數(shù)據(jù)管理系統(tǒng)每完成一次數(shù)據(jù)采集處理的響應(yīng)間隔為20 ms,采集的燃料電池電壓(Fuel cell output voltage)、燃料電池電流(Fuel cell output current)和氫氣剩余量(Fuel surplus)等數(shù)據(jù)清晰完整。通過(guò)分析數(shù)據(jù)文件,可以有效幫助技術(shù)人員做好氫叉車研發(fā)項(xiàng)目的質(zhì)量管理和風(fēng)險(xiǎn)評(píng)估等工作,對(duì)方案的進(jìn)一步優(yōu)化也起到了極大推動(dòng)作用。