蓄電池作為一種主要的直流電源,在工業(yè)、航空航天、民用等各領(lǐng)域扮演著重要的角色。在定期的蓄電池充放電操作及維護(hù)中,現(xiàn)有的充放電裝置工作時(shí)間過(guò)長(zhǎng),工作效率較低;被充放電電池的狀態(tài)不能及時(shí)監(jiān)測(cè),且充放電現(xiàn)場(chǎng)工作環(huán)境惡劣,有損于操作人員的健康。針對(duì)這些問題,設(shè)計(jì)了一種遠(yuǎn)程控制的智能充放電裝置。該裝置主要通過(guò)下位機(jī)——單片機(jī)將采集到的蓄電池電壓電流信號(hào)經(jīng)處理后發(fā)送給上位機(jī)——PC機(jī),再經(jīng)可視化的人機(jī)界面實(shí)現(xiàn)充放電的控制和實(shí)時(shí)狀態(tài)顯示??紤]到該系統(tǒng)要具有較強(qiáng)抗干擾能力,傳輸距離長(zhǎng)、工程布線簡(jiǎn)單、適合擴(kuò)展、便于控制的特點(diǎn),故采用RS 485總線實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸。
1 遠(yuǎn)程通信總體方案設(shè)計(jì)
該系統(tǒng)中采用的RS 485是半雙工接口,雙向單信道的連接方式。在整個(gè)系統(tǒng)中他用1根雙絞線將分布在不同地理位置的充放電裝置并接在一起,在各個(gè)裝置中,單片機(jī)采集模塊和命令控制模塊作為下位機(jī)。其網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)圖如圖1所示。PC機(jī)的串口通過(guò)232-485轉(zhuǎn)換器接入網(wǎng)絡(luò)。另外添加半雙工低功率收發(fā)器件MAX485來(lái)為單片機(jī)提供TTL電平與RS 485的接口電平之間的轉(zhuǎn)換。差分平衡型收發(fā)器MAX485是RS 485的一種接口芯片,他集成了1個(gè)驅(qū)動(dòng)器和1個(gè)接收器。處于禁止?fàn)顟B(tài)的驅(qū)動(dòng)器和多個(gè)接收器掛在傳輸線上不會(huì)影響信號(hào)的正常傳送,故多個(gè)驅(qū)動(dòng)器和接收器可以共享一組公用傳輸線。網(wǎng)絡(luò)上可掛32個(gè)站,每個(gè)站點(diǎn)都有固定的地址。同一時(shí)刻只能有一個(gè)站點(diǎn)發(fā)送數(shù)據(jù),而其他站點(diǎn)只能處于接收狀態(tài),以免發(fā)生數(shù)據(jù)碰撞錯(cuò)誤。
圖2為輸出簡(jiǎn)化示意圖。
單片機(jī),MAX485和充放電驅(qū)動(dòng)電路作為一個(gè)站點(diǎn)接入RS 485總線。A,B是總線的接口,DI是發(fā)送端,RO是接收端,連接單片機(jī)的串口,單片機(jī)通過(guò)引腳進(jìn)行收發(fā)控制。
2 通信硬件設(shè)計(jì)
MAX485與單片機(jī)的電路連接如圖3所示。
第1腳(RO端)為接收輸出端,當(dāng)接收輸出使能(第2腳(/RE))為低電平時(shí),如果VA-VB>200 mV或者A,B斷路,則第1腳輸出為高;如果VA-VB<200mV,則第1腳輸出為低;第2腳接收輸出使能端低電平有效,第3腳(DE端)驅(qū)動(dòng)輸出使能端,第4腳(DI端)驅(qū)動(dòng)輸入端,第5腳為地,第6,7腳為總線接口端,第8腳為電源端。單片機(jī)將采集到的蓄電池狀態(tài)信息經(jīng)MAX 485轉(zhuǎn)變成適合傳輸?shù)碾娏鳝h(huán)信號(hào)。該信號(hào)具有傳輸距離遠(yuǎn),抗干擾能力強(qiáng)的特點(diǎn),以保證信號(hào)無(wú)衰減地傳到232/485轉(zhuǎn)換器端。232/485轉(zhuǎn)換器主要完成電流環(huán)到微機(jī)RS232接口的轉(zhuǎn)換,如此即可實(shí)現(xiàn)PC機(jī)到單片機(jī)的通信。其原理圖如圖4所示。用戶通過(guò)PC機(jī)的界面控制網(wǎng)絡(luò)上各站點(diǎn)的工作,各站點(diǎn)的設(shè)備也可將反饋的信息發(fā)送給PC機(jī)進(jìn)行蓄電池充放電裝置的實(shí)時(shí)監(jiān)測(cè)。
3 通信軟件設(shè)計(jì)
3.1 網(wǎng)絡(luò)協(xié)議
RS 485是一種硬件連接說(shuō)明標(biāo)準(zhǔn),并沒有指定所使用的通信協(xié)議。為了使命令和數(shù)據(jù)能在網(wǎng)絡(luò)上正確傳輸,必須在數(shù)據(jù)鏈路層上提供一種網(wǎng)絡(luò)協(xié)議,當(dāng)物理層的比特流出現(xiàn)錯(cuò)誤時(shí)能起到檢驗(yàn)和校正的功能。參見(見圖1)遠(yuǎn)程控制網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)圖,單片機(jī)采集子系統(tǒng)將采集到的蓄電池狀態(tài)上傳到PC,命令控制子系統(tǒng)主要是接受PC機(jī)的各種命令并對(duì)充電系統(tǒng)進(jìn)行控制。兩子系統(tǒng)與PC機(jī)之間均采用主從協(xié)議,串口通信,其通信參數(shù)設(shè)置為:傳輸速度:9 600 b/s;校驗(yàn)位:無(wú);數(shù)據(jù)位:8;停止位:1。
3.1.1 上位機(jī)向下位機(jī)發(fā)送控制命令
(1)上位機(jī)發(fā)送
擴(kuò)展在雙絞線上的每個(gè)充電模塊必須有惟一的地址編號(hào),以便保證PC機(jī)發(fā)送控制命令時(shí)能準(zhǔn)確無(wú)誤地找到所需的充電的模塊。分布式模塊的命令格式被分為發(fā)送與接收兩部分,格式如下:
每一幀代表的信息如下:
起始位:?jiǎn)纹瑱C(jī)與PC機(jī)之間通訊的起始標(biāo)志;地址位:下位機(jī)的地址號(hào)設(shè)計(jì)為01H~1FH(即1~31),上位機(jī)的地址為00H。
命令類型:0為停機(jī)命令,1為充電命令;設(shè)定數(shù)值:控制命令為充電時(shí),數(shù)值量為充電電流;(2)控制板返回:Y(如果接收成功則返回Y)。
3.1.2 下位機(jī)向上位機(jī)發(fā)送采集數(shù)據(jù)
(1)下位機(jī)每隔10 s間斷性的發(fā)送電壓電流采集值給上位機(jī);
(2)采集板返回7個(gè)連續(xù)字符(中間不插入空格),格式如下:
前3個(gè)字符為蓄電池端電壓,接著3個(gè)為充電電流值。蓄電池端電壓用3個(gè)字符表示,如:51.2 V~512 V。充放電電流3個(gè)字符表示:15.7 A~157 A(如果電流值<10 A,左邊補(bǔ)0,如:8.9~089)。注意:所有的字符均為10進(jìn)制數(shù)值對(duì)應(yīng)的ASCⅡ碼??紤]到單片機(jī)要及時(shí)將采集到的數(shù)據(jù)發(fā)送出去,故使用無(wú)握手的通信機(jī)制,不等待確認(rèn)幀就不停發(fā)送。另外,若接收方在約定時(shí)問內(nèi)未收到數(shù)據(jù),則發(fā)送復(fù)位幀,雙方回到通信程序的開始并清空緩沖區(qū),然后重新同步。
3.2 單片機(jī)程序設(shè)計(jì)
在主程序中,先將單片機(jī)及其存儲(chǔ)器初始化,進(jìn)入死循環(huán),等待中斷程序。中斷程序包括:A/D采集中斷,他主要是將采集到的電壓,電流瞬時(shí)信號(hào)值處理并保存;另外1個(gè)就是串口通信中斷程序,他的主要作用是:當(dāng)接收一個(gè)地址時(shí),判斷是否是本機(jī)地址,若是則判斷控制命令,否則結(jié)束。繼續(xù)執(zhí)行PC機(jī)接收的數(shù)據(jù)命令,分別表示停機(jī)、充電、放電等命令。通過(guò)字符串比較,判斷出執(zhí)行的命令。具體流程如圖5所示。
3.3 PC機(jī)程序設(shè)計(jì)
PC機(jī)的人機(jī)交互界面由C++Builder語(yǔ)言開發(fā)實(shí)現(xiàn)的,他主要包含通信模塊,數(shù)據(jù)顯示和處理模塊。在綜合考慮開發(fā)效率和程序功能后,選擇了Win32API函數(shù)來(lái)編寫通信程序。此函數(shù)在C++Builder里面中均已被聲明,直接引用即可。為了提高通信程序的響應(yīng)速度,程序通過(guò)Thread類實(shí)現(xiàn)多線程通信。在主線程中打開串口并發(fā)送數(shù)據(jù),另外再建立1個(gè)線程來(lái)監(jiān)聽串口,若接收到數(shù)據(jù)后就調(diào)用數(shù)據(jù)分析和處理線程,顯示狀態(tài)曲線并且將數(shù)據(jù)錄入數(shù)據(jù)庫(kù)。部分程序代碼如下:
以3個(gè)站點(diǎn)的充放電實(shí)時(shí)監(jiān)測(cè)為例,在PC機(jī)上可顯示如圖6所示的實(shí)時(shí)信息。
4 結(jié) 語(yǔ)
基于RS 485的遠(yuǎn)程充放電裝置控制系統(tǒng)可以實(shí)現(xiàn)1臺(tái)PC機(jī)上最多可控制32個(gè)站點(diǎn)。由于RS 485采用的是平衡驅(qū)動(dòng)和差分接收的方法,因此能從根本上消除信號(hào)地線,有很強(qiáng)的抗共模干擾信號(hào)的能力。他還具有一對(duì)線路驅(qū)動(dòng)器和接收器,能夠作長(zhǎng)距離的信號(hào)傳輸,最長(zhǎng)為1 200 m。且傳輸結(jié)構(gòu)簡(jiǎn)單、成本低、實(shí)用性強(qiáng)??梢詮V泛應(yīng)用與工作環(huán)境惡劣,耗時(shí)勞民的充放電現(xiàn)場(chǎng)。