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