当前位置:文档之家› 用VB进行串口时数据采集

用VB进行串口时数据采集

用VB进行串口时数据采集
用VB进行串口时数据采集

用VB进行串口实时数据采集

VB-界面速成通道/ChenLL 发表于2007-08-10, 20:28

用VB进行串口实时数据采集

本文介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。

----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C 串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。

----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x 则为负数;第八位为0,即:0 x x x x x x x 则为正数。

----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示-26.87 34. 62。

----通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。

----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下:

RThreshold = 1

接收缓冲区收到一个字节产生OnComm事件

InputLen = 1 每次读取一个字节

----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms时间,然后再进行数据处理。如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,以保证数据处理的实时性。

----设置接收数据模式采用二进制形式,即InputMode=comInputModeBina ry,但用Input属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

----VB中有Byte类型变量,但没有字节的位处理语句,符号字节的位处理要判断符号字节的值是否大于127,大于127则为负数;压缩的BCD码存入Byte类型

变量,VB系统只按十进制数处理,这要通过一个简单算法换算,解压BCD码才能还原成十进制表示数值。假如a是Byte类型变量,D是Single类型变量,将一个压缩的BCD 码存入a中,则算法是:

D=(a\16)*10 +a-(a\16)*16

则D=a-(a\16)*6

----程序清单:

----在通用声明中定义程序所用变量:

Dim ab(4) As Byte

‘字节数据类型数组,用来存储接收到的一组字节数据

Dim av As Variant ‘用来从接收缓冲区读取数据

Dim i As Integer

Dim j As Integer

Dim w As Integer ‘接收数据个数计数器

Dim b1 As Single

Dim b2 As Single

Dim WW As Single ‘十进制检测值

Dim MaxW As Single ‘最大值

Dim MinW As Single ‘最小值

----在窗体中添加名为Command1的[开始]按钮和名为MSComm1的MSCo mm控件。

---- [开始]按钮的Click事件处理程序主要是对MSComm1控制的参数初始化设置,程序中大部分参数在设计时可在MSComm1控制的属性窗口中设置: Private Sub Command1_Click()

‘开始按钮

With MSComm1

.CommPort=2 ‘使用COM2

.Setting=“9600,N,8,1" ‘设置通信口参数

.InBufferSize=40

‘设置MSComm1接收缓冲区为40字节

.OutBufferSize=2

‘设置MSComm1发送缓冲区为2字节

.InputMode = comInputModeBinary

‘设置接收数据模式为二进制形式

.InputLen = 1

‘设置Input 一次从接收缓冲读取字节数为1

.SThreshold = 1

‘设置Output 一次从发送缓冲读取字节数为1

.InBufferCount = 0 ‘清除接收缓冲区

.OutBufferCount = 0 ‘清除发送缓冲区

MaxW = -99

‘最大值赋初值

MinW = 99 ‘最小值赋初值

w = 0

‘数据个数计数器清零

.RThreshold = 1

‘设置接收一个字节产生OnComm事件

If .PortOpen = False Then

‘判断通信口是否打开

.PortOpen = True ‘打开通信口

If Err Then ‘错误处理

MsgBox “串口通信无效"

Exit Sub

End If

End If

End With

End Sub

----为了达到实时数据采集目的,实时数据采集处理程序采用MSComm事件驱动方式。

----MSComm1_OnComm的事件处理程序只处理comEvReceive事件,首先判断帧数据的开始字节,关闭OnComm接收事件,然后接收数据字节,将压缩BC D进行还原转换,再接收符号字节,判断数据符号,判断数据最大最小值,最后打开OnComm接收事件,等待下一次OnComm事件产生:

Private Sub MSComm1_OnComm()

With MSComm1

Select Case .CommEvent

‘判断MSComm1通信事件

Case comEvReceive

‘收到Rthreshold个字节产生的接收事件

av = .Input

‘读取一个接收字节

ab(1) = av(0)

‘转换保存到字节数据类型数组

If ab(1) = &HF0 Then

‘判断是否为数据开始标志

RThreshold = 0

‘关闭OnComm事件接收

Do

DoEvents

Loop Until .InBufferCount >= 3

‘循环等待MSComm1接收缓冲区>=3个字节

w = w + 1 ‘计数器累加计数

av = .Input

‘读取第二个数据字节(BCD码高位字节)

ab(2) = av(0)

‘转换保存到字节数据类型数组

av = .Input

‘读取第三个数据字节(BCD码低位字节)

ab(3) = av(0)

‘转换保存到字节数据类型数组

av = .Input

‘读取第四个数据字节(符号位字节)

ab(4) = av(0)

‘转换保存到字节数据类型数组

b1 = ab(2) - 6 *(ab(2)\16)

‘高位字节压缩BCD码转换为实数

b2 = ab(3) - 6 *(ab(3)\16)

‘低位字节压缩BCD码转换为实数

WW = b1 +b2 / 100

‘数值组合,标定小数点

If ab(4) > 127 Then WW=WW

‘判断数据符号位

Label1(0) = Format(WW, “0.00")

‘显示毫米单位数值,2位小数

Label1(1) =Format(WW /25.4, “0.000")

‘显示英寸单位数值,3位小数

If WW > MaxW And WW < 51 Then

----‘判断最大值,仪表在刚开始工作时有干扰,会传导一些乱码,位移传感器有参数偏差,最大值一般都略大于50毫米,所以取51为极限最大值,取-51为极限最小值。

MaxW = WW

Label1(2) = Format(MaxW, “0.00")

‘显示毫米单位最大值,2位小数

Label1(3) = Format(MaxW/25.4,“0.000")

‘显示英寸单位最大值,3位小数

End If

If WW < MinW And WW > -51 Then

‘判断最小值

MinW = WW

Label1(4) = Format(MinW, “0.00")

‘显示毫米单位最小值,2位小数

Label1(5) = Format(MinW/25.4,“0.000")

‘显示英寸单位最小值,3位小数

End If

.RThreshold = 1

‘打开MSComm1事件接收

End If

Case Else

End Select

End With

End Sub

基于VB的串口数据采集

[ 来源:机电论文| 类别:技术| 时间:2008-6-21 14:44:00 ] [字体:大中小]

要求:用VB编写一个小软件,采集电子数显千分表的数据

数显表接口参数:数显表的专用接口可与PC机的RS232(9针)相接,其波特率4800,无奇偶校检,8位数据位,1位停止位,以AcsII码发送数据

窗体设计:1个listbox,1个textbox,1个MSComm控件,2个CommandButton

程序设计:

Dim indata As Variant

Dim data(100) As Single

Private Sub Command1_Click()

Static i

i = i + 1

data(i) = Text1.Text

List1.AddItem data(i)

End Sub ‘...按键一次,采集一个数据,并存入List1中

Private Sub Command2_Click()

MSComm1.PortOpen = False '….关端口

Unload Me

End Sub '...退出

Private Sub Form_Load()

https://www.doczj.com/doc/406932459.html,mPort = 1 '...使用Com1口

MSComm1.Settings = "4800,n,8,1" '...设置通讯参数MSComm1.RThreshold = 10

MSComm1.streshold = 10

MSComm1.PortOpen = True '...打开串口

Text1.Text = ""

End Sub

Private Sub MSComm1_OnComm()

Select Case https://www.doczj.com/doc/406932459.html,mEvent

Case comEvReceive '...有接收事件发生

indata = MSComm1.Input

Text2.Text = (indata / 10) ‘…text1实时显示数显表的数据MSComm1.InBufferCount = 0 '...清空输入寄存器

End Select

End Sub

我这有一段VB程序是为了画实时采集曲线的。

软件编程我不行,如果大家有看得懂得,请帮我看看。

程序不多

Private Sub MSComm1_OnComm()

Dim Inbyte() As Byte

Dim buffer As String

Dim datatemp(1000) As Single

If num > 199 Then Call renew '刷新绘图区

'读取仪表返回数据串

Select Case https://www.doczj.com/doc/406932459.html,mEvent

Case comEvReceive

Inbyte = MSComm1.Input '这地方看不懂,数组可以这样赋值吗?

For i = LBound(Inbyte) To UBound(Inbyte)

buffer = buffer + Hex(Inbyte(i)) + Chr(32) 'for语句也没看懂,尤其是buffer这赋的是什么值?

Next i

Case comEvSend

End Select

'获取十进制测量数据

’这下面的又是没看懂,应该是将十六进制转换为十进制,怎么转换的呢?

If Len(Trim(Mid(buffer, 1, 2))) = 1 Then

datatemp(num) = Val( "&H " & Mid(buffer, 3, 2) & Str( "0 ") & Mid(buffer, 1, 2)) * 0.01

Else

datatemp(num) = Val( "&H " & Mid(buffer, 3, 2) & Mid(buffer, 1, 2)) * 0.01 End If

‘绘制曲线

Private Sub draw()

Picture1.Cls

Picture1.DrawWidth = 2

Picture1.BackColor = QBColor(7)

’下面的程序我看不懂,用的是什么原理画的曲线呢?

Picture1.Scale (0, 50)-(200, 0)

For i = 1 To num - 1

X1 = (i - 1): Y1 = datatemp(i - 1)

X2 = i: Y2 = datatemp(i)

Picture1.Line (X1, Y1)-(X2, Y2), QBColor(1)

VB6.0串口操作

VB6.0串口操作 职业2010-12-22 11:30:58 阅读60 评论0 字号:大中小订阅 一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。 计算机与单片机的连接,是通过串口来实现的。如何实现,我想应该明白VB怎样来操作串口,实现VB 操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。 这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。。。 开发软件:Visual Basic 6.0企业版(VB6) 新建一个工程:标准EXE。 接下来做Form界面。 代码: Private Sub Combo1_Click() If MSComm1.PortOpen = True Then '如果串口打开先关闭后再进行其他操作 MSComm1.PortOpen = False End If https://www.doczj.com/doc/406932459.html,mPort = Combo1.ListIndex + 1 End Sub Private Sub Command1_Click() Dim Temp(0) As Byte Dim strBuff As String If Option3.Value = True Then '如果显示16进制发送则进行16进制处理,这里只发送一个Temp(0) = "&H" & Text1 MSComm1.Output = Temp '发送一个16进制 Else strBuff = Text1 End If

If MSComm1.PortOpen = False Then MsgBox "请打开串口" End If On Error GoTo uerror MSComm1.Output = strBuff uerror: End Sub Private Sub Command2_Click() On Error GoTo uerror '发现错误跳转到错误处理 If Command2.Caption = "关闭串口" Then MSComm1.PortOpen = False Command2.Caption = "打开串口" '按钮文字改变 Shape1.FillColor = &HFFFFC0 '灯颜色改变Else MSComm1.PortOpen = True Command2.Caption = "关闭串口" Shape1.FillColor = &HFF End If Exit Sub uerror: msg$ = "无效端口号" '错误显示 Title$ = "串口调试助手" x = MsgBox(msg$, 48, Title$) '48标示显示警告图标 End Sub Private Sub Command3_Click() Text2.Text = "" End Sub Private Sub Command4_Click() Text1.Text = "" End Sub Private Sub Form_Load() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False Else End If Combo1.AddItem "COM1" Combo1.AddItem "COM2" Combo1.AddItem "COM3"

VB实现串口通讯

VB实现串口通讯 目前,Visual Basic (简称VB)已成为WINDOWS 系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB 支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件。在VB 应用程序中可以方便地调用WINDOWS API函数,使得编程效率提高,应用功能增强。 利用VB 提供的这些功能,我们可以有三种方法完成串口通信。一种是用VB 提供的具有强大功能的通信控件;另一种方法是调用WINDOWS API 函数,使用WINDOWS 提供的通信函数编写移植性强的应用程序;第三是利用文件的输入/ 输出完成,该方法简便易行,但有一定的局限性。 一、利用通信控件(MSCOMM)完成串口通信 VB 提供了通信控件MSCOMM,文件名为MSCOMM. VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以触发OnComm事件,在该事件过程进行数据检验处理及检错,还可以通过编程访问CommEvent 属性来了解通信的情况,进行收发数据的处理。每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。 1、通信控件的事件及基本属性 (1)事件 OnComm:通信控件只提供了一个事件,该事件的触发可以对串口的通信事件及错误进行处理。通过对CommEvent 属性的判断可知当前的通信错误和事件,分别对每个CommEvent 值进行编程就完成了对各个错误和事件的处理。如:CommEvent = MSCOMM—EV—SEND 表示发送事件。这些信息可从VB 提供的常量文件CONSTANT. TXT中查出。 (2)属性 CommPort :设置通信控件与哪个串口相连接,设置并返回通信口号。 Setting :设置通信的信息格式,为字符型。顺序为:波特率、校验、数据位、停止位。 PortOpen :布尔型、开关通信口。 InputLen :从接收缓冲区读取字符个数。 Input ,Output :读取接收缓冲区或写入发送缓冲区字符。 以上五种属性对串口完成基本的设置和操作,下面的三种属性是描述如何利用VB 提供的事件驱动机制来实现通 信。 CommEvent :返回通信过程中产生的错误信息及事件,了解通信状况。

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所示。 图1数据传输系统原理框图把数据记录卡插入数据存储仪内,可把卡内数据转存到存储模块。数据存储仪通过usb口与pc机连接,把所存数据传输到上位机,上位机对数据进行显示、处理及存储。系统采用ftdi公司的ft232bl芯片作为usb转串口模块,可以和单片机的内置串口直接连接,使单片机通过usb口和pc机通讯。芯片一方面可以接收从pc机发来的usb数据,并将其转换为串行i/o数据格式发送给单片机串口;另一方面可把单片机从串口发出的数据转换为usb的数据格式传回pc机。与其他usb接口芯片相比,用ft232bl芯片进行usb外设开发,只需熟悉单片机编程及简单的vc或vb 编程,而无需考虑固件设计以及驱动程序的编写,从而能大大缩短usb外设产品的开发周期。 2硬件电路设计 2.1ft232bl芯片简介

VB串口通信详细讲解

VB串口通信 目前,Visual Basic (简称VB)已成为WINDOWS 系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB支持面向对象的 程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件。在VB应用程序可以方便地调用WINDOWS API函数,使得编程效率提高,应用功能增强。 利用VB提供的这些功能,我们可以有三种方法完成串口通信。一种是用VB提供的具有强大功能的通信控件;另一种方法是调用WINDOWS API函数,使用WINDOWS 提供的通信函数编写移植性强的应用程序;第三是利用文件的输入/输出完成,该方法简便易行,但有一定的局限性。 一、利用通信控件(MSCOMM)完成串口通信 VB提供了通信控件MSCOMM,文件名为MSCOMM. VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以触 发On Comm 事件,在该事件过程进行数据检验处理及检错,还可以通过编程访问CommEvent属性来了解通信的情况,进行收发数据的处理。每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。 1、通信控件的事件及基本属性 (1)事件 On Comm :通信控件只提供了一个事件,该事件的触发可以对串口的通信事件及错误进行 处理。通过对CommEvent属性的判断可知当前的通信错误和事件,分别对每个CommEvent 值进行编程就完成了对各个错误和事件的处理。如:CommEvent = MSCOMM —EV—SEND表示发送事件。这些信息可从VB提供的常量文件CONSTANT. TXT中查出。

VB串口控件固定帧格式通信编程实例-实时数据采集

1 / 9 VB MSComm控件进行串口实时数据采集txt 本文介绍V B6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。 一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为 0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。 该仪表的串口数据通信协议是: 数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD 码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x则为负数;第八位为0,即:0 x x x x x x x则为正数。例如:0F0H 26H 87H 80H0F0H 34H 62H 00H表示- 26.8734.62。

通信传输速率为9600bps,则最快速度 1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均 5.0ms发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。 2 / 9 为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下: RThreshold = 1接收缓冲区收到一个字节产生OnComm事件InputLen = 1每次充接收缓冲区读取一个字节 仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms 时间,然后再进行数据处理。如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监

VB6 实时 串口通信 数据采集代码

VB6 实时串口通信数据采集代码 介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。 ----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C 串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。 ----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x 则为负数;第八位为0,即:0 x x x x x x x 则为正数。 ----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示-26.87 34.62。 ----通信传输速率为9600bps,则最快速度1.04ms发送一帧数据。

9600bps = 1200Bps这样计算出来的结果相当于8bits/Frame,现在串口中协议是10bits/Frame,求解方程1200 * 8 = x * 10得到x = 960Frame/s。1000/960 = 1.04167Frame/ms。仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下: RThreshold = 1 接收缓冲区收到一个字节产生OnComm事件 InputLen = 1 每次读取一个字节 ----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms 时间(1000/50=20),然后再进行数据处理。①如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;②如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情

VB6.0串口操作

串口操作 职业2010-12-22 11:30:58 阅读60 评论0 字号:大中小订阅 一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。计算机与单片机的连接,是通过串口来实现的。如何实现,我想应该明白VB怎样来操作串口,实现VB操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。 这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。。。 开发软件:Visual Basic 企业版(VB6) 新建一个工程:标准EXE。 接下来做Form界面。 代码: Private Sub Combo1_Click() If = True Then '如果串口打开先关闭后再进行其他操作 = False End If = + 1

End Sub Private Sub Command1_Click() Dim Temp(0) As Byte Dim strBuff As String If = True Then '如果显示16进制发送则进行16进制处理,这里只发送一个 Temp(0) = "&H" & Text1 = Temp '发送一个16进制 Else strBuff = Text1 End If If = False Then MsgBox "请打开串口" End If On Error GoTo uerror = strBuff uerror: End Sub Private Sub Command2_Click() On Error GoTo uerror '发现错误跳转到错误处理

If = "关闭串口" Then = False = "打开串口" '按钮文字改变 = &HFFFFC0 '灯颜色改变 Else = True = "关闭串口" = &HFF End If Exit Sub uerror: msg$ = "无效端口号" '错误显示 Title$ = "串口调试助手" x = MsgBox(msg$, 48, Title$) '48标示显示警告图标End Sub Private Sub Command3_Click()

VB串口数据接收方式

1、在OnComm 事件中接收数据: 这种方式能充分MSCOMM控件的特性。OnComm 事件还可以检查和处理通讯错误;可以通过检查CommEvent 属性的值来查询事件和错误;对于不定长数据以及对数据进行处理比较复杂的情况,此法不是很方便。 Private Sub MSComm_OnComm () Select Case https://www.doczj.com/doc/406932459.html,mEvent ' 错误 Case comEventBreak ' 收到Break。 Case comEventCDTO ' CD (RLSD) 超时。 Case comEventCTSTO ' CTS Timeout。 Case comEventDSRTO ' DSR Timeout。 Case comEventFrame ' Framing Error Case comEventOverrun '数据丢失。 Case comEventRxOver'接收缓冲区溢出。 Case comEventRxParity' Parity 错误。 Case comEventTxFull '传输缓冲区已满。 Case comEventDCB '获取DCB] 时意外错误 ' 事件 Case comEvCD ' CD 线状态变化。 Case comEvCTS ' CTS 线状态变化。 Case comEvDSR ' DSR 线状态变化。 Case comEvRing ' Ring Indicator 变化。 Case comEvReceive ' 收到RThreshold # of chars. Case comEvSend ' 传输缓冲区有Sthreshold 个字符' Case comEvEof ' 输入数据流中发现EOF 字符 End Select End Sub 2.轮循法采集数据: A、定时器轮循法 对于数据包方式收发数据以及不需即时响应情况,用轮循法更好些。实际上轮循法最大的好处在于集中处理数据而且不太占用CPU。轮循法要注意定时采集的时间片段大小;这里用二进制收发模式;使属性RThreshold、SThreshold为0,屏蔽ONCOMM事件。 InputMode = comInputModeBinary RThreshold = 0 SThreshold = 0 Private Sub TmrComm_Timer() '采用轮循法采集数据

用VB进行串口时数据采集

用VB进行串口实时数据采集 VB-界面速成通道/ChenLL 发表于2007-08-10, 20:28 用VB进行串口实时数据采集 本文介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。 ----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C 串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。 ----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x 则为负数;第八位为0,即:0 x x x x x x x 则为正数。 ----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示-26.87 34. 62。 ----通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。 ----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下: RThreshold = 1 接收缓冲区收到一个字节产生OnComm事件 InputLen = 1 每次读取一个字节 ----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms时间,然后再进行数据处理。如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,以保证数据处理的实时性。 ----设置接收数据模式采用二进制形式,即InputMode=comInputModeBina ry,但用Input属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。 ----VB中有Byte类型变量,但没有字节的位处理语句,符号字节的位处理要判断符号字节的值是否大于127,大于127则为负数;压缩的BCD码存入Byte类型

vb实现多通道串口采集

用VB开发多通道仪表数据采集程序 ( xxxx) 1.前言 实时数据采集系统过去在DOS操作系统下一般是采用汇编语言开发制作。随着Windows操作系统的普及应用,数据采集及工业控制等软件的开发也上升到Windows环境下。可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的各种应用软件具有良好的人机交互功能。汇编语言的特点是功能强、运行速度快,但编程复杂、调试难,而高级语言具有良好的可读性及方便的调试手段。 Visual Basic是Windows环境下简单、易学、高效的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人员采用的开发工具。VB不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能。采用VB开发Winodws下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。 2.MSComm控件特点 MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串口的访问,该控制“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm 事件,然后可以通过判断CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。 因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。

用VB6实现仪器串口通信及检测功能

1 设计用户界面 首先新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框中选择Microsoft Comm Control6.0即可添加MsComm控件;再在窗体中依次布置如下控件并设置其属性。 控件名称name属性Caption属性 Form form1空 Frame1frame1空 Frame2frame2空 Frame3frame3空 Command1comd1确定 Command2comd2退出 Command3comd3确定 Command4comd4退出 Command5comd5做完退出 MSComm msc1空 Label 1lab1RS-232接口功能检测 Label 2lab2请输入被检仪器程控码控制仪器功能 Label 3lab3请输入被检仪器程控码读取仪器数据 Text1txt1空 Text2txt2空 完成后的界面如图1所示

图1 用户界面2 编写程序代码 编写的程序代码如下: PriV ate Sub Form_Load() https://www.doczj.com/doc/406932459.html,mPort=1 ’ 使用串行口1 ’波特率9600,偶校验,8个数据位,1个停止位 Msc 1.Settings=“9600,E,8,1” ’当使用Msc 1.Input时,每次从接收缓冲区取一个字节。 Msc1.InputLen=0 ’读取整个接收缓冲区内码或消除 Msc1.Portopen=True ’ 打开串行口 End Sub Private Sub Comd1_Click() On Error Resume Next ’简单的错误处理 If Txt1.Text = "" Then x = MsgBox("被检仪器程控码不能为空值", 16) Exit Sub End If MSC1.Output = Txt1.Text + Chr$(13) ’发送程控码 For i = 1 To 20000000 Next End Sub Private Sub Comd2_Click() Txt1.Text = "" Txt1.SetFocus End Sub Private Sub Comd3_Click() Dim instring As string instring = MSC1.Input MSC1.Output = Txt2.Text + Chr$(13) Do DoEvents Loop Until MSC1.InBufferCount >= 20 instring = MSC1.Input ’ 从接收队列中读入字符串 Txt2.Text = "" Txt2.Text = instring ’ 显示读入的字符串 End Sub Private Sub Comd4_Click() Txt2.Text = ""

VB串口通信(附图教程)

界面如下: 代码如下: Private Sub Form_Load() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False Else End If Combo1.AddItem "COM1" Combo1.AddItem "COM2" Combo1.AddItem "COM3" Combo1.AddItem "COM4" Combo1.AddItem "COM5" Combo1.AddItem "COM6" Combo1.AddItem "COM7" Combo1.AddItem "COM8" Combo1.AddItem "COM9" Combo1.AddItem "COM10" Combo1.AddItem "COM11"

Combo1.AddItem "COM12" Combo1.AddItem "COM13" Combo1.AddItem "COM14" Combo1.AddItem "COM15" Combo1.AddItem "COM16" Combo1.ListIndex = 2 Combo2.AddItem "256000" Combo2.AddItem "128000" Combo2.AddItem "115200" Combo2.AddItem "57600" Combo2.AddItem "38400" Combo2.AddItem "28800" Combo2.AddItem "19200" Combo2.AddItem "14400" Combo2.AddItem "12800" Combo2.AddItem "11520" Combo2.AddItem "9600" Combo2.AddItem "4800" Combo2.AddItem "2400" Combo2.AddItem "1200" Combo2.AddItem "600" Combo3.AddItem "无None" Combo3.AddItem "奇Odd" Combo3.AddItem "偶Even" Combo4.AddItem "4" Combo4.AddItem "5" Combo4.AddItem "6" Combo4.AddItem "7" Combo4.AddItem "8" Combo5.AddItem "1" Combo5.AddItem "2" https://www.doczj.com/doc/406932459.html,mPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,n,8,1" ComOpen.Caption = "打开串口" Shape1.FillColor = &HFFFFC0 End Sub Private Sub ComOpen_Click()

VB三种读取串口数据的方式

3三种读取串口数据的方式 目前通用的串口通讯的软件实现方式有3种,本文都进行详细的介绍,它们各有自身的优缺点,读者在编程时可根据具体的情况选择合适的方式。 3.1利用Mscomm控件 VB提供的这个通信控件“隐藏”了大部分串口通信的底层运行过程,程序员只需编写少量的代码就可以完成软件的开发过程。在通信数据量不大,通信要求不是很高的情况下建议采取此方式。 利用Mscomm控件实现通信最需要掌握的就是它的几个主要属性,下面选取其中重要的进行介绍,其余的可以参考相关资料。[3] (1)Settings属性:以字符串的形式设置并返回波特率、奇偶校验位、数据位、停止位。这个属性很重要,针对不同的终端设备需要根据设备的具体情况进行调整(比如日本的设备不同于美国的设备,通常会采用奇校验)。 (2)InputMode属性:设置接收数据的类型,0为文本格式,1为二进制格式。 (3)Input属性:读取并删除接收缓冲区中的数据流。 (4)Output属性:向发送缓冲区传送一数据流。 (5)Rthreshold属性:该属性为一阀值,它确定当接收缓冲区内的字节个数达到或超过该值后就产生代码为ComEvReceive的OnComm事件。 (6)Handshaking属性:设置和返回握手协议,即计算机内部CPU与串口之间的通讯协议,保证在缓冲区过载时数据不会丢失。这个属性在保证数据传输的正确性方面有很大的作用,共有四个选项,分别表示:①无流控制;②软件流控制;③硬件流控制;④软硬件流控制。采用硬件流控时,要求串口之间和电缆支持硬件握手,在自己制作串口通信线时,有关硬件握手的线RTS、CTS、DSR、DTR要连接正确。 在正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。 3.2直接调用Win32 API通信函数 直接调用Windows API函数,可以清楚地理解串口通信的机制,根据需要灵活地配置串口的各种参数和属性,而且直接调用低层API函数,通信效率比较高,但付出的代价就是程序较复杂,编程周期长,适合于大型通信程序及通讯质量要求较高的场合。 在32位的Windows系统中,串口通信是作为文件处理的,串口操作一般为打开、关闭、读取、写入等操作,相应的Windows API函数如下:[4] (1) CreateFile()函数:实现串口的初始化并打开串口,返回串口句柄资源以供后续进程调用。 (2) CloseFile()函数:关闭串口,串口是非共享资源,应用程序以独占方式使用,通信结束应立即关闭。 (3) ReadFile()函数:从串口输入缓冲区读取数据流。 (4) WriteFile()函数:向串口输出缓冲区发送数据。 (5) GetCommState()函数:获取串口的当前配置。 (6) SetCommState()函数:重新分配串口资源的各个参数。 由于Windows API函数大部分是用C或C++编写,所以在Visual Basic 6.0 中调用Windows API函数之前必须先在模块级代码上用Declare语句对所调用的函数和用到的数据结构进行声明,具体的函数声明及数据结构请参考朱友芹编《新编Windows API参考大全》。 3.3调用第三方函数库(如Pcomm函数库) DLL(Dynamic Link Library)动态链接库是一种可以被VB语言调用的程序模块。DLL中

vb实现多通道串口采集

1 / 17 用VB开发多通道仪表数据采集程序 ( xxxx) 1.前言 实时数据采集系统过去在DOS操作系统下一般是采用汇编语言开发制作。随着Windows操作系统的普及应用,数据采集及工业控制等软件的开发也上升到Windows环境下。可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的各种应用软件具有良好的人机交互功能。汇编语言的特点是功能强、运行速度快,但编程复杂、调试难,而高级语言具有良好的可读性及方便的调试手段。 Visual Basic是Windows环境下简单、易学、高效的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人员采用的开发工具。VB不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能。采用VB开发Winodws下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。2.MSComm控件特点 MSComm控件是Microsoft提供的扩展控件,用于支持VB程序

对串口的访问,该控制“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。 因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。 2 / 17 3.实时数据采集示例程序 下面给出的应用实例,通过对一台工业八通道实时检测仪表数据通讯协议进行分析,利用V B6.0开发微机通过串口对多通道工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详示,可以直接或稍加改动后用于其它数据采集或实时控制程序中。 3.1仪表及其数据通讯协议 这台工业用八通道实时检测仪表,最多可同时接八路高精度位移传感器,用于测量多点微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C串口,能与微机进行串口数据通讯,实时传送检测数据,通过微机软件处理可实现工业实时监控。该仪表的串口数据

用VB开发多通道仪表数据采集程序

用VB开发多通道仪表数据采集程序 1.前言 实时数据采集系统过去在DOS操作系统下一般是采用汇编语言开发制作。随着Windows操作系统的普及应用,数据采集及工业控制等软件的开发也上升到Windows环境下。可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的各种应用软件具有良好的人机交互功能。汇编语言的特点是功能强、运行速度快,但编程复杂、调试难,而高级语言具有良好的可读性及方便的调试手段。 Visual Basic 是Windows环境下简单、易学、高效的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人员采用的开发工具。VB不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能。采用VB开发Winodws下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。 2.MSComm控件特点 MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串口的访问,该控制“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。 3.实时数据采集示例程序 下面给出的应用实例,通过对一台工业八通道实时检测仪表数据通讯协议进行分析,利用VB6.0开发微机通过串口对多通道工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详示,可以直接或稍加改动后用于其它数据采集或实时控制程序中。 3.1 仪表及其数据通讯协议 这台工业用八通道实时检测仪表,最多可同时接八路高精度位移传感器,用于测量多点微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C串口,能与微机进行串口数据通讯,实时传送检测数据,通过微机软

基于VB的串口通讯及其软件实现(精)

基于VB的串口通讯及其软件实现 摘要:串口通信因为其简单,灵活易用,在许多领域有着广阔的应用前景。本文在深入了解串口通讯技术的基础上,结合自身的工程实践经验,阐述了VB串口编程的技术要点。并结合一个通讯实例,分析通讯的具体实现,给相关领域的研究人员提供值得参考的信息。关键词:串 口;RS232;API;Pcomm;Mscomm;通信程序Abstract:Serial communication has broad application in many fields because of its simple communication circuitry and flexibility. Based on deep comprehension of the technology of the serial communications, this article expounds important technology detail integrated with practice experience. An example of communication program is presented and analyzed, which gives other researchers valuable reference information. Key words:serial; RS232; API; Pcomm; Mscomm; communication program 现在通讯方式越来越多,速度越来越快,但串行通讯由于自身价格低、协议透明、硬件投资少、软件编程简单等诸多优点在远程数据采集、监视、通信及控制领域里一直占据着极其重要的地位。它不仅没有因为时代的进步而被淘汰,反而在规格上越来越完善、应用越来越广,长久不衰。1串口通信的通信机理PC串行通信是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步通信适配器,是PC机用于异步通信的接口)进行编程实现的通信。PC机每个UART中的INS8250中有10个可编程的单字节寄存器,可用于控制、监视操作串行端口,COM1的寄存器地址3F8H-3FEH,COM2的寄存器地址为 2F8H-2FEH。10个寄存器由7个地址访问,其中5个寄存器的访问条件是先设置3FBH线路控制寄存器的最高位为“1”,该位也称为DLAB状态位。[1] 一 般说来,PC机都有一个或多个串行端口,它们依次为Com1、Com2……。这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当了解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给CPU进行处理。在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API 函数发送和接受数据。当用通信控件或声明调用API函数时,它们由COMM.DRV 解释并传递给设备驱动程序。作为一个VB程序员,要编写串口通信程序,只需知道通信控件提供给Windows通信API函数的接口即可,换言之,只需设定和监视通信控件的属性和时间即可。 2串行通讯接口RS-232 前一章节讨论了串口通讯的通信机理,但为了实现具体的数据采集、监视、通信功能,必须了解具体的串口形式。目前使用最广泛的串行接口有两种:RS-232和RS-485。本文着重讨论RS-232,RS- 485不作介绍。RS-232C标准的全称是EIA-RS-232C标准,其中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969年),在这之前,有RS232A、RS232B协议。它规定连接电缆 和机械、电气特性、信号功能及传送过程。EIA-RS-232C定义了按位串行传输 的数据终端设备(DTE)和数据通讯设备(DCE)之间的接口信息。RS-232C是从DTE 或计算机串行接口角度来定义引脚信号的。目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS232被定义为一种在低速率串行通讯中增 加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓的单端通讯。[2]

相关主题
文本预览
相关文档 最新文档