999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB的RS-485 串口通信方法

2016-08-09 07:23:32王香菊范興亮鄔聰明
中國新通信 2016年11期

王香菊 范興亮 鄔聰明

【摘要】 在VB(Visual Basic)語言編程中,使用串口通信MSComm控件,可以方便地實現串口通信編程。RS-485總線接口是一種常用的串口總線,具有連接方便、抗干擾性能好、傳輸距離遠等優點。本文介紹了在VB環境下,使用微軟公司提供的MSComm控件實現RS-485串口通信的方法。

【關鍵字】 MSComm控件 VB 串行接口 RS-485

引言

在工業控制領域,工控機經常需要與智能儀器或其它設備通過串口進行通信。串口通信方便易行,應用廣泛。Visual Basic(簡稱VB)是Windows系統開發的主要語言之一,以其高效、簡單易學及功能強大的特點被廣大程序設計人員所青睞。VB支持面向對象的程序設計,具有結構化的事件驅動編程模式并可以使用功能強大的控件。

一、串口通信標準

串行接口(Serial Interface)是指數據按位順序傳送,其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信,并可以利用電話線,從而降低了成本,適用于遠距離通信,但傳送速度較慢。串行接口按電氣標準及協議來分包括RS-232-C、RS-422、RS485等。

RS-232也稱標準串口,最常用的一種串行通訊接口。RS-232是為點對點(即只用一對收、發設備)通訊而設計的,適合本地設備之間的通信。其傳送距離最大為約15米,最高速率為20kb/s。RS-422標準是一系列的規定采用4線,全雙工,差分傳輸,多點通信的數據傳輸協議。RS-422支持點對多的雙向通信,其最大傳輸距離為1219米,最大傳輸速率為10Mb/s。在100kb/s速率以下,才可能達到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。

RS-485是從RS-422基礎上發展而來的,所以RS-485許多電氣規定與RS-422相仿。RS-485可以采用二線與四線方式,二線制可實現真正的多點雙向通信,而采用四線連接時,能實現點對多的通信,它比RS-422有改進,無論四線還是二線連接方式總線上可多接到32個設備。RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s,但只有在很短的距離下才能獲得最高速率傳輸。PC機默認的串口是RS-232標準,但RS-485總線接口具有網絡連接方便、抗干擾性能好、傳輸距離遠等優點,它彌補了RS-232 通訊距離短,不能進行多臺設備同時互聯的缺點。

二、MSComm 控件介紹

MSComm控件通過串行端口發送和接收數據,為應用程序提供串行通訊功能。使用MSComm控件時,程序員不必花時間去了解復雜的API函數,而且多個平臺均可使用。Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的用于實現Windows下串行通信的ActiveX控件。它提供了兩種實現串口通信的方法:事件驅動方法和查詢法。

VB中的MSComm控件提供了功能完善的串口數據的發送和接收功能。 Mscomm控件通信功能的具體實現,實際上是調用了API函數。對于VB程序開發者只需知道Mscomm控件的屬性和用法即可以實現串口的操作。Mscomm控件的主要屬性和用法如下表1。

三、VB中使用MSComm控件實現串口通信的過程

在工程應用編程過程中,使用工控機作為上位機,通過串口對自己的下位機進行控制。在控制界面中首先插入Mscomm控件,其名稱可以通過它的屬性進行設置,如不設置默認為Mscomm1。編程代碼如下:

(1)串口初始化

MSComm1.CommPort = COM1 ‘采用COM1端口

MSComm1.Settings = “9600,n,8,1” ‘對串口通信設置

MSComm1.InputMode = 1 ‘采用二進傳輸

MSComm1.InBufferCount = 0 ‘清空接受緩沖區

MSComm1.OutBufferCount = 0 ‘清空傳輸緩沖區

MSComm1.RThreshold = 9 ‘接收緩沖區收到9字符都會使控件產生 OnComm 事件

MSComm1.InBufferSize = InBufferSize ‘接收緩沖區默認為1024個字節MSComm1.OutBufferSize = OutBufferSize ‘發送緩沖區默認為512個字節

MSComm1.PortOpen = True ‘打開端口

(2)串口發送數據

Dim send_data(0 to 1) As Byte

MSComm1.RTSEnable = True

MSComm1.DTREnable = True

send_data(0)=&HA1;

send_data(1)=&HB1;

MSComm1.Output=send_data

MSComm1.OutBufferCount = 0

(3)串口接收數據

Dim dd(100) As Byte

Dim buffer As Variant

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case 2

MSComm1.InputLen = 9 ‘一次從接收緩沖區讀取的字節數

buffer = MSComm1.Input

for i = 0 To UBound(buffer)

dd(i) = buffer(i)

next i

……對所收到的數據處理成所需的數據類型

End Select

MSComm1.InBufferCount = 0

End Sub

(4)關閉串口

MSComm1.PortOpen=False ‘關閉通信口

在程序設計過程中,將上述程序代碼添加到設計好的程序界面中就可以實現串口通信,可以用定時器或線程對串口的收發數據進行靈活控制。在控制系統設計中,一般上位機(工控機)串口默認只有RS-232口,要實現RS-485串口通信,需要在硬件電路的連接中使用”RS-232轉RS-485”轉換器。

四、結束語

在VB集成開發環境中,利用MSComm控件實現RS-485串口通信,通過軟件的實際運行效果證明這種編程方法簡單,通信可靠。對于許多編程者來說,MSComm控件使用方便,容易掌握,利用此控件可以輕松地實現串口通信。

參 考 文 獻

[1] 錢雪忠. 新編Visual Basic程序設計教程,北京:機械工業出版社, 2007.5

[2]劉長征,張榮華.Visual v++ 串口通信及測控應用實例詳解[M].北京:電子工業出版社,2014.1

主站蜘蛛池模板: 欧美一级高清视频在线播放| 国产高潮流白浆视频| 在线欧美日韩国产| 国产毛片久久国产| 欧美.成人.综合在线| 久久久久久久久久国产精品| 国产精品护士| 欧美在线视频a| 亚洲综合中文字幕国产精品欧美| 91啪在线| 午夜限制老子影院888| 欧美在线黄| 亚洲成年人网| 国产美女视频黄a视频全免费网站| 高清久久精品亚洲日韩Av| 最新亚洲人成无码网站欣赏网 | 青青青国产视频手机| 亚洲无码在线午夜电影| 亚洲精品成人福利在线电影| 在线亚洲精品自拍| 日本爱爱精品一区二区| 欧洲欧美人成免费全部视频| 国产打屁股免费区网站| 18禁高潮出水呻吟娇喘蜜芽| 中文字幕在线看| 国产精品私拍在线爆乳| 色婷婷成人网| 久久大香香蕉国产免费网站| 国产老女人精品免费视频| 国产手机在线小视频免费观看| 国产另类视频| 国产美女在线观看| 日本伊人色综合网| www.日韩三级| 国产福利微拍精品一区二区| 九九热精品在线视频| 99国产精品国产| 最新日本中文字幕| 中文字幕av一区二区三区欲色| 日韩AV手机在线观看蜜芽| 老色鬼欧美精品| 日韩精品久久无码中文字幕色欲| 老色鬼欧美精品| 精品一区二区三区中文字幕| 亚洲女同一区二区| 国产欧美日韩在线一区| 91po国产在线精品免费观看| 亚洲精品无码久久久久苍井空| 亚洲欧美日韩综合二区三区| 国产视频欧美| 色综合天天视频在线观看| 香蕉99国内自产自拍视频| 久久夜夜视频| 在线观看国产精品第一区免费 | 小说 亚洲 无码 精品| 国产成人超碰无码| 一级全免费视频播放| 国产美女人喷水在线观看| 亚洲欧洲免费视频| 亚洲精品无码成人片在线观看| 久久无码高潮喷水| 中国国产A一级毛片| 国产精品美女自慰喷水| 精久久久久无码区中文字幕| 伊人久久久久久久久久| 99久久精品国产自免费| 国产精品久久久久鬼色| 国产永久免费视频m3u8| 亚洲一级毛片在线播放| 呦视频在线一区二区三区| 92精品国产自产在线观看| 91精品伊人久久大香线蕉| 国内精品免费| 老司机久久99久久精品播放| 91美女视频在线观看| 久久久国产精品无码专区| 国产99热| 久久影院一区二区h| 久久女人网| 亚洲天堂网在线视频| 国产一级视频在线观看网站| 伊人蕉久影院|