VB 串口通信程序设计典型实例
用VB编写上位机实例
标签:无标签
VB编写上位机实例
用VB编写上位机实例
16:14:22 UTC+0800Sun Apr 1 2007
用VB6.0编写第一个串口通信上位机程序
Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。电子制作 HPOO
下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。
打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,
建立Visual Basic的编程环境。
图1
在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。
图2
在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确
定]。图3
图3
可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在
C:\WINNT\system32\MSCOMM32.OCX文件。
如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。
图4
通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:
VB(11)第五章 串口通信方法与实现1
(11) InBufferCount属性 语 法:
MSComm1.InBufferCount [=Value] 作 用:返回接收缓冲区中已传到但还未取 走的字符个数,该属性在设计时无效。 类 型:Integer型 取 值:未取走的字符个数。 说 明:InBufferCount 是指已接收,并 在接收缓冲区等待被取走数据的字符数。可以 把 InBufferCount 属性设置为 0 来清除接收 缓冲区。
(1) 界面设计
(2) 编写代码 在 Form_Load 中加入代码:
MSComm1.PortOpen = True 在 Command1_Click 中加入代码:
MSComm1.Output = Text1.Text 在 Command2_Click 中加入代码:
Text2.Text = MSComm1.Input 在 Command3_Click 中加入代码:
(2) Settings属性 语 法: MSComm1.Settings[=Value] 作 用: 设置或返回通信参数,通信参数 包括波特率、奇偶校验位、数据位、停止位。 格 式: "BBBB,P,D,S" 类 型: String 取 值: Value=“BBBB,P,D,S” 。 Settings 属性的缺省值是 "9600,N,8,1“ 举 例: MSComm1.Settings="1200,e,8,1"
VB串口通信程序设计典型实例
第6章V B串口通信程序设计典型实例
利用VB开发串口通信程序既可以使用MSComm控件也可以调用Windows API函数实现。不过,只要MSComm控件可以被选用,我们推荐选择此控件实现,因为MSComm控件的功能和API调用一样强,甚至比它还好且使用起来更加简单。
在本章提供的串口通信程序设计中,除了PC与PC串口通信外,PC与单片机、PC与智能仪表、PC与PLC、PC与GSM短信模块等串口通信任务的实现均采用MSComm控件。
6.1 PC与PC串口通信程序设计
当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需3根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。
本设计通过两台PC串口3线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。
6.1.1 PC与PC串口通信程序设计目的
(1)掌握PC与PC串口通信的线路连接方法。
(2)利用MSComm控件和API函数实现PC与PC串口通信的程序设计方法。
6.1.2 PC与PC串口通信程序设计用软、硬件
本设计用到的硬件和软件清单如表6-1所示。
表6-1设计用软、硬件
序号名称数量
1 PC或IPC 2
2 串口通信线(三线制) 1
3 Visual Basic 6.0 1
6.1.3 PC与PC串口通信程序硬件线路图
线路说明,在计算机通电前,按图6-1所示将两台PC通过串口线连接起来:计算机A 串口COM1端口的TXD与计算机B串口COM1端口的RXD相连,计算机A串口COM1端口的RXD与计算机B串口COM1端口的TXD相连,计算机A串口COM1端口的GND与计算机B串口COM1端口的GND相连。
VB6.0下MSComm控件实现串口通信
VB6.0下用MSComm控件实现串口通信
MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明:
1基本属性
CommPort
O mPort[=value]
Object为MSComm控件,value为整数值,标志端口号。
说明:该属性设置并返回通讯端口号,value的值可以设为1-16间的任意数(默认为1)。在打开端口之前必须先设置CommPort属性,当端口不存在时,如果用PortOpen属性打开它,MSComm控件会产生错误68(即设备无效的错误)。
Settings
Objiect.Setting[=value]
Object为MSComm控件,value为字符串类型,表示通讯端口的设置值。
说明:本属性用来设置并返回端口的波特率、奇偶校验位、数据位和停止位参数。当端口打开时,如果指定的value参数非法,则MSComm控件产生380号(非法属性值)错误。有效的value参数值由四个设置值组成,有如下格式:“BBBB,P,D,S”,其中BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。Value的默认值为:“9600,N,8,1”,下面给出合法的波特率、奇偶校验位、数据位和停止位参数:
波特率:110,300,600,1200,2400,4800,9600(默认),14400,19200,28800,38400,56000,57600,115200,128000,256000。
奇偶校验值:E(偶校验,Even)、M(标记,Mark)、N(默认,Default,None)、O(奇校验,Odd)、S(空格,Space)。
使用VB中的MSComm控件实现串口通信
使用VB中的MSm控件实现RS-232串口通信实验准备:需要准备一些与串口通信有关的设备,如〔外置式〕调制解调器、计算机串口与调制解调器的连接线、一根DTE到DTE的无调制解调器连接线〔接法见本章有关习题的参考答案〕,在实验前检查计算机的两个串口是否能够正常工作。
实验环境:Windows 95/98操作系统,Microsoft VB 5.0以上程序设计环境。对例题中涉及调制解调器的容,采用计算机与调制解调器连接的方式;对在例题中设计数据传输的容,须事先将DTE到DTE 的无调制解调器连接线的两端,分别插入1和2串口。
实验说明:
VB中的MSm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSm控件提供以下两种处理通讯的方式:
〔1〕事件驱动(实时)方式,这是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在Carrier Detect〔CD〕或RequestToSend〔RTS〕线上一个字符到达或一个变化发生时。在这些清况下,可以利用MSm 控件的Onm事件捕获并处理这些通讯事件。Onm事件还可以检查和处理通讯错误。
〔2〕轮询方式,在程序的每个关键功能之后,可以通过检查mEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一
等待接收的字符是调制解调器的"OK〞响应。
每个使用的MSm控件都对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSm控件。可以在Windows"控制面板〞中改变端口地址和中断地址。
vb串口通信编程
vb串口通信编程
一、概述
串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB 中,一样能够实现串口通讯,甚至其实现方法和C、汇编相比,要更加快捷方便。下面,笔者就介绍一下在VB中实现串口通讯的方法。
在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。下面,笔者就简要地介绍一下
MSComm控件的使用方法。
二、MSComm控件的主要属性、事件
1、MSComm的属性
由于MSComm控件属性很多,在此笔者仅介绍与实现串口通讯密切相关的核心属性。
Commport:设置通讯所占用的串口号。如设成1(默认值),表示对Com1进行操作。
Setting:对串口通讯的相关参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。
Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。
Ouput:发送数据到输出寄存器。
基于VB的电子秤通信实例
关键 词 : 电 子 天平 ; 信 ; 序 开发 ; i oB s . 通 程 Vs ai 60 i c
s r lp r o e i o t c mmu iain b t e n ee t n c b ln e a d c mp tr . h s f Mir s f Viu l B sc 60 d sg n t e a s n c t e w e l cr i aa c n o u e s T e u e o c o s a a i . e in i h o o o t s ae o e s r li tr c o c l f h e a n ef e c mmu iai n p o e u e r aii g t e t o wa aa ta s s in d t r c s i gf rt e r s a c t i a n c t r c d r , e l n w — y d t r n mis , a a p o e sn o e e r h o z h o h a d i d s a uo t n a e o p o i e c n e i n n ei b e meh d o ol ci g d t u o t a l. n u t l t mai r at r v d o v n e t d r l l t o f l t a aa tmai l n i r a o a a c e n c y
基于VB6.0的串口通信方法
基于VB6.0的串口通信方法
串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数据可靠。作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调用WindowsAPI函数实现。这里我们使用VB6.0提供的MSComm控件,因为MSComm控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串口通信功能。
1.MSComm控件简介
MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。另外一种是查询法。查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。
2.MSComm控件的常用属性
MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。
CommPort 设置并返回通讯端口号
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口
Input 从接收缓冲区返回和删除字符
Output 向传输缓冲区写一个字符串
3.程序代码设计
利用MSComm控件编写串口通信程序是十分便利和简单的。下面我就事件驱动方式以VB6.0为平台编写了PC间串口通信程序的实例。代码如下:
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 通信初始化程序
用VB编写上位机实例
标签:无标签
VB编写上位机实例
用VB编写上位机实例
16:14:22 UTC+0800Sun Apr 1 2007
用VB6.0编写第一个串口通信上位机程序
Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。
下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。
打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,
建立Visual Basic的编程环境。
图1
在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件
Microsoft Comm control 6.0调入工作菜单。
图2
在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。
图3
图3
可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\WINNT\system32\MSCOMM32.OCX文件。
如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。
图4
通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:
基于VB6.0的串口通讯程序设计
1 引 言
序 的大 多 数特性 。所 以整个 串行通 信 程序 的开 发 过程
变 得 十分 简单 易行 , 程序 员 不需 要 处理 繁琐 的细节 , 而
随 着计 算 机 的 迅 速 普 及 和 计 算 机 控 制 技 术 的发 展 ,计 算 机被 广泛 应 用于 自动化 控制 领域 之 中 。而要
C mm o to 6 0 o C nr l . ,此 时 工 具 箱 应 出现 一 个 电 话 图 表 ,这就 是 MS o C mm 图标 。 2 1 VB 6 0中 MS o . . C mm 通 信控 件 的属 性
Wid ws 简单 、 no 下 易学 、 高效 的可 视化软 件 开发 平 台 ,
摘
要 :详 细 介 绍 了 VB . 6 o中 通讯 拉 件 M S o C mm 的一 些 重要 属 性 及 在 Wid w n o s环 境 下 用 通 讯 控 件 来 实现 串行 通
信 的 编 程 方 法 ,并 结 合 实例 给 出 了一 个 基 本 的 通 讯 程 序 。
关 键 词 : 串行 通信 ; 通 信 控 件 ;Vi a B s . s l ai 6 0 u c
它 以所 见 即所 得 的 可视 化 界 面设 计 风 格 和 3 2位 面 向 对象 程序 设计 的 特点 ,已被 广泛 应用 到各 个领 域 ,成
VB6.0环境下基于USB的虚拟串口通讯实现
VB6.0环境下基于USB的虚拟串口通讯实现
摘要:以ftdi公司的ft232bl芯片为核心设计并实现了基于usb 接口的计算机与单片机之间的虚拟串口通讯。单片机采用philips 公司p89系列单片机,完成数据的存储。计算机在windows环境下利用mscomm通讯控件实现上位机与下位机之间的数据传输。在此提出了pc机对虚拟串口的自动识别方法,并提供了程序的源代码。实验结果表明,用虚拟串口实现计算机与单片机之间的usb通信,具有速度快,软件实现简单等优点。
关键词:vb6.0; usb口; ft232bl;虚拟串口
引言
数据传输是现代通讯过程中的一个重要环节,在数据传输过程中,不仅要求数据传输的准确率要高,而且要求速度快、连接方便。传统的rs 232串口通讯和并口通讯都存在传输速度低、扩展性差、安装麻烦等缺点,而基于usb接口的数据传输系统能够较好地解决这些问题。目前,usb接口以其传输速率高、即插即用、支持热插拔等优点,逐步成为pc机的标准接口。
本文中的数据传输系统采用了usb接口进行上位机与下位机之间的数据通讯。下位机采用philips 公司p89系列单片机,完成数据的存储。上位机通过vb6.0编程,实现上位机与下位机之间的数据传输。
1数据传输系统的总体设计
系统的硬件部分主要包括2部分:上位机端和下位机端。上位机采用pc机或笔记本电脑,操作系统为windows xp,实现上位机和下位机之间的数据传输、显示、处理、存储及查询功能。系统的下位机采用philips公司p89系列单片机,完成数据的存储。下位机为一个手持的数据存储仪,由usb转串口数据转换模块、ttl转rs 422总线模块、中央处理模块、显示模块、存储模块、电源模块等组成。上位机与下位机的连接利用pc机自带的usb接口,原理框图如图1所示。
vb.net串口编程
Imports System.IO.Ports
Imports System.Text
Public Class JCFrm
Dim RS232 As SerialPort
Private Sub JCFrm_Load(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles MyBase.Load
Dim mBaudRate As Integer
Dim mParity As IO.Ports.Parity
Dim mDataBit As Integer
Dim mStopbit As IO.Ports.StopBits
Dim mPortName As String
mPortName = "com1" '欲开启的通讯端口
mBaudRate = 9600 '比特率
mParity = Parity.None '校验位检查设定
mDataBit = 8 '数据位设定值
mStopbit = StopBits.One '停止位设定值
'建立一个通讯端口对象
RS232 = New IO.Ports.SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit)
If Not RS232.IsOpen Then '尚未开启
RS232.Open() '开启通讯端口
Else
MsgBox("~~通讯端口已开启~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
用VB编写上位机
VB编写上位机实例
用VB编写上位机实例
16:14:22 UTC+0800Sun Apr 1 2007
用VB6.0编写第一个串口通信上位机程序
Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。电子制作HPOO
下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。
打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,建立Visual Basic 的编程环境。
图1
在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。
图2
在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。图3
图3
可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\WINNT\system32\MSCOMM32.OCX文件。
如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。
图4
通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:
R232串口通信实验报告1
R232串口通信实验
——基于VB语言
实
验
报
告
RS232串口通信实验
一、实验题目:
1.设计一个简单的基于串口通信的信息发送和接受界面(或者是一个简单的聊天软件小的*.EXE可执行程序),可以
是两台PC机之间的通信,也可以是一台PC上的。
二.实验目的:
1.实现PC机通过RS232串口进行数据的收发。
2.熟悉并掌握RS232串口标准及通信原理。
3.熟悉VB语言编写程序的环境,掌握基本的VB语言编程技巧,了解面向对象的程序设计语言。
二、实验设备
PC机一台(装有VB6.9.或者7.X以上的VB编程语言),RS232串口通信线(9针或25针的都可以)一条,跳线一个(短路用的,如果是一台PC实验,将其中的2和3短接)
三、实验内容
1.设计窗体主界面
界面内容:
(1)串口的打开与关闭控制(串口打开,串口关闭)
(2)信息发送区:信息编辑区,发送按钮
(3)信息接受区:信息显示区,接收按钮
(4)文件传送区:文件发送(发送文件的选择路径,发送按钮)文件接收(接收文件存放路径选择,和接收按钮)
所用控件列表:
VB6.9下的主界面的设计
软件编辑:
然后双击各个控件,编辑其代码:
主窗体的代码:
Private Sub Form1_load()
MSComm1.PortOpen = True
abc = 0
blnshowflag = True
Main.Height = 7000
intinbuffersize = 4096
intOutBufferSize = 2048 "设置串口"
intCommflag = 0 " 初始系统状态"
基于VB 6.0的串口通讯程序设计
基于VB 6.0的串口通讯程序设计
摘要:详细介绍了VB6.o中通讯控件MSComm的一些重要属性及在Windows环境下用通讯控件来实现串行通信的编程方法,并结合实例给出了一个基本的通讯程序。
关键词:串行通信;通信控件;Visual Basic 6.0
1引言
随着计算机的迅速普及和计算机控制技术的发展,计算机被广泛应用于自动化控制领域之中。而要完成一个控制过程一般都要利用集散式计算机控制系统。在这种控制系统中,下位机主要完成对现场数据采集和对设备一级的监控,上位机则要完成对整个系统的采集、分析、处理和控制以及数据、图形显示、打印、人机对话等工作。而上位机与下位机大多是通过PC机的RS-232串行接口实现通信。随着Windows系统的普及,越来越多的用户由DOS系统转向了Windows系统,这使得数据采集及工业控制软件也上升到了Windows环境下。这就给程序员提出了如何编写面向Windows的串行通信程序问题。
虽然Windows提供了完备的开放式通用增强的W32API(应用程序接口)函数,它把对串口和其他通信设备的支持和基本输入驱动程序集于一体。但是,对于非专业软件设计人员来说,使用VC++,C等高级语言来完成这类程序的设计,其复杂性与专业化程度依然很高。
而Visual Basic 6.0(以下简称VB)是一个Windows下简单、易学、高效的可视化软件开发平台,它以所见即所得的可视化界面设计风格和32位面向对象程序设计的特点,已被广泛应用到各个领域,成为众多开发人员采用的工具。VB 不但提供了良好的界面设计能力,而且在串口通信方面也有很强的功能。它提供的Microsoft Communication control(以下简称MSComm)这样一个通信控件,该控件“隐藏”了大部分串口通信的低层运行过程和许多繁琐的过程,它使用户能够方便地访问Windows下串口通信驱动程序的大多数特性。所以整个串行通信程序的开发过程变得十分简单易行,程序员不需要处理繁琐的细节,而通过利用通信控件,只需编写少量的代码来实现主要应用功能和界面的设计,就可以完成软件的开发过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V B串口通信程序设计典型实例
利用VB开发串口通信程序既可以使用MSComm控件也可以调用Windows API函数实现。不过,只要MSComm控件可以被选用,我们推荐选择此控件实现,因为MSComm控件的功能和API调用一样强,甚至比它还好且使用起来更加简单。
在本章提供的串口通信程序设计中,除了PC与PC串口通信外,PC与单片机、PC与智能仪表、PC与PLC、PC与GSM短信模块等串口通信任务的实现均采用MSComm控件。
6.1 PC与PC串口通信程序设计
当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需3根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。
本设计通过两台PC串口3线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。
6.1.1 PC与PC串口通信程序设计目的
(1)掌握PC与PC串口通信的线路连接方法。
(2)利用MSComm控件和API函数实现PC与PC串口通信的程序设计方法。
6.1.2 PC与PC串口通信程序设计用软、硬件
本设计用到的硬件和软件清单如表6-1所示。
表6-1设计用软、硬件
6.1.3 PC与PC串口通信程序硬件线路图
线路说明,在计算机通电前,按图6-1所示将两台PC通过串口线连接起来:计算机A 串口COM1端口的TXD与计算机B串口COM1端口的RXD相连,计算机A串口COM1端口的RXD与计算机B串口COM1端口的TXD相连,计算机A串口COM1端口的GND与计算机B串口COM1端口的GND相连。
图6-1 PC与PC串口通信线路
6.1.4 设计任务
利用MSComm控件和VB API函数编写程序实现PC与PC串口通信。
任务要求,两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。
实际上就是编写一个简单的双机聊天程序。
6.1.5 任务实现
6.1.5.1 利用MSComm控件实现字符型数据发送与接收
1.建立新工程
VB使用“工程”来管理每一个应用程序要使用的所有文件,每建立一个新程序,就要新建一个工程。一个工程由窗体、标准模块、控件及应用所需的开发环境设置等组成。
运行VB程序,出现“新建工程”对话框,选择“标准EXE”,单击“打开”命令按钮,进入VB工程集成开发环境,窗体设计器中自动出现一个名为Form1的空白窗体。
2.程序界面设计
向空白窗体添加各种控件,以完成预定的各种功能。开始一个项目的设计时,VB的工具箱中会有许多默认的控件让设计者予以选用,这些原本就出现在工具箱中的控件是内置控件,它提供了一些基本的系统设计组件给设计者,但功能比较特别的控件就不会出现在其中,如用来设计串口通信功能的控件MSComm就不在其中。
(1)添加串口通信控件MSComm。
由于VB的串行通信组件并不会主动出现在工具箱里中,当我们需要MSComm控件时,首先要把它加入到工具箱中。
让MSComm控件出现在工具箱中的步骤如下。
选择“工程”菜单下的“部件…”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“Microsoft Comm Control 6.0”复选框,单击“确定”按钮后,在工具箱中就出现了一个形似“电话”的图标,它就是MSComm控件。
工具箱中有了MSComm控件,就可以选择MSComm控
可以通过VB实现与串口设备的串口通信了。
由于每个使用的MSComm控件对应着一个串行端口,如
图6-2 程序窗体界面
果应用程序需要访问多个串行端口,必须添加多个MSComm控件。
(2)为了实现连续的自动接收,将工具箱中的Timer控件添加到程序窗体上。
(3)添加两个文本框控件:Text1 和Text2,用于输入要发送的字符和显示要接收的字符。
(4)添加两个标签控件:Label1和Label2,作为发送和接收字符区的标签。
(5)添加一个按钮控件:Command1执行发送字符命令。
程序设计界面如图6-2所示。
3.属性设置
从属性窗口设置属性时,只需从对象列表框中选择待设置属性的对象,然后从属性列表的左列选择属性,最后在属性列表的右列中输入或选择新的属性值。
程序窗体、控件对象的主要属性设置如表6-2所示。
表6-2窗体、控件对象的主要属性设置
控件类型主要属性功能
Form (名称) = COMForm 窗体控件
BorderStyle = 3 运行时窗体固定大小Caption = PC与PC串口通信窗体标题栏显示程序名称
Label
(名称) = Label1 标签控件
Caption = 显示接收字符区:标签文本Label
(名称) = Label2 标签控件
Caption = 输入发送字符区:标签文本
TextBox (名称) = Textsend 文本框控件MultiLine = True 允许多行显示ScrollBars = 2-Vertical 垂直滚动条可用
TextBox (名称) = TextReceive 文本框控件MultiLine = True 允许多行显示ScrollBars = 2-Vertical 垂直滚动条可用
CommandButton (名称) = Cmdsend 按钮控件Caption = 发送字符手动发送字符
MSComm (名称) = MSComm1 串口通信控件其他属性在程序中设置
Timer (名称) = Timer1 时钟控件
Enabled = True 时钟初始可用Interval = 500 设置发送周期(ms)
两台计算机中VB程序界面及属性设置应完全相同,尤其MSComm控件的InputMode和Settings 属性值应相同。