基于RS 485總線的蓄電池充放電裝置遠(yuǎn)程控制系統(tǒng)
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ī)、充電、放電等命令。通過字符串比較,判斷出執(zhí)行的命令。具體流程如圖5所示。
3.3 PC機(jī)程序設(shè)計(jì)
PC機(jī)的人機(jī)交互界面由C++Builder語言開發(fā)實(shí)現(xiàn)的,他主要包含通信模塊,數(shù)據(jù)顯示和處理模塊。在綜合考慮開發(fā)效率和程序功能后,選擇了Win32API函數(shù)來編寫通信程序。此函數(shù)在C++Builder里面中均已被聲明,直接引用即可。為了提高通信程序的響應(yīng)速度,程序通過Thread類實(shí)現(xiàn)多線程通信。在主線程中打開串口并發(fā)送數(shù)據(jù),另外再建立1個(gè)線程來監(jiān)聽串口,若接收到數(shù)據(jù)后就調(diào)用數(shù)據(jù)分析和處理線程,顯示狀態(tài)曲線并且將數(shù)據(jù)錄入數(shù)據(jù)庫。部分程序代碼如下:
以3個(gè)站點(diǎn)的充放電實(shí)時(shí)監(jiān)測(cè)為例,在PC機(jī)上可顯示如圖6所示的實(shí)時(shí)信息。
4 結(jié) 語
基于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)器和接收器,能夠作長距離的信號(hào)傳輸,最長為1 200 m。且傳輸結(jié)構(gòu)簡單、成本低、實(shí)用性強(qiáng)??梢詮V泛應(yīng)用與工作環(huán)境惡劣,耗時(shí)勞民的充放電現(xiàn)場(chǎng)。
評(píng)論