低壓電力線載波通信系統(tǒng)設(shè)計
3 系統(tǒng)軟件設(shè)計
本文采用MSCOMM控件(即Microsoft Communication Control)進行串口編程,該控件是Microsoft公司為簡化Windows下串行通信編程而提供的ActiveX控件。它提供了一系列標準通信命令的使用接口,因此,利用它能夠建立和串口的連接,并能夠通過串口連接到其他通信設(shè)備(如調(diào)制解調(diào)器)發(fā)出命令、交換數(shù)據(jù)以及監(jiān)控和響應(yīng)串行連接中發(fā)生的事件和錯誤。使用MSCOMM控件編寫串口程序時,不需要花費時間了解復(fù)雜的API函數(shù),但它在執(zhí)行的時候需要調(diào)用API函數(shù)。
MSCOMM控件串行通信處理方式采用事件驅(qū)動方式,許多情況下,在事件發(fā)生時需要得到通知,這時,就可以利用MSCOMM控件的OnComm事件捕捉并處理這些通信事件。這種方法的優(yōu)點是程序響應(yīng)及時,可靠性高。
3.1 系統(tǒng)通信程序設(shè)計
本系統(tǒng)數(shù)據(jù)的發(fā)送與接收顯示都是通過對上位機編寫軟件來實現(xiàn)的。其流程大致為:關(guān)閉串口,對串口的波特率進行選擇,然后設(shè)置通信參數(shù);打開串口之后,可以選擇發(fā)送方式為手動或自動(自動發(fā)送周期根據(jù)模塊的處理速度固定為2 s),也可以選擇是否為十六進制發(fā)送(對應(yīng)的接收端應(yīng)選擇十六進制顯示)。
在監(jiān)控顯示部分,當接收緩沖區(qū)有數(shù)據(jù)時,系統(tǒng)就會觸發(fā)OnComm事件,對數(shù)據(jù)進行讀取并在編輯框中顯示。修改波特率時,一般需要關(guān)閉串口然后才能調(diào)試。其系統(tǒng)程序流程圖如圖3所示。
3.2 數(shù)據(jù)發(fā)送部分算法
由于在數(shù)據(jù)發(fā)送時,模塊每次只能接收20 b以內(nèi)的數(shù)據(jù),因此,為了使模塊能夠發(fā)送或接收更多的數(shù)據(jù),本文采用指針指向的方法,分段取出所要發(fā)送的數(shù)據(jù),每段20 b。本文引用地址:http://m.butianyuan.cn/article/153585.htm
數(shù)據(jù)發(fā)送首先要獲取編輯框內(nèi)所要發(fā)送的數(shù)據(jù),然后計算其長度,再判斷與20的關(guān)系。如果整除得b的話,就直接發(fā)送b次,每次分段讀取,且必須在兩次發(fā)送之間添加延時程序,否則,這樣處理就沒有意義,因為模塊的處理速度慢于發(fā)送的速度會造成數(shù)據(jù)丟失。當不能整除且得到的余數(shù)為a時,要先發(fā)送b次,讀取完bX20個字符后,再發(fā)送剩余的a個字符。圖4所示是其數(shù)據(jù)發(fā)送程序流程圖。
3.3 通信與監(jiān)視界面
圖5所示是本系統(tǒng)中上位機的通信與監(jiān)控界面圖。從圖中可以看出,在通信界面設(shè)置好波特率,然后打開串口,在COM6發(fā)送窗口輸入字符串,然后點擊發(fā)送(或自動發(fā)送),COM5接收顯示窗口就會顯示COM6所發(fā)送的信息。由圖5可知,數(shù)據(jù)信息的傳輸量已經(jīng)突破了模塊自定義的20 B,即能夠?qū)崿F(xiàn)較多信息量的發(fā)送與接收。
4 結(jié)語
電力網(wǎng)絡(luò)是目前覆蓋范圍最廣的網(wǎng)絡(luò),有著巨大的潛在利用價值。在家居自動化、家用電器控制等方面,PLC技術(shù)有著得天獨厚的優(yōu)勢。本文利用低壓電力線載波方式實現(xiàn)了數(shù)據(jù)在低壓電力線上的傳輸,并能通過上位機實時顯示數(shù)據(jù)。但是,目前PLC技術(shù)仍然存在很多不足,在電力線上干擾嚴重時,通信成功率可能還無法保證,通信速率也比較低,因此還需要更深入的研究。
評論