![VisualBasic串口通信程序設(shè)計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/270f7185-946a-4368-870f-270775743bee/270f7185-946a-4368-870f-270775743bee1.gif)
![VisualBasic串口通信程序設(shè)計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/270f7185-946a-4368-870f-270775743bee/270f7185-946a-4368-870f-270775743bee2.gif)
![VisualBasic串口通信程序設(shè)計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/270f7185-946a-4368-870f-270775743bee/270f7185-946a-4368-870f-270775743bee3.gif)
![VisualBasic串口通信程序設(shè)計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/270f7185-946a-4368-870f-270775743bee/270f7185-946a-4368-870f-270775743bee4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、visual basic串口通信程序設(shè)計來源:中國自學(xué)編程網(wǎng)發(fā)布日期: 2007-04-19 1 mscomm.vbx 通信控件描述mscomm.vbx 通信控件可直接從vb 的 toolbox 中加入窗體form,即可用其進(jìn)行通信。若toolbox 中無此控件,則用 tools 的 custom controls 將 mscomm.vbx從 windows 的 system子目錄中加入vb 的toolbox 中。1.1 通信方式mscomm.vbx 有 2 種不同的方式來處理和解決各類通信軟件的開發(fā)和設(shè)計問題1、事件驅(qū)動。它與c/c+寫 windows 軟件時的窗口回調(diào)函數(shù)類似,是1 種功能
2、強(qiáng)大的處理問題的方法。在實際工作中,往往要處理許多通信中的相關(guān)事件,例如:當(dāng)線路數(shù)據(jù)到達(dá)本端或cd線和rts 信號線狀態(tài)發(fā)生變化時,要求我們使用相應(yīng)的事件來跟蹤和處理,該控件是使用oncomm事件來實現(xiàn)的,它也包括檢測和處理通信錯誤等方面的問題,commevent 值返回最近的通信事件或錯誤的數(shù)字代碼。通信控件詳細(xì)的錯誤和事件舉例有:mscomm-er-break 收到 1個 break signal mscomm-er-cdto cd 信號超時 mscomm-ev-cd cd 信號改變 2、查詢方式。 由程序設(shè)計者負(fù)責(zé)讀取commevent的值并處理所發(fā)生的錯誤或事件。通常簡單的應(yīng)用程序設(shè)計
3、可采用這種辦法。1.2 通信控件的屬性利用通信控件編制通信程序,關(guān)鍵是準(zhǔn)確理解設(shè)置通信控件的屬性。mscomm.vbx提供了 27 個關(guān)于通信控件方面的屬性,例如:commport:設(shè)置或返回通信口編號。settings:設(shè)置或返回以字符串形式出現(xiàn)的數(shù)據(jù)通信格式:波特率、校驗、數(shù)據(jù)位和停止位。portopen:設(shè)置或返回通信口狀態(tài)(包括打開和關(guān)閉1 個通信口) 3、 實例本程序應(yīng)用背景為dcc95型靜電除塵器自動監(jiān)控系統(tǒng)軟件,解決1 個 pc 工控機(jī)(主站)與32個單片機(jī)(子站)之間的通信問題。主站與子站之間這總線式網(wǎng)絡(luò)結(jié)構(gòu),采用rs-485 通信標(biāo)準(zhǔn),以問答方式進(jìn)行數(shù)據(jù)通信。由于 32個子站
4、與主站發(fā)送通信命令(下行命令),主站在接收子站發(fā)回的相應(yīng)回答命令(上行命令)后繼續(xù)發(fā)送下行命令的通信形式。根據(jù)系統(tǒng)功能的要求,主站需發(fā)送 2 種類型的命令:(1)同期命令,它由定時器觸發(fā)引起,每隔ls 周期發(fā)送 1 次;( 2)非周期性命令,它由操作者按動相應(yīng)命令按鈕引起,非周期性發(fā)送。自動監(jiān)控系統(tǒng)軟件安裝在主站上,而通信程序作為自動監(jiān)控系統(tǒng)軟件的一部分也安裝在主站上。本文僅列出調(diào)試通信程序時進(jìn)行試驗用的基本演示程序清單。試驗時,用 1 臺 pc機(jī)作為主站,另一臺 pc 機(jī)模擬 32個子站的工作, 兩臺 pc 機(jī)之間采用rs232c串口通信。 往主站的通信演示程序窗體( form)中加入 1個
5、通信控件、 2個定時器控件和1 個命令按鈕控件,通信控件(mscomm1 )用于訪問串口,發(fā)送和接收數(shù)據(jù);periodic 定時器控件( periodic)用于控制每秒由主站向各子站發(fā)送周期性命令; 命令按鈕控件 (nonperiodic-command)與 nonperiodic 定時器控件 (nonperiodic)用于發(fā)送非周期性命令。數(shù)據(jù)傳送采用事件驅(qū)動的通信方式,根據(jù)不同的發(fā)送命令設(shè)置rtreshlod 屬性,從而引起oncomm事件以接收數(shù)據(jù)。2.1 窗體各控件初始化程序設(shè)置通信串口工作參數(shù),設(shè)置periodic 定時器的在斷間隔為ls, nonperiodic 定時器的中斷間隔為
6、0.5s。sub form-load () mport=2 選用 com2串行口mscomm1.settings=9600,n8,1 波特率 9600,無奇偶校驗位,8 位數(shù)據(jù)位 1 位停止位mscomm1.inputlen=0 input 將讀取接收緩沖區(qū)的全部內(nèi)容mscomm1.inbuffersize=1024 設(shè)置接收緩沖區(qū)的字節(jié)長度mscomm1.portopen=true 打開通信口mscomm1.inbuffercount=0 清除發(fā)送緩沖區(qū)數(shù)據(jù)mscomm1.outbuffercount=0 清除接收緩沖區(qū)數(shù)據(jù)eval=100 設(shè)置 ls 定時間隔,使遙
7、測命令每隔ls 發(fā)送 1 次eval=500 設(shè)置 0.5s定時間隔,查詢命令按鈕是否處于激活狀態(tài)以確定是否發(fā)送周期性命令command-pressed=false 命令按鈕為未激活狀態(tài)during- periodic=fal se 周期性命令數(shù)據(jù)傳輸尚未開始during- nonperiodic=fal se 非周期性命令數(shù)據(jù)傳輸尚未開始end sub 2.2 非周期性命令發(fā)送程序根據(jù)命令按鈕狀態(tài)及周期性命令數(shù)據(jù)傳輸狀態(tài),在nonperiodic 定時器的中斷程序中發(fā)送非周期性命令。sub nonperiodic-command-click () command
8、-pressed=true 命令按鈕激活end sub sub nonperiodic-timer () if during- periodic=true or command-pressed=false then exit sub 若周期性命令數(shù)據(jù)傳輸尚未結(jié)束或命令按鈕處于激活狀態(tài),則退出發(fā)送非周期性命令程序。command-pressed=false 命令按鈕恢復(fù)為未激活狀態(tài)call senddata (nonperiodic-command) 發(fā)送非周期性命令mscomm1.rthreshold=r-nonperiodic-byte發(fā)送非周期性命令后, 設(shè)置 rthreshold屬性,使
9、主站接收所設(shè)定的字節(jié)數(shù)后引發(fā)oncomm事件end sub 2.3 periodic 定時器程序在 periodic 定時器的中斷程序中發(fā)送周期性命令:sub periodic-timer () if during- nonperiodic=true then exit sub 若非周期性命令數(shù)據(jù)傳輸尚未結(jié)束,則退出發(fā)送非周期性命令程序。during-periodic=true 設(shè)置周期性命令數(shù)據(jù)傳輸狀態(tài)為正在進(jìn)行中call senddata (periodic-command) 發(fā)送周期性命令mscomm1.rthreshold=r-periodic-byte 發(fā)送周期性命令后,主站接收r-
10、remot- edata-byte個字節(jié),可引發(fā) oncomm 事件end sub 2.4 oncomm事件程序根據(jù) rthreshold 屬性設(shè)置值,當(dāng)接收緩存區(qū)內(nèi)接收到相應(yīng)字節(jié)的字符時,引發(fā) oncomm 事件,在中斷程序中接收數(shù)據(jù)。sub mscomm1-oncomm () select case mevent 在此可插入處理各種不同錯誤或事件的代碼case mscomm-ev-receive receivestring$=mscomm1.input end select end select end sub 隨著 vb 版本的不斷升級, vb 將成為最快速、易用、強(qiáng)勁的應(yīng)用開發(fā)工具,是企業(yè)級客戶/服務(wù)器應(yīng)用軟件開發(fā)的首選工具之一。select case mscomm1.rthreshold case r-periodic-byte 周期性命令的應(yīng)答數(shù)據(jù)call disposedata(periodic-command) 處理接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食品蒸發(fā)濃縮機(jī)械合作協(xié)議書
- 2025年塑料助劑:潤滑劑合作協(xié)議書
- 2025年呼吸制氧合作協(xié)議書
- 2025年年4K超高清合作協(xié)議書
- 2025年脂環(huán)烴合作協(xié)議書
- 八年級英語下冊 Unit 10 單元綜合測試卷(人教版 2025年春)
- 2024-2025學(xué)年黑龍江省佳木斯市富錦市第十小學(xué)四年級(上)期末數(shù)學(xué)試卷
- 2025道德與法治九年級第二學(xué)期中考教學(xué)工作計劃
- 鄂州市梁子湖區(qū)八年級上冊語文名著導(dǎo)讀《紅星照耀中國》
- 七年級上學(xué)期歷史試卷
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 特殊教育學(xué)校2024-2025學(xué)年度第二學(xué)期教學(xué)工作計劃
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
- 《生物資源評估》剩余產(chǎn)量模型
- 2022年廣東省10月自考藝術(shù)概論00504試題及答案
- 隧道二襯承包合同參考
- 物理專業(yè)常用英語詞匯
評論
0/150
提交評論