VisualBasic串口通信程序设计实例

合集下载

用VisualBasic的Communications控件实现串行通信-2019年精选文档

用VisualBasic的Communications控件实现串行通信-2019年精选文档

ations 控件实现串行通信1.引言Visual Basic (以下简称VB )是一般程序设计人员在Windows 环境下最常用的编程语言。

在 VB 中除了可以调用 API 函数,完成串行通信的任务之外,更常用、更简便的是使用 提供的Communications 控件(以下简称Comn 控件)来完成各种 串行通信任务。

2. VB 的Comr 控件2.1 Com m 控件的添加Comm 控件并不是VB 的基本控件,刚进入 VB 环境中时,在控件工具箱上是找不到 Comn 控件的,要使用它必须另行添加,添加的方法如下:用鼠标右击VB 的控件工具箱,在弹出菜单中选择"部件…"菜单项,会出现一个"部件…"对话框,勾选其中的"MicrosoftComm Control6.0"选项,在VB 的控件工具箱中会出现一个电话2.2 Comm 控件概述 Comm 控件用于进行串行通信,既可以用来提供简单的串行端口通信功能, 也可以用来创建功能完备的、 事件驱动的高级通 信工具。

Comm 空件提供了一系列标准通信命令的使用界面。

使用它用Visua Basic 的CommunicVB 机形状的控件图标,它就是进行串行通信要使用的Comr 控 件。

可以建立与串行端口的连接,通过串行端口连接到其他通信设备(如MODEM,发出命令,交换数据以及监视和响应串行连接中发生的事件和错误。

利用它可以进行诸如拨打电话、监视串行端口的输入数据乃至创建功能完备的终端程序等功能。

2.3 Comm 空件的重要属性1)CommPor:t 设置或返回通信端口号,其取值范围为1〜99,缺省为1。

当把这个属性设置成1,表示利用COM1 端口进行串行通信。

在程序运行时也可以读取该属性, 用来了解串行端口的使用情况。

2)Settings :用字符串的形式设置或返回串行通信的帧格式。

例如将Settings设置为"9600, n, 8, 1",表示采用的串行通信波特率是9600、无奇偶校验、数据位是8 位、 1 位停止位。

Visual+Basic串口通讯调试方法

Visual+Basic串口通讯调试方法

Visual Basic串口通讯调试方法现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符均发送11位ASCII码,一个起始位。

在VB 中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。

具体程序如下:控件简称:MSCDim Out(12) As Byte '接收var中的值Dim var As Variant '接收MSC.input中的数值Dim nRece As Integer '计算MSC.inputbuffer的个数Dim i As Integer, j As Integer '随即变量,计算循环****************************************************************************Private Sub Form_Load()ClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。

含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit).InBufferSize = 40 '设置缓冲区接收数据为40字节.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1.RThreshold = 1 '设置接收一个字节就产生OnComm事件End WithEnd Sub****************************************************************************Private Sub ClearText()Text3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_Click()ClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为二进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnComm()DelayTime ‘用来延续时间ClearTextWith MSCSelect Case .CommEvent '判断通信事件Case comEvReceive: '收到Rthreshold个字节产生的接收事件SwichVar 1If Out(1) = 2 Then '判断是否为数据的开始标志.RThreshold = 0 '关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节' nRece = nRece + 1For i = 2 To 12SwichVar iText1.Text = Text1.Text & Chr(Out(i))NextText1.Text = LTrim(Text1.Text)Text2.Text = Text2.Text & CStr(nRece).RThreshold = 1 '打开MSComm事件接收Case Else' .PortOpen = FalseEnd SelectEnd WithEnd Sub****************************************************************************Private Sub DelayTime()Dim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = TruesPrevious = Timer (Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = TrueEnd Sub(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用二进制形式,即InputMode=comInputModeBinary,但用Input 属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

利用Visual Basic实现串行通信技术

利用Visual Basic实现串行通信技术

B 60 中通 信控件在 Wid ws 台下进 行通信软件 的开发,并 给出 了事例 的基本通 信程 序 . ac. no 平 关 键 词 :Vi a a i Mso s lB s c mmlV u c BX通 信控件 I程 序设计
中圈分类号 ;T 330 P 9 .2
文 献 标识 码 :A
统提出资源申请 要求 ( 打开 串口) ,通信完成后必须释放资源 ( 关闭串口) 。
2 RS 3 C串 口通 信接 线 方 法 ( 22 三线制 )

个完 整的 RS 3 C接 口有 2 -2 2 2根线 ,采 用标 准的 2 插头 5芯
P C
PC
座 ( 或者 9芯插头座 ) 5芯和 9芯的主要信号线相同。首先 ,串 。2 口传输 数据 只要 有 接收 数 据 针 脚 和 发 送针 脚就 能 实现 :同一个 串 口 的接收脚和发送脚直接 用线相连 ;两个串口相连或一个串口 多个 和 串口相连 同一对 9 针串 口和 2 针 串口, 5 均是 2 3 与 交叉相连 , 信号
Es le ’
M SCo m . m 1 DTRE b e na l =Fas l e
En I df
3 打开时 向 MO E 发出一些命令来设置有关参数 ,其 中 S = (>= ) ) DM 0 nn 1自动应答 . n为响铃次数 ; E/ 0 El关 闭/ 开 命令 字 符 回应 lO / mo e 返 回/ 打 O Ol dm 不返 回结 果 码 lMO M l关 闭 / 开 MOD M 扬 声 / 打 E 器 ,例 程 如 下 :
伊 崇信 ’ 赵

卉哈尔 1 10 ) 6 0 0 (. 1齐齐哈 尔大学信息学院 计算机系.齐齐哈 尔 1 10 , .齐齐哈尔铁路运输职工大学 计算机 系.齐: 6 06 2

使用VB实现的基于串口通信的数据采集系统毕业设计

使用VB实现的基于串口通信的数据采集系统毕业设计

基于串行口的数据采集系统的设计摘要:数据采集在日常生活中有着广泛的应用,特别是在一些对数据的准确性,实时性要求比较高的场合,需要设计专用的电路来实现系统的需求,而系统的功能的实现,与我们对元器件的选型,设计搭建的电路有直接的关系,它们直接影响着系统对外界环境的感知和响应能力,决定着系统的性能。

数据采集在工业控制领域有着广泛的需求,本设计是实现基于串行口的数据采集系统,以采集周围的环境温度为采集对象,以STC89C51单片机作为下位机,以PC机作为上位机,使用9针串口来实现下位机和上位机的通讯。

通过在PC机上使用VB6.0开发软件来开发实现数据接收显示控制界面。

系统调试结果表明,该系统设计合理,对周边环境温度的变化反应敏感,数据采集的波特率达到9600bps.关键字:数据采集系统、STC89C51单片机、串口通信、VB中图分类号:TP2IDesign of Data Acquisition System Base on SerialCommunicationABSTRACT: Data collection is widely applied in daily life, especially in the place which is very high request in data accuracy, real time display. A special circuit is need to be designed to realize it. Also, it have much connection with the sensor and circuit design , they influence the system’s sensor and response ability very much , it directly determined the system’s character.Nowadays, Data collection is widely requested in the industry control area. The system is designed to realize the data acquisition according to the serial port , collecting the temperature around the environment as collection object , use STC89C51 single-chip microcomputer as down machine , use personal computer as upper machine , use 9 pin serial port to realize the down SCM and upper PC’s communication . A display control form was made use the VB6.0 software . The experiment have done display that , the design was reasonable , it was very sensitive to the temperature’s ch ange around the environment .The system’s data collection speed could arrived to 9600bps.关键词:data collection system;STC89C51 single-chip microcomputer;serial communication;Visual Basic中图分类号:TP2II目次摘要 (I)ABSTRACT (II)目次 .......................................................................................................................................I II 1绪论. (1)1.1研究的背景和意义 (1)1.2数据采集系统的研究现状 (1)1.3研究思路和方法比较 (2)1.4本章小结 (3)2 基于串行口的数据采集系统的总体设计与分析 (4)2.1 基于串行口的数据采集系统的总体设计思想 (4)2.2 设计方案与论证 (4)2.3 本章小结 (5)3 下位机的设计 (6)3.1传感器的选择 (6)3.2 TTL与RS232电平的转换 (7)3.3单片机电路设计 (8)3.4系统总的电路设计实现 (8)3.5本章小结 (10)4 上位机的设计 (11)4.1 Visual Basic设计介绍 (11)4.2 Visual Basic 设计实现 (12)III4.3 本章小结 (13)5 系统结果和分析 (14)5.1 实验调试与结果 (14)5.2 本章小结 (18)6总结 (19)参考文献 (20)附录(下位机实现程序代码) (21)个人简历 (22)学位论文数据集 (23)IV1 绪论1.1 研究的背景和意义在计算机广泛应用的今天,数据采集在很多领域有着十分重要的应用。

Visual Basic串口通信程序设计实例

Visual Basic串口通信程序设计实例

第6章Visual Basic串口通信程序设计典型实例利用Visual Basic开发串口通信程序既可以使用MSComm控件也可以调用Windows API 函数。

不过,只要MSComm可以被选用,它几乎总是我们推荐的选择,因为MSComm的功能和API调用一样好甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了PC机与PC机串口通信外,PC机与单片机、PC机与智能仪表、PC机与PLC、PC机与GSM短信模块等串口通信任务的实现均采用MSComm控件。

6.1 PC机与PC机串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台PC机串口三线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。

6.1.1 设计目的1)掌握PC机与PC机串口通信的线路连接方法。

2)利用MSComm控件和VB-API函数实现PC机与PC机串口通信的程序设计方法。

6.1.2 设计用软、硬件本设计用到的硬件和软件清单见表6-1。

6.1.3 硬件线路线路说明:在计算机通电前,按图6-1所示将2台PC机通过串口线连接起来:PC机A 串口COM1端口的TXD与PC机B串口COM1端口的RXD相连;PC机A串口COM1端口的RXD与PC机B串口COM1端口的TXD相连;PC机A串口COM1端口的GND与PC机B串口COM1端口的GND相连。

6.1.4 设计任务利用MSComm控件和Visual Basic API函数编写程序实现PC机与PC机串口通信。

图6-1 PC机与PC机串口通信线路任务要求:两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。

Visual Basic串口通信程序设计实例

Visual Basic串口通信程序设计实例

Visual Basic串口通信程序设计典型实例利用Visual Basic开发串口通信程序既可以使用MSComm控件也可以调用Windows API 函数。

不过,只要MSComm可以被选用,它几乎总是我们推荐的选择,因为MSComm的功能和API调用一样好甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了PC机与PC机串口通信外,PC机与单片机、PC机与智能仪表、PC机与PLC、PC机与GSM短信模块等串口通信任务的实现均采用MSComm控件。

6.1 PC机与PC机串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台PC机串口三线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。

6.1.1 设计目的1)掌握PC机与PC机串口通信的线路连接方法。

2)利用MSComm控件和VB-API函数实现PC机与PC机串口通信的程序设计方法。

6.1.2 设计用软、硬件本设计用到的硬件和软件清单见表6-1。

6.1.3 硬件线路线路说明:在计算机通电前,按图6-1所示将2台PC机通过串口线连接起来:PC机A 串口COM1端口的TXD与PC机B串口COM1端口的RXD相连;PC机A串口COM1端口的RXD与PC机B串口COM1端口的TXD相连;PC机A串口COM1端口的GND与PC机B串口COM1端口的GND相连。

6.1.4 设计任务利用MSComm控件和Visual Basic API函数编写程序实现PC机与PC机串口通信。

216图6-1 PC机与PC机串口通信线路任务要求:两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。

PLC与VB6.0串口通讯案例

PLC与VB6.0串口通讯案例

1、引言可编程控制器以其高可靠性,配置灵活和完善的功能,在工业控制系统中得到越来越广泛的应用。

但对于操作员所需要的报表打印、趋势图形显示、工况查寻、参数在线修改等功能,PLC却不能直接方便地提供。

所以通常采用计算机PC与PLC组成一个完整的监控系统。

本文以台安TP02系列PLC为例,讨论用Visual Basic(VB)实现PLC与上位机的通讯2、VB在通讯控件中的使用可编程控制器PLC与上位机PC之间的通信,下位机为PLC,基于其可靠性极高,主要承担控制功能,而上位PC机主要承担监察管理功能,有时兼备部分控制功能,如发出运行,停止命令。

VB语言是基于WINDOWS操作系统的功能强、易学易用、主要是面向学习对象的程序设计语言。

VB带有专门管理串行通讯的MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。

要完成通信必须设置MSComm的相关属性值:(1)CommPort:设置或传回通信连接端口代号(2)Settings:设置初始化参数。

以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数(3)PortOpen:设置或传回通信连接端口的状态(4)Input:从输入寄存器传回并移除字符(5)Output:将一个字符串写入输出寄存器(6)InputLen:指定由串行端口读入的字符串长度(7)InBu FF erCount:传回在接收寄存器中的字符数3、软硬件之间:台安TP02与上位机PC通信时,为了实现两者的通信需要配备通信线。

4、通信程序的实现4.1 通信初始化程序首先,在窗体开始设计之前,添加MSComm控件。

4.2程序编写:4.2.1 通信控件MSComm1属性设置:mPort = 1 设置端口号MSComm1.Settings = "19200,E,7,2" 设置通信参数MSComm1.InputLen = 0 设置读入字符串长度MSComm1.PortOpen = True 设置通信端口状态4.2.2 PLC运行程序:STX$ = "::"TransmitBuf$ = "01?5RUN"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBu FF erCount >= 12In1$ = MSComm1.Input4.2.3 从PLC读取资料,将寄存器内的数据资料在PC上显示以便观察监控(反应时间50ms):STX$ = "::"transmitBuf$ = "01?5MRVD000102"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 20InData$ = MSComm1.InputLabel2.Caption = Mid$(InData$, 10, 4)Label3.Caption = Mid$(InData$, 14, 4)4.2.4从PLC读取资料,将RelayC0001状态通过PC显示进行监控(反应时间50ms):STX$ = "::"transmitBuf$ = "01?5MCRC0001"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 13In4$ = MSComm1.InputCoil$ = Mid$(In4$, 10, 1)C1% = CInt(Coil$)Label6.Caption = C1%4.2.5 设定Relay状态,将Relay设定为ON(反应时间50ms):Dim C1 As IntegerSTX$ = "::"transmitBuf$ = "01?5SCSY00011"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 12In2$ = MSComm1.Input4.2.6 PLC停止运行:STX$ = "::"transmitBuf$ = "01?5STP"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 12In3$ = MSComm1.Input4.2.7 VB6.0下CheckSum函数代码如下:Private Function CheckSum(transmitBuf$)L = Len(transmitBuf$)Add = 0Dim k, sum As IntegerFor k = 1 To LTJ$ = Mid$(transmitBuf$, k, 1)Add = Add + Asc(TJ$)Next kDo While Add >= 256Add = Add - 256LoopAdd = 255 - Add + 1tempBuf$ = Hex$(Add)CheckSum = LTrim(tempBuf$)End Function5、结论PLC与上位机的结合,并通过VB6.0传送数据所构成的计算机监控系统,对于近距离传输数据的现场控制来说是一种性价比很高的解决方案。

VisualC网络编程案例实战之串口通信编程应用.pptx

VisualC网络编程案例实战之串口通信编程应用.pptx
• 注意:串口控件类的成员函数说明请参考上面的 该类定义代码。
2.使用CMSComm类
• 在上面的小节中,向用户介绍了CMSComm类的头 文件。用户在该类的头文件中,可以看到主要的成 员函数声明等。在本小节中,将在程序中,使用该 类进行相关的串口操作,并向用户介绍这些操作的 方法。
• (1)用户要使用CMSComm类,必须在程序中包含 该类的头文件。
第14章 串口通信编程应用
• 如今,越来越多的用户将计算机串口应用到实际生 产和生活中。利用串口进行数据通信,不但可以实 现远距离数据传输,还可以轻松实现数据的检错与 纠错。读者在VC中,实现串口通信编程可以使用 MFC中的串口控件或者Windows API函数。在本章 中,将向用户分别介绍这两种实现方法。本章假定 读者在同一台计算机上虚拟了两个串口C置串口参数
• 首先,用户需要使用串口类对象调用函数SetCommPort() 设置将打开的串口号。该函数原型如下:
• void SetCommPort(short nNewValue);//设置串口号码
• 该函数的作用是指定或设置将打开的串口号码。参数 nNewValue表示设置的串口号。例如,用户在程序中, 将使用串口“COM1”进行串口通信,则设置串口号的 代码如下:
• CString str="9600,n,8,1"; 初始化参数字符串
• comm.SetSettings(str); 设置串口参数
//定义并 //
• 在上面的程序中,用户将波特率设置为9600(默认值),n表示无 校验位,数据位为8,停止位为1。其中,设置奇偶校验位的取值 如表14.2所示。
表14.1 串口接收数据类型的取值
取值 0 1
含义 表示接收数据的类型是文本类型 表示接收的数据类型为二进制类型

串口通讯及其在VB平台下的实现

串口通讯及其在VB平台下的实现

串口通讯及其在VB平台下的实现摘要:本文首先介绍串行通讯的基础知识,然后结合示例剖析在VB平台下的串口通讯的编程技巧。

随着计算机系统的普及与外围设备技术的发展,计算机与外围设备之间的通讯就显得越来越重要了。

由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。

在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。

所以串行接口是微机应用系统常用的接口,而相应的应用程序也成为今年来研究的热点。

本文旨在阐述一般的穿口通讯的原理及其程序设计,希望借此能够抛砖引玉,为更深入的研究打下一定的基础。

一、串行通讯的基本原理所谓"串行通信"是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。

相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。

二、串口通讯的程序设计原理前面介绍了串行通讯的基本原理,那么如何在程序设计中实现它呢?事实上,这个过程并不复杂,一般有两种实现途径:其一就是使用MSCOMM控件,此控件提供很多方便操作的属性和方法,利用它们可以很方便地实现你的目的;另外一种途径就是使用Windows API,微软为开发者提供了很多相关的串行操作的编程接口,使用这些接口,可以很完成更为强大的功能。

vb串口编程实例

vb串口编程实例

VB串口编程实例介绍VB(Visual Basic)是一种基于对象的编程语言,可用于开发Windows应用程序。

串口编程是指通过串行通信接口与外部设备进行数据交互。

本文将介绍如何使用VB进行串口编程,以实现与外部设备的通信。

前提条件在开始编写VB串口程序之前,需要确保以下条件已满足: - 安装了Visual Studio开发环境,可以选择最新版本的Visual Studio Community免费版。

- 确保计算机上有可用的串口(如COM1、COM2等)或USB转串口适配器。

步骤1. 创建新项目打开Visual Studio,选择创建一个新的VB Windows应用程序项目。

2. 添加控件在窗体上添加以下控件: - 一个ListBox控件用于显示接收到的数据。

- 两个Button控件分别用于打开和关闭串口。

- 一个ComboBox控件用于选择串口号。

- 一个TextBox控件用于输入要发送的数据。

- 一个Button控件用于发送数据。

3. 设置串口属性在窗体代码中添加如下代码:Imports System.IO.PortsPublic Class Form1Dim serialPort As New SerialPort()Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Lo ad' 获取可用的串口号并添加到ComboBox中Dim ports As String() = SerialPort.GetPortNames()ComboBox1.Items.AddRange(ports)End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click' 打开串口TryserialPort.PortName = ComboBox1.SelectedItem.ToString()serialPort.BaudRate = 9600serialPort.Parity = Parity.NoneserialPort.DataBits = 8serialPort.StopBits = StopBits.OneserialPort.Open()Button1.Enabled = FalseButton2.Enabled = TrueCatch ex As ExceptionMessageBox.Show("无法打开串口:" + ex.Message)End TryEnd SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button 2.Click' 关闭串口TryserialPort.Close()Button1.Enabled = TrueButton2.Enabled = FalseCatch ex As ExceptionMessageBox.Show("无法关闭串口:" + ex.Message)End TryEnd SubEnd Class4. 接收数据和发送数据在窗体代码中添加如下代码:Imports System.IO.PortsPublic Class Form1Dim serialPort As New SerialPort()Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Lo ad' 获取可用的串口号并添加到ComboBox中Dim ports As String() = SerialPort.GetPortNames()ComboBox1.Items.AddRange(ports)End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button 1.Click' 打开串口' 省略部分代码...AddHandler serialPort.DataReceived, AddressOf DataReceivedHandlerserialPort.Open()Button1.Enabled = FalseButton2.Enabled = TrueEnd SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button 2.Click' 关闭串口' 省略部分代码...RemoveHandler serialPort.DataReceived, AddressOf DataReceivedHandler serialPort.Close()Button1.Enabled = TrueButton2.Enabled = FalseEnd SubPrivate Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedE ventArgs)' 接收数据并显示在ListBox中Dim data As String = serialPort.ReadLine()ListBox1.Invoke(Sub() ListBox1.Items.Add(data))End SubPrivate Sub Button3_Click(sender As Object, e As EventArgs) Handles Button 3.Click' 发送数据If serialPort.IsOpen ThenDim dataToSend As String = TextBox1.TextserialPort.WriteLine(dataToSend)TextBox1.Clear()ElseMessageBox.Show("请先打开串口")End IfEnd SubEnd Class5. 运行程序点击运行按钮,程序将打开一个窗口,其中包含串口选择、打开/关闭串口、接收数据和发送数据的功能。

用VisualBasic实现串口通信的三种方法

用VisualBasic实现串口通信的三种方法

2. 利用通信控件的实例
Sub Form1 —load ()
form1. show ′设置 COM1
comm1. commport = 1
comm1. Setting = " 9600 ,o ,8 ,1" ′波特率 : 9600 奇校验 ,8
位数据 ,1 位停止位
comm1. Inputlen = 0
一 、利用通信控件( MSCOMM) 完成串口通信
VB 提供了通信控件 MSCOMM,文件名为 MSCOMM. VBX。 该控件可设置串行通信的数据发送和接收 ,对串口状态及串 行通信的信息格式和协议进行设置 。在通信过程中可以触发 OnComm 事件 ,在该事件过程进行数据检验处理及检错 ,还可 以通过编程访问 CommEvent 属性来了解通信的情况 ,进行收 发数据的处理 。每个通信控件对应一个串口 ,如果要访问多 个通信口 ,则要设计多个通信控件 。
利用 VB 提供的这些功能 ,我们可以有三种方法完成串 口通信 。一种是用 VB 提供的具有强大功能的通信控件 ;另一 种方法是调用 WINDOWS API 函数 ,使用 WINDOWS 提供的 通信函数编写移植性强的应用程序 ;第三是利用文件的输 入/ 输出完成 ,该方法简便易行 ,但有一定的局限性 。
EofChar As String 3 1
·6 ·
参数 As 类型 ]) As 类型 在声明中 :DECLARE 表示声明 DLL 中的函数 ,当声明是
不具有返回值的过程时用 SUB 关键字 ,而如果调用的函数具 有返回值 ,则必须用 FUNCTION 关键字将其声明为函数并在 声明语句的最后用 AS 指明函数返回值的类型 。LIB 关键字表 示当前声明的过程或函数是库名所指定的库中函数而非 VB 本身的函数 。库名 ,就是对应动态链接库的名称 ,其中通信函 数在 USER 库中 。ByVal 关键字将原参数数据类型一一对应到 VB 类型中 。

Visual Basic 串口通讯编程

Visual Basic 串口通讯编程

Visual Basic 串口通讯编程对于串行口的应用,相信大家多少知道一些,例如,它可以连接鼠标、MODEM、数码相机、打印机,等等,可以做很多很多的事情。

但是,对于串行口的理论,可能了解一二有所剩无几了。

什么是串行口?它是如何工作的?为什么用串行口?您知道吗?一、关于串行口发明计算机的人,肯定注意到了一点,那就是计算机必须与外界进行信息的交换,所以他们为计算机设计了外设口。

要与显示器相连,于是设计了显示口;要与硬盘相连,于是设计了IDE口;要与打印机相连,于是设计了打印口。

那么,有没有用最少数量的线(线多了麻烦多),就能与外界发生联系,并且能够成为通用的接口呢?当然,这就是诞生于设计大师们手中的串......对于串行口的应用,相信大家多少知道一些,例如,它可以连接鼠标、MODEM、数码相机、打印机,等等,可以做很多很多的事情。

但是,对于串行口的理论,可能了解一二有所剩无几了。

什么是串行口?它是如何工作的?为什么用串行口?您知道吗?一、 关于串行口发明计算机的人,肯定注意到了一点,那就是计算机必须与外界进行信息的交换,所以他们为计算机设计了外设口。

要与显示器相连,于是设计了显示口;要与硬盘相连,于是设计了IDE口;要与打印机相连,于是设计了打印口。

那么,有没有用最少数量的线(线多了麻烦多),就能与外界发生联系,并且能够成为通用的接口呢?当然,这就是诞生于设计大师们手中的串行口。

串行口所需要的线的确很少,一根公共地线无论如何也得要,然后,一根发送数据的线和一根接收数据的线,共三根线就行了。

也许您还会问,“能不能再少些呢?两根,一根,干脆一根都不要,成吗?”当然行,红外接口不就是一根线都没有吗?也许当时搞无线通讯的天才就是像您这么想的,不过这已经超出了今天我们讨论的范围。

既然是通讯,那么就必须有两台设备才行。

常用的串行线是怎样制作的呢?在计算机后边,您最少会看到一个串行口(笔记本电脑通常为一个,台式计算机通常为二个),采用的是梯型DB-9或DB-25插座,即采用9根线或25根线的插座,这是因为有的外设需要像数据准备、载波检测、请求发送等联络信号(对这些信号线感兴趣的先生/女士,可以查阅有关串行口的资料)。

vb串口通信

vb串口通信

正在为单片机做上位机程序。

单片机连续发FF030A00000B441703069C33C0AA这样的字符串(以FF开头,AA结束,固定长度)。

请问接收程序如何写?收到的数据:FF 1 1 0 0 A4 3A 8 4B 41 8C 3B 18 0 2A 0 0 0 34 0 AA FF 1 1 0 0 A4 3A 8 4B 41 8C 3B 18 0 2A 0 0 0 34 0 AA FF 1 1 0 0 A4 3A 8 4B 41 8C 3B 18 0 2A 0 0 0 34 0 AA FF 1 1 0 0 A4 3A 8 4B 41 8C 3B 18 0 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0 FF 1 4B 41 0 0开始的时候数据接收正常,但一会就变成上面这样了。

程序设置:Private Sub Form_Load()With MSComm1.CommPort = 1.Settings = "9600,N,8,1".InBufferSize = 1024 '原来为19.RThreshold = 1 '接收1字节触发oncomm事件.InputMode = comInputModeBinary.InputLen = 1 '输入长度为19.InBufferCount = 0 '清除接收缓冲区End With'打开端口If MSComm1.PortOpen = False ThenMSComm1.PortOpen = TrueIf Err ThenMsgBox (Err.Description)Exit SubEnd IfEnd IfEnd SubPrivate Sub MSComm1_OnComm()Dim S() As ByteDim SS(1024) As ByteStatic N As LongStatic T As VariantDim intInputLen As IntegerIf (mEvent = comEvReceive) ThenS = MSComm1.Input '只要有数据就收进来,哪怕只是一个T = TimerFor i = 0 To UBound(S)'一个数据包可能产生若干个oncomm事件If Check1.Value = 1 And Len(Text1.Text)> 2000 Then Text1.Text = ""Text1.Text = Text1.Text & Right(Hex(S(i)), 3) + " "SS(N + i) = S(i) '接收数据包缓存于SS()N = N + UBound(S)Next i' MSComm1.InBufferCount = 0End IfEnd Sub请各位高手指点If MSComm1.PortOpen Then MSComm1.PortOpen = FalsemPort = 1 '假定是用COM1口' 设定传输速率等,可依照您的需求更改MSComm1.Settings = "9600,N,8,1"MSComm1.PortOpen = True'---------初始化Modem-------------MSComm1.Output = "ATZ"MSComm1.Output = "AT&F"MSComm1.Output = "ATE0"MSComm1.Output = "ATM1"MSComm1.Output = "ATQ0"MSComm1.Output = "ATV0"'--------------------------拨号-------------MSComm1.Output ="ATDT163" '拨163'---------------------------接通后MSComm1.Output ="SDFJDKSJLKFA" '发送字符串'---------------------Private Sub MSComm1_OnComm() '用串口事件捕捉数据..If MSComm1.InBufferCount Then' 通讯埠中假如有资料的话, 则读取进来InStringB = InStringB & MSComm1.Input' 如果资料中有 Chr(13) 和 Chr(10) 的话, 则显示出来If InStr(InStringB, vbCrLf) Theninstring = instring & InStringBAddText Text3, InStringB, FalseInStringB = ""End IfEnd IfEND SUB'-------------------------挂断--------MSComm1.PortOpen = False '这个挂断方法不能适用所有MODEM,我正在研究...通用办法Top回复人: jessezappy(晶晶) ( ) 信誉:98 2002-01-25 02:05:50Z 得分:0?最后借你一篇文章看,作者不是我,里面的不一定都对..'-----------------------------------------------------------VB Mscomm控件应用江苏戚墅堰机车车辆厂设计处(213011) 李秉璋--------------------------------------------------------------------------------Visual Basic 6.0(以下简称VB) 是一种功能强大、简单易学的程序设计语言。

利用VB实现串口通信

利用VB实现串口通信
计算机测控系统安装与调试
利用 VB 实现串口通信
工作任务一 VB 的初步学习
【学习目的】
1.熟悉 Visual Basic 的基本概念。 2.掌握 Visual Basic 常用的语句。
【技能目标】
能初步使用 Visual Basic。
【相关知识】
知识一.Visual Basic
Visual Basic(简称 VB)是微软公司推出的一种可视化的、面向对象的结构化高级程 序设计语言,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一 种编程语言。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用 小程序,VB 都是最快速、最简便的语言。它简单易学、容易掌握,软件界面设计非常便捷, 编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。
2
计算机测控系统安装与调试
Else If <语句> Else <语句> End If
4.选择语句 用了过多的 Else 后你会感到很不方便,而且程序结构也不清晰,所以 VB 中还有选择语 句帮助解决这个问题。 VB 中的选择语句的格式是这样的: Select Case <变量名> Case <情况 1> <语句> Case <情况 2> <语句> …… Case <情况 n> <语句> Case Else <语句> End Select 其中:<变量名>可以是数值型或字符串型,而每个 Case 指定的<情况>的数据类型必须 与<变量名>的类型一致。 5.循环语句 循环结构是计算机语言里一种重要的结构,它的应用广泛,最简单的例子是累加器的作 用,更直观的例子是把某件事重复指定次数,这样就不用把要重复的语句输入多次,而通过 循环结构完成,非常方便。循环是指在指定的条件下多次重复执行一组语句。被重复执行的 一组语句称为循环体。VB 提供了 4 种结构形式的循环语句: (1)For ... Next 语句 C 语言里有一个“for”循环语句,VB 里也有“For”关键字,作用也差不多,只是 VB 的“For”语句更容易理解。它的格式是: For <循环变量>=<初赋值> To <终值> [Step <步长>] 循环体 [Exit For] Next <循环变量> <循环变量>必须为数值型。默认时,<步长>值为 1,<初赋值>小于<终值>。当开始执行 For 语句时,首先将<循环变量>初始化为<初赋值>,程序每循环一次,<循环变量>增 1,直 到<循环变量>到达<终值>时为止。 注意:在默认情况下,Step 被设为“1”,可以省略,Step 也可以设为负值,例如: Dim a=0 For I=1 To 10 a=a+I Next I 这是一个最简单的累加器的例子,把 1 到 10 累加在一起,然后赋值给“a”。下面的效

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例Visual Basic串口通信及编程实例在实际的工业控制、机器人控制、智能家居等领域中,使用串口通信是一种非常广泛的方式。

Visual Basic (VB) 是一种微软公司开发的高级编程语言,它不仅易于学习,而且拥有丰富的图形界面设计和数据处理功能。

在本篇文章中,我们将深入介绍如何使用VB实现串口通信。

1. 建立串口通信首先,我们需要在VB中创建一个新的窗口(Form),然后打开工具箱,从中拖拽出一个SerialPort(串口)控件。

在控件属性中,我们需要为其指定相关的参数,例如串口名称、波特率、数据位、停止位、校验位等。

通常情况下,这些参数需要根据硬件设备的配置来进行调整。

在VB中实现串口通信的核心部分是对于SerialPort控件的事件监控。

具体来讲,当SerialPort收到一个数据包时,它会触发一个DataReceived事件。

对于这个事件,我们可以在程序中编写回调函数进行处理。

例如:Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e AsSystem.IO.Ports.SerialDataReceivedEventArgs) HandlesSerialPort1.DataReceived'在这里实现对于数据包的解析和处理End Sub2. 数据读取和发送在SerialPort控件中,有几种方法可以实现数据的读取和发送。

下面我们将介绍其中两种方法:(1) ReadExisting这个方法可以从串口中读取所有现有的数据,例如:Dim data As String = SerialPort1.ReadExisting()(2) Write这个方法可以向串口发送数据,例如:SerialPort1.Write("Hello World")注意,这个函数只能发送字符串数据。

用VB通信控件实现串口通信

用VB通信控件实现串口通信

Setting:对串口通信的相关参数。包括串口通信的比特 率、奇偶校验、数据位长度、停止位等。其默认值是“9600, N,8,1”,表示串口比特率是 9600bit/s,不作奇偶校验,8 位数 据位,1 个停止位。
Portopen:设置串口状态,值为 True 时打开串口,值为 False 时关闭串口。
对 MSComm 控件设置相应的属性和事件,就可以进行串 行通信了 [2]。
(1) MSComm 的属性 由于 MSComm 控件属性很多,在这里仅介绍与实现串口 通信密切相关的重要属性。 Commport:设置通信所占用的串口号。如设成 1 (默认 值),表示对 COM1 进行操作。
本文收稿日期:2009-6-12
[2] 李长林. Visual Basci 串口通信技术与典型实例. 清华大学 出版社,2006,04.
作者简介 车飞,女 (1975-),计算机讲师,计算机应用。
-106-
3 PC 机间的串口通信
(1) 新建一个窗体,在上面放两个 Text 控件、两个 Com- mandButton 控件和两个 Label 控件。
(2) 在控件工具箱中的空白处点击鼠标右键,在弹出的 菜单中选择 “部件”,在弹出的窗口中的 控 件 列 表 中 找 到
(下转到 106 页)
- 80 -
电脑编程技巧与维护
Realize Serial Port Communication in VB Control
CHE Fei
(Siping Professional College,Siping 136002) Abstract: Through in VB Microsoft Communication Control (i.e. MSComm) attribute and the event carries on the corre- sponding programming operation, may with ease realize the serial port communication. Key words: Visual Basic; Serial Communication; MSComm Control

利用VB编写串口通信程序_李小慧

利用VB编写串口通信程序_李小慧

第26卷第2期唐山师范学院学报 2004年3月 Vol. 26 No.2 Journal of Tangshan Teachers College Mar. 2004 利用VB编写串口通信程序 李小慧(唐山师范学院计算机系,河北唐山 063000)摘要:通过实例,介绍利用VB进行串行通信编程的方法,即如何通过Mscomm控件进行串口通信数据的读写。

关键词:串口通信;软件;属性;事件;端口中图分类号:TN919.3 文献标识码:B 文章编号:1009-9115(2004)02-0084-03自动化是人类一起努力的目标,期待以其他的方式来代替人类完成一些困难或者是周期性的工作。

计算机自从诞生以来,经过不断的发展,功能不断提升,软硬件各方面均有长足的进步。

Visual Basic(简称VB)是一种在窗口操作平台上的视觉开发工具,使得开发更方便快捷。

现代的世界是一个高度自动化的世界,各种设备都可以和计算机作连线,而最简单的自动化连线方式就是使用串行通信。

VB提供了串行通信控件,让开发者可以方便快捷地开发串行通信程序。

利用计算机进行串口通讯是自动化将来发展的一种方向。

1 串行通信的实现1.1 实现方式 利用VB进行串口通信的开发,主要是使用一个控件:Mscomm控件。

它的目的是为了让用户设计一个系统可以和串行端口进行沟通及传送数据,提供了下列两种方式来处理信息的流动:事件驱动:是处理连接端口通信的一种有效方法。

当有事件发生时,程序会被告知。

例如,在有一个字符到达或者一个变化发生时,程序都可以利用Mscomm控件来侦测并处理这些通信事件及通信错误。

预先将程序写入控件的事件程序区块中,一旦事件发生即可自动执行该段程序。

程序通过检查CommEvent属性的值来循环查询事件和错误。

例如,对于某些程序,并没有必要每接收一个字符时都产生事件,有时需要接收多个字符或数据包后再回应。

固定地向设备查询状态的方式较好。

这两种方式都可达到数据读写的目的,使用时要看实际系统环境而定。

VISUAL BASIC串口通信程序设计

VISUAL BASIC串口通信程序设计

Visual Basic串口通信程序设计1mscomm.vbx通信控件描述mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信。

若toolbox中无此控件,则用tools的custom controls将mscomm.vbx从windows的system子目录中加入vb的toolbox中。

1.1通信方式mscomm.vbx有2种不同的方式来处理和解决各类通信软件的开发和设计问题1、事件驱动。

它与c/c++写windows软件时的窗口回调函数类似,是1种功能强大的处理问题的方法。

在实际工作中,往往要处理许多通信中的相关事件,例如:当线路数据到达本端或cd线和rts信号线状态发生变化时,要求我们使用相应的事件来跟踪和处理,该控件是使用oncomm事件来实现的,它也包括检测和处理通信错误等方面的问题,commevent值返回最近的通信事件或错误的数字代码。

通信控件详细的错误和事件举例有:mscomm-er-break收到1个break signalmscomm-er-cdto cd信号超时……mscomm-ev-cd cd信号改变……2、查询方式。

由程序设计者负责读取commevent的值并处理所发生的错误或事件。

通常简单的应用程序设计可采用这种办法。

1.2通信控件的属性利用通信控件编制通信程序,关键是准确理解设置通信控件的属性。

mscomm.vbx提供了27个关于通信控件方面的属性,例如:commport:设置或返回通信口编号。

settings:设置或返回以字符串形式出现的数据通信格式:波特率、校验、数据位和停止位。

portopen:设置或返回通信口状态(包括打开和关闭1个通信口)……3、实例本程序应用背景为dcc95型静电除尘器自动监控系统软件,解决1个pc工控机(主站)与32个单片机(子站)之间的通信问题。

主站与子站之间这总线式网络结构,采用rs-485通信标准,以问答方式进行数据通信。

用Visual Basic实现串行通信的一种方法

用Visual Basic实现串行通信的一种方法

动键 选 取链 接 再按 回 车键 就 可 以 调 阅被链 接 的信 息 当 I和 读到 含有 图像 的超级 文 本 时 便 在文 中 含有 图像 的位置标 注 出 图 像 在
I 护叹

出文本 的
U RL
地 址 ( D 笑田
M
e n
t
U
L ) 在 R

窗口

的 右上 角 还有 一个 地 球 仪 型 的图 标 地 球仪 的转 动 表示 用 户正 在启 动 图
.R
0
.
. 战通 l. 切 1. l场 1 . s t .
L yl l x
lx
,
它同
样 不能显示 除文 本 以 外 的多 媒体 信 息 受 欢迎是 因 为 它允许 用户 充分 使用 的功 能


Lyl

之所 以 终端 机
T V
10
T V

10
是 美 国数 字 设 备 公 司 的一 种 被 方
,
量使 用 的计 算 机终 端设 备 现 在 已 成 为 在计 算 机 远 程通 信 中使 用 的标 准 终端 通 过操 作 移 动 光标 的 方 向键 (A 在
i
t
”)
(一 2
0
犷 7》
l -

肠 ,
.
目 解 ld 盛


` , I


k

衍~
世界 上第 一 个 在 常称 其 为
,
e w
h
n e
b
客 户浏 览程 序是
B
W WW
,

CE
R N
形 仅仅是 一个基 于 文本 的浏览 程 序

visual basic串口通信及测控应用实例详解光盘内容

visual basic串口通信及测控应用实例详解光盘内容

visual basic串口通信及测控应用实例详解光盘内容Visual Basic串口通信及测控应用实例详解串口通信在测控应用领域中经常使用,可实现设备与计算机之间的数据传输与交互。

Visual Basic是一种常用的编程语言,能够方便地实现串口通信功能。

本文将以"Visual Basic串口通信及测控应用实例"为主题,详细介绍串口通信的基本原理和使用方法,并给出一个具体的实例来演示其在测控应用中的应用。

一、串口通信基础知识1. 串口通信的定义串口通信是指通过计算机上的串口与外部设备进行数据交互的过程。

常见的串口类型有RS232、RS485等。

2. 串口通信的基本原理串口通信使用了一对串行线(数据线和时钟线)来进行数据的传输。

数据通过位的形式逐个传输,根据预设的波特率和数据格式进行解析。

3. 串口通信涉及的参数串口通信涉及的参数包括波特率、数据位、停止位和校验位等。

波特率是指数据传输速率,数据位是指每个数据帧中的位数,停止位是数据帧结束的标志,校验位用来检验数据传输的正确性。

二、Visual Basic中的串口通信1. 创建串口通信对象在Visual Basic中,需要引用System.IO.Ports命名空间,并使用SerialPort类来创建串口通信对象。

例如:Imports System.IO.PortsPrivate port As SerialPort = New SerialPort()2. 设置串口参数在创建完串口通信对象后,需要设置串口的相关参数,包括端口名称、波特率、数据位、停止位和校验位等。

例如:port.PortName = "COM1"port.BaudRate = 9600port.DataBits = 8port.StopBits = StopBits.Oneport.Parity = Parity.None3. 打开和关闭串口设置完串口参数后,可以通过Open方法来打开串口,实现与外部设备的连接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档