李育才,李立偉,隋宗強
(青島大學自動化工程學院,山東 青島266071)
Delphi具備了作為最優(yōu)秀的編程開發(fā)軟件的一切條件:它與Microsoft公司的VC/C++相比,其優(yōu)勢是具有簡單易懂的IDE開發(fā)環(huán)境;與VB相比,不僅代碼更加規(guī)范,而且程序可移植性更強。基于Delphi的EMS后臺維護系統(tǒng)中,采用由單片機及其外圍電路構成的下位機進行數(shù)據(jù)采集,然后將電池電壓、電流數(shù)據(jù)傳送給PC機。Delphi中沒有自帶的通信控件,實現(xiàn)單片機與PC機串口通信,通過安裝Delphi的第三方SPComm控件來實現(xiàn)。
電動汽車中電池自身存在不一致性,充放電過程也不一致,而不斷重復的充放電過程更加劇了不一致現(xiàn)象,充電少的電池壽命縮短,從而導致整個電池組的壽命縮短[1]。因此采用基于Delphi的EMS后臺維護軟件來完成對蓄電池的能量監(jiān)測,從而提高蓄電池的使用壽命。
單片機和PC機之間串行通信的實現(xiàn)采用RS-485協(xié)議,電路連接原理圖如圖1所示。在PC機側使用的是RS-232與RS-485的電平轉換接口。由于采用RS-485協(xié)議,所以單片機采用 MAX485作為RS-485接口芯片。
圖1 串行通信電路連接原理圖
目前,利用Delphi實現(xiàn)串口通信的常用方法有3種[2],如表1所示。
表1 Delphi串口通信方法
因SPComm控件提供了豐富的與串口通信密切相關的屬性和事件,支持對串口的各種操作,使用起來比較簡單,所以系統(tǒng)采用了SPComm控件來實現(xiàn)PC機與單片機的串行通信。
首先安裝SPComm控件[3]:選擇下拉菜單Component中的Install Component選項,彈出“Install Component”窗口。在“Unit file name”欄中設定SPComm控件PAS文件的路徑,其他各項用默認值,點擊OK按鈕進行控件的安裝。安裝完成后,在System控件面板中會出現(xiàn)一個新的組件,紅色圖標,名稱為COM?,F(xiàn)在就可以像Delphi自帶控件一樣使用SPComm控件了。SPComm的屬性、方法和事件[4]如表2所示。
表2 SPComm的屬性、方法和事件
在通信系統(tǒng)的數(shù)據(jù)傳輸過程中,由于信道中各種復雜因素的影響,往往使傳輸?shù)男盘柺艿礁蓴_,造成誤碼的出現(xiàn),接收方為了檢查所接收的數(shù)據(jù)是否有誤碼,可采用多種檢測方法,差錯控制編碼[5]是目前數(shù)據(jù)傳輸過程中普遍采用的一種提高數(shù)據(jù)通信可靠性的方法,而CRC是一種在實際通信中應用很廣泛的差錯控制編碼,具有很強的檢錯能力。
利用CRC進行檢錯的過程可簡單描述為:在發(fā)送端根據(jù)要傳送的k位二進制碼序列,以一定的規(guī)則產(chǎn)生一個校驗用的r位監(jiān)督碼(CRC碼),附在原始信息后邊,構成一個新的二進制碼序列數(shù)共k+r位,然后發(fā)送出去;在接收端,根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進行檢驗,以確定傳送中是否出錯。系統(tǒng)采用CRC校驗使得PC機與單片機通信更加可靠。
(1)初始化、配置串口
在FormCreate事件過程中,對串口進行初始化。
在界面設計上采用Delphi第三方控件RaiseComponents,此控件包含了100多個Delphi的控件組,主要起到美化界面的作用,大到整個界面的美化,小到一個按鈕的改變都可以輕松實現(xiàn),而且安裝也十分方便。Raise Components控件使得開發(fā)人員只用少量的時間就能設計出美觀、多樣的用戶界面。登錄界面如圖2所示。
圖2 EMS登錄界面
蓄電池能量管理系統(tǒng)的檢測界面主要負責檢測蓄電池的最高電壓、電流和溫度,并且還負責查詢達到最高電壓、電流的蓄電池編號。蓄電池在充電或放電過程中存在熱效應[6-10],其容量及活性物質利用率會隨溫度增加而增加,實際中常規(guī)定一個溫度為額定容量的標準溫度如25℃,EMS檢測界面如圖3所示。
圖3 EMS檢測界面
圖4 單體電壓檢測界面
蓄電池在使用過程中會產(chǎn)生性能差異[11-15],特別是成組使用后會出現(xiàn)過沖和過放現(xiàn)象,這將對整組電池的使用壽命產(chǎn)生嚴重影響。上位機軟件設計了對每一組每一節(jié)蓄電池電壓的檢測,以便及時發(fā)現(xiàn)個別性能落后的電池,對其進行均衡處理從而達到延長整個電池組使用壽命的目的。單體電壓檢測界面如圖4所示。
Delphi的界面設計簡單美觀、編譯和連接速度快、調試功能強大,同時兼?zhèn)淞薞C功能強大和VB簡單易學的特點,因此越來越成為程序開發(fā)人員的選擇,并且第三方控件SPComm是一個PAS文件,適用于Delphi的任何版本,程序的通用性和移植性好。實踐表明SPComm控件和CRC校驗的采用使得該系統(tǒng)通信更加可靠穩(wěn)定,實際應用于電動汽車蓄電池能量檢測,效果良好。
[1] 黃海宏,王海欣,莊 翔,等.電動汽車分布式電池充放電管理的研究[J].電子測量與儀器學報,2009,23(6):68-73.
[2] 王 靜,靳引利,汪貴平.基于Delphi的串口通信實踐[J].現(xiàn)代電子技術,2006,(19):127-129.
[3] 黃 軍.Delphi串口通信教程[M].北京:人民郵電出版社:2001.
[4] 王 靜,趙懷林.Delphi環(huán)境中的串口通信程序設計方法[J].微機發(fā)展,2002,12(4):7-9.
[5] Satran J.Internet Protocol Small Computer System Interface(iSCSI)Cyclic Red undancy Check (CRC)/Checksum Considerations,RFC3385,2002.
[6] 馬廣偉,景有泉,甘林川.蓄電池內(nèi)阻測量及其應用[J].通信電源技術,2007,24(2):63-64.
[7] 曹秉剛.中國電動汽車技術新進展[J].西安交通大學學報,2007,41(1):114-118.
[8] 徐曼珍.新型蓄電池原理與應用[M].北京:人民郵電出版社,2005.
[9] John Chiasson,Baskar Vairamohan.Estimating the State of charge of a battery[C].Proceedings of American control conference Denver colorado,2003,(4):28-63.
[10]李立偉,鄒積巖.蓄電池在線監(jiān)測系統(tǒng)的設計與實現(xiàn)[J].電工技術雜志,2002,21(11):7-9.
[11]譚 磊.多單元電池組單元電池電壓測量[J].電測與儀表,1999,36(407):17-19.
[12]冉建國,陳勝軍.通過電池均衡提高鉛酸蓄電池組壽命[J].電源技術,2007,7:576-579.
[13]Philip T Krein,Robert S Balog.Life Extension Through Charge Equlization of lead-Acid Batteries[J].IEEE,2002.
[14]Lam LT,Wilson N C,C G.Charging of Batteries[P].US.Pat.No.6154011,2000.
[15]John Chiasson,Baskar Vairamohan.Estating the State of Charge of a Battery[Z].Transaction on control systems technology,2005.