- 相關(guān)推薦
基于VB6.0的MSComm通信方法設(shè)計
摘要:本文介紹了基于VB6.0的MSComm串行通信設(shè)計,并給出了機與智能采集模塊進行通信的程序設(shè)計的框架。關(guān)鍵詞:串行通信,vb6.0,MSComm 1 前言
在控制領(lǐng)域,我們經(jīng)常需要進行計算機與其他設(shè)備之間的通信,而串行通信作為一種靈活、方便、可靠的通信方式被廣泛采用。在開發(fā)串行通信程序的過程中,利用微軟的MSComm通信控件則相對較簡單,該控件具有豐富的與串行通信密切相關(guān)的屬性及事件,提供了對串口的各種操作。MSComm控件在串口編程時非常方便,程序員不必花時間去了解較為復(fù)雜的API函數(shù),而且在VB中容易使用。 2 用visual basic 6.0進行串行通信程序設(shè)計的方法
(1) 用visual basic 6.0進行串行通信程序的設(shè)計有兩種方式,一是直接調(diào)用Windows API,另一種方式是使用通信組件,但后一種方式實際上是通過通信組件間接的調(diào)用了Windows API函數(shù),其過程要比直接調(diào)用API要復(fù)雜,但是在程序的實現(xiàn)上要比前一種方式簡單的多。在操作系統(tǒng)方面,Windows使用通信驅(qū)動程序Comm.drv,以便于程序能夠使用標準的Windows API函數(shù)來傳遞和接收數(shù)據(jù)。串行外圍設(shè)備的制造商則提供硬件驅(qū)動程序,以便讓其硬件能與Windows連接。使用MSComm控件時,實際上就是使用了API函數(shù),API函數(shù)將被Comm.drv解釋并傳送給外圍設(shè)備驅(qū)動程序,使用MSComm的用戶只需要關(guān)心如何使用MSComm所提供的屬性或事件,以驅(qū)動API函數(shù)的接口完成工作。
串行通信程序的執(zhí)行過程(2) MSComm提供了兩種處理通信的方法,一是事件驅(qū)動方法,一是查詢法。
①事件驅(qū)動法
在使用事件驅(qū)動法設(shè)計程序時,每當有新字符到達或端口狀態(tài)改變,或發(fā)生錯
誤時,MSComm控件將觸發(fā)OnComm事件,而應(yīng)用程序在捕獲該事件后,通過檢查MSComm控件的CommEvent屬性可以獲知所發(fā)生的事件或錯誤,從而采取相應(yīng)的操作。這種方法的優(yōu)點是程序響應(yīng)及時,可靠性高。
②查詢法
查詢法適合于較小的應(yīng)用程序,在這種情況下,每當應(yīng)用程序執(zhí)行完某一串行口操作后,將不斷檢查MSComm控件的CommEvent屬性,以檢查執(zhí)行結(jié)果或檢查某一事件是否發(fā)生。
(3) 串行通信的兩種格式
進行串行通信時有兩種傳輸方式:
①字符形式:通常以小于ASCII碼128的字符碼來傳遞,通常用于傳送指令。
②二進制形式:將數(shù)據(jù)以二進制編碼的方式傳遞,它可能含有ASCII碼128以上的字符碼,通常用來傳送數(shù)據(jù),以提高速度。3.串行通信實例下面給出在Win2000下利用VB6.0的MSComm控件開發(fā)計算機與一智能采集模塊進行串行通信的程序?qū)崿F(xiàn)。在工控領(lǐng)域內(nèi),智能采集模塊有著相當重要的地位,它可以通過串口通訊協(xié)議(RS232、RS485等)或其他通訊協(xié)議與PC機相連,并與外界現(xiàn)場信號直接相連或與由傳感器轉(zhuǎn)換過的外界信號相連,由PC機中的程序控制并實現(xiàn)采集現(xiàn)場的模擬信號,并處理采集到的現(xiàn)場信號并輸出模擬控制信號、開關(guān)量輸入輸出等功能。因此,智能采集模塊在工業(yè)控制領(lǐng)域內(nèi)有著極其廣泛的應(yīng)用。本例子中的智能采集模塊與計算機進行通信時,采用一位開始位、一位停止位、7位數(shù)據(jù)位、偶校驗方式,波特率為9600bps.
(1)在窗體中添加名為MyComm的MSComm控件,并設(shè)置空間的屬性,如下:
.CommPort=2 ‘使用COM2
.Setting=”9600,e,7,1” ‘波特率9600,偶校驗,7個數(shù)據(jù)位,1個停止位
.InBufferSize=40 ‘設(shè)置MyComm接收緩沖區(qū)為40個字節(jié)
.OutBufferSize=2 ‘設(shè)置MyComm發(fā)送緩沖區(qū)為2個字節(jié)
.InputMode=comInputModeBinary
‘設(shè)置接收數(shù)據(jù)模式為二進制模式
.InputLen=1 ‘設(shè)置一次從接收緩沖區(qū)讀取字節(jié)數(shù)為1
.Sthreshold=1 ‘設(shè)置一次從發(fā)送緩沖區(qū)讀取字節(jié)數(shù)為1
.PortOpen=True ‘打開通信口
‘其他屬性設(shè)置省略(2)下面是響應(yīng)Mycomm_OnComm事件的處理程序,對數(shù)據(jù)庫采集的處理程序采用MSComm事件驅(qū)動方式。
Private Sub MyComm_OnComm()
With MyComm
Select case .CommEvent
Case .comEvReceive
‘ 接收數(shù)據(jù)
‘ 對數(shù)據(jù)進行處理
case .comEVSend
‘發(fā)送數(shù)據(jù)
case .comEventRxParity
‘對奇偶校驗錯誤進行處理
end selectend with
end sub 4.結(jié)束語
本文結(jié)合實例介紹了基于VB6.0的MSComm串行通信設(shè)計。
書目:
1、 范逸之等.利用Visual Basic 實現(xiàn)串并行通信技術(shù)
清華大學(xué)出版社 2001.3
2、 黃淼云等.Visual Basic控件高手
北京希望出版社 2001.1
3、 范逸之等.Visual Basic與RS-232串行通信控制最新版
青年出版社 2002.1
【基于VB6.0的MSComm通信方法設(shè)計】相關(guān)文章:
論通信設(shè)計質(zhì)量的科學(xué)控制方法論文11-11
探討基于多種通信方式并存的配網(wǎng)自動化通信系統(tǒng)06-01
基于MOSFET內(nèi)阻的電流采樣及相電流重構(gòu)方法10-30
基于勝任力的企業(yè)個體績效管理流程設(shè)計06-03
基于CS管理的房地產(chǎn)企業(yè)開發(fā)設(shè)計06-04
基于PLC的斷路器型式試驗系統(tǒng)設(shè)計03-10
基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02
談基于互聯(lián)網(wǎng)新模式的企業(yè)網(wǎng)絡(luò)營銷方法08-25
基于電話網(wǎng)絡(luò)的熱網(wǎng)遠程控制系統(tǒng)設(shè)計05-11
小橋涵設(shè)計流量的計算方法04-27
最新推薦
- 三網(wǎng)融合形式下廣電網(wǎng)絡(luò)雙向改造技術(shù)理工論文
- 氨氮廢水處理工藝實例分析論文
- 企業(yè)經(jīng)濟管理工作的創(chuàng)新策略論文
- 一種基于半雙工通信系統(tǒng)的通信控制協(xié)議設(shè)計
- 電氣自動化系統(tǒng)的現(xiàn)狀與展望
- 房屋建筑工程中的施工質(zhì)量管理工學(xué)論文
- 淺談EBZ-160綜掘機截割頭常見故障以及原因分析理工論文
- 高校教育管理工作探索論文
- 基于設(shè)計結(jié)構(gòu)矩陣的過程系統(tǒng)優(yōu)化方法
- 高新技術(shù)在森林資源管理的應(yīng)用
- 通信技術(shù)簡歷
- 通信專業(yè)論文
- 通信簡歷
- 通信類簡歷
- 通信專業(yè)簡歷
- 移動通信論文
- 通信簡歷模板
- 通信專業(yè)簡歷模板
- 通信安全生產(chǎn)總結(jié)
- 通信英文簡歷