數(shù)字控制已成為無刷直流電動機(以下簡稱BLDcM)的發(fā)展趨勢,通信系統(tǒng)是BLDcM數(shù)字控制及遙控的重要組成部分,由于大功率BLDcM運行時會對通信系統(tǒng)產(chǎn)生強烈的電磁干擾,可靠的通信系統(tǒng)設計是實現(xiàn)數(shù)字控制的前提。Rs485串行通訊總線標準及接口技術已廣泛應用于工業(yè)控制、儀器、儀表、多媒體網(wǎng)絡、機電一體化產(chǎn)品等諸多領域,在數(shù)據(jù)通信、計算機網(wǎng)絡以及工業(yè)上的分布式控制系統(tǒng)中,經(jīng)常需要采用串行通信來達到遠程信息交換的目的。由于Rs485具有性能優(yōu)異、組網(wǎng)簡單的優(yōu)點,它在集中控制系統(tǒng)、分布式控制系統(tǒng)中的應用相當廣泛,特別是在要求遠距離傳輸?shù)膽弥校?/DIV>
設計的Rs485通信系統(tǒng)用MFc(MicrnsonFt0un—dation classes)設計上位機界面,MFc是用于在c++環(huán)境下編寫應用程序的一個框架和引擎。用TMs320F2812(以下簡稱DsP2812)為核心設計Bc—DcM通信系統(tǒng)下位機。通過遠程控制器對計算機進行遠程控制,實現(xiàn)BLDcM起、停和轉速的調節(jié)。
下位機實時地將BLDcM的轉速、電壓、電流、過壓、欠壓、過流等信息上傳給計算機,同時計算機對上傳的數(shù)據(jù)進行處理,實時顯示轉速、電壓、電流等信息。
遠程控制器和計算機通過電磁波進行數(shù)據(jù)傳輸。因此BLDcM的運行情況都可以通過遠程控制器進行監(jiān)視,并對BLDcM進行相應的控制。為了保障計算機和BLDcM通信的可靠性,通信系統(tǒng)采用了雙余度設計,并實現(xiàn)兩個余度的自行切換。
為了簡化硬件系統(tǒng)復雜程度,采用部分冗余的設計策略,對電平轉換電路、收發(fā)器及傳輸介質雙絞線進行冗余設計,利用DsP2812的兩個串口通信模塊scIA、scIB,和計算機的兩個Rs232串口cOMl、cOM2,構成了雙余度的通信系統(tǒng)。系統(tǒng)框圖如圖1所示.
正常情況下,余度l處于工作狀態(tài),余度2則作為余度l故障時的備份。通信期間計算機一直監(jiān)聽余度1的工作狀態(tài),一旦余度1被檢測到故障,經(jīng)軟件處理通信自動切到余度2,保證通信的正常工作。
計算機接收從DsP上傳的數(shù)據(jù),通過數(shù)據(jù)校驗、數(shù)據(jù)處理分析與處理,把接收的數(shù)據(jù)顯示出來,并繪制電機的轉速曲線。下位機可隨時接收上位機的命令,對BLDcM進行起、停和轉速控制。
2基于MFc的上位機設計
上位機軟件系統(tǒng)主要由數(shù)據(jù)采集系統(tǒng)和MFc圖形圖像界面系統(tǒng)構成,數(shù)據(jù)采集系統(tǒng)又分為總線監(jiān)聽模塊和數(shù)據(jù)采集模塊,軟件組成結構如圖2所示。圖形圖像界面系統(tǒng)通過調用數(shù)據(jù)采集模塊町實現(xiàn)圖形界面的實時刷新(每10 ms更新一次)。
2.1基于MFc的數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集系統(tǒng)由數(shù)據(jù)采集模塊和總線監(jiān)聽模塊組成,程序流程圖如圖3所示。上位機采用Mscomm中斷接收數(shù)據(jù),即接收緩沖區(qū)有數(shù)據(jù)時,立刻進入中斷程序。根據(jù)本系統(tǒng)特點,由于每次上傳的數(shù)據(jù)量較大,為了確保在數(shù)據(jù)接收前數(shù)據(jù)全部到達接收緩沖區(qū),在接收中斷程序中加了1 ms的延時程序.
系統(tǒng)采用軟件沒計進程總線監(jiān)聽和余度的自行切換?偩監(jiān)聽模塊通過監(jiān)聽接收中斷實現(xiàn)對總線監(jiān)聽的功能。根據(jù)設計特點,上位機每10 ms進行一次接收中斷,當在50 ms內如果未進行接收中斷,則認為總線故障。通過50 ms的定時中斷實現(xiàn)總線監(jiān)聽功能。余度切換過程是:當檢查到總線故障時,計算機把通信從cOMl口轉換到cOM2口,發(fā)送余度切換數(shù)據(jù)幀給DsP,由于數(shù)據(jù)是從cOM2口發(fā)出的,數(shù)據(jù)會通過余度2到達DsP,DsP接收到余度切換命令后,會把數(shù)據(jù)的上傳從scIA切換到scIB,從而實現(xiàn)了數(shù)據(jù)的上傳與下傳全部切換到余度2。
2.2基于MFc的圖形界面
上位機的難點是實時曲線的繪制問題。我們采用面向對象程序設計技術,基于MFC框架開發(fā),將顯示數(shù)據(jù)采集封裝 , 顯示曲線進一步分為cAxis類和cline類。cAxis類負責坐標軸的構建,包含量程、刻度等,cLine負責曲線的數(shù)據(jù)保存。
繪制實時曲線的難點首先是起點的確定。繪制時首先要判斷起點是否超出了屏幕顯示的范圍,若超出,將超出部分截掉,從超出的位置繪制;沒有超出,繪制曲線。另外,隨著采樣時間的增長,采集的數(shù)據(jù)量越來越大,為了防止數(shù)據(jù)緩沖區(qū)溢出,我們要及時刪除不用顯示的數(shù)據(jù)。這個功能由cLineRemoveUselessP0ints()函數(shù)實現(xiàn)。實時曲線繪制的開始和停止通過setimer()和killtimer()函數(shù)實現(xiàn)。
3下位機軟件設計
BCDCM通信系統(tǒng)下位機系統(tǒng)采用DsP2812 為核心設計。
DsP2812通過CAP捕獲功能獲得電機的轉速,利用自帶ADc模塊獲得電機的電壓和電流,通過比較單元產(chǎn)生六路PWM波。DSP2812有兩個串口通信模塊SCIA和scIB,因此用一塊DsP就可以實現(xiàn)通信的雙余度設計。DsP采用定時中斷每10 ms向上位機發(fā)送一次數(shù)據(jù)。scI采用FIFO模式收發(fā)數(shù)據(jù),這樣可以降低Ds=P的中斷次數(shù),加快數(shù)據(jù)處理能力和數(shù)據(jù)傳輸速度。數(shù)據(jù)幀格式如圖5所示。
(I)幀頭(2個字節(jié):)由OxEF和 0x80兩個字節(jié)組成,作為幀起始標識。
(2)幀類型(1個字節(jié)):0x01表示參數(shù)設置指令,0x02表示應答幀,0x03表示余度切換。
(3)數(shù)據(jù)簇(4個字節(jié)):數(shù)據(jù)簇由Datal Data4四個字節(jié)組成,其中Datal—Dm3表示所傳輸數(shù)據(jù)的整數(shù)形式,Data4表示該數(shù)據(jù)是在10的n次方的作用下形成整數(shù)的。
(4)校驗和(1個字節(jié)):校驗和的組成是將校驗和之前的8個字節(jié)的數(shù)據(jù)求和OxFF取余后作為校驗和。
(5)重傳幀(1個字節(jié)):數(shù)據(jù)校驗沒通過,此幀置0x0I表示需要重傳此指令,否則為OxoO。
(6)幀尾(2個字節(jié)):幀尾由()x77~0xBB f個字節(jié)組成,作為幀結束標識。
下位機軟件流程圖如圖6所示。
4實驗結果
該系統(tǒng)在15 kw的BLDcM中進行了實驗驗證,正常情況下通信系統(tǒng)通過余度1工作,七位機界面如岡7a所示,在余度1斷開的情況下,會自行切換到余度2,不影響數(shù)據(jù)的傳輸,L位機界面如圖7b所示,從而提高了通信系統(tǒng)的可靠性;上位機面向對象程序設計,保障數(shù)據(jù)采集與顯示的實時性,雙緩沖技術解決了屏幕閃爍問題,模塊化的設計使得程序更具通用性。