多站遠(yuǎn)程無(wú)線控制信號(hào)系統(tǒng)通信軟件的開(kāi)發(fā)
摘要:多站遠(yuǎn)程無(wú)線控制系統(tǒng)是以計(jì)算機(jī)為中心控制,用多個(gè)信號(hào)源作為下位機(jī)通過(guò)無(wú)線模塊進(jìn)行通信,文中介紹了通過(guò)無(wú)線數(shù)傳模塊實(shí)現(xiàn)無(wú)線通訊以及ActiveX控件的使用方法,提出了使系統(tǒng)應(yīng)用程序更安全可靠,效率更高,維護(hù)更加方便的幾種措施。關(guān)鍵詞:串行通信 ActiveX控件 查詢接收 動(dòng)態(tài)數(shù)組 最佳化TimeDelay
1 多站遠(yuǎn)程無(wú)線控制系統(tǒng)組成
多站遠(yuǎn)程無(wú)線控制系統(tǒng)是以計(jì)算機(jī)作為中心控制站,用多個(gè)信號(hào)源作為下位機(jī),通過(guò)無(wú)線模塊進(jìn)行數(shù)據(jù)通信的。系統(tǒng)中的上位機(jī)作為數(shù)據(jù)接收和數(shù)據(jù)處理的中心站,當(dāng)下位機(jī)實(shí)時(shí)采集到上位機(jī)發(fā)送的數(shù)據(jù)后,便可進(jìn)行簡(jiǎn)單的數(shù)據(jù)處理并向上位機(jī)回送數(shù)據(jù)。
上位機(jī)無(wú)線通訊接口使用串行端口與無(wú)線數(shù)傳模塊相連,數(shù)字信號(hào)通過(guò)天線調(diào)制后送到下位機(jī)的一臺(tái)外置無(wú)線模塊,然后通過(guò)串口送入單片機(jī)進(jìn)行處理。系統(tǒng)組成框圖如圖1所示。
2 串行通訊控件
利用VB開(kāi)發(fā)通信程序主要有兩種方法,一是利用VB本身提供的控件(CONTRALS),另一種是利用WINDOWS API應(yīng)用程序接口。在實(shí)際應(yīng)用中,用VB 控件實(shí)現(xiàn)通訊的方法比調(diào)用SDK的API動(dòng)態(tài)連接庫(kù)的方法更加方便和快捷,而且可以用較少的代碼實(shí)現(xiàn)相同的功能,這就是用VB 控件實(shí)現(xiàn)通訊的優(yōu)點(diǎn)所在,下面主要介紹一下利用VB 控件實(shí)現(xiàn)無(wú)線通訊的方法。
VB控件工具箱中提供了一個(gè)使用非常方便的串行通訊控件MSComm,它提供了使用RS-232串行通訊上層開(kāi)發(fā)的所有細(xì)則。通過(guò)它完成串行通訊既可以使用查詢方式,又可以使用事件驅(qū)動(dòng)方式?丶囊恍┲匾獙傩约捌湔f(shuō)明如表1所列。
表1 MSComm控件的屬性說(shuō)明
屬 性設(shè)定值說(shuō) 明
ComPort1串口號(hào),如果串口1已所用,改用串口2InBufferSize1024接收緩沖區(qū)大小InputLen0從接收緩沖區(qū)讀取的字節(jié)數(shù),0表示全部讀取InputMode1接收數(shù)據(jù)的類(lèi)型,[1] [2] [3] [4] [5]