基于LabVIEW的電池管理系統(tǒng)監(jiān)控平臺開發(fā)
圖2 監(jiān)控平臺功能模塊
3 軟件設計
采用N I公司的LabV IEW8. 2作為監(jiān)控平臺軟件的開發(fā)平臺, 既能很方便的實現(xiàn)監(jiān)控平臺需要的功能, 又能使軟件設計變得直觀、快捷, 同時軟件兼具有靈活性、可擴展性、可維護性、代碼重用性和可讀性。
為實現(xiàn)上述監(jiān)控平臺的各個功能, 同時保證平臺高效的性能, 軟件設計應用了LabV IEW 的多線程技術(shù)。所謂線程( thread)是指由進程進一步派生出來的一組代碼(指令組) 的運行過程。多線程技術(shù)可以使同一個程序有幾個并行運行的路徑, 從而提高程序的運行速度, 線程所占用的系統(tǒng)資源比進程要小。在一個程序中, 線程并不是越多越好, 也并不是越多程序執(zhí)行得越快。針對計算機的CPU 只有一個的情況, 當一個線程在執(zhí)行的時候, 其它的線程就處于掛起或者阻塞狀態(tài), 那么程序使用內(nèi)存的效率就會很低。針對監(jiān)控平臺的功能, 要求同時考慮平臺的高效運行, 軟件設計了四個線程, 即通過CAN 總線的數(shù)據(jù)采集與顯示; 平臺參數(shù)配置; 數(shù)據(jù)存儲; 系統(tǒng)標定和故障診斷。
3. 1 數(shù)據(jù)采集及顯示
平臺采用了USBCAN - II智能CAN 接口卡連接PC 與電池管理系統(tǒng), 實時接收電池管理系統(tǒng)CAN 總線的數(shù)據(jù)并進行顯示。USBCAN - II智能CAN 接口卡為應用程序提供了可調(diào)用的動態(tài)鏈接庫, 利用LabV IEW 中的調(diào)用庫函數(shù)節(jié)點( Ca llL ibraryFunction, 簡稱CLF ) 可實現(xiàn)對USBCAN - II智能CAN 接口卡的靈活操作, 應用CLF 需要對其進行配置, 配置主要根據(jù)接口函數(shù)設定調(diào)用規(guī)范為stdca ll(W INAPI) , 同時根據(jù)函數(shù)參數(shù)設定CLF的參數(shù)。最終設置好的CLF為編程提供了便捷的接口,也為平臺參數(shù)配置功能提供了方便, 通過設備類型號和設備索引號可靈活在USBCAN - II智能CAN卡的COM1和COM2之間進行選擇。按類似的設置規(guī)則配置好USBCAN - II的其他接口函數(shù)的調(diào)用,可對USBCAN- II智能CAN進行靈活的操作。
根據(jù)USBCAN- II操作要求, 數(shù)據(jù)采集流程如圖3。為了操作方便, 接收數(shù)據(jù)被封裝成子V I。
LabV IEW 中的子V I類似于C 語言中的子函數(shù), 可以被其他V I調(diào)用。數(shù)據(jù)接收子V I也為平臺參數(shù)配置提供了配置接口, 接收到的數(shù)據(jù)被打包成LabV IEW 中的簇變量, 簇是LabV IEW 中的一種數(shù)據(jù)類型, 它可以包含多個不同數(shù)據(jù)類型的元素, 類似C語言中的結(jié)構(gòu)體。數(shù)據(jù)的打包方便了對接收到的數(shù)據(jù)進行顯示與存儲。數(shù)據(jù)接收采用循環(huán)接收模式,直至收到停止接收命令。
圖3 數(shù)據(jù)采集流程。
評論