您现在的位置: 论文网 >> 工学论文 >> 通信学论文 >> 基于VB的RS-485 串口通信方法论文

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

出处:论文网
时间:2017-09-07

基于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控件使用方便,容易掌握,利用此控件可以轻松地实现串口通信。

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

论文搜索
关键字:串口 基于 通信 方法 485 RS
最新通信学论文
浅谈广播电视转播台系统的防雷与接地
广播电视村村通卫星接收设备的安装和调试
浅谈VoIP技术在语音通信系统中的应用与发展
外力破坏对通信光缆的影响及安全管理措施分
浅谈数据中心的通信工艺、配电与智能弱电
地铁通信传输系统技术分析
关于通信工程技术的方法探究
关于4G无线通信移动终端天线的研究
CAN总线在铁路设备通信中的应用
计算机通信网及光纤通信技术的研究
热门通信学论文
无线通信技术热点及发展趋势
无线局域网技术概述
光纤光缆和通信电缆的技术发展与思考
浅谈数据通信及其应用前景
如何配置局域网中的通信协议
信息资源在汽车维修业中的应用
GSM网络室外直放站的设计
我国铁路信息化工程的建设与应用
管理信息化在模具制造业的应用和实践
信息技术教育的目标与定位