VB通信范文
VB通信范文(精选8篇)
VB通信 第1篇
Visual Basic是一个可视化的窗口开发环境,以Visual Basic开发的应用程序非常多,它广泛应用在教育软件、计算机软件以及各种控制系统中[1]。
常用的串行通信有两种,一种为RS-232串行通信,另一种为RS-485串行通信。近年来盛行的USB和IEEE-1394属于串行通信的扩展。RS-232串行通信端口是每台计算机上的必要配备,通常有COM1与COM2两个端口。通常与计算机连接的设备,最简单的通信接口就是RS-232串行通信端口,不仅实际制作简单,而且价格也非常便宜。在市面可见的数字相机、调制解调器等都提供RS-232串行通信端口作为与计算机通信的接口。
有了Visual Basic这一开发平台,与RS-232相结合,通过对Microsoft Communication Control(简称MSComm)的通信控件的属性和事件进行相应编程操作可以很好地完成很多系统控制的通信。
2 MSComm控件的主要属性、事件
由于MSComm通信控件不是Visual Basic的内置控件,因此在使用它时需要将其添加到工具箱中。具体做法是:打开[部件]对话框,选中Microsoft Comm Control 6.0复选框,单击[确定]按钮,即可在工具箱中见到一个象电话盒似的图标,它就是MSComm控件。
对MSComm控件设置相应的属性和事件,就可以进行串行通信了[2]。
(1)MSComm的属性
由于MSComm控件属性很多,在这里仅介绍与实现串口通信密切相关的重要属性。
Commport:设置通信所占用的串口号。如设成1(默认值),表示对COM1进行操作。
Setting:对串口通信的相关参数。包括串口通信的比特率、奇偶校验、数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。
Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。
Ouput:发送数据到输出寄存器。
In Buffer Count:设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。
Input Mode:设置从输入寄存器中读取数据的形式。若值为0,则表示以文本形式读取;值为1,则表示以二进制形式读取。
Out Buffer Count:设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。
RThreshold:在MSComm控件中,设置Comm Event属性为com Ev Receive并产生On Comm事件之前要接受的字符数。
Comm Event属性:返回最近的通信事件或错误。通过对它具体属性值的查询,就可以获得通信事件和通信错误的完整信息。当其值是com Ev Receive时表示接收到数据。
(2)MSComm的事件
On Comm事件。当Comm Event属性值变化时将发生OnComm事件,指示发生一个通信事件或错误。当设置Rtheshold属性值为0时,将使得捕获com Ev Receive事件无效。
3 PC机间的串口通信
(1)新建一个窗体,在上面放两个Text控件、两个Command Button控件和两个Label控件。
(2)在控件工具箱中的空白处点击鼠标右键,在弹出的菜单中选择“部件”,在弹出的窗口中的控件列表中找到“Microsoft Comm Control”,将其选中,再点击“应用”、“关闭”,在控件工具栏中就会出现一个电话的小图标。
设计视图如图1所示。
(3)用串口线将两台电脑连接起来。可以使用COM1对COM1的对应连接,也可以使用COM1和COM2的交叉连接。
(4)事件代码如下:
4 条形码扫描器上的串行通信
(1)设计视图如图2所示。
(2)事件主要代码如下:
5 结语
从以上程序可以看出,在Visual Basic可视化的编程界面下利用MSComm控件,可以快速开发出串口通信程序,从而大大提高编程效率。其实利用Visual Baisc不但能很好地实现串行通信技术,而且还能实现并行通信及与分布式系统进行通信。
参考文献
[1]张树兵,戴红,陈哲.Visual Basic6.0中文版入门与提高.清华大学出版社,2003,04.
基于VB的分布式监控系统通信设计 第2篇
分布式监控系统已在工业领域得到广泛应用,许多企业对于中小规模的设备,如中小型热电厂和水电站,出于硬件软件投资利润率和性能价格比的考虑,常常是自行开发或参与开发本企业的监控系统。而许多企业在成套引进大型DCS系统后,也常因实际情况而需要自行开发或改进其监控系统。
分布式监控系统以微机为基础,用数据通信将微机连在一起实现数据共享,从而对工业过程进行集中监视管理和分散控制。因此,分布式监控系统中通信的设计与实现是至关重要的环节。Visual Basic开发语言具有简洁明了、编程效率高、开发周期短的特点,利用
VB中的多种通信手段,可实现分布式监控系统的多种通信功能。
VB通信 第3篇
在工业控制领域, 工控机经常需要与智能仪器或其它设备通过串口进行通信。串口通信方便易行, 应用广泛。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下串行通信的Active X控件。它提供了两种实现串口通信的方法:事件驱动方法和查询法。
VB中的MSComm控件提供了功能完善的串口数据的发送和接收功能。Mscomm控件通信功能的具体实现, 实际上是调用了API函数。对于VB程序开发者只需知道Mscomm控件的属性和用法即可以实现串口的操作。Mscomm控件的主要属性和用法如下表1。
三、VB中使用MSComm控件实现串口通信的过程
在工程应用编程过程中, 使用工控机作为上位机, 通过串口对自己的下位机进行控制。在控制界面中首先插入Mscomm控件, 其名称可以通过它的属性进行设置, 如不设置默认为Mscomm1。编程代码如下:
(1) 串口初始化
MSComm1.Comm Port=COM1‘采用COM1端口
MSComm1.Settings=“9600, n, 8, 1”‘对串口通信设置
MSComm1.Input Mode=1‘采用二进传输
MSComm1.In Buffer Count=0‘清空接受缓冲区
MSComm1.Out Buffer Count=0‘清空传输缓冲区
MSComm1.RThreshold=9‘接收缓冲区收到9字符都会使控件产生On Comm事件
MSComm1.In Buffer Size=In Buffer Size‘接收缓冲区默认为1024个字节MSComm1.Out Buffer Size=Out Buffer Size‘发送缓冲区默认为512个字节
MSComm1.Port Open=True‘打开端口
(2) 串口发送数据
(4) 关闭串口
MSComm1.Port Open=False‘关闭通信口
在程序设计过程中, 将上述程序代码添加到设计好的程序界面中就可以实现串口通信, 可以用定时器或线程对串口的收发数据进行灵活控制。在控制系统设计中, 一般上位机 (工控机) 串口默认只有RS-232口, 要实现RS-485串口通信, 需要在硬件电路的连接中使用”RS-232转RS-485”转换器。
四、结束语
在VB集成开发环境中, 利用MSComm控件实现RS-485串口通信, 通过软件的实际运行效果证明这种编程方法简单, 通信可靠。对于许多编程者来说, MSComm控件使用方便, 容易掌握, 利用此控件可以轻松地实现串口通信。
摘要:在VB (Visual Basic) 语言编程中, 使用串口通信MSComm控件, 可以方便地实现串口通信编程。RS-485总线接口是一种常用的串口总线, 具有连接方便、抗干扰性能好、传输距离远等优点。本文介绍了在VB环境下, 使用微软公司提供的MSComm控件实现RS-485串口通信的方法。
关键词:MSComm控件,VB,串行接口,RS-485
参考文献
[1]钱雪忠.新编Visual Basic程序设计教程, 北京:机械工业出版社, 2007.5
VB通信 第4篇
一、用VB6.0进行串行通信程序的设计方法简介
用visual basic6.0进行串行通信程序的设计有两种方式: (1) 直接调用Windows API。 (2) 使用通信组件。该方式实际上是通过通信组件间接调用Windows API函数, 其过程要比直接调用API要复杂, 但在程序上容易实现。使用MSComm控件时, 实际上就是使用了API函数, API函数将被Comm.drv解释并传送给外围设备驱动程序, 使用MSComm的用户只需要关心如何使用MSComm所提供的属性或事件, 以驱动API函数的接口完成工作。
二、串行通信程序的执行过程
MSComm控件通过串行端口传输和接收数据, 为应用程序提供串行通
信功能。该控件提供了两种处理通信的方式:
1、事件驱动通信。
事件驱动通信是处理串行端口交互作用的一种非常有效的方式。在使用事件驱动通信时, 每当有一个字符到达或端口状态发生改变, 或发生错误时, MSComm控件将触发On Comm事件进行捕获, 通过检查MSComm控件的Comm Event属性获知所发生的事件或错误, 从而采取相应的操作处理这些通信事件。这种方法的优点是程序响应及时, 可靠性高。
2、查询法。
该方法可以在程序的每个关键功能之后, 通过检查Comm Event属性的值来查询事件和错误。每个使用的MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口, 必须使用多个MSComm控件。
查询法适合于较小的应用程序, 在这种情况下, 每当应用程序执行完某一串行口操作后, 将不断检查MSComm控件的Comm Event属性, 以检查执行结果或检查某一事件是否发生。
而进行串行通信时一般有两种传输方式:
(1) 字符形式:通常以小于ASCII码128的字符码来传递, 通常用于传送指令。
(2) 二进制形式:将数据以二进制编码的方式传递, 它可能含有ASCII码128以上的字符码。通常用来传送数据, 以提高速度。
三、串行通信实例
下面以一个实例来演示MSComm控件的主要属性。根据程序需要, 进行以下操作步骤:
1、新建工程。启动VB后, 新建一个标准的EXE工程。
2、设计用户界面。
(1) 在“工具”菜单中选中“部件”, 在“控件”选项卡中选择“Microsoft Comm Controls6.0”。然后从工具箱中将MSComm添加到窗体Form1中。 (2) 给窗体Form1添加1个计时器控件, 3个命令按钮控件, 并设置控件的相关属性。 (表1)
VB通信 第5篇
1问题阐述
某医疗设备厂利用组态王开发上位机监控软件, 用PIC单片机做下位机控制开发, 下位机工程人员拟定通信协议的数据格式见表1。对于表2这种自拟定的通信协议, 组态王是无法完成的, 因为组态王的单片机协议是固定的, 且更改困难。其协议如表2所示。对比表1和表2可以看出组态王的通信协议明显不同于该医疗产品项目的通信协议, 且下位机协议已经完成不可更改, 在这种情况下如想继续使用组态王开发, 则必须更改其通信协议, 其方法有三种:a.向组态王厂商求助, 与其合作, 组态王厂商会改写驱动以适应项目要求, 其费用很高。b.购买组态王驱动开发包, 利用驱动开发包开发, 其费用相对便宜, 单开发包的使用需要工程师有较好的VC编程基础, 核对组态王内部程序结构有一定的认识。c.利用DDE技术使组态王与VB进行数据交换, 再用VB重写通信协议。本文主要介绍介绍方法c。
2组态王通信协议转换实现方法
为实现通信协议转换, 顺利完成该课题, 可考虑采用WINDOWS平台下的DDE技术使组态王与VB进行数据交换, 再利用VB重写通信协议, 其结构框图如图1。
2.1组态王通过DDE与VB进行数据交换。DDE是由微软提供的WINDOWS平台上一个完整的应用程序间通信协议, 它能够使组态王和VB之间进行数据交换。其数据交换方式是由其中一方向另一方发送请求数据并等待应答。发送数据请求的一方暂时作为客户端, 响应回答的一方暂时作为服务器端。为了能够顺利实现组态王与VB之间的数据交换, 需要对组态王和VB进行设置, 而组态王读VB数据和VB度组态王数据的设置稍有不同。对于组态王读VB数据过程, 其设置分别如下:a.在组态王中定义一个DDE设备, 名称任取, 服务程序名用与之交互的VB可执行程序名, 话题名与VB控件中的Link Topic属性一致, 再新建I/O变量并连接到该设备下, 项目为VB控件名字, 这样通过DDE, 组态王把VB程序看做是一个外部设备与之通信, 而建立DDE设备的方法与建立其他外部设备方法一致。b.在VB中DDE连接是通过控件的属性和方法来实现的。任何需要与组太王通信的控件 (通常是文本框、标签、图片框) 都要设的Link Topic、Link Item、Link Mode三个属性。其中Link Topic、Link Item属性是要在组态王中引用的, 而Link Mode属性是设置连接方式, 通常设为1。对于VB读组态王数据过程, 其设置分别如下:c.这里组态王设置比较简单, 只需注意被访问的数据必须由IO变量提供, 并勾选允许DDE访问即可。d.VB中要访问组态放数据的控件需要设置应用程序名、主题、项目和连接方式四项。组态王的应用程序名默认view、主题默认tagname、项目是VB控件所访问的IO变量, 下面以Text空间为例, 设置程序如下:
其中, 项目中的mcudde是组态王定义IO变量所在的设备名称, x2是组态王IO变量的寄存器名。
2.2 VB下通信协议变更。在2.1中介绍了VB与组态王之间的数据交换, 利用VB重写通信协议并与下位机通信, 即可实现组态王通信协议变换的目的, 适应了项目的需求。
按照表1的通信协议格式, VB中的串口通信程序如下:
其中a为字头, b为地址, c位命令, d-g为数据, h为字尾。
该治疗仪的组态监控画面部分截图如图2所示。图2中所示画面是上位机组态王正在通过VB向下位机发送数据, 根据自拟定协议, 起始符250对应十六进制0Xfa, 地址0对应图中的“1号灸头”, 命令字节为87, 数据1-4分别为90、60、60、60对应灸头温度、脉冲强度、频率、调制频率参数, 结束符245对应十六进制0Xf5。可以看到组态王利用VB和DDE技术很好地实现了通信协议的转换, 弥补了自身的不足。
参考文献
[1]工业自动化通用组态软件《组态王》使用手册.北京亚控公司, 1013.
[2]刘燕, 夏建全, 明正峰.基于VB实现的组态王与单片机间通讯[J].自动化与仪器仪表, 2006 (5) .
VB通信 第6篇
随着工业控制要求的不断发展, 上位机监控已经成为工厂数据采集的一个重要环节。大多数控制系统都趋向于用通用工程软件 (如Visual Basic、Visual C++、DELPHI等) 编制上位机监控界面。Visual Basic易学易用, 还提供了一套可视化设计工具, 大大简化了程序界面的设计工作, 同时其编程系统采用了面向对象、事件驱动机制, 使用Visual Basic可以方便地完成从小的应用程序到大型的数据库管理系统的编程任务。
本文以三菱FX系列PLC通信为例, 利用VB6.0提供的通信控件MSComm, 实现PLC与计算机简单可靠的通信。
1 系统组成
本案例采用PC计算机作为上位机, 三菱FX系列PLC作为下位机, 通过SC-09电缆使PC计算机与PLC连接, 采用自由端口模式通信, 电缆的一端连在计算机串口上, 另一端连接在PLC的RS-422编程口。通过使用自由端口模式的通信方式来实现对PLC寄存器的读/写操作。项目选用三菱FX2N-64MR型PLC。系统图如图1所示。
2 PLC与PC间的通信协议
PC与PLC间的通信方式分为同步通信和异步通信两类。目前主流的通信方式有RS-232、RS-422和RS-485, 他们都是串行数据接口标准, 是由美国电子工业协会EIA制定的一种串行物理接口标准, 其中最常用的是RS-232通信方式。
本案例采用RS-232的通信格式, 在这种情况下需要设置波特率、奇偶校验位和停止位等参数, 只要上位机和下位机这些参数设置一致就可以通信了。一般设置波特率为9 600b/s、偶校验、7位数据位、1位停止位。但是此种通信方式只能由上位机发出命令, PLC响应上位机发出来的命令, 当PLC不能正确响应时, PLC返回响应错误标志。上位机发出的数据是以帧为单位发送和接收的, 其格式如表1所示。
通常, 一个数据由5部分组成。累加和是从STX后面一个字节开始累加到ETX的和, 取它们ASCII码所得和的最低二位数。其中STX对应的16进制数位0x02, 是判知传输资料的开始。命令字是对下位机所做动作的指示, 比如要求读取或写入等。命令字见表2。
3 三菱PLC的设置
三菱FX PLC在进行计算机链接 (专用协议) 和无协议通讯 (RS指令) 时均须对通讯格式 (D8120) 进行设定包括波特率、数据长度、奇偶校验、停止位和协议格式等。
首先对D8120采用下述设置, 设置值为688E。即数据长度为7位, 偶校验, 2位停止位, 波特率为9 600b/s, 无标题符和终结符, 采用计算机链接 (RS-232C) , 自动添加和校验码, 采用专用协议格式1, 同时设定站号为0。具体设定如图2所示。
此外, 对于采用RS485形式1∶N计算机链接的还必须对站点号 (D8121) 进行设定。设定的范围从00H到0FH (即0到15) 。
FX PLC进行计算机链接时可用的专用协议有格式1和格式4。两者的差别在于是否在每一个块上添加了CR+LF, 其中添加了CR+LF的为格式4。本文采用格式1。
4 上位机程序的编制
本文采用Microsoft公司的Visual Basic 6.0中文企业版编制上位机程序。Visual Basic中提供了一个名为MSComm的通信控件便于设计串行通信的程序。MSComm控件的主要属性有:
(1) CommPort属性:用于指定所要使用的串行端口号。
(2) Settings属性:用于设置初始化参数。以字符串的形式设置波特率、奇偶校验、数据位、停止位等4个参数。该属性的设置必须和三菱PLC中D8120的相关设置保持一致。在这里, 统一采用“9600, e, 7, 2”的设定。
(3) PortOpen属性:用于设置通信连接端口的状态。在使用串行端口之前必须先将要使用的串行端口打开。在上位机程序中应进行如下设定:
(4) Output属性:MSComm控件的Output属性提供了发送的功能, 当从计算机向可编程控制器写入数据或从可编程控制器读取数据时, 上位机应当先发出如格式1的指令字符串。
(5) Input属性:与Output属性相反, Input属性提供了接收数据的功能。它将对方传到输入缓冲区中的数据读进程序中, 并清除缓冲区中已被读取的数据。
对于MSComm控件的其他一些属性使用VB的默认值即可。上位机程序流程图如图3所示。
以上位机控制电机为例, 其界面如图4所示。
使用VB6.0编写上位机软件的最大优势是直接在VB中引入了控件, 简化了编程, 使上位机界面更加简单。而且Windows系统也使用了大量的控件, 如按钮、文本框等。只要熟练掌握了这项技术, 对工控会有很大的帮助, 特别在编写上位机程序方面。
5 结束语
经过本案发现, 使用VB通信可以解决大部分分散控制系统的通信问题, 该方法简单、稳定、可靠, 大大缩短了工程师的开发周期, 并且该方案功能强大, 不仅可以对现场工况监控, 而且还可以配合数据库实现数据整理、上传等功能。
摘要:以三菱FX系列PLC为例, 详细地讨论了PLC与计算机通信的原理和用VB实现PLC与计算机通信的方法。
关键词:Visual Basic 6.0,可编程序逻辑控制器,串口通信
参考文献
[1]张辉.Visual Basic串口通信及编程实例[M].北京:化学工业出版社, 2011.
[2]徐天伟.Visual Basic实用编程技术[M].北京:清华大学出版社, 2010.
[3]龚仲华.三菱FX系列PLC应用技术[M].北京:人民邮电出版社, 2010.
VB通信 第7篇
脱粒滚筒是稻麦收获机的核心部件, 主要通过焊接完成, 焊接质量的好坏直接影响收获机的作业性能;而目前国内检测手段不能用于大尺寸零件的形位误差的检测, 更不能在安装现场对大型零部件的安装误差进行测量[1]。在线测量实现了检测的自动化, 是一种基于计算机自动控制的检测技术, 随着数控机床在生产中的广泛应用, 在线检测技术将会成为一项很有发展前景的技术[2]。非接触式测量就是利用对被测表面形貌没有影响的手段间接反映被测表面的信息来进行测量的方法, 这类方法最大的优点是测量装置探测部分不与被测表面的直接接触, 保护了测量装置, 同时避免了与测量装置直接接触引入的测量误差[3,4]。将非接触式测量运用到在线检测中, 大大提高了检测的精度和效率。为此, 提出了一种基于VB串口通信的脱粒滚筒圆柱度数据采集系统设计方法, 该圆柱度数据采集系统将非接触式测量与在线检测紧密结合, 首先通过激光位移传感器采集数据, 再对数据进行后续的处理和分析[5]。
1 数据采集系统的构成
随着我国工业水平的不断提高, 检测设备在各个领域的运用越来越多, 检测设备与上位机的组合使用是构成检测系统的重要方式。这种方式能充分发挥上位机和智能仪器各自的优点, 可完成数据采集、储存、运算等重要功能;特别是当现场有多台智能仪器时, 该方式能大大降低测控系统的组配成本, 有利于提高自动化程度和生产效率[6,7,8,9,10,11,12,13,14]。该系统的主要功能是通过非接触式测量对稻麦收获机脱粒滚筒外圆柱面的数据采集, 如图1所示。该系统主要由硬件部分与软件部分构成:硬件部分包括工控机、串口转换器及激光位移传感器;软件部分包括串口选择、距离测量及图形显示。
1.1 硬件构成
工控机是整个系统的核心, 所有命令均由工控机发出。串行通信接口标准经过多年的使用和发展, 目前主要包括RS-232、RS-422及RS-485等几种。该数据采集系统所使用的工控机如图2所示, 其串口通信接口标准为RS-232。
激光位移传感器可精确非接触测量被测物体的位置及位移等变化, 主要应用于检测物体的位移、厚度、振动、距离及直径等几何量的测量, 具有测量精度高、响应时间短及光斑精密等特点, 广泛应用于高校和研究机构、汽车工业、机械制造工业、航空与军事工业、冶金和材料工业的精密测量检测。该数据采集系统选用的激光位移传感器如图3所示。其型号为CD33-250N-422, 测量范围为100~400mm, 检测精度为±0.3%F.S. (F.S.=300mm) , 串口通信接口标准为RS-422。
为了顺利地实现激光位移传感器与工控机的串口通信, 需要使用一个串口转换器, 如图4所示。系统选用了导轨安装式RS-232到RS-485/RS-422光隔离转换器。
1.2 软件构成
该数据采集系统采用VB语言编写, 应用Visual Basic 6.0的MSComm标准串口通信控件编程, 以实现对激光位移传感器进行读写控制操作。该数据采集系统界面简洁、操作简单、显示直观, 整个系统的程序流程图如图5所示。
2 数据采集系统的设计
利用Visual Basic 6.0开发串口通信程序一般主要有两种方法:1使用MSComm串口控件;2调用Windows API动态链接库函数。Microsoft Communications Control (简称MSComm) 是Microsoft公司提供的简化Windows下串行通信编程的Active X控件。API函数是Windows环境下由C语言编写的应用程序接口, 也是动态链接库中所有函数的统称, 该函数库种类多、较复杂。MSComm通过串行端口传输和接收数据, 该控件具有丰富的与串口通信密切相关的属性和事件, 提供了对串口的各种操作, 为应用程序提供串行通信功能。MSComm控件在VC、VB、Delphi等语言中均可使用, 程序员不必花费大量时间详细了解较为复杂的API函数。因此, MSComm为应用程序提供了一种通过串行接口收发数据的简便方法[15]。
2.1 MSComm控件的引用
启动VB 6.0, 以标准EXE方式建立新工程, 点击“工程”→“部件”→“控件”, 在下拉菜单中选择“Microsoft Comm Control 6.0”, 在前面的方框内打吊钩, 然后选择“确定”按钮;这时在工具箱中出现一个类似电话的图标, 说明MSComm控件已经正常引用。
2.2 系统界面
在Form1窗口中添加1个Frame控件、1个TextBox控件、1个Shape控件、2个Combo Box控件、5个Command Button控件、6个Label控件及1个MSComm控件, 再根据实际需求对相关控件进行更名和参数设置, 组成如图6所示的数据采集系统界面。程序开始运行后, 选择串口号与比特率, 按照顺序选择各个按钮。点击“连接”按钮, 指示灯显示为绿色, 表示连接已经成功;点击“开始测量”按钮, 激光位移传感器开始采集数据, 采集到的数据实时显示在界面上的Text文本框中, 单位为mm, 同时将采集的数据进行保存;点击“停止测量”, 激光位移传感器停止采集数据;点击“断开”按钮, 激光位移传感器与工控机串口之间的连接断开, 指示灯熄灭, 此时数据的采集与保存均已完成;点击“图形显示”按钮, 采集到的数据将会以折线图的形式显示出来, 通过该折线图, 能看出采集到的数据所在区间。
2.3 主要源代码
实现距离信息采集的源代码如下:
3 实验与分析
程序开始运行后, 选择串口号和波特率, 再点击连接, 指示灯变为绿色, 表示工控机与激光位移传感器顺利实现串口通信;点击“开始测量”按钮后, 实时采集的圆柱度数据连续显示在Text文本框中, 并将采集到的距离信息保存, 界面如图7所示。
依次点击“停止测量”和“断开”按钮后, 退出数据采集过程;最后点击“图形显示”按钮, 数据将以折线图的形式显示出来, 如图8所示。
由图8可知:该数据采集系统采集的数据分布在138.1~138.9mm区间内, 该折线图能清晰地反映出圆柱度数据的分布情况。
4 结论
1) 本文提出了基于VB串口通信的脱粒滚筒圆柱度数据采集系统设计方法。
2) 开发出了脱粒滚筒圆柱度实时数据采集系统, 界面简洁, 操作方便。
3) 该数据采集系统能在5min之内完成对脱粒滚筒圆柱度数据的采集, 数据的误差在±0.9mm范围内, 并能对数据进行分析, 具有良好的实用性。
摘要:针对稻麦收获机脱粒滚筒圆柱度检测效率低、误差大的现状, 提出了一种基于VB串口通信的脱粒滚筒圆柱度数据采集系统设计方法, 首先通过程序实现激光位移传感器与上位机的通信, 激光传感器再对脱粒滚筒外圆柱面进行数据采集, 最后对采集的数据进行处理。实验表明:该系统能在5min以内完成数据的采集、存储和分析, 采集到的数据与真实值的误差在±0.9mm范围内, 采集系统界面简洁、操作方便, 应用范围十分广泛。
VB通信 第8篇
在功能较复杂的控制系统中, 通常以PC机为主机, 单片机为从机, 由单片机完成数据的采集和对装置的控制, 而由主机完成各种复杂的数据处理和对单片机进行控制。所以计算机与单片机之间的数据通信显得越来越重要。串行通信是指按照逐位顺序传递数据的通信方式, 由于仅需3根传输线传送信息且通信距离相对较远, 所以在控制领域的现场监测、分布控制等场合都有着十分重要的应用价值。
本文, 笔者设计了单片机与PC机串口通信系统, 以VB为开发工具, 设计界面简单明了, 详细介绍了程序的主要功能。
二、硬件部分的设计
1. 单片机选择。
在测控系统和工程应用中, 经常遇到多项任务同时执行的情况, 因而主从式多机分布式系统已成为现代工业广泛应用的模式。它们大多由PC机和MCS-51单片机组成。AT89C52是一个低电压、高性能的CMOS 8位单片机, 有40个引脚, 32个外部双向输入/输出端口, 同时内含2个外中断口, 3个16位可编程定时计数器, 2个全双工串行通信口, AT89C52可以按照常规方法进行编程, 也可以在线编程。
AT89C52单片机通过引脚RXD (P3.0) 和引脚TXD (P3.1) 与外界进行通信。AT89C52的串行口是可编程接口, 通过对2个特殊功能寄存器SCON和PCON进行编程可控制串行口的工作方式和波特率。SCON用于控制串行口的工作方式, 同时还包含要发送或接收到的第9位数据位以及串行口中断标志位。该寄存器的字节地址为98H, 并可进行位寻址。PCON中只有最高位SMOD与串行口工作有关, 该位用于控制串行口工作于方式1、2、3时的波特率。PCON的字节地址为87H, 没有位寻址功能。单片机复位时, SMOD=0。
2. PC机与单片机的连接。
目前的PC机都有至少一个串行通讯端口RS-232, RS-232端口可用于2台计算机之间进行通讯, RS-232的逻辑电平用正负电压来表示, 且信号使用负逻辑, 逻辑0的电压范围是+5V~+15V, 而逻辑1的电压范围是-5V~-15V, RS-232端口是计算机与其他设备沟通的最常用的接口, 不但操作简单, 而且价格便宜。在AT89C52单片机的内部有一个全双工的异步串行I/O口, 它的输入和输出使用5V而不是RS-232电压, 由于本次设计使用的是便携式PC机 (无串行通信接口) , 故使用了一根USB转串口的数据线, 然后再用MAX232芯片进行转换。电路结构如图1所示。
3. 下位机 (单片机端) 的程序设计。
本次设计采用定时1的模式1, 为与上位机配合, 串行口选择工作方式1, 无奇偶校验位, 有8位数据位和1个停止位, 波特率为9600。所以 (TMOD) =20H, (SCON) =50H。方式1和方式3的移位时钟脉冲由定时器T1的溢出率来决定, AT89C52串行口方式1和方式3的波特率由定时器T1的溢出率和SMOD值同时决定。单片机程序流程图如图2所示。
4. 下位机的原理图及仿真结果。
原理图如图3所示。
仿真结果如图4所示。
三、软件部分设计
本系统的设计任务是上位机通过串行口向下位机发送字符, 下位机接收到字符后返回原字符。上位机用VB编写程序界面。
1. 上位机 (及PC端) 的软件设计。
(1) 建立新工程。运行VB6.0程序, 选择“新建工程”对话框, 选择“标准EXE”, 单击“打开”命令按钮, 进入VB工程集成开发环境, 窗体设计器中自动出现一个名为Form1的空白窗体。
(2) 程序界面设计。添加串口通信控件MSComm。由于VB的串行通信组件不会主动出现在工具箱中, 当我们需要MSComm控件时, 首先要把它加入到工具箱中。具体步骤如下:选择“工程”菜单下的“部件”, 在弹出的对话框选中“Microsoft Comm Control6.0”复选框, 单击“确定”后, 在工具箱中就会出现一个类似“电话”的图标, 它就是MSComm控件。如果在控件属性中没有“Microsoft Comm Control6.0”选项, 可在“部件”对话框“控件”属性中单击“浏览”按钮, 在Windowssystem32目录下选择MSCOMM32.OCX项。单击“打开”按钮即可在“部件”对话框中看到“Microsoft Comm Control6.0”的可选项目。
添加2个文本框控件:Text1和Text2, 用于输入要发送的字符和显示要接收的字符。添加2个标签控件:Label1和Label2, 作为发送和接收字符区的标签。
添加4个按钮控件:Command1、Command2、Command3和Command4, 分别执行发送字符、关闭程序、清空发送字符区和清空接收字符区等命令。添加完所有的控件后调整控件的位置和大小, 使界面美观。
(3) 属性设置。对界面中的各控件设计属性, 设置完控件属性的程序界面如图5所示。
2. 程序代码设计。程序流程图如图6所示。
程序如果要实现自动发送或读取, 在VB中有2种方式可以实现:一个是使用计时器控件 (Timer) , 该控件中的Interval可以控制计时器被启动的时间间隔, 当时间间隔一到, 便会执行原先发在计时器中的程序代码;另一个则是使用循环语句不断的执行程序代码。本次设计使用手动发送, 用VB编写的部分源程序如下:
四、结论
目前串行通信仍是使用最为普遍的一种外部总线方式。本文, 笔者从硬件和软件2个方面讨论了单片机和PC机的串行通信方式。
本文中笔者主要完成了以下工作。
在点对点串行通信的硬件讨论中, 涉及到与电平之间的转换问题, 给出了实际的硬件电路。软件设计以一个简单的通信协议为核心, 实现了单片机与PC机点对点可靠的串行通信, 并给出了PC机部分的源程序。
VB通信范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。