用VB進(jìn)行串口通信設(shè)計(jì)._第1頁(yè)
用VB進(jìn)行串口通信設(shè)計(jì)._第2頁(yè)
用VB進(jìn)行串口通信設(shè)計(jì)._第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1前言在工業(yè)控制領(lǐng)域,我們經(jīng)常需要進(jìn)行計(jì)算機(jī)與其他設(shè)備之間的通信,而串行通 信作為一種靈活、方便、可靠的通信方式被廣泛采用。在開(kāi)發(fā)串行通信程序的過(guò) 程中,利用微軟的MSComm通信控件則相對(duì)較簡(jiǎn)單,該控件具有豐富的與 串行通信 密切相關(guān)的屬性及事件,提供了對(duì)串口的各種操作。MSComm控件在串口編程時(shí)非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的 API函數(shù),而且在VB中容易使用。2用visual basic 6.0進(jìn)行串行通信程序設(shè)計(jì)的方法(1用visual basic 6.0進(jìn)行串行通信程序的設(shè)計(jì)有兩種方式,一是直接調(diào)用Win dows API,另一種方式是使用通信組件,但后一種方式實(shí)際上是通

2、過(guò)通信組件間 接的調(diào)用了 Windows API函數(shù),其過(guò)程要比直接調(diào)用 API要復(fù)雜,但是在程序的實(shí) 現(xiàn)上要比前一種方式簡(jiǎn)單的多。在操作系統(tǒng)方面,Windows使用通信驅(qū)動(dòng)程序 Comm.drv,以便于應(yīng)用程序能夠使用標(biāo)準(zhǔn)的 Windows API函數(shù)來(lái)傳遞和接收數(shù)據(jù)。 串行外圍設(shè)備的制造商則提供硬件驅(qū)動(dòng)程序,以便讓其硬件能與Windows連接。 使用MSComm控件時(shí),實(shí)際上就是使用了 API函數(shù),API函數(shù)將被Comm.drv解釋 并傳送給外圍設(shè)備驅(qū)動(dòng)程序,使用MSComm的用戶(hù)只需要關(guān)心如何使用 MSComm 所提供的屬性或事件,以驅(qū)動(dòng)API函數(shù)的接口完成工作。串行通信程序的執(zhí)行過(guò)程(

3、2 MSComm提供了兩種處理通信問(wèn)題的方法,一是事件驅(qū)動(dòng)方法,一是查詢(xún)事件驅(qū)動(dòng)法串行通信程序的執(zhí)行過(guò)程d在使用事件驅(qū)動(dòng)法設(shè)計(jì)程序時(shí),每當(dāng)有新字符到達(dá)或端口狀態(tài)改變,或發(fā)生錯(cuò) 誤時(shí),MSComm控件將觸發(fā)On Comm事件,而應(yīng)用程序在捕獲該事件后,通過(guò)檢查 MSComm控件的CommEvent屬性可以獲知所發(fā)生的事件或錯(cuò)誤,從而采取相應(yīng)的 操作。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。查詢(xún)法查詢(xún)法適合于較小的應(yīng)用程序,在這種情況下,每當(dāng)應(yīng)用程序執(zhí)行完某一串 行 口操作后,將不斷檢查MSComm控件的CommEvent屬性,以檢查執(zhí)行結(jié)果或檢查 某一事件是否發(fā)生。(3串行通信的兩種格式進(jìn)行串行

4、通信時(shí)有兩種傳輸方式:字符形式:通常以小于ASCII碼128的字符碼來(lái)傳遞,通常用于傳送指 令二進(jìn)制形式:將數(shù)據(jù)以二進(jìn)制編碼的方式傳遞,它可能含有ASCII碼128以上 的字符碼,通常用來(lái)傳送數(shù)據(jù),以提高速度。3串行通信實(shí)例下面給出在 Win2000下利用VB6.0的MSComm控件開(kāi)發(fā)計(jì)算機(jī)與一智 能采 集模塊進(jìn)行串行通信的程序?qū)崿F(xiàn)。在工控領(lǐng)域內(nèi),智能采集模塊有著相當(dāng)重 要的地位,它可以通過(guò)串口通訊協(xié)議(RS232、RS485等或其他通訊協(xié)議與PC機(jī)相連,并與 外界現(xiàn)場(chǎng)信號(hào)直接相連或與由傳感器轉(zhuǎn)換過(guò)的外界信號(hào)相連,由PC機(jī)中的程序控制并實(shí)現(xiàn)采集現(xiàn)場(chǎng)的模擬信號(hào),并處理采集到的現(xiàn)場(chǎng)信號(hào)并輸出模擬

5、控制信號(hào)、開(kāi) 關(guān)量輸入輸出等功能。因此,智能采集模塊在工業(yè)控制領(lǐng) 域內(nèi)有著極其廣泛的應(yīng) 用。本例子中的智能采集模塊與計(jì)算機(jī)進(jìn)行通信時(shí),采用一位開(kāi)始位、一位停止 位、7位數(shù)據(jù)位、偶校驗(yàn)方式,波特率為9600bps.(1在窗體中添加名為 MyComm的MSComm控件,并設(shè)置空間的屬性,如下:.CommPort=2 使用 COM2.Setting="9600,e,7,1"波特率9600偶校驗(yàn),7個(gè)數(shù)據(jù)位,1個(gè)停止位.InBufferSize=40 '設(shè)置MyComm接收緩沖區(qū)為40個(gè)字節(jié).OutBufferSize=2 '設(shè)置MyComm發(fā)送緩沖區(qū)為2個(gè)字節(jié)n

6、putMode=coml nputModeBi nary'設(shè)置接收數(shù)據(jù)模式為二進(jìn)制模式.In putLe n=1 '設(shè)置一次從接收緩沖區(qū)讀取字節(jié)數(shù)為 1.Sthreshold=1設(shè)置一次從發(fā)送緩沖區(qū)讀取字節(jié)數(shù)為1.PortOpe n=True 打開(kāi)通信口'其他屬性設(shè)置省略(2下面是響應(yīng)Mycomm_OnComm事件的處理程序,對(duì)數(shù)據(jù)庫(kù)采集的處理程序 采用MSComm事件驅(qū)動(dòng)方式。Private Sub MyCom m_On Comm(With MyCommSelect case .CommEve ntCase .comEvReceive'接收數(shù)據(jù)'對(duì)數(shù)據(jù)進(jìn)行處理case .comEVSe nd'發(fā)送數(shù)據(jù)case

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論