李曉哲
(上海大學管理學院,上海 200444)
氫燃料是當前新能源汽車領域研究的重點,氫燃料電池系統因其高功率、低噪音、零污染等優勢具備廣闊的市場應用前景[1]。但是氫燃料電池系統整體的體積和重量較大,目前在乘用車領域應用較少,特別是在國內,其應用主要集中在公交車、叉車、重型卡車等方面[2-3]。X公司研發了一套氫燃料叉車系統,在正式投入市場營運之前,有必要對車輛運行中的各項數據進行實時監測與管理,記錄并評估其上路的各項性能。為此搭建了一套遠程數據管理系統,實現氫燃料叉車系統CAN總線數據上傳云平臺,利用LabVIEW[4-5]編寫上位機并采集與管理數據,協議解析,數據的顯示及存儲等功能。
氫燃料叉車數據管理系統的硬件系統主要由氫燃料電池系統、CAN總線、CANDTU-200UWG型無線終端、云端服務器以及數據流量卡組成,各個部分的關系示意圖與叉車運行實物圖如圖1所示。

圖1 叉車數據采集系統示意圖與實物圖
CAN總線由CANH與CANL兩條總線構成,相
較于RS485通信總線,CAN總線具備傳輸速度快、抗干擾能力強、總線利用率高且具備完整的錯誤檢測與保護機制等優勢[6],是目前應用最廣泛的工業級現場總線之一。本文采用CAN總線數據幀類型為擴展幀,主要由幀起始SOF、仲裁場、控制場、數據場、CRC校驗場、應答場與幀結尾EOF構成。本文采用了周立功的CANDTU-200UWG型終端,并取得云平臺技術支持,通過調用DLL文件可以快速獲取并解析CAN總線數據。
利用LabVIEW軟件編制上位機,采用QMH(隊列消息處理器)[7-8]框架,QMH框架依賴于LabVIEW軟件的隊列技術,具備高內聚、低耦合、易擴展的特性,適合多線程并行程序的開發。本文利用此框架搭建了控制器、數據采集、數據顯示以及用戶界面等四個模塊。
首先創建隊列通道,為隊列創建程序框圖,利用“For循環”創建本文所需要的四個隊列并配置隊列名稱與數據類型,通過“強制類型轉換”函數將輸出的隊列引用數組轉換為簇,可以在程序的任意位置獲取各個模塊的隊列引用。
控制器模塊為整個程序的控制核心,負責響應用戶界面、程序停止、隊列注銷等操作。
數據采集模塊主要依賴于周立功二次開發函數庫與ZCloud云平臺支持,通過LabVIEW“調用庫函數節點”函數調用DLL來實現上位機與云平臺的交互功能,主要的函數庫調用順序為:1)首先調用“ZCLOUD_SetServerInfo”與“ZCLOUD_ConnectServer”函數連接云平臺,并調用“ZCAN_OpenDevice”“ZCAN_InitCAN”與“ZCAN_StartCAN”函數配置設備句柄以及通道句柄;2)調用“ZCAN_GetReceiveNum”函數查詢當前CAN卡緩沖區內部的報文數目,若大于0,將調用“ZCAN_Receive”函數接收Buffer內的所有數據,若CAN卡內的數據數目為0,則等待100 ms后繼續執行此步驟;3)利用For循環將采集到的原始數據以“簇”的形式輸入“數據顯示”隊列處理。
數據顯示模塊主要包括數據解析與數據顯示模塊,本文通過X-NET工具包定義了DBC[9]文件,實現了DBC文件自動解析,可以自動識別報文參數,并根據DBC文件反映的信息解析CAN報文。實現方法為:1)首先將數據簇解綁為ID與U8數組報;2)將U8數組轉換為64位布爾數組,根據DBC定義的CAN節點信息,索引出布爾數組內對應的信號值;3)經過程序自動換算獲得解析值,將解析好的數據輸入“用戶界面”隊列中,DBC文件數據解析程序框圖如圖2所示。

圖2 DBC文件解析程序框圖
GUI界面主要負責與前面板控件與菜單欄事件響應[10],用戶可以通過菜單按鈕切換選項卡主頁面,亦可存儲源數據或者解析數據,并保存為CSV文件格式。氫燃料叉車數據管理系統用戶界面如圖3所示。

圖3 叉車數據管理系統的用戶界面
搭建完整的氫燃料叉車遠程數據管理系統,向車載儲氫罐充入一定量氫氣進行測試,使用遠程數據管理系統實時采集和解析數據,氫燃料叉車系統輸出的電壓、電流和氫氣剩余量如圖4所示。

圖4 氫燃料叉車運行數據
測試表明,遠程數據管理系統每完成一次數據采集處理的響應間隔為20 ms,采集的燃料電池電壓(Fuel cell output voltage)、燃料電池電流(Fuel cell output current)和氫氣剩余量(Fuel surplus)等數據清晰完整。通過分析數據文件,可以有效幫助技術人員做好氫叉車研發項目的質量管理和風險評估等工作,對方案的進一步優化也起到了極大推動作用。