a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

VisualBasic通信程序設(shè)計(jì)

2019-11-18 17:46:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
VisualBasic中通信控件及其在windows平臺(tái)下的通信軟件設(shè)計(jì)方法,并結(jié)合具體實(shí)例給出了基本的通信程序。


  1992年crescentsoftwareinc.公司專為vb設(shè)計(jì)了mscomm.vbx用戶通信控件,它提供了通過(guò)串口發(fā)送和接收數(shù)據(jù)的串行通信能力,不但包括了全部windowsapi中關(guān)于串行通信的16個(gè)函數(shù)所完成的功能,而且開(kāi)拓了更多的使用戶設(shè)計(jì)方便的對(duì)象屬性來(lái)滿足不同用戶不同業(yè)務(wù)的需求。目前國(guó)內(nèi)眾多的vb資料中很少涉及該通信控件的介紹,本文將詳細(xì)介紹mscomm.vbx通信控件及編程方法,并結(jié)合工作中的一個(gè)實(shí)例給出基本通信程序。


1mscomm.vbx通信控件描述


mscomm.vbx通信控件可直接從vb的toolbox中加入窗體form,即可用其進(jìn)行通信。若toolbox中無(wú)此控件,則用tools的customcontrols將mscomm.vbx從windows的system子目錄中加入vb的toolbox中。


1.1通信方式


mscomm.vbx有2種不同的方式來(lái)處理和解決各類通信軟件的開(kāi)發(fā)和設(shè)計(jì)問(wèn)題


1、事件驅(qū)動(dòng)。它與c/c 寫windows軟件時(shí)的窗口回調(diào)函數(shù)類似,是1種功能強(qiáng)大的處理問(wèn)題的方法。在實(shí)際工作中,往往要處理許多通信中的相關(guān)事件,例如:當(dāng)線路數(shù)據(jù)到達(dá)本端或cd線和rts信號(hào)線狀態(tài)發(fā)生變化時(shí),要求我們使用相應(yīng)的事件來(lái)跟蹤和處理,該控件是使用oncomm事件來(lái)實(shí)現(xiàn)的,它也包括檢測(cè)和處理通信錯(cuò)誤等方面的問(wèn)題,commevent值返回最近的通信事件或錯(cuò)誤的數(shù)字代碼。通信控件詳細(xì)的錯(cuò)誤和事件舉例有:


mscomm-er-break收到1個(gè)breaksignal


mscomm-er-cdtocd信號(hào)超時(shí)


……


mscomm-ev-cdcd信號(hào)改變


……


2、查詢方式。由程序設(shè)計(jì)者負(fù)責(zé)讀取commevent的值并處理所發(fā)生的錯(cuò)誤或事件。通常簡(jiǎn)單的應(yīng)用程序設(shè)計(jì)可采用這種辦法。


1.2通信控件的屬性


利用通信控件編制通信程序,關(guān)鍵是準(zhǔn)確理解設(shè)置通信控件的屬性。mscomm.vbx提供了27個(gè)關(guān)于通信控件方面的屬性,例如:


commport:設(shè)置或返回通信口編號(hào)。

settings:設(shè)置或返回以字符串形式出現(xiàn)的數(shù)據(jù)通信格式:波特率、校驗(yàn)、數(shù)據(jù)位和停止位。

portopen:設(shè)置或返回通信口狀態(tài)(包括打開(kāi)和關(guān)閉1個(gè)通信口)

……


3、實(shí)例

本程序應(yīng)用背景為dcc95型靜電除塵器自動(dòng)監(jiān)控系統(tǒng)軟件,解決1個(gè)pc工控機(jī)(主站)與32個(gè)單片機(jī)(子站)之間的通信問(wèn)題。主站與子站之間這總線式網(wǎng)絡(luò)結(jié)構(gòu),采用rs-485通信標(biāo)準(zhǔn),以問(wèn)答方式進(jìn)行數(shù)據(jù)通信。由于32個(gè)子站與主站發(fā)送通信命令(下行命令),主站在接收子站發(fā)回的相應(yīng)回答命令(上行命令)后繼續(xù)發(fā)送下行命令的通信形式。根據(jù)系統(tǒng)功能的要求,主站需發(fā)送2種類型的命令:(1)同期命令,它由定時(shí)器觸發(fā)引起,每隔ls周期發(fā)送1次;(2)非周期性命令,它由操作者按動(dòng)相應(yīng)命令按鈕引起,非周期性發(fā)送。自動(dòng)監(jiān)控系統(tǒng)軟件安裝在主站上,而通信程序作為自動(dòng)監(jiān)控系統(tǒng)軟件的一部分也安裝在主站上。


本文僅列出調(diào)試通信程序時(shí)進(jìn)行試驗(yàn)用的基本演示程序清單。試驗(yàn)時(shí),用1臺(tái)pc機(jī)作為主站,另一臺(tái)pc機(jī)模擬32個(gè)子站的工作,兩臺(tái)pc機(jī)之間采用rs232c串口通信。往主站的通信演示程序窗體(form)中加入1個(gè)通信控件、2個(gè)定時(shí)器控件和1個(gè)命令按鈕控件,通信控件(mscomm1)用于訪問(wèn)串口,發(fā)送和接收數(shù)據(jù);periodic定時(shí)器控件(periodic)用于控制每秒由主站向各子站發(fā)送周期性命令;命令按鈕控件(nonperiodic-command)與nonperiodic定時(shí)器控件(nonperiodic)用于發(fā)送非周期性命令。數(shù)據(jù)傳送采用事件驅(qū)動(dòng)的通信方式,根據(jù)不同的發(fā)送命令設(shè)置rtreshlod屬性,從而引起oncomm事件以接收數(shù)據(jù)。


2.1窗體各控件初始化程序


設(shè)置通信串口工作參數(shù),設(shè)置periodic定時(shí)器的在斷間隔為ls,nonperiodic定時(shí)器的中斷間隔為0.5s。


subform-load()


mscomm1.commport=2'選用com2串行口


mscomm1.settings="9600,n8,1"'波特率9600,無(wú)奇偶校驗(yàn)位,8位數(shù)據(jù)位1位停止位


mscomm1.inputlen=0'input將讀取接收緩沖區(qū)的全部?jī)?nèi)容


mscomm1.inbuffersize=1024'設(shè)置接收緩沖區(qū)的字節(jié)長(zhǎng)度


mscomm1.portopen=true'打開(kāi)通信口


mscomm1.inbuffercount=0'清除發(fā)送緩沖區(qū)數(shù)據(jù)


mscomm1.outbuffercount=0'清除接收緩沖區(qū)數(shù)據(jù)


periodic.inteval=100'設(shè)置ls定時(shí)間隔,使遙測(cè)命令每隔ls發(fā)送1次


nonperiodic.inteval=500'設(shè)置0.5s定時(shí)間隔,查詢命令按鈕是否處于激活狀態(tài)以確定是否發(fā)送周期性命令


command-

endselect


endselect


endsub


隨著vb版本的不斷升級(jí),vb將成為最快速、易用、強(qiáng)勁的應(yīng)用開(kāi)發(fā)工具,是企業(yè)級(jí)客戶/服務(wù)器應(yīng)用軟件開(kāi)發(fā)的首選工具之一。->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91香蕉 | 91在线免费看 | 国产精品二区三区 | 999在线观看精品免费不卡网站 | 国产一级免费看 | 日本黄色影片在线观看 | 欧美一区二区三区成人 | 天堂一区二区三区四区 | 日韩精品一区二区三区在线观看 | 中文字幕在线精品 | 青青草精品视频 | 日韩色区| 久久不射电影网 | 综合久久综合久久 | 欧美色综合 | 亚洲欧美在线一区二区 | 欧美日韩亚洲成人 | 久久国产精品一区 | 久久久极品 | 免费激情小视频 | 亚洲免费黄色 | 蜜桃精品久久久久久久免费影院 | 欧美日韩中文字幕在线播放 | 国产精品免费av | 波多野结衣一二三四区 | 久久久久久免费毛片精品 | 日韩精品影院 | 日韩亚洲一区二区 | 韩国三级中文字幕hd久久精品 | 欧美日韩影院 | 欧美成视频| 久久va| 欧美一区三区 | 黄色免费在线观看网址 | 精品国产麻豆 | 中文字幕在线视频网站 | 国产精品日韩欧美 | 特级淫片裸体免费看 | 国产精品一区一区 | 欧美亚洲性视频 | 国产剧情一区二区 |