- 相關(guān)推薦
基于VB6.0的MSComm通信方法設計
摘要:本文介紹了基于VB6.0的MSComm串行通信設計,并給出了機與智能采集模塊進(jìn)行通信的程序設計的框架。關(guān)鍵詞:串行通信,vb6.0,MSComm 1 前言
在控制領(lǐng)域,我們經(jīng)常需要進(jìn)行計算機與其他設備之間的通信,而串行通信作為一種靈活、方便、可靠的通信方式被廣泛采用。在開(kāi)發(fā)串行通信程序的過(guò)程中,利用微軟的MSComm通信控件則相對較簡(jiǎn)單,該控件具有豐富的與串行通信密切相關(guān)的屬性及事件,提供了對串口的各種操作。MSComm控件在串口編程時(shí)非常方便,程序員不必花時(shí)間去了解較為復雜的API函數,而且在VB中容易使用。 2 用visual basic 6.0進(jìn)行串行通信程序設計的方法
(1) 用visual basic 6.0進(jìn)行串行通信程序的設計有兩種方式,一是直接調用Windows API,另一種方式是使用通信組件,但后一種方式實(shí)際上是通過(guò)通信組件間接的調用了Windows API函數,其過(guò)程要比直接調用API要復雜,但是在程序的實(shí)現上要比前一種方式簡(jiǎn)單的多。在操作系統方面,Windows使用通信驅動(dòng)程序Comm.drv,以便于程序能夠使用標準的Windows API函數來(lái)傳遞和接收數據。串行外圍設備的制造商則提供硬件驅動(dòng)程序,以便讓其硬件能與Windows連接。使用MSComm控件時(shí),實(shí)際上就是使用了API函數,API函數將被Comm.drv解釋并傳送給外圍設備驅動(dòng)程序,使用MSComm的用戶(hù)只需要關(guān)心如何使用MSComm所提供的屬性或事件,以驅動(dòng)API函數的接口完成工作。
串行通信程序的執行過(guò)程(2) MSComm提供了兩種處理通信的方法,一是事件驅動(dòng)方法,一是查詢(xún)法。
①事件驅動(dòng)法
在使用事件驅動(dòng)法設計程序時(shí),每當有新字符到達或端口狀態(tài)改變,或發(fā)生錯
誤時(shí),MSComm控件將觸發(fā)OnComm事件,而應用程序在捕獲該事件后,通過(guò)檢查MSComm控件的CommEvent屬性可以獲知所發(fā)生的事件或錯誤,從而采取相應的操作。這種方法的優(yōu)點(diǎn)是程序響應及時(shí),可靠性高。
②查詢(xún)法
查詢(xún)法適合于較小的應用程序,在這種情況下,每當應用程序執行完某一串行口操作后,將不斷檢查MSComm控件的CommEvent屬性,以檢查執行結果或檢查某一事件是否發(fā)生。
(3) 串行通信的兩種格式
進(jìn)行串行通信時(shí)有兩種傳輸方式:
①字符形式:通常以小于A(yíng)SCII碼128的字符碼來(lái)傳遞,通常用于傳送指令。
②二進(jìn)制形式:將數據以二進(jìn)制編碼的方式傳遞,它可能含有ASCII碼128以上的字符碼,通常用來(lái)傳送數據,以提高速度。3.串行通信實(shí)例下面給出在Win2000下利用VB6.0的MSComm控件開(kāi)發(fā)計算機與一智能采集模塊進(jìn)行串行通信的程序實(shí)現。在工控領(lǐng)域內,智能采集模塊有著(zhù)相當重要的地位,它可以通過(guò)串口通訊協(xié)議(RS232、RS485等)或其他通訊協(xié)議與PC機相連,并與外界現場(chǎng)信號直接相連或與由傳感器轉換過(guò)的外界信號相連,由PC機中的程序控制并實(shí)現采集現場(chǎng)的模擬信號,并處理采集到的現場(chǎng)信號并輸出模擬控制信號、開(kāi)關(guān)量輸入輸出等功能。因此,智能采集模塊在工業(yè)控制領(lǐng)域內有著(zhù)極其廣泛的應用。本例子中的智能采集模塊與計算機進(jìn)行通信時(shí),采用一位開(kāi)始位、一位停止位、7位數據位、偶校驗方式,波特率為9600bps.
(1)在窗體中添加名為MyComm的MSComm控件,并設置空間的屬性,如下:
.CommPort=2 ‘使用COM2
.Setting=”9600,e,7,1” ‘波特率9600,偶校驗,7個(gè)數據位,1個(gè)停止位
.InBufferSize=40 ‘設置MyComm接收緩沖區為40個(gè)字節
.OutBufferSize=2 ‘設置MyComm發(fā)送緩沖區為2個(gè)字節
.InputMode=comInputModeBinary
‘設置接收數據模式為二進(jìn)制模式
.InputLen=1 ‘設置一次從接收緩沖區讀取字節數為1
.Sthreshold=1 ‘設置一次從發(fā)送緩沖區讀取字節數為1
.PortOpen=True ‘打開(kāi)通信口
‘其他屬性設置省略(2)下面是響應Mycomm_OnComm事件的處理程序,對數據庫采集的處理程序采用MSComm事件驅動(dòng)方式。
Private Sub MyComm_OnComm()
With MyComm
Select case .CommEvent
Case .comEvReceive
‘ 接收數據
‘ 對數據進(jìn)行處理
case .comEVSend
‘發(fā)送數據
case .comEventRxParity
‘對奇偶校驗錯誤進(jìn)行處理
end selectend with
end sub 4.結束語(yǔ)
本文結合實(shí)例介紹了基于VB6.0的MSComm串行通信設計。
書(shū)目:
1、 范逸之等.利用Visual Basic 實(shí)現串并行通信技術(shù)
清華大學(xué)出版社 2001.3
2、 黃淼云等.Visual Basic控件高手
北京希望出版社 2001.1
3、 范逸之等.Visual Basic與RS-232串行通信控制最新版
青年出版社 2002.1
【基于VB6.0的MSComm通信方法設計】相關(guān)文章:
基于軟件無(wú)線(xiàn)電的GPP通信波形軟件設計方法03-11
基于 DSP 的網(wǎng)絡(luò )通信程序設計03-20
基于雙口RAM的LonWorks智能通信節點(diǎn)設計03-18
基于Monte Carlo方法的通信仿真實(shí)現及應用研究03-30
基于CPLD的RS485通信實(shí)現方法研究03-07
基于VB的分布式監控系統通信設計03-18
基于CAN總線(xiàn)的EV電控系統通信的設計與開(kāi)發(fā)03-19
最新推薦
- 基于 DSP 的網(wǎng)絡(luò )通信程序設計
- 電力工程施工組織設計及其優(yōu)化研究理工論文
- 市政工程造價(jià)控制管理工作研究論文
- 我國城市河流治理中面臨的困境及有效策略
- 圖書(shū)資料管理工作網(wǎng)絡(luò )化探究的論文
- 化工安全助理工程師論文
- 監理工程師職稱(chēng)論文
- “電工技術(shù)”課程一體化教學(xué)改革實(shí)踐
- 基于VC++的多線(xiàn)程通信程序設計論文
- 通信工程項目管理工作存在的問(wèn)題及解決對策論文
- 移動(dòng)通信論文
- 通信簡(jiǎn)歷
- 通信類(lèi)簡(jiǎn)歷
- 通信專(zhuān)業(yè)簡(jiǎn)歷
- 通信技術(shù)簡(jiǎn)歷
- 通信專(zhuān)業(yè)論文
- 通信生產(chǎn)實(shí)習報告
- 通信工程論文
- 通信英文簡(jiǎn)歷
- 通信工程簡(jiǎn)歷