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