当前位置:文档之家› vb实现多通道串口采集

vb实现多通道串口采集

vb实现多通道串口采集
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串口,能与微机进行串口数据通讯,实时传送检测数据,通过微机软件处理可实现工业实时监控。该仪表的串口数据

通讯协议是:

数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒通过串口发送200个字节数据,由于接入的位移传感器数量在1-8路可调,所以发送的每帧数据长度不定长,随传感器数量多少而变化。仪表数据传输首先发送每帧数据的开始标志字节,该字节定义为二进制常数0FAH;然后发送1个字节的通道状态字节,该字节按位顺序每位代表相应的一路通道状态,某位是1则代表该通道接有位移传感器,某位是0则代表该通道未接位移传感器;从第三个字节开始按位移传感器接通的通道顺序发送采集数据字节,每道数据有三个字节,前2个数据字节采用压缩的BCD码编码方式,第1个数据字节是高位,第2个数据字节是低位,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第3个数据字节为符号字节,该字节第八位为1,即1xxxx 则为负数,第八位为0,即0xxxx则为正数。

例如发送的字节数据为:0FAH 0B1H 26H 87H 8H 34H 62H 00H 37H 76H 0H 42H 53H 80H0FAH为帧开始标志字节,第一道,第五道,第六道,第八道接有位移传感器,表示-

3 / 17

26.87 34.62

37.76-

42.53。

3.2部分参数的技术分析

3.2.1仪表通讯传输速率为9600bps,则最快速度为

1.0417ms发送一个字节;仪表每秒发送200个字节,平均

5.0ms发送一个字节,在查询方式或连续读取串口数据时要在程序中添加循环等待程序,等待接收缓冲区收到足够的字节才能进行数据处理。

3.2.2仪表发送每帧数据长度不定长,为了实现实时监测功能,接收数据的读取要尽可能的快速,则在程序开始运行时设置MSComm1的属性

RThreshold = 26接收缓冲区收到26个字节产生OnComm事件InputLen = 1 Input每次读取一个字节

等到程序接收到一帧完整数据后,计算出当前帧数据长度,再将Rthreshold属性修改为帧长度,则接收缓冲区在收到一帧数据后,MSComm控件才会触发一个OnComm事件,这样就会有更多的时间进行数据的计算和处理。

3.2.3仪表每秒发送200个字节数据,微机收到一完整帧数据至少需要t(ms)时间(只接一道传感器t=25ms;接八道传感器

t=130ms),然后再进行数据处理。如果微机在下一帧数据接收前即t ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>=一完整帧长度),这时完全可以实现实时监测或实时控制;如果微机在t ms内不能将数据计算处

理完毕,接收缓冲区设置的又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,

4 / 17

固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,让部分数据丢失,以保证数据处理的实时性。

3.2.4设置MSComm控件的接收数据模式采用二进制方式,即

3.2.5VB中有Byte类型变量,但没有字节的位处理语句。通道状态字节的位处理要通过对该字节的值运算进行判断,符号字节的位处理则要判断符号字节的值是否大于127,大于127则为负数;压缩的BCD码存入Byte类型变量,VB系统只按十进制数处理,这要通过一个简单算法换算,解压BCD码才能还原成十进制表示数值。假如a是Byte类型变量,W是Single类型变量,将一个压缩的BCD码存入a中,则算法是:

W=(a\16)*10 + a-(a\16)*16 则W=a-(a\16)*6 3.3程序代码

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

Dim ab

(4) As Byte注释:

字节数据类型数组,用来存贮接收到的一组字节数据Dim av As Variant注释:

用来从接收缓冲区读取数据

Dim i As Integer Dim j As Integer Dim w As Integer注释:

5 / 17

接收数据个数计数器

Dim b1 As Single Dim b2 As Single Dim WW As Single注释:

十进制检测值

Dim TD

(8) as Boolean注释:

通道状态数组

Dim Wmax (8) As Single注释:

最大值数组

Dim Wmin (8) As Single注释:

最小值数组

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

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

Private Sub Command1_Click()注释:

开始按钮

With MSComm1 .CommPort=2注释:

6 / 17

使用COM2

.Setting=9600,N,8,1注释:

设置通信口参数

.InBufferSize=40注释:

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

.OutBufferSize=2注释:

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

设置接收数据模式为二进制形式.InputLen = 1注释:

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

1.SThreshold = 1注释:

设置Output一次从发送缓冲读取字节数为1 .InBufferCount = 0注释:

清除接收缓冲区

.OutBufferCount = 0注释:

清除发送缓冲区

For i=1 to 8

Wmax(i) = -99注释:

最大值赋初值

基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)

课程设计(论文)任务书 信息工程学院物联网专业2014-2 班 一、课程设计(论文)题目基于Ucos 的多通道数据采集系统 二、课程设计(论文)工作自2017 年06 月26 日起至2017 年06 月30 日止。三、 课程设计(论文) 地点:嵌入式系统实验室 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握嵌入式开发板(实验箱)各功能模块的基本工作原理; (2)培养嵌入式系统的应用能力及嵌入式软件的开发能力; (3)使学生较熟练地应用嵌入式操作系统及其API 开发嵌入式应用软件; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析所设计嵌入式软件系统中各功能模块的实现机制; (2)选用合适嵌入式操作系统及其API; (3)编码实现最终的嵌入式软件系统; (4)在实验箱上调试、测试并获得最终结果。 2)创新要求: 在基本要求达到后,可进行创新设计,如改善嵌入式软件实时性能;扩展嵌入式软件功能及改善其图形用户界面。 3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文。 (2)论文包括目录、正文、小结、参考文献、谢辞、附录等(以上可作微调)。 (3)课程设计论文装订按学校的统一要求完成。 4)课程设计评分标准: (1)学习态度:20 分; (2)回答问题及系统演示:30 分 (3)课程设计报告书论文质量:50 分。 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)罗蕾.《嵌入式实时操作系统及应用开发》北京航空航天大学出版社 (2)Jean https://www.doczj.com/doc/8f18049910.html,brosse. 《嵌入式实时操作系统uC/OS-II》北京航空航天大学出版社 (3)王田苗.《嵌入式设计与开发实例》.北京航空航天大学出版社 (4)北京博创科技公司. 《嵌入式系统实验指导书》

多通道模块化高速通信数据采集与分析平台

多通道模块化高速通信数据采集与分析平台 1.设备技术参数: 多通道模块化高速通信数据采集与分析平台,可同时采集多路高速模拟信号并进行FPGA实时在线并行处理,可与软件无线电平台进行交联,借助PXI 高带宽低延迟的特性以及开放的FPGA架构,以及扩展的高稳定时钟模块,完成更加复杂的通信系统数据采集与分析任务。 1)高速信号采集: a.通道数:2端口 b.采样率:80MS/s c.ADC位数:14位 d.软件可选曾益:0dB,6dB,12dB e.硬件滤波器:可选择的椭圆、贝塞尔和旁通硬件滤波器 f.总谐波失真:-89.5dBc(9.7MHz,12dB Gain) g.无杂散动态范围:-91dBc(9.7MHz,12dB Gain) 2)实时信号分析模块: a.板载Kintex-7XC7K410T FAPGA芯片,2GB板载内存 b. 3.2GB/s带宽 c.前端包含132条单端I/O线,可配置为66组差分线对 d.支持点对点传输,实现FPGA模块之间,或PXIe模块之间实现直接的高速 数据传输 3)系统高精度时钟源: a.OCXO PXI时钟模块,时钟精度±80ppb b.可用于生成时钟和触发信号,并路由到PXI机箱的背板 c.可利用PXI Express的高级低电压差分信令(LVDS)触发总线:PXIe?DStarA、 PXIe?DStarB和PXIe?DStarC d.可生成两种类型的时钟:信号基于板载精密控温晶体振荡器(OCXO)参考时 钟的高稳定10MHz时钟;和直接数字合成(DDS)时钟生成电路生成的时钟 e.生成时钟频率范围:0.2794Hz~1GHz 4)系统扩展接口: a.两个MXI Express接口,可用于扩展软件无线电外设或PXI机箱,传输带 宽:1GB/s b.不少于三个扩展槽位,用于未来扩展更高密度采集通道以及运算单元 5)嵌入式处理器: a.Intel Xeon系列8核控制器 b.4*USB2.0接口,2*USB3.0接口 c.16GB运行内存 d.支持Real-Time OS系统 e.24GB/s系统带宽 f.支持图形化语言开发上位机与FPGA程序

VB6.0下MSComm控件实现串口通信

VB6.0下用MSComm控件实现串口通信 MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明: 1基本属性 CommPort O https://www.doczj.com/doc/8f18049910.html,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)。 数据位值:4,5,6,7,8(默认),9。 停止位值:1(默认),1.5,2。 PortOpen O bject.PortOpen[=value] Object为MSComm控件。Value为布尔类型,表明通讯端口的状态。 说明:本属性用来设置或返回通讯端口的状态(开或关)。在设计时本属性无效。 设置PortOpen属性为True时端口将会被打开。设置为False时将关闭端口并清除接收和传输缓冲区中的数据。当应用程序终止时,SMComm控件自动关闭串行端口。 在打开端口之前,必须给CommPort属性设置一个合法的端口号。如果CommPort属性被设置成一个非法的端口号,则在打开端口时,MSComm控件将产生错误码为68(表示设备无效)的错误。另外,串行端口设备必须支持Settings属性的当前设置值。如果Settings属性包含硬件不支持的通讯设置值,则硬件可能不会正常工作。如果在端口打开之前,DTREnable 或RTSEnable属性被设置为True,则在关闭总线时,这些属性将被设置为False。否则DTR 和RTS线仍将保持其先前的状态。 Input Object.Input Object为MSComm控件。

基于LabVIEW的多通道数据采集系统信号处理

目:基于LabVIEW的多通道数据采集系统 2010 年 03 月 20 日 互联网会议PPT资料大全技术大会产品经理大会网络营销大会交互体验大会 毕业设计开题报告 1.结合毕业论文课题情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 1. 本课题的研究背景及意义 近年来,以计算机为中心、以网络为核心的网络化测控技术与网络化测控得到越来越多的应用,尤其是在航空航天等国防科技领域。网络化的测控系统大体上由两部分组成:测控终端与传输介质,随着个人计算机的高速发展,测控终端的位置原来越多的被个人计算机所占据。其中,软件系统是计算机系统的核心,设置是整个测控系统的灵魂,应用于测控领域的软件系统成为监控软件。传输介质组成的通信网络主要完成数据的通信与采集,这种数据采集系统是整个测控系统的主体,是完成测控任务的主力。因此,这种“监控软件-数据采集系统”构架的测控系统在很多领域得到了广泛的应用,并形成了一套完整的理论。 2. 本课题国内外研究现状 早期的测控系统采用大型仪表集中对各个重要设备的状态进行监控,通过操作盘进行集中式操作;而计算机系统是以计算机为主体,加上检测装置、执行机构与被控对象共同构成的整体。系统中的计算机实现生产过程的检测、监督和控制功能。由于通信协议的不开放,因此这种测控系统是一个自封闭系统,一般只能完成单一的测控功能,一般通过接口,如RS-232或GPIB接口可与本地计算机或其他仪器设备进行简单互联。随着科学技术的发展,在我国国防、通信、航空、气象、环境监测、制造等领域,要求测控和处理的信息量越来越大、速度越来越快。同时测控对象的空间位置日益分散,测控任务日益复杂,测控系统日益庞大,因此提出了测控现场化、远程化、网络化的要求。传统的单机仪器已远远不能适应大数量、高质量的信息采集要求,产生由计算机控制的测控系统,系统内单元通过各种总线互联,进行信息的传输。 网络化的测控技术兴起于国外,是在计算机网络技术、通信技术高速发展,以及对大容量分布的测控的大量需求背景下发展起来,主要分为以下几个阶段:第一阶段: 起始于20世纪70年代通用仪器总线的出现,GPIB实现了计算机与测控系统的首次 结合,使得测量仪器从独立的手工操作单台仪器开始总线计算机控制的多台仪器的测控系统。此阶段是网络化测控系统的雏形与起始阶段。第二阶段:

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/8f18049910.html,mPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,n,8,1"

-基于Labview的多通道数据采集系统设计

第一节系统整体结构 系统的整体组成结构是测量目标经过传感器模块后转换成电信号,在由信号调理模块对信号做简单的调理工作,例如,scc-sg04全桥应变调整模块,scc-td02模块,scc-rtd01热电偶热电阻制约模块等,将调理好的信号传送到数据采集模块中进行数据采集,然后在用软件进行特定的处理。在采集的过程中同时将数据保存到指定数据库里。如图4-1多通道数据采集系统硬件结构图所示。 图4-1 多通道数据采集系统硬件结构图 第二节数据采集系统的硬件设计 一、PC机 传统仪器很多情况完成某些任务必须借助复杂的硬件电路,而由于计算机数据具备极强的信号处理能力,可以替代这些复杂的硬件电路,这便是虚拟仪器最大的特点。数据采集系统能够正常运行的前提便是选择一个优良的计算机平台。由于数据采集功能器件通常工作在工业领域中,往往伴随着强烈的振动,噪声,电源线的干扰和电磁干扰等。为了保证记录仪正常的运行,设计系统时选定工业计算机。考虑到计算机平台的可靠运行工业计算机通常采取了抗干扰措施。另一方面的考虑是工业计算机通常具有很多类型的接口,这样有利于功能进一步的扩展。 二、传感器 传感器设备能接受到来自测量目标发来的信号,而且把接受到的讯息,通

过设定的变换比例将其改变成为电信号亦或其它形式,从而能够完成数据信号的处理、存储、显示、记录和控制等任务。传感器是系统进行检测与控制的第一步。 三、信号调理 经过传感器的信号大多是要经过信号调理才可以被数据采集设备所接收,调理设备能够对信号进行放大、隔离、滤波、激励、线性化等处理。由于不同类型的传感器各有不同的功能,除了考虑一些通用功能之外,还要依据不同传感器的性质和要求来实现特殊的信号调理功能。信号调理电路的通用功能由如下几个方面: (1)放大功能为了提高系统的分辨率以及降低噪声干扰,微弱信号必须要进行放大,从而使放大之后信号电压与模数转换的电压范围一致。信号在经过传感器之后便直接进入信号调理模进行调理,这样就不易受到外部环境的影响,从而使得信噪比进一步的改善。 (2)隔离功能隔离是指为了避免直接的电连接,通过光线、交互电源或变压等方法,使得数据信息在系统之间进行传递。使用隔离的原因:一是为了安全考虑;二是能够保证采集到的数据不会受到其它原因的影响。 (3)滤波滤波是为了保证测量的信号的纯洁性,滤去不需要的信号。大部分的信号调理模块具有一个低通滤波器是用来过滤噪声。通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。 (4)激励功能信号调理模块能够为某些传感器提供激励信号,而且很多信号调理模块都提供有电流源和电压源以便给传感器提供激励。 (5)线性化大部分的传感器是测量信号的线性和非线性响应的结合,为了使传感器误差补偿,对输出信号的线性化是必要的。目前,该数据采集系统可以通过软件解决这个问题。 四、输入信号的类型 要知道信号采集到的数据集,这是因为信号的要求和系统性能的不同的测量是不同的,只有了解被测信号的性质,才可以准确地选择合适的采集系统。 一个任意的信号在时间上是一个物理量的变化。在一般情况下,信号携带的信息是非常广泛的,如:状态,率,水平,形式,频率等。根据信号运载信息的不同,可以将信号分为数字信号或模拟信号。其中数字信号包括脉冲信号和开关信号两种类型。模拟信号包括直流信号、时域信号、频域信号等。 (1)数字信号 第一类数字信号为开关量信号,如图4-2所示。一个开关信号携带信息信

PLC的高速数据采集分析与记录工具介绍

PLC的高速数据采集分析与记录工具 在工业现场,设备调试时经常遇到需要对PLC各种变量捕捉分析,优化控制时序,检查动作过程是否准确等情况;在设备运行时又需要对设备的运行状态进行全方位的监控和记录,方便设备故障后,故障过程的重现与故障原因的分析,尤其一些控制逻辑复杂的设备,这种需求更加突出。 在一般情况下,SCADA监控软件的趋势记录就可以满足需求,但是SCADA在趋势与记录上存在很大的劣势,比如,采集数据量大的系统(系统本身庞大,需要采集的数据点多),采集速度要求高的系统(系统本身运行快,要求最大程度复现控制器内逻辑与数据的处理过程,如西门子TDC等),这些情况下,单纯的依靠SCADA已经无法满足我们的需要,那么就需要专用的数据采集分析与记录工具帮我们完成。 下面是对PLC的一些数据采集与记录工具的介绍。 1)、iba公司的PDA 既然要说数据采集记录工具,首先要提的当然是强大的PDA,软件本身支持很多驱动,可以选择带硬件支持的版本,一般采用控制器连接iba公司的模块,模块通过光纤连接工控机的配置方法,能够最大限度提高速度,当然也有纯软件的版本,这个软件在钢铁行业应用的比较多,如轧制过程的数据采集记录。(不过,这个软件的价格我只能呵呵了),软件截图:

2)、AUTEM公司的PLC-ANALYZER pro 关于此软件,同样提供多种驱动。支持的PLC-Driver有Siemens SIMATIC S7 / C7 / M7, SAIA xx7, VIPA, SIMATIC S5, Siemens LOGO!, SINUMERIK, SIMOTION, BOSCH, CoDeSys, PILZ, Phoenix, Jetter, Allen-Bradley, GE Fanuc, HITACHI, OMRON, Mitsubishi, Schneider, AUTEM AD_USB-Box?, Beckhoff TwinCat等,对于西门子的PLC,支持 MPI/PROFIBUS/ETHERNET等,但是在软件的实际使用时你会发现,软件功能较PDA逊色不少。软件截图:

vb串口通讯usb通讯,很有用哦

vb串口通讯usb通讯,很有用哦 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 :返回通信过程中产生的错误信息及事件,了解通信状况。SThreshold :设置并返回不触发OnComm事件时发送缓冲区被允许的最少字符数。当缓冲区的字符少于设置的值时,则触发OnComm事件,并把CommEvent 设为MSCOMMM—EV—SEND。当SThreshold = 0 则禁止发送触发OnComm 事件,当SThreshold = 1 则发送缓冲区为空时就触发OnComm事件。利用这一属性,就可完成发送数据后的一系列操作。如:对刚发送的数据进行处理,当串口是和MODEM通信时,发送完数据后可进行拆除线路联接、挂机等操作。 RThreshold :设置并返回不触发OnComm事件时接收缓冲区被允许的最多字符数。当缓冲区的字符多于设置的值时,则触发OnComm 事件,并把CommEvent 设为MSCOMM—EV—RECEIVE,当RThreshold = 0 则禁止接收触发OnComm 事件,当RThreshold = 1 则接收缓冲区有一个或更多字符时就触发OnComm事件。利用这一属性,就可完成对串口接收数据的处理。 2、利用通信控件的实例 Sub Form1 —load () form1. show ′设置COM1 comm1. commport = 1 comm1. Setting = " 9600 ,o ,8 ,1" ′波特率:9600 奇校验,8位数据,1 位停止位 comm1. Inputlen = 0 ′读取接收缓冲区的所有字符

vb实现多通道串口采集

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

单片机多通道数据采集系统

单片机多通道数据采集系统

目录 1.功能描述 (3) 2 方案设计 (3) 2.1 系统分析 (3) 2.2 器件选择 (4) 2.2.1 微处理器 (4) 2.2.2 显示器 (4) 2.2.3 按键 (4) 2.2.4 闹铃 (4) 3、硬件电路设计 (5) 3.1 最小系统设计 (5) 3.2 显示电路设计 (6) 3.3 按键电路设计 (7) 3.4 声音报警电路设计 (6) 3.5多通道数据采集电路设计 (8) 4、软件设计 (9) 4.1 操作功能设计 (9) 4.2程序编制思想 (9) 4.3 主程序 (10) 5 程序调试 (17) 6 技术小结 (18) 7多通道数据采集系统的使用说明 (19) 8心得体会 (20) 9参考文献 (21) 附录1:电路原理图 (22) 附录2:程序参考清单 (23)

设计报告 1.功能描述 利用单片机控制A/D转换器实现多通道数据采集系统。具有如下功能: 1.基本功能 (1)采集的数据为0-5V电压信号; (2)通过按键选择任意通道的数据显示或轮流显示; (3)可以设定报警上下限。 2.扩展功能 自行扩展功能,如音乐铃声,通讯功能等。 2 方案设计 2.1 系统分析 根据系统功能要求,可将系统组成结构分成五大部分:单片机控制中心、按键接口、多通道数据采集、数码管显示和报警播放音乐,如下图为系统的组成结构图。其中,单片机控制中心是核心。MCU根据按键输入,可切换不同的模式或设置不同的参数,从而实现多通道数据的采集。报警播放音乐可设置最高或最低温度报警值。 图2.1 系统总体结构图

2.2 器件选择 2.2.1 微处理器 市场上微处理器种类很多。这里,选取微处理器从多方面考:成本低、性能高、能够满足功能要求等等。 这里,选取STC89C52芯片。因为其功能与普通51芯片相同,其价格非常低廉、程序空间大、资源较丰富、在线下载非常方便。同时,使用该芯片,编程上亦可采用所熟悉的KEIL软件,使课程设计非常简单。 2.2.2 显示器 常见的显示器件LED数码管和LCD液晶器件。 LED数码管能够显示数字和部分字符,价格便宜,硬件电路、软件编程均非常简单,而且使用动态扫描技术可节省大量硬件成本。 LCD液晶显示器件,显示字迹清晰、能够显示数字、字符,本实验主要是用于显示所采集的电压与温度的显示。 系统显示主要还是数字,根据这两种显示器件的特性,选取LED数码管器件。由于系统要求显示所采集的通道数据,采用四位数码管显示即可。 2.2.3 按键 按键是用来变换显示模式以及设置传送上位机信息等功能的。这里采用普通按键即可,选用原则:以最少的按键,实现尽可能多的功能。所以这里,设置两个按键:模式键、传送键。 2.2.4 闹铃 选用最常见,亦最常用的声音提示方式——蜂鸣器,用于报警音乐定时播放。

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/8f18049910.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"

多通道数据采集系统

多通道数据采集系统 一、仪器结构 VXY2007虚拟化多道X-Y数据采集系统面板如下图所示。仪器板面上有开关,电源指示灯,Ⅰ、Ⅰ、Ⅱ、Ⅲ、Ⅳ道共四道数据采集通道。 当开关打向OFF时,电源指示灯熄灭;当开关打向ON时,电源指示灯变绿色,表明仪器正处于通电状态。四道数据采集通道各分正负两接线柱,分别与热电偶正负极相连。 X-Y数据采集仪面板图 二、工作原理 热电偶可将温度转换成电压信号(温差电势),通过X-Y多通道数据采集系统连续采集记录体系的温度,X-Y多通道数据采集系统与电脑相连,系统采集的数据显示在电脑上,从而得到所需的冷却曲线。通过数条冷却曲线,即可绘出二元相图。 在一定温度范围内,铜-康铜热电偶输出的温差电势与其热端和冷端的温度差成近似线性关系,为此只要绘制出热电偶的工作曲线(电势差-温差曲线),即可通过它的线性关系较方便地查到各mV值所对应的温度。热电偶工作曲线的绘制办法是,固定热电偶冷端的温度0℃(可将其插入冰水混合物中),取三个温度点(沸水、纯锡凝固点、纯秘凝固点)的温度为横坐标,其对应的温差电势为纵坐标,三点连线,作"电势差-温差"曲线图。当然,在仪器的系统误差很小的前提下,也可不做热点偶工作曲线,而是按照仪器读取的电势差值直接去查“铜-康铜热电偶值分度表”,得出对应的温度来。

三、实验步骤 用热分析法中应用VXY2007虚拟化多道X-Y数据采集系统和热电偶测熔融体步冷曲线的实验步骤如下: 1、配制实验样品 用台秤分别配制含Bi30%、57%、70%或80%的Bi-Sn混合物各60克,以及纯Bi、纯Sn各50克,将以上5个样品分别装入样品管中,再各加入少许石墨粉(减缓金属氧化)。 配制冰水混合物,将带玻璃套管的热电偶冷端插入冰水混合物底部,再将热电偶热端插入样品管中,注意使套管底部距样品管底部8~12mm距离。 2、将5种试样装入样品管中,分别放在电炉加热系统中某一个位置,调节电炉加热系统的选择旋钮到对应的档位。 3、打开VXY2007虚拟化多道X-Y数据采集系统软件,设置好X-Y数据采集系统对应的通道,这时采集系统开始工作-记录样品的温度(实际为mV 值)。给电炉通电,对样品进行加热,使金属或合金完全熔化后断电,然后让样品自动缓慢冷却,数据采集系统自动跟踪记录样品的温度随时间的变化。 4、从电脑所记录的图上准确读取各拐点的mV值(精确到±0.05mV)。 5、绘制相图 从热电偶工作曲线上分别查出各样品拐点处温差电势(mV)所对应的温度,以温度纵坐标,合金组成(以Bi含量计)为横坐标,绘制出Sn-Bi二元合金的简化相图。 四、有关注意事项: 金属熔化后,切勿将样品横置,以防金属熔液流出烫伤人体。另外,取热样品管时一定要戴手套,且不能从别人的头上或肩上的空中移过,以防样品管突然破裂而烫伤人体。 在测定当前样品冷却曲线的同时,可将下一个样品放入坩埚电炉里加热熔化,以节省时间,但应注意样品加热时间不可太长,温度不能过高,否则样品容易被氧化。 测定70%或80%Bi样品时,当温度降至约250℃以后,需要转动玻璃套管以轻轻搅动熔液,直至第一拐点出现为止。

多通道数据采集文献综述

多通道数据采集系统的设计与实现 引言 进来,我在网上浏览了200余篇有关数据采集系统的文献。下载了其中100多篇,详细研读了其中50余篇。我了解到在当今社会各个领域,包括科研和实验研究,数据采集系统有着不可代替的作用,数据采集和处理进行得越及时,工作效率就越高,取得的经济效益就越大.数据采集系统性能的好坏主要取决于它的精度和速度,在保证精度的条件下,还要尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的要求。 数据采集系统涉及多学科,所研究的对象是物理或生物等各种非电或电信号,如温度、压力、流量、位移等模拟量,根据各种非电或电信号的特征,利用相应的归一化技术,将其转换为可真实反映事物特征的电信号后,经A/D转换器转换为计算机可识别的有限长二进制数字编码,即数字量,并进行存储、处理、显示或打印。以此二进制数字编码作为研究自然科学和实现工业实时控制的重要依据,实现对宏观和微观自然科学的量化认识。 Microsoft V isual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。 本课题研究的是利用PC机上的声卡作为数据采集卡构建数据采集系统。利用VC编程实现多通道数据采集并对数据采集进行控制和处理。 正文 1.研究背景及发展近况 国外数据采集技术较上世纪有了很大的发展,从最近国外公司展示的新产品可以看出,主要的发展方向可以概括为使用方便、功能多样和体积减小三个方面。国内数据采集技术起步比较晚,国内的数据采集系统与国外数据采集系统相比,在技术上仍然存在一定的差距,主要表现在: (1) 由于整个国内的微电子技术还与世界水平有一定差距,模数转换芯片的速度还不能达到世界先进水平,同时高速PCB设计方面的人才比较稀少,所以国内较少研制出速度非常高同时性能又非常好的数据采集系统。 (2) 数据采集系统的内存不大,数据采集系统本身的信号处理功能不强,在现场只能做一些简单的数据分析,大多数的处理要离线到计算机上去做。 (3) 系统的软件水平以及人机界面方面的水平还不是很高,设备操作起来有很多不人性化的地方。 虽然国内与国外在数据采集技术上存在差距,但是总体来看这个差距在不断缩小,在不久的将来中国的数据采集系统肯定会晋升国际一流的水准。随着数字化步伐的不断加深,数据采集技术作为走进数字世界的一把钥匙,必须要紧跟数字化的脚步,只有掌握了尖端的数据采集技术才能在这个飞速变化的世界具有竞争力。

多通道高速数据采集板的设计

多通道高速数据采集板的设计 高丽珍 王敦庆 张晓明 (中北大学信息与通信工程学院,山西太原030051) 摘 要:根据虚拟仪器的设计思想,详细介绍了高速数据采集板软硬件设计的基本原则、方法及工作流程,设计了基于PXI总线的多通道高速数据采集板。采用DSP到PXI总线的跨总线DMA技术解决了高速数据传输的瓶颈问题,实现了多通道高速数据采集。 关键词:虚拟仪器;数据采集;PXI总线;DSP 中图分类号:TP274 文献标识码:A 0 引言 随着计算机技术和微电子技术的高速发展,高速测试系统有两方面发展趋势。一方面并行测试系统在近年来得到了发展,并行系统中为每个测试通道单独配置通道放大器和A/D转换器,具有很高的通道采集速率和精度,特别适合对动态信号的采集和分析。另一方面,信号的高速测试要求测试仪器拥有较高的数据传输带宽,以传输采集的大量数据[1]。 根据对高速数据采集板提出的要求,笔者设计了基于PXI总线的数据采集原型板。该采集板具备以下功能:多通道同时采集数据;单通道数据采集率达到10MSPS以上,A/ D分辨率达12位;板上具有一定的数据存储能力;实时对大量的采集数据进行主机存储;系统静态精度:±0.1%FS;具有一定的实时预处理功能。 1 方案设计 1.1 数据总线的选择[2] 近些年出现的串行标准USB2.0和Fire wire虽然在传输带宽方面有了很大的提升,但是由于缺少多模板间的同步机制,所以在设计并行高速数据采集系统时也不能被采纳。现阶段应用于测试仪器领域的主流并行测试系统主要有基于VXI总线和基于PXI总线两种构架。而VXI总线目前最大传输速率可达80MB/s,远远低于PCI/PXI总线传输速率,并且未能成为通用计算机总线。PXI总线就是在PCI总线的基础上,面向仪器应用扩展了触发总线等。PCI总线传输速率高达264MB/s,使PCI/PXI接口卡和主机之间可以实现高效可靠的数据传输。PXI继承了PCI和Compact PCI 的全部优点,并新增了许多电气特性以满足高性能仪器和测试领域的需要。因此该方案选择了PXI总线作为高速数据传输总线。 根据接口实现简单可靠的技术要求,本设计采用专用总线接口芯片进行本地总线与PCI总线的连接。考虑到PL X 公司的PCI9054能够提供多种数据传输方式,尤其是2个独立的DMA通道具有PCI总线主控能力,可以大大提高由本地到主机的数据传输带宽,因此选定PCI9054作为PCI总线到本地的桥接芯片。 1.2 采集板上处理器的选择 对于高速测试系统而言,处理器主要是实现对信号的采集控制、采集数据的实时预处理以及处理后数据的高速传输和存储等功能。DSP芯片具有运算速度快、编程方便、稳定性好、精度高、便于集成等优点,已广泛用于复杂的数字信号处理等领域。为了更有效地完成数据采集任务,测试系统中的DSP芯片应该具有以下几个特点:高速的数据处理及片内、片外数据传输能力;总线主控能力;可根据通道扫描表设置多种触发方式、采集率、存储模式等采集参数;并行操作; OEM优势[3]。 结合设计要求,提出对DSP的选择标准:浮点32位DSP、指令速度900MFLOPS、片内存储器空间至少64K B、片外存储空间至少128MB、软硬件开发工具齐全。考虑到产品系列覆盖面和成熟度,以德州仪器公司的TMS320系列DSP作为首选。选用性价比较高的TMS320C6711作为板上核心DSP部件。 1.3 组合电路和时序电路 在数据采集板设计时,不仅要协调DSP和外围电路的接口,而且还须考虑PXI集成接口芯片与DSP总线及主机PCI总线的接口电路。所以数据采集板上存在较多功能复杂的时序逻辑电路。我们选择具有更高集成度、设计更加灵活且功耗较小的FPG A来实现模板的控制核心。Altera公司的FL EX10KE芯片内部含有多条32位总线。它基于可重新配置的COMS SRAM单元技术,具有高集成度、快速、高可靠性等特点,适合于复杂的组合电路和时序电路的设计。 1.4 系统硬件总体框图 由以上分析,可以将高速数据采集板分为三个模块: DSP模块、PCI9054模块和FPG A模块,如图1所示。DSP 模块是数据采集、预处理、传输、存储的控制中心;PCI9054模块主要用于本地总线与PCI总线的连接以实现模板与上位机的通讯;FPG A模块负责各部分间的控制逻辑电路与时 山西电子技术 2007年第6期 应用实践 收稿日期:2007-04-07 第一作者 高丽珍 女 30岁 助教

用VB实现Modbus RTU串行通讯工程实例

用VB实现Modbus RTU串行通讯工程实例 声明:网上看到的,觉得不错,稍微整理了一下分享给大家。 用VB实现Modbus RTU串行通讯 在一些应用中可能需要使用诸如VB来进行上位机监控程序的开发,而Modbus 协议是这类应用中首选的通讯协议;Modbus协议以其简单易用,在工业领域里已广泛的为其他第三方设备所支持。这里对VB和Twido PLC间的通讯进行说明。 对于大部分应用,Twido PLC作为从站,它不需要编制通讯程序,只要把通讯口的参数设置好即可,例如下图表示此Twido通过编程口和上位机连接,其站号地址为2;波特率、数据位、校验、停止位和上位机设置保持一致。 VB程序通过利用MSComm控件很容易就能够实现。 1.通讯口初始化: MSComm1.Settings = "9600,n,8,1" https://www.doczj.com/doc/8f18049910.html,mPort = 1 MSComm1.SThreshold = 0 If Not MSComm1.PortOpen Then MSComm1.PortOpen = True 2. CRC校验码的计算方法,如以下函数,可以得到字节数组变量cmdstring指向的字符串的CRC校验码。 Function crc16_1(ByRef cmdstring() As Byte, ByVal j As Integer) Dim data As Integer Dim i As Integer Addressreg_crc = &HFFFF For i = 0 To j Addressreg_crc = Addressreg_crc Xor cmdstring(i) For j = 0 To 7 data = Addressreg_crc And &H1

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中查出。

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