陸 宇
(上海電氣集團股份有限公司中央研究院,上海 200070)
日益突出的環境問題和資源問題促進了新能源技術的迅猛發展。目前,這些可再生能源的發展面臨電力品質差和并網難的瓶頸問題。同時,現階段用戶對電能質量和電力品質的要求越來越高,傳統的電力系統已經不能很好地滿足用戶需求,因而智能電網和微電網等電網新技術應運而生。儲能技術是解決新能源發電并網、建設智能電網和微電網的關鍵技術之一,將迎來巨大的市場機遇。為了分析整個儲能系統運行過程中電池各項參數的變化情況,提高儲能系統運行的可靠性、穩定性,本文基于LABVIEW設計了一套電池數據采集系統,通過Modbus協議將采集到的電池信息存儲至數據庫中,為今后分析電池特性提供依據。
基于LABVIEW的儲能電池數據采集系統由1塊BCU、23塊BMU、上位監控計算機組成。每塊BMU均由MSP430單片機來控制,MSP430通過與AD芯片BQ76PL536級聯的方式來采集電池模組的電壓及溫度信息,然后再以串口的方式將數據傳送至主板。主板是由DSP28335芯片來控制,通過AD7656采集電流信息,并將子板所傳送的數據進行匯總,最終通過串口的方式傳送至上位監控計算機。系統基本框架如圖1所示。

圖1 系統硬件結構
LABVIEW庫中提供了基于標準I/O應用程序接口的VISA庫,VISA除了具有很好的兼容性、擴展性和獨立性外,它還有一個顯著的特點是平臺可移植性。任何使用了VISA控件的VI函數都能夠輕易地在其他平臺上進行使用[1,2]。
VISA庫中最常用的串口通信函數有:VISA Configure Serial Port(串口配置)、VISA Write(寫)、VISA Read(讀)、VISA Close(關閉)。
VISA Configure Serial Port函數用于對串口進行配置,包括設置串口的波特率、數據位、奇偶校驗等參數。在進行串口通信前,只有先設置好串口的各項參數才能保持正常通信。本文中主板與上位監控計算機之間采用的是Modbus通信協議,所以在進行通信前先要對串口進行Modbus初始化。Modbus初始化程序框圖如圖2所示。
利用VISA實現Modbus通信可以分為以下幾個步驟:按照Modbus協議規則設置串口的通信參數;向下位機發送Modbus請求指令;延時1.75 ms,等待下位機主板執行命令,并返回相應的數據包;從串口中讀取主板返回的數據包,并進行命令解析;每隔一個掃描周期依次向下位機發送查詢命令。Modbus發送報文幀格式如圖3所示。

圖3 Modbus發送幀格式
例如,Modbus發送命令為01 03 00 20 00 04 45 C6,其中01表示地址,03表示功能碼讀取,00 20表示寄存器起始地址,00 03表示連讀3個寄存器,45 C6表示CRC校驗。當下位機主板收到上位機發送的Modbus指令后也會返回相應的數據幀01 03 06 02 2B00 01 00 64 F4 FD,其中01表示地址,03表示功能碼讀取,06表示返回字節數,02 2B00 01 00 64分別表示三個返回寄存器的數值,F4 FD表示CRC校驗。本文中Modbus發送接收模塊如下:
(1)MODBUS發送模塊:在LABVIEW中由于用到了Modbus協議和串口通信,自然就需要對其相應的參數進行相關設置,內容包括:端口號、波特率、檢驗方式、傳輸的數據位數、停止位數、超時時間、Modbus功能碼等參數。
(2)MODBUS接收模塊:當按照Modbus協議回送數據時,需要用到VISA Bytes at serial port模塊,當VISA Read讀取的字節數超過緩沖區的字節數時,VISA Read則一直處于等待狀態,直到緩沖區的字節數達到所要求的字節數。
下位機返回的數據包由設備地址、寄存器數量、返回數據信息和校驗位組成。為了得到電池數據(即電池的電壓、電流、溫度等信息),則需要通過字符串轉數據模塊來實現,從返回的字符串中截取有效地數據信息并進行解碼。同時,由于返回的數據均是整數,為了正確的顯示最終的電池信息,需對獲取的電池數據按照主板和子板的不同情況進行計算與處理。字符串轉數據模塊如圖4所示。
為了分析電池在整個儲能系統運行過程中的變化情況,在LABVIEW中需添加數據保存功能。盡管通過Excel也能將數據保存下來,但當所存儲的數據達到65536行后,數據會被刷新(即新添加的數據將會逐漸覆蓋原先存儲的數據)。因此,本文中通過ACCESS數據庫來實現數據的存儲[3]。
LABVIEW數據庫工具包只提供了關于數據庫的操作而無法創建數據庫,所以必須使用第三方數據庫管理系統,如:ACCESS。在使用數據庫之前,先要使用LABVIEW數據庫工具包和數據庫進行連接,如圖5所示。ODBC(開放數據互連)是微軟公司開放服務結構中有關數據庫的一個組成部分,它建立了一組規范,并提供了一組對數據庫訪問的標準API。這些API利用SQL來完成其大部分任務。而且,ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。在使用ODBC API函數時,需要提供數據源名Data Source Names才能連接到實際數據庫,所以需要首先創建DSN[4]。

圖4 字符串轉數據模塊

圖5 LABVIEW數據庫工具包基于ODBC技術

根據設計方案,利用LABVIEW圖形化處理方便、快捷等特點,開發出了一套基于MODBUS通信協議的電池數據采集系統。該系統集數據采集、處理、計算、存儲于一體,程序界面顯示直觀,用戶操作方便,數據傳輸正確率在98%以上。系統界面如圖7所示。
本文針對儲能電池系統平臺,基于LABVIEW開發了一套電池數據采集系統,成功實現了LABVIEW基于MODBUS通信協議的數據采集、傳輸、處理、存儲與顯示功能。目前,該系統已成功投入使用中,可對運行中的電池數據進行實時采集存儲。LABVIEW技術較為成熟,所以該系統具有高可靠性、良好的穩定性、可維護性強等特點。在實際使用中,不僅可以降低成本,還具有良好的應用前景。

圖6 數據庫存儲

圖7 系統程序界面
[1] 唐麗嬋,齊 亮,王慶東,陳江洪.基于Labview的無線遠程溫度監控系統[J].上海電氣技術,2009,2(1):20-24.
[2] 孟武勝,朱劍波,黃 鴻,等.基于Labview數據采集系統的設計[J].電子測量技術,2008,31(11):63-65.
[3] 楊樂平,李海濤,肖相生,等.Labview程序設計與應用[M].北京:電子工業出版社,2001.
[4] 朱洪波,康龍云,楊會州.基于Labview的復合能源電動汽車數據采集系統的設計[J].測控技術,2011,30(8):19-22.