当前位置:论文写作 > 毕业论文范文 > 文章内容

基于VB的串口通讯其在工业上的应用

主题:android 数据表格控件 下载地址:论文doc下载 原创作者:原创作者未知 评分:9.0分 更新时间: 2024-01-29

简介:关于控件数据方面的论文题目、论文提纲、控件数据论文开题报告、文献综述、参考文献的相关大学硕士和本科毕业论文。

控件数据论文范文

android 数据表格控件论文

目录

  1. 1.引言
  2. 2.VB 6.0串行通信控件的介绍
  3. 2.1 VB 6.0中MSComm通信控件的属性
  4. 2.2 MSComm处理通信的方法
  5. 2.3 MSComm控件数据通信的两种格式
  6. 3.串行通讯接口RS-232介绍
  7. 4.串口通讯实例
  8. android 数据表格控件:@控件中的数据看DataList控件数据[www.yyaazk.com]详细信息14

付兴任焕新(唐山市政沥青混凝土工程公司 河北唐山 063000)

摘 要:串口通信因为其简单,灵活易用,在许多领域有着广阔的应用前景.本文在深入了解串口通讯技术的基础上,结合自身的工程实践经验,阐述了VB串口编程的技术要点.并结合一个通讯实例,分析串口通讯在工业自动化上的具体实现.

关键词:串口;RS232;VB;工业

1.引言

随着计算机的迅速普及和计算机控制技术的发展,计算机被广泛应用于自动化控制领域之中.而要完成一个控制过程一般都要利用集散式计算机控制系统.在这种控制系统中,下位机主要完成对现场数据采集和对设备一级的监控,上位机则要完成对整个系统的采集、分析、处理和控制以及数据、图形显示、打印、人机对话等工作.而上位机与下位机大多是通过PC机的RS-232串行接口实现通信.随着Windows系统的普及,越来越多的用户由DOS系统转向了Windows系统,这使得数据采集及工业控制软件也上升到了Windows环境下.这就给程序员提出了如何编写面向Windows的串行通信程序问题.

Visual Basic 6.O(以下简称VB)是一个Windows下简单、易学、高效的可视化软件开发平台,它以所见即所得的可视化界面设计风格和32位面向对象程序设计的特点,已被广泛应用到各个领域,成为众多开发人员采用的工具.VB不但提供了良好的界面设计能力,而且在串口通信方面也有很强的功能.它提供的Microsoft Communication control(以下简称MSComm)这样一个通信控件,该控件“隐藏”了大部分串口通信的低层运行过程和许多繁琐的过程,它使用户能够方便地访问Windows下串口通信驱动程序的大多数特性.所以整个串行通信程序的开发过程变得十分简单易行,程序员不需要处理繁琐的细节,而通过利用通信控件,只需编写少量的代码来实现主要应用功能和界面的设计,就可以完成软件的开发过程.

2.VB 6.0串行通信控件的介绍

MSComm是Microsoft公司提供的主要用于串行通信编程的ActiveX控件.ActiveX控件包括一系列的属性、方法和事件,应用程序通过ActiveX控件提供的接口来访问控件的功能.我们知道通过C、VC++编写串口通信程序,是要使用API函数发送和接收数据.而MSComm控件实际上是这些Windows API函数的有机集成,它以属性和事件的形式提供了对Windows通信驱动程序的API接口,封装了API函数的低层操作,为应用程序提供了通过串行接口收发数据的简便方法.因此,编程人员只需在程序中设置和监视MSComm控件的属性和事件即可完成对串口的编程.

MSComm控件不在最常用的控件工具箱中出现,故编程的第一步应添加到工具栏上以方便编程.具体的做法如下:单击VB 6.0菜单栏中的“工程”菜单,并选择“部件”命令,在部件对话框种选择Microsoft Comm Control 6.0,此时工具箱应出现一个电话图表,这就是MSComm图标.

2.1 VB 6.0中MSComm通信控件的属性

通信控件把许多复杂的操作都留给了VB和Windows处理,编程人员编程时只需设置其中的一些属性,下面是几个常用的属性:

Commport:设定或传回通信连接端口代号.程序必须指定所要使用的串行端口的号码,Windows系统会使用所设定的通讯端口与外界做通讯.程序亦可经由此属性读回所使用的连接端口的号码.在此所设定的通讯端口由1开始往上递增,MSComm控件的最大值为16,当使用的通讯端口超过16时,控件会通知错误.

如:MSComm1 Commport等于1指定Coml作为通讯传输.

Settings:设定初始化参数.以字符串型式设定或传回联机速度、同位检查、数据位、停止位等4个参数.其格式为“BBBB.P,D,S”,其中BBBB为联机速度,P为同位检查方式,D为数据位数,S为停止位数.默认值是“9600,n,8,1”,意为“所使用的通讯端口是以每秒9600 B的速度作传输,不做同位的检查,每个元是8个Bit,而停止位是1个Bit",而且此4项必须是依照顺序,不可前后对调.

Settings设定完成以后,所送出及收回的字符串便以此设定为主,使用RS-232通讯的两方,Settings必须完全一样,彼此才能顺利地沟通,否则双方无法收到彼此所送的信号.

如:MSComml Settings等于“9600,n ,8,1”

PortOpen:设定或传回通讯接口端口的状态.使用串行端口之前必须先将使用的串行埠先行开启,而使用完毕之后,也必须执行关闭的动作.

InPut:从输入缓冲区传回并移除字符.程序靠这个指令将从对方所传至缓冲区的字符读进程蓄洪,并清除缓冲区中已被读取得自负,这是一种FIFO的机制.

如:Butfer$等于MSComml Input将输入缓冲区的字符读入Buffer字符串变量中Output:将一个字符串写入传输缓冲区.当程序需要向对方传输字符串时,可将字符串使用此指令写入输出缓冲区中.至于串行端口是否将此字符传送到对方的串行输入缓冲区中,则要视送出字符串这方是否设定传送门槛属性而定.

如:MSComml Output等于“ABCDE”,此即将ABCDE五个字母通过RS-232传送出去.

2.2 MSComm处理通信的方法

事件驱动方式OnComm事件是MSComm控件提供的唯一事件.当有数据到达端口或端口状态发生改变或有通信错误产生时,都将触发OnComm事件,以捕获和处理这些通信中产生的错误,通过查询CommEvent属性值,可以获得关于通信事件和通信错误的完整信息,进而进行处理.这是一种功能很强的处理串行口活动的方法,具有程序响应及时、可靠性高的特点.

2.3 MSComm控件数据通信的两种格式

我们在进行串口通信时,一般为字符传送方式.但在某些情况下传送的却不见得是纯文字形态的数据,而是数据或文件.在这种情况下,位在传输线上的数据就是一个字节接一个字节地被传送过来,接收端收到这些数据后,再与以组合形成数据资料或文件,这种情形就是Binary(二进制数据)方式传送.

对应这两种传送方式,用户可以通过对MSComm控件中的InputMode属性的设置来决定Input属性如何取回数据.数据是以字符串的形式接收还是作为字节数组中的二进制来接收,完全视此属性来决定.当InputMode取值为0时(默认值)数据以文字形式取回,当取值为1时,数据以二进制形式取回.

3.串行通讯接口RS-232介绍

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口.RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准.RS232采取不平衡传输方式,即所谓的单端通讯.

DB9(9针串口)的接线方式如下:1脚,数据载波检测DCD:2脚,接收数据RXD,3脚,发送数据TXD,4脚,数据终端准备DTR,5脚,信号地GND,6脚,数据设备就绪DSR,7脚,请求发送RTS:8脚,清除发送CTS,9脚,振铃指示DELL.

DB25(25阵串口),常用的针脚也有9个,且和DB9可以一一对应,具体接线方式为:8脚,数据载波检测DCD,3脚,接收数据RXD,2脚,发送数据TXD,20脚,数据终端准备DTR:7脚,信号地GND,6脚,数据设备就绪DSR,4脚,请求发送RTS,5脚,清除发送CTS,22脚,振铃指示DELL.

一般来说,对于要求不太高的场合,使用接收数据RXD.发送数据TXD,信号地GND_个脚即可实现数据传输.如果要求有硬件流控制,则必须使用DTR、DSR、RTS和CTS这四个脚.

值得注意的是RS-232C是用正负电压来表示逻辑状态,与论文范文L以高电平表示逻辑状态的规定不同.因此,为了能够与计算机接口或终端的论文范文L器件连接,必须在RS-232C与论文范文L电路之间进行电平和逻辑关系的变换.目前较为广泛地使用集成电路转换器件,如MC1489、SN75150芯片可完成论文范文L电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到论文范文L电平的转换.

4.串口通讯实例

本实例是一套沥青拌合自动化工艺中的称重数据采集部分,其中上位机操作界面采用VB6.0制作,通过VB6.0中的MSComm控件和PC机的COM口与×SB称重数显表建立串行通讯,以完成称重数据从数显表到PC机的传递.

android 数据表格控件:@控件中的数据看DataList控件数据[www.yyaazk.com]详细信息14

具体设计如下

物理连接为:把三台×SB数显表的RX,TX,GND三个端子对应并联与一个RS485-RS232转换接口的相应端子相连接,再把该RS485-RS232转换接口的232端与PC机的COM1口相连.

软件设计为:开启一个新的VB项目,并于窗体上安排一个MSComm控件,作为串行通讯的信道,其属性如下,

comport等于l表示使用2号COM口进行通讯,inputmode等于0表示数据以字符的方式接收,

程序代码如下

Public information_×SB As String

‘(定义information_XSB为字符型变量,用来储存数显表传递过来的称重数据)

Public WRITE_XSB_DZ_READY As Integer

Public PFSEND XSB As Boolean

Public READ_XSB_DATA_FLAG As Integer

Public WRTE_×SB_DZ_FLAG As Boolean(WRTE×SB_DZ_FLAG作为一个逻辑型变量表示设定称重量是否写入成功,如果成功那么它将被赋值为FALSE)

Private Sub MSComm2_OnComm()

ppp等于 MSComm2.lnput

information×SB等于 information_XSB+ ppp

aaaa等于 Hex(Asc(Right(information×SB,1)))

If aaaa等于 "D" Then

MSComm2.lnBufferCount等于0

If WRTE×S8_DZ_FLAG等于 True Then

Call COMP_XSB_SET_DZ(information_XSB)

Else

If READ×SB_DATA_FLAG等于O Then slsj等于Val(Mid(informationXSB,2,8))

If READ_XSB_DATA_FLAG等于1 Then lqsj等于Val(Mid(informationXSB,2,8))

If READ×SB_DATA_FLAG等于2 Then 论文范文sj等于Val(Mid(informationXSB,2,8))

READ×SB_DATA_FLAG等于 (READ_XSB_DATA_FLAG+1)Mod 3

‘(由于有三台称重数显表分别传递三种配料成分的重量即石料、石粉、沥青,因此本工程采取轮流读取称重数据的方式并把它们分别存入slsj石料、lqsj沥青、论文范文sj石粉三个变量中以便与设定称重值相比较,把比较结果传给PLC对后面的生产流程进行控制.)

End If

information_XSB等于"" &,acute,(每一轮数据读入以后,会把information_ XSB清空以备下一轮使用)

End If

End SUb

Pub Jic Sub COMP_XSB_SET_DZ(REC_XSB_DA As Variant)

LS_BUFFER等于 Right(REC_XSB_DA,4)

If Mid(LS_BUFFER,1,1)等于"!"Then

WRITE_XSB_DZ_READY等于 WRITE_XSB_DZ_READY+1

End If

End Sub

通过以上程序以及物理通道即完成了对三台电子秤的称重数据的采集,并把它们存到了相应变量当中,为接下来的配料过程提供了必要条件.

总结:关于免费控件数据论文范文在这里免费下载与阅读,为您的控件数据相关论文写作提供资料。

android 数据表格控件引用文献:

[1] 控件毕业论文题目范文 关于软件类毕业论文的格式范文3000字
[2] 修改表格里的数据表格查重还会红吗
[3] 论文查重会查表格里的数据吗
《基于VB的串口通讯其在工业上的应用》word下载【免费】
android 数据表格控件相关论文范文资料