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