




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济南大学毕业设计1 前言1.1课题来源与背景 机械工程学院测试实验室现有的转子实验台是一种用来模拟旋转机械振动的试验装置,主要用于在实验室验证扰性转子轴系的强迫振动和自激振动特性。该装置包括试验台底座、直流电机、转子、联轴器、轴承座、涡电流传感器、光电转速传感器、电容传感器、支架等组成部分,转子实验台实物图如图1.1所示。图1.1转子实验台实物图 当时,该实验台只能对转子振动信号进行采集后,才能进行数据处理,不能实时的对转子振动信号进行监测。振动信号的实时监测能够对工作设备进行早期的预防和护。现代科学技术的飞速发展为解决这一系列问题提供了可能,例如,济南重工150吨重的铸钢件加入了SSEON在线评定型振动时效装置,能有效的分析有效振型,对工件准确实效。天津东正测控技术发展有限公司的DZY-09液压振动压实仪具有液压夹紧、液压提升、及液压脱模功能等功能。南京东大测振仪器厂开发出了振动数据采集分析系统,该系统主要用于测量、分析和诊断大型的旋转机械设备。美国Michigan大学化工系创VRICHEL(Virtual Reality In Chemical Engineering Laboratory)将虚拟实验技术应在化学实验领域,设计了很多著名虚拟实验。1.2 课题的意义机械工程学院测试实验室现有的转子试验台是一种用来模拟旋转机械振动的试验装置,主要用于在实验室验证扰性转子轴系的强迫振动和自激振动特性。它能有效地再现大型旋转机械所产生的多种振动现象。生活中处处都有旋转机械,旋转机械主要由于振动故障而损坏,给社会造成了巨大的经济损失。旋转机械的管理和维护的主要手段就是对其振动信号进行监测和诊断,振动信号的频谱特性最能有效的反应旋转机械故障的原因。因此通过对振动信号的采集和处理,可以让我们更好的维护和管理旋转机械,为社会创造巨大的经济效益1。1.3 课题的设计内容 转子试验台是机电测控课程群测控实验建设的主要设备之一,是各大学与实验室进行教学与实验的重要工具。转子试验台可进行转速控制、振动测量等测控实验,将其用于教学实践中,可以很好地将理论与实践结合起来,加深学生对测控系统的理解。本设计基于机械学院测试实验室的转子振动模拟试验台,由于该转子实验台不能对振动信号进行实时采集和检测。本设计主要解决的问题就是设计一套合理的数据采集模块和实时数据处理软件实现振动信号的实时检测和在线软件处理。1.4 课程的主要任务课程的主要任务包括:(1)设计合理的数据采集模块;(2)数据处理软件实现数据的在线处理。(3)绘制采集卡电路原理图和PCB图。(4)程序流程图、程序清单、实验数据及运行性能指标。2 数据采集系统硬件电路的设计2.1 引言数据采集系统是计算机周围环境连接的纽带,是获取外部信息的途径,数据采集技术已应用到工农业生产中,为生活和工作提供了便利,推动了社会生产自动化的进程。数据采集就是将被测物体的各种参数通过传感器做适当的转换后,在经过数据的的调理、采集、量化、标定、传输等过程,再传送到控制器进行数据的存储和处理的过程2。在测量系统应用中,数据采集卡以其价格低廉、高性能、易组态的特点深受使用者的欢迎,成为测控系统的主流产品,各大专业测控公司都生产各种基于ISA、Pcl的数据采集卡供用户选用。本设计的目的是要设计一个数据采集系统,将采集到的振动信号在数据采集卡中进行处理后,再通过USB接口送到计算机上再进行数据处理,实现对振动信号的实时监测和诊断。根据设计的要求,该硬件系统由六部分构成:(1)测振动的传感器及其外围电路,(2)数据采集卡与传感器的接口电路,(3)USB最小系统电路,(4)电源管理电路等。2.2 数据采集卡的工作原理一个实用数据采集系统的硬件组成一般有传感器、前置放大器、滤波器、多路模拟开关、采样/保持(S/H)器、模/数(A/D)转换器和计算机系统组成,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,对A/D采集更为重要。数据采集系统的硬件组成如图2.1所示。电容传感器1前置放大器滤波器多路模拟开关滤波器前置放大器光电传感器S/HA/D计算机系统滤波器前置放大器磁电传感器3图2.1数据采集系统的硬件组成本文设计的数据采集卡主要想实现的功能是实现对电容传感器、磁电传感器和光电传感器的记录以及对采集的一些简单控制。2.3 采集卡选用2.3.1数据采集的特点 数据采集系统的主要特点 (1)数据采集系统一般都是有计算机或单片机控制,控制器多种多样,可以根据自己的需要,选择控制器。 (2)软件可以在数据采集系统代替一些硬件的功能,这样可以让用户灵活的进行设计。 (3)随着科学技术的飞速发展,电路的集中度越来越高,数据采集系统也越来越小,精度也越来越高。在工业化大生产中,单片数据采集系统随处可见。 (4)数据采集的目的是满足工农业生产的需要,实时采集系统在生产和生活提供了便利,被广泛的被社会所关注。 (5)在测试系统中,完成数据的采集工作,采集的数据不一定为我们提供些有用的信息,只有对数据进行适当的处理,我们才能从中得到有用的信息。数据采集和数据处理的相互结合,改变了我们的生活,催动了自动化专业的进步2。 (6)数据采集系统的发展催动了接口技术的变革,USB接口技术被广泛应用。2.3.2数据采集的主要指标 (1)系统分辨力:主要由数据采集系统的位数决定,数据采集系统的位数越高,其系统分辨力越高。 (2)系统精度:数据采集系统在额定工作状态下,采集数据的转换精度。系统精度是实际值与理论值之差,是数据采集系统中各种误差的综合。当前置放大器、滤波器、模拟多路开关、功率放大器等部件的精度远大于模数转换电路的精度时,系统精度才约等于模数转换的精度2。 (3)采样速率:在满足系统精度的前提下,在单位时间内可以对输入模拟信号的采样次数。22.3.3 采集卡的选用原则(1)选择接口方式 数据采集卡的接口方式是指该卡与计算机连接的总线方式,或者是该卡提供的接口方式。常见的接口方式有USB,PCI, Compact PCI,PCMCIA, CAN,无线,网卡;还有较老式的方式如串口UART/LPT/SPI,并口COM,ISA/EISA,PC/AT。从数据传输可靠和速度角度考虑,首选PCI总线接口方式。在工业领域,为了达到高的数据可靠性,需要选择Compact PCI总线接口方式,常有3U和5U两种物理形式。USB总线接口是当今的主流发展方向。PCMCIA是便携设备中的常用接口无线技术的飞速发展,数据传输速度不断发展,给数据采集卡提供了更加方便快捷的移动传输方式。通常的传输协议有红外IRDA,蓝牙BLUETOOTH,NFC,GPRS,WLAN,3G和HSPDA等。GPRS方式传输现在有很大的市场。 (2)确定输入和输出指标这些指标有输入和输出的模拟量精度和速率,输入和输出的数字量电平和要求,输入和输出的数字传输协议方式。模拟量采样有高精度和高速率两个方向,有的将二者结合起来,属于较高要求。数字量有TTL,CMOS,高压电平等,特殊场合,需要光电隔离,ESD,EMI保护。传输协议通常UART,也有并行方式。(3)选择接口协议处理器如果你的数据采集卡不需要处理器就能够满足要求,你就可以现在动手设计了,否则,继续努力,接下来考虑的是接口协议处理器PCI, USB, PCMCIA,CAN,网卡都有专门的接口芯片。当然你也可以选择FPGA加上软件协议IP核,同样能实现你的目标,但是难度很大3。(4)选择采集卡处理器对于功能强大的数据采集卡,你需要选择专用的处理器来预处理采集的数据.单片机,FPGA,DSP,ARM都是你可以挑选的对象。单片机由于价格便宜,易于开发,开发的资料齐全,工程师众多,很适合初学者你的.FPGA设计方便,具有速度和效率的优势,也是不错的选择。DSP是专门为数据处理而设计,速度快,可以实现非常复杂的算法,是最好的选择。ARM的功能过于复杂,适合于设计好的人机界面的场合。有些器件将接口协议处理器和采集卡处理器集成在一体,这些芯片应该有更好的使用价值。(5)选择数据采集电路很多公司提供采样芯片有ADI,TI,MAXIUM和NS等。(6)选择驱动软件和数据采集处理软件的编写语言。使用WDM,win driver等编写驱动软件,使用VB,VC,LabView,C/C+,Borland C+ Builder,Java等编写数据控制处理软件。2.4选用的采集卡2.4.1 USB7310的介绍基于采集卡的选用原则,本设计选用中泰研创的USB7310数据采集卡。 USB7310 模入接口模块适用于提供了USB 接口的PC系列微机,具有真正的热插拔、即插即用(PnP)功能。其操作系统可选用目前流行的 Windows 系列、高稳定性的Unix等多种操作系统以及专业数据采集分析系统Lab view 等软件环境。在硬件的安装上非常简单,使用时只需将USB7310的USB接口插入计算机内任何一个USB接口插座中,信号电缆从模块提供的接口直接接入。USB7310 模入接口模块允许采用16路单端输入方式或8路双端输入方式。用户可根据需要选择测量单极性信号或双极性信号。其输入的模拟信号由模块的25芯D型插头直接接入。2.4.2 USB7310采集卡的主要指标(1)USB指标 处理器芯片: AN2131QC 通讯方式: USB接口通讯距离: 小于5米 通讯协议: USB1.1通讯最大速率:1M Byte / 秒 ,即 8M bps的波特率(2)模入部分(标*为出厂标准状态,下同)输入通道数:单端16路;双端8路 输入信号范围: 0V10V;5V5V; -10V10V 输入阻抗:10M AD转换分辨率:12位 AD转换速率:8.5S AD启动方式:程序启动AD转换非线性误差:1LSBAD转换输出码制:单极性原码*双极性偏移码系统综合误差:0.1 F.S(3) 开关量部分输入路数:8路TTL电平 输出路数:8路TTL电平(4) 电源功耗:5V(10) 500mA环境要求:工作温度: 1040相对湿度: 4080存贮温度: -55852.4.3 数据采集系统的总电路结构简图数据采集系统的总电路结构简图如图2.2所示电容传感器低通滤波器光电传感器磁电传感器低通滤波器低通滤波器模拟多路选通开关AGG508差分放大电路AD620模拟转换电路ADS774AN2131QC电压调整及稳压电路USB接口电路计算机图2.2 数据采集系统的总电路结构简图2.5采集卡的主要芯片2.5.1 AN2131QC的简介AN2131QC是USB1.1的外设通讯控制芯片,其结构框图如图2.3所示,它有( 1) 4 时钟周期的8051 内核。( 2) 2 个快速存储器向存储器的数据发送指针。( 3) 数个U SB 数据传输中断。( 4) 8 kB 内部RAM, 支持外部存储器。( 5) 软件配置,方便的固件程序升级。( 6) 32 个输入输出管道,支持1KB的同步数据等特点。图2.3 AN2131QC结构框图USB 总线的数据传送是通过管道来完成的,当外围设备接到总线上时, 地址是由主机随机分配的,信息的交换可以通过4 种方式实现。( 1) 控制传输主要作用是建立主机和USB外设之间的联系管道和USB外设的状态反映,不能用于传输信息数据。AN2131QC的端点0 用于控制传输。( 2) 批量传输主要用于传输数据长度不大于64 个字节,而且需要周期性传输的数据块, 具有错误重发功能,可以动态地利用,可获得的USB总线带宽。( 3) 中断传输对于一个规定的时间里传输一个中等数量的数据是很有用,因为它将保证主机在最短的延迟里响应或发送数据。( 4) 同步传输可以1 次传输数据长度不超过1 KB 的数据块,主要用于传输大批量的实时数据,例如音频数据,不支持错误重发。2.5.2 模拟多路开关选通电路数据采集系统只有把模拟信号转变成数字信号才能进行数据的记录和处理,模数转换芯片价格偏高,为了节约成本,数据采集电路常常借助模拟多路开关选通电路共用一个模数转换芯片。本采集卡的模拟通道开关由2片ADG508(或同类产品)及跨接器JP3组成,可以从16路单端信号或8路双端信号中任选一路,送入差分放大器,ADG508芯片图如图2.4。图2.4 ADG508芯片图2.5.3差分放大电路 差分放大器由1个运算放大器AD620以及相关的电阻组成一个标准的仪用差分放大器,用以对通道开关选中的模拟信号进行变换处理,差分放大电路如图2.5。图2.5差分放大电路2.5.4模数转换电路AD转换器是将模拟量转变成数据量,是数据采集系统的核心部分。12位逐次逼近式AD转换器ADS774片内自带精密基准源,并经激光修调,具有较高的转换速率和转换精度,其转换时间仅为8.5S。AD转换器由程序启动,其转换状态的结束可由程序查询读出或产生结束中断申请。AD转换器的模拟输入信号幅度由跨接器JP1 选择,AD 转换后的输出代码形式由跨接器JP2选择,可分别输出二进制原码或双极性偏移二进制码。电位器W1 用于单极性零点调节,W2 用于满量程增益调节,W3 用于双极性偏移调节,ADS774芯片图如图2.6。图2.6 ADS774芯片图2.5.5开关量输入输出电路本模块还提供了各8路的开关量输入输出信号通道。使用中需注意对这些信号的要求应严格符合TTL 电平规范。2.5.6采集卡的电气原理图电气原理图如图2.7所示。2.5.7 USB7310采集卡的设置(1)采集卡可调整元件位置见图2.8(2)指示灯(LED)的用途:红灯亮 指示3.3V电源工作正常 黄灯亮 指示模块程序工作正常图2.7采集卡电气原理图图2.8 主要可调整元件位置图(3)跨接器的使用:AD量程选择:本卡由这两个跳线JP1(下)、JP2(上)组合实现A/D量程及单双极性的变化,其使用方法如图2.9 a 010V b 5V输入 c 10V输入图2.9 AD量程选择(4)单端双端方式选择:JP3为单端双端方式选择插座,其使用方法见图2.10。 a 单端输入方式 b 双端输入方式图2.10 单双端方式选择(5)输入输出接口定义本模块25芯D型插座(AD_J)的信号定义见表2.1 ,用户可根据需要选择连接信号线(单端)或信号线组(双端)。为减少信号杂波串扰和保护通道开关,凡不使用的信号端应就近与模拟地短接。 表2.1 AD_J模拟输入信号端口定义(括号内表示双端方式)插座引脚号信 号 定 义插座引脚号信 号 定 义1模拟地14模拟地2CH1(CH1+)15CH9(CH1-)3CH2(CH2+)16CH10(CH2-)4CH3(CH3+)17CH11(CH3-)5CH4(CH4+)18CH12(CH4-)6CH5(CH5+)19CH13(CH5-)7CH6(CH6+)20CH14(CH6-)8CH7(CH7+)21CH15(CH7-)9CH8(CH8+)22CH16(CH8-)10模拟地23模拟地11NC(空脚)24NC(空脚)12NC(空脚)25NC(空脚)13NC(空脚)(6) 开关量部分:本模块20芯扁平线插座(IO_J)的信号定义见表2.2 。表2.2 IO_J开关量输入输出信号端口定义插座引脚号信 号 定 义插座引脚号信 号 定 义1数字地2数字地3DI14DI25DI36DI47DI58DI69DI710DI811DO112DO213DO314DO415DO516DO617DO718DO819+5V电源输出20+5V电源输出3 数据采集系统程序设计3.1 引言数据采集软件用编程软件Visual Basic所开发,通过调用动态链接库方式实现驱动程序的调用,从而实现数据采集、信号调理、数据存储和图形显示等功能。数据采集利用Usb7kC.dll模块下的long APIENTRY OpenUSB7kC (ZT_USBBOARD* bs)和long APIENTRY CloseUSB7kC (ZT_USBBOARD* bs)来控制USB7310采集卡来实现模拟信号的数据采集,将外部模拟信号通过采集卡的A/D功能转化为数字信号,再通过USB总线连接到计算机上;信号调理是通过信号滤波;最后将滤波后的信号写入数据采集文件,进行数据的处理和图形的显示。3.2 采集卡的调试3.2.1 采集卡的调试( 1) 采集卡驱动安装 1 将USB7310数据采集卡的接口插入计算机USB插座中。 2 启动计算机,操作系统将自行检测新安装的硬件,并弹出添加新硬件向导对话框,在“添加新硬件向导”对话框出现时,点击“下一步”按钮。 3 选中“显示指定位置的所有驱动程序的列表”单选钮,点击“下一步按钮。 4 点击“下一步”。 5 点击“从软盘安装”按钮,弹出“从磁盘安装”对话框。 6 点击“浏览”按钮,选择“Usb7kC.inf”所在的目录(光盘USB7000Usb7kC),点击“确定”按钮。 7 回到“添加新硬件向导”,点击“下一步”按钮。 8 点击“完成”按钮,第一块模块安装完成。 9重启计算机,安装第二块USB7310模块。当要安装多块模块时,应先安装第一块模块,软件安装中会出现上述19的步骤,按以上步骤操作安装好后关机。在安装第二块模块时,系统会自动检测安装,不再经过上述19的步骤,只是模块的索引值不同。索引值是USB板模块使用时非常重要的参数,USB7000系列模块是靠索引值来区分的。一般情况下,第一块安装的模块的索引值为0,以后安装的模块索引值自动依次加1。用户通过调用动态链接库(Usb7kC.dll)中的OpenUSB7kC函数,将USB模块的索引值赋给此函数。( 2) 采集卡调试 调试程序在光盘USB7000Usb7kC7310测试程序7310test_vb7310test.exe是为USB7310专门编写的一个测试工具,它可以对USB7310采集模块的所有功能进行测试,如图3.1所示。图3.1 USB7310测试程序3.2.2 采集卡的模块选择运行“USB7310数据采集模块测试程序”,点击“选择模块”菜单,在弹出的对话框中,输入所要操作模块的索引值,然后即可在程序的界面中进行选中的USB7310模块的测试(倘若计算机中只有一块USB7310模块,可略过这步,本程序默认对索引值为0的模块测试)。如图3.2所示:图3.2 选择模块:点击“退出”菜单,可退出测试。3.2.3 采集卡的开关量测试该部分程序既可测试开关量输出,亦可测试开关量输入。如图3.3所示:图 3.3开关量测试 在测试界面的“开关量测试”功能块中,“输入状态”后面的8个灯,从左至右(通道1至通道8)依次指示了开关量输入通道的通断状态。该功能是自动运行的,无需用户参与。点击“输出测试”后面的灯,可进行开关量的输出测试。同样,这8个灯,从左至右依次对应着通道1至通道8这8个开关量输出通道。点击某个灯,它的状态(亮或灭)就会切换,同时输出到对应的开关量输出通道,进行相应的输出通断状态的切换操作。3.2.4 采集卡模拟量输入测试 该部分程序用于模拟量输入测试,如图3.4所示:图3.4 模拟量输入测试 在“模拟量输入测试”功能块中,16个文本框对应着16路模拟量输入通道。运行该程序,16路模拟量输入的值(见显示设置)将自动输入到计算机,并通过相应的文本框显示出来。 在“显示设置”框架中,可进行输入模拟量的显示设置。选中“原码值(十六进制)”单选钮,则显示十六进制AD转换原码值;选中“0-10000(mV)”单选钮,则显示0到10000毫伏的单极性输入信号的电压值;选中“-5000+5000(mV)”单选钮,则显示-5000毫伏到+5000毫伏的双极性输入信号的电压值;中“-10000+10000(mV)”单选钮,则显示-10000毫伏到+10000毫伏的双极性输入信号的电压值。3.3 数据处理系统的设计3.3.1 数据处理软件的介绍 数据采集系统的设计主要是追求高速度和高速率。任何测试系统都具有一定的精度要求,没有精度要求,测试系统可能会失去原有的意义。高速率,即较快的反应能力,能对外界的变化快速的反应,这样就会扩大了测试系统的使用范围,为实时测试提供了可能。 常用的数据处理软件主要由VB,VC,Labview, C/C+, Borland C+ Builder, Java等编程所开发。Visual Basic(简称VB)是一种简单的、高效的、可视化的编程语言开发系统,基于上述特点广泛地应用于各个生产和生活领域,是很多计算机软件开发人员采用的开发工具3。3.3.2 数据的采样方式在进行A/D信号的转换过程中,当采样频率大于采样信号中最高频率的2倍时,采样之后的数字信号能整地保留原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍;采样定理又称奈奎斯特定理。采样信号的种类形形色色,各不相同。采样方式主要分为两大类,即实时采样和等效时间采样。定时采样分为等间隔采样,变频采样,间歇采样和扫描采样。实时采样应用于对信号的分辨率要求低点的场合,因为采样时间间隔内要完成采样数据的采集,量化,存储和处理等。等效时间采样分为时序变换采样(步进采样,步退采样和差额采样)和随机采样。等效时间采样实现了以低的采样频率对高频率的信号的离散化,前提是该信号的波形可以重复出现。等效时间采样实现了高速的数据采集,但是部分模拟信号中的有些信息会采集不到4。3.3.3 采集卡接口模块代码USB7310采集卡为我们提供了动态链接库Usb7kC.dll,该动态链接库是为该数据采集模块配制的工作在中西文Windows 95982000/NT环境下的一个动态链接库,它所封装的函数可以被其它应用程序在运行时直接调用。用户可以用任何一种可以使用 DLL 链接库的编程工具来编写。在本设计中用的编程软件是VB, VB程序要使用DLL中的函数,首先必须要有特殊的声明,用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。本程序用Declare声明语句在模块代码声明段进行声明,将Usb7kC.dll中的函数声明到VB中,VB程序调用,声明如下。Public Type ZT_PCIBOARD lIndex As Long hHandle As Long nCh As Integer lData As Long pldata As Long lCode As LongEnd TypePublic nZTPCI As ZT_PCIBOARDPublic display As LongPublic Declare Function OpenUSB7kC Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function CloseUSB7kC Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function USBRead Lib usb7kC.dll (ByVal nIndex As Integer, ByVal nEndpoint As Integer, ByVal nBufOutput_num As Integer) As LongPublic Declare Function USBWrite Lib usb7kC.dll (ByVal nIndex As Integer, ByVal nEndpoint As Integer, ByVal nBufOutput_num As Integer, ByVal nData As Byte) As LongPublic Declare Function USB7310DI Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function USB7310DO Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function USB7310AI Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function USB7310AI16 Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As LongPublic Declare Function GetAddress Lib usb7kC.dll (ByVal nIndex As Integer, lAdd As Long) As LongPublic Declare Function ReadUSBType Lib usb7kC.dll (nZT_PCIBOARD As ZT_PCIBOARD) As Long3.3.4 VB对采集卡接口函数的调用(1)打开采集卡 函数:Call OpenUSB7kC(nZTPCI) 功能:打开某一中泰研创USB7310模块 nZTPCI.lIndex USB7310模块索引值 nZTPCI.lCode USB7310的控制字 nZTPCI.nCh USB7310通道号 打开采集卡的某个模块时,必须先对此模块的模块索引值,控制字和通道号先赋值,再用Call OpenUSB7kC(nZTPCI)函数打开采集卡,调用此函数时必须在VB程序中声明此动态链接库,否则会出现错误。(2)关闭采集卡 函数:Call CloseUSB7kC(nZTPCI) 功能:关闭某一USB7310模块 nZTPCI.lIndex USB7310模块索引值 nZTPCI.lCode USB7310的控制字 nZTPCI.nCh USB7310通道号 关闭采集卡的某个模块时,必须先对此模块的模块索引值,控制字和通道号先赋值,再用Call CloseUSB7kC(nZTPCI)函数关闭采集卡,调用此函数时必须在VB程序中声明此动态链接库,否则会出现错误。(3)模拟量采集函数:Call USB7310AI(nZTPCI) 功能:对USB7310某一通道(2字节/1个数)模拟量数据采集。nZTPCI.lIndex USB7310模块索引值 nZTPCI.lCode USB7310的控制字 lCode= 0 plData中存放的数据数为原码值1 plData中存放的数据0-10000mv2 plData中存放的数据-5000-5000mv3 plData中存放的数据-10000-10000mvnZTPCI.nCh 通道号: 1-16(单端采集)1- 8(双端采集)采集卡的某个模块进行模拟量采集时,必须先对此模块的模块索引值,控制字和通道号先赋值,再用Call USB7310AI(nZTPCI)函数进行采集卡的采集,nZTPCI.lData中的数据就是当次采集卡采集到得数据,调用此函数时必须在VB程序中声明此动态链接库,否则会出现错误。3.3.5数据采集的代码VB编程软件中的定时器又称为时钟控件,可以实现每隔一定的时间间隔触发一次事件,设置它的Interval属性可以调节时间间隔,单位是毫秒,取值是0-65535。这样我们可以应用此控件,设置一定的时间间隔,每隔一定的时间间隔采集一次数据,采集代码如下。Call USB7310AI(nZTPCI) 调用模拟量采集程序a1 = nZTPCI.lData 把采集卡中的数据赋值给a13.3.6实时波形的代码在程序的开始先对图片框的坐标进行调整,并在在图片框中画出一条中线,再在定时器控件中调用画图程序,在一定的时间间隔内画一个点,并把相近的两点用线连接。Private Sub PicScale(picX As PictureBox) 调整图像框的坐标系picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)End SubPrivate Sub PicMidleLine(picX As PictureBox) 在图像框中画一条中线picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen 画出中线End SubPrivate Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer) 在定时器中调用此函数If TimeCountX - 1 0 ThenpicX.Line (TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbRedEnd IfEnd Sub3.3.7图像和数据的存储代码(1)图像存储代码SavePicture Pic.Image, c:采集的图像.bmp(2)数据存储代码Dim StrLine As String CancelError 为 True。 On Error GoTo ErrHandler 设置过滤器。 CommonDialog1.Filter = 全部文件 (*.*)|*.*|文本文件 (*.txt)|*.txt|xls文件 (*.xls|*.xls 指定缺省过滤器。 CommonDialog1.FilterIndex = 2 显示“打开”对话框。 CommonDialog1.ShowSave 调用保存文件的过程。 Open c:1.txt For Input As #1 Line Input #1, StrLine Close #1 Open CommonDialog1.FileName For Output As #2 Print #2, StrLine Close #2 MsgBox CommonDialog1.FileName ErrHandler: 用户按“取消”按钮。3.3.8傅里叶变换和频谱绘制程序代码(1)在模块内声明的傅里叶程序代码Option ExplicitPublic Const PI = 3.1415926Type COMPLEX re As Double im As DoubleEnd TypePublic TD() As COMPLEXPublic FD() As COMPLEXPublic W(511) As COMPLEXPublic X1(1023) As COMPLEXPublic Ts As DoublePublic Fs As DoublePublic Function COMPLEX_ADD(C1 As COMPLEX, C2 As COMPLEX) As COMPLEX 复数加运算 Dim c As COMPLEX c.re = C1.re + C2.re c.im = C1.im + C2.im COMPLEX_ADD.re = c.re COMPLEX_ADD.im = c.imEnd FunctionPublic Function COMPLEX_DEC(C1 As COMPLEX, C2 As COMPLEX) As COMPLEX 复数减运算 Dim c As COMPLEX c.re = C1.re - C2.re c.im = C1.im - C2.im COMPLEX_DEC.re = c.re COMPLEX_DEC.im = c.imEnd FunctionPublic Function COMPLEX_MUL(C1 As COMPLEX, C2 As COMPLEX) As COMPLEX 复数乘运算 Dim c As COMPLEX c.re = C1.re * C2.re - C1.im * C2.im c.im = C1.re * C2.im + C1.im * C2.re COMPLEX_MUL.re = c.re COMPLEX_MUL.im = c.imEnd FunctionPublic Sub FFT(ByVal power As Integer, ByVal mode As Boolean) Dim count As Integer Dim angle As Double Dim i As Integer Dim j As Integer Dim k As Integer Dim p As Integer Dim bfsize As Integer Dim wCount As Integer count = 2 power wCount = count 2 Dim X As COMPLEX Dim Xa As COMPLEX Dim Xb As COMPLEX For i = 0 To count 2 - 1 计算加权系数 angle = i * PI * 2 / count W(i).re = Cos(angle) W(i).im = Sin(angle) Next If mode = True Then For i = 0 To count - 1 X1(i).im = TD(i).im X1(i).re = TD(i).re 蝶形运算 Next End If For k = 0 To power - 1 迭代次数 For j = 0 To 2 k - 1 蝶形单元数 bfsize = 2 (power - k) For i = 0 To bfsize 2 - 1 每个蝶形单元循环次数 p = j * bfsize Xa = COMPLEX_ADD(X1(i + p), X1(i + p + bfsize 2) Xb = COMPLEX_MUL(COMPLEX_DEC(X1(i + p), X1(i + p + bfsize 2), W(i * (2 k) X1(i + p) = Xa X1(i + p + bfsize 2) = Xb Next Next Next If mode = True Then 重新排序 For j = 0 To count - 1 p = 0 k = j For i = power - 1 To 0 Step -1 位测试运算 If k = 2 i Then p = p + 2 (power - i - 1) k = k - 2 i End If Next FD(j).im = X1(p).im FD(j).re = X1(p).re Next Else For j = 0 To count - 1 p = 0 k = j For i = power - 1 To 0 Step -1 位测试运算 If k = 2 i Then p = p + 2 (power - i - 1) k = k - 2 i End If Next If j p Then X.im = X1(p).im X.re = X1(p).re X1(p).re = X1(j).re X1(p).im = X1(j).im X1(j).re = X.re X1(j).im = X.im End If Next End IfEnd Sub(2)调用傅里叶变换函数和绘制频谱的程序代码Dim i As IntegerDim N As IntegerDim StrLine As String, a() As String Dim Y() As Double Dim LenDataNov As Long Dim Freq As Long Freq = 8000 LenDataNov = 1024 ReDim Y(1 To LenDataNov) As Double Open c:1.txt For Input As #1 Line Input #1, StrLine a() = Split(StrLine, ) N = UBound(a() For i = 0 To N - 1 Y(i + 1) = Val(a(i) Next Close #1 PlotFreq.FFTWave Y(), LenDataNov, Freq, 5 Seconds3.3.9数据采集卡的采集流程图数据采集卡的采集流程图如图3.5所示3.3.10数据采集系统的采集流程图本数据采集系统运用VB的定时器定时采集数据,定时参数可在程序中自己可以根据实际情况自己设定,在设定的时间内,程序可以从采集卡采集数据。数据采集系统的采集流程图如图3.6所示。在系统前面板菜单(如图3.7)可以对采集卡的采集参数进行设置。采集卡的采集模块选择,可以选择性的对某个采集卡进行采集。采集卡的通道选择,一个传感器对应一个通道,可以针对性的对一个传感器进行采集数据。窗体选择按钮主要用于时域和频域界
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 80000-5:2019/AMD1:2025 FR Amendment 1 - Quantities and units - Part 5: Thermodynamics
- 【正版授权】 IEC 61000-6-1:2005 FR-D Electromagnetic compatibility (EMC) - Part 6-1: Generic standards - Immunity for residential,commercial and light-industrial environments
- 校园防盗安全知识培训课件
- 新测绘法试题及答案
- 校园安防消防知识培训课件
- 防腐廉洁面试题及答案
- 编导运营面试题及答案
- 报账员考试题及答案
- 球馆分级考试题及答案
- 流管员面试题及答案
- 2020低压交流配网不停电作业技术导则
- 易制毒、易制爆化学品安全培训
- 麻醉药品应急处理制度及流程
- 附件2:慢病管理中心评审实施细则2024年修订版
- 【建筑专业】16J914-1公用建筑卫生间(完整)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 邮政市场业务员(中级)理论考试复习题库(附答案)
- DZ∕T 0070-2016 时间域激发极化法技术规程(正式版)
- 消化内镜进修总结汇报
- 兽医检验题库与答案
- 换电柜地租赁合同范本
评论
0/150
提交评论