天兴洲振动测量技术文档_第1页
天兴洲振动测量技术文档_第2页
天兴洲振动测量技术文档_第3页
天兴洲振动测量技术文档_第4页
天兴洲振动测量技术文档_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 采集卡选型12 界面设计23 整体架构设计34 数据采集部分的设计54.1 DAQmx采集参数的配置74.2 实时数据的获取及数据的传递84.3 错误发生时的任务重启95 主频和幅值的获取106 数据定时数据库存储及实时文本格式存储146.1 数据定时数据库存储156.2 实时文本格式存储197 安装文件的生成227.1 exe类型文件的生成237.2 创建个性化的图标237.3 install文件的生成247.4 关于程序修改后的安装程序生成2526振动测量技术文档1 采集卡选型为了实现对桥梁振动特性的检测,桥梁铺设初期,项目组在桥体的关键部位布置了由武汉理工大学光纤中心自主研制的振动传感器,桥体共铺设8路传感器。通常情况下,对采集卡的选型主要考虑三点要求:首先,通道数目,能否满足应用需要。 其次,待测信号的幅度是否在数据采集板卡的信号幅度范围以内。 除此以外,采样率和分辨率也是非常重要的两个参数。本系统选用美国仪器公司NI生产的PCI-4472B动态采集卡。该采集卡可以很好的满足系统的要求。(1)首先系统所需通道数为8,所选PCI-4472B恰好支持8路振动优化模拟输入。(2)桥梁现场实际待测信号的幅度范围为020mv。所选PCI-4472B的最大测量幅度范围为正负10V,实际采集中,本系统配置它的采集量程为-0.316V 0.316V。(3)PCI-4472B24提供8个24位分辨率的模拟输入,满足声音或振动信号的检测;采集卡的最大采样率为102.4khz,实际采集信号的频率很低,大约在010hz的范围,板卡的采集频率符合奈奎斯特采样定理的要求,因此,板卡可以很好的实现系统的要求。采样率决定了数据采集设备的 ADC每秒钟迚行模数转换的次数。采样率越高,给定时间内采集到的数据越多,就能越好地反应原始信号。根据奈奎斯特采样定理,要在频域还原信号,采样率至少是信号最高频率的 2倍;而要在时域还原信号,则采样率至少应该是信号最高频率的510倍。我们可以根据这样的采样率标准,来选择数据采集设备。 分辨率对应的是ADC用来表示模拟信号的位数。分辨率越高,整个信号范围被分割成的区间数目越多,能检测到的信号变化就越小。因此,当检测声音或振动等微小变化的信号时通常会选用分辨率高达24bit的数据采集产品。采集卡外观如图1.1所示。图1.1 PCI-4472B采集卡外观图2 界面设计 本着界面设计友好、使用方便的原则,界面设计如图2.1所示。图2.1 桥梁振动数据采集系统界面界面设计中对控件进行了合理的布局,并在系统窗口的最上方以“桥梁振动数据采集系统”作为窗口的标题,并加载声明项目单位。图中最左边的1区,是对采集卡参数和数据库参数的设置部分,最下方的按钮实现程序的退出功能。在右上方的2区中,图形显示控件显示的是原始数据经过预处理后的频谱分析曲线,通过勾选左侧的“曲线选择列表”,然后按下中间的蓝色按钮,即可实现通道的选择显示,即可以实现一个或多个通道的曲线显示。中间位置的3区,为16个数据显示控件,分别对应8个通道实时数据的主频和幅值,并用“CH0”“CH2”“CH7”来表示采集卡的八个通道。最下方标示的4区,是实时的原始数据显示区,图形控件显示的为采集卡采集到的原始数据,曲线的选择方法同上方2区所述。3 整体架构设计由于武汉理工大学光纤中心的设计要求包含了数据采集、数据预处理、数据显示、数据的实时存储和定时存储五项,处理任务较多,对系统设计提出较高的性能要求。理论上讲,如果对数据采集周期没有特别要求,可以将这些步骤通过数据流连接起来,即每采集一次数据都需要经过预处理,显示等操作后,才能开始第二轮采集,如图3.1所示。但是对于这种情况,由于除数据采集外的操作引起的时间延迟,将导致采集周期的增大。图3.1 基于数据流的数据采集系统但是对于实时性要求较高的采集系统,基于数据流的方法显然是不行的。因此有人提出了利用多个并行循环处理不同的任务,每一个循环具有独立的线程,因此互不干扰,例如一个循环处理数据采集,另一个线程处理数据分析与显示。这就要求循环之间可以传递数据。为了避免数据的丢失或者重复分析,采用队列机制进行数据的传递,即数据采集循环不间断地采集数据,并将采集到的数据放在队列中,数据分析循环不间断地处理数据。如果分析数据的周期大于采集周期,那么新采集的数据将会缓存在队列中,队列只要没有满就不会丢失采集到的数据。如果分析数据的周期小于采集周期,那么在队列为空时,数据分析循环将处于等待状态,因此也不会导致数据的重复分析。当数据采集循环停止时,若队列中还有数据,则数据分析循环也会将剩余的数据全部分析,因此停止数据采集也不会丢失前面采集到的数据。为了保证系统接收数据的实时性和系统运行的持久性(全天24小时不间断运行),系统的总体设计框架,选择LabVIEW设计模式中基于队列的生产者/消费者模式。该设计模式中一个循环不断地采集数据(即生产者),另一个循环不断地处理数据(即消费者),循环之间通过队列传递数据。如图3.2 就是一个典型的生产者/消费者结构。图3.2 基于生产者/消费者结构的数据采集系统该模式下数据采集系统的优点包括:(1)采用了多线程技术,保证了系统数据的实时性,提高CPU的利用率,拥有更高的系统可靠性。(2)采用队列机制进行数据的传递,避免数据的丢失或重复分析,保证了数据的可靠性。在本系统的设计中,采用生产者循环采集数据,消费者循环进行预处理、实时显示、实时存储和定时存储等操作。如图3.3所示。图3.3 振动测量数据采集系统的设计模型图中消费者循环中的“txt存储”为原始数据的实时存储,采用txt格式文件每4秒钟进行一次存储;“SQL存储”为振动信号主频和幅值的定时存储,采用SQL Server数据库,每1分钟进行一次存储。另外,数据图形显示的通道选择,通过属性节点和事件结构来实现。如图3.4所示为事件结构的三个分支。两个数据图形显示的通道选择均通过事件结构中的按钮“值改变”来实现,也就是说当按钮的值发生改变时,触发事件,不满足条件,事件结构中的事件不响应。图3.4 事件结构实现曲线通道的选择4 数据采集部分的设计在数据采集与仪器控制开发方面,NI为工程师们开发了使用方便的工具包,当用户将采集卡的驱动安装成功后,即可在LabVIEW的程序框图面板内,使用NI封装好的函数库,直接调用,使用方便,缩短了项目的开发周期。DAQmx函数库面板的查找位置如图4.1所示。图4.1 DAQmx数据采集函数库的查找位置需要注意,如何判断采集板卡是否已经正常安装,可以通过NI提供的MAX来进行检验。当采集卡的驱动安装成功后,通过电脑“开始”菜单,选择“National Instruments”,选择其中的“Measurement & Automation”,即可打开MAX的浏览窗口,如图4.2所示。图4.2 MAX浏览器窗口如果采集卡已正常安装,则可以在左侧“配置”栏的“设备和接口”选项下,观察到“NI PCI-4472“Dev1”前端的图标为绿色(本机现未装任何板卡,灰色的叉代表以前曾经装过的板卡,但现在不可用),然后选择右侧上面的“测试面板”选项卡,点进去,选择“测试”,如果可以看到来自采集卡的信号,则表示采集卡已安装成功,并可正常使用,否则,采集卡不能正常使用,需重新检查采集卡或驱动是否安装正确。 通常情况下,LabVIEW进行数据采集的流程如图4.3所示。图4.3 数据采集的基本流程首先,程序通过“DAQmx Create Virtual Channel.vi”创建单个或多个虚拟通道,并将其添加至任务。该多态VI的实例分别对应于通道的I/O类型(例如,模拟输入、数字输出或计数器输出)、测量或生成操作(例如,温度测量、电压测量或事件计数)或在某些情况下使用的传感器(例如,用于温度测量的热电偶或RTD)。接着,通过调用“DAQmx Timing.vi” 配置要获取或生成的采样数,并创建所需的缓冲区。然后通过调用“DAQmx Start Task.vi”使任务处于运行状态,开始测量或生成。如在循环中多次使用“DAQmx读取”VI或“DAQmx写入”VI时,而未使用“DAQmx开始任务”VI和DAQmx停止任务VI,任务将反复进行开始和停止操作,导致应用程序的性能降低。 使用“DAQmx Read.vi” 读取用户指定任务或虚拟通道中的采样。该多态VI的实例分别对应于返回采样的不同格式、同时读取单个/多个采样或读取单个/多个通道。最后通过调用“DAQmx Clear Task.vi”清除任务。在清除之前,VI将停止该任务,并在必要情况下释放任务保留的资源。清除任务后,将无法使用任务的资源。必须重新创建任务。另外,通常情况下,程序还会采用必要的方法对可能存在的错误进行提示或者记录,本示例中,采用对话框的形式对可能存在的错误进行提示。4.1 DAQmx采集参数的配置本系统中的数据采集流程如图4.4所示。其中1区为数据采集卡主要参数的配置部分,在本部分,通过“DAQmx Create Virtual Channel.vi”设置采集过程中的最大值、最小值(电压值)并创建所需通道个数的采集任务。通过调用“DAQmx Timing.vi”配置采样数,并创建所需的缓冲区(此处设为每通道8192),设置采样模式为连续采样。设置完毕,通过调用“DAQmx Start Task.vi”使任务处于运行状态,开始测量。具体参数设置,如物理通道、最大值、最小值、采样率等的设置如图4.5所示。图4.4 系统的采集流程设计(生产者循环)图4.5 数据采集的参数配置4.2 实时数据的获取及数据的传递实时数据的获取如图4.4中的2区所示,通过循环内的执行的“DAQmx Read.vi”,不断读取用户指定的任务,进行任务通道中的采样,并将每次循环的单通道采样数设置为4096,也就是说采集卡每秒钟采样1024个点,循环每4秒钟执行一次。生产者与消费者循环之间采用队列机制进行数据的传递,如图4.4中的1区下方所示,通过调用“获取队列引用”函数,创建并返回队列的引用,以在调用其它队列操作函数时使用该引用,该函数的“元素数据类型”输入端,是需要队列包含的数据类型。该输入端可连线任意数据类型。由于通过“DAQmx Read.vi”读取回来的数据均为波形簇数组类型,因此本系统设置队列输入端的数据类型为波形簇数组类型,该数组的任意元素均为波形数据类型。波形数据类型是LabVIEW为方便波形显示专门预定义的数据类型,它实际上就是按照一定格式预定义的簇,在信号采集、处理和分析过程中经常会用到。该簇(波形数据类型)包含的所有元素有:t0、dt、Y、attributes,如图4.6所示。图4.6 波形数据类型其中t0代表波形的起始时间,数据类型为Time Stamp;dt代表波形相邻数据点的时间间隔,单位为秒,数据类型为双精度浮点型;Y代表数据数组,默认为双精度浮点型,可以通过右击数组元素并选择Y Array Representation选项来选择数组数据类型;attributes用来携带一些注释信息,用户可以自定义,数据类型为变量类型。程序运行过程中通过循环边框上的 (移位寄存器)进行队列引用和错误的传递。图4.4循环中的2区,表示在每次循环的执行过程中,均将来自DAQ的波形数据写入队列,以便实现生产者与消费者之间的数据交换。3区为自己定义的VI“deal error(子VI).vi”,主要实现当采集任务发生错误时的任务重启功能,详细设计参见4.3节所述。最后,当循环执行完毕后,进行任务的清除与队列引用的释放,释放可能占用的内存。4.3 错误发生时的任务重启由于系统要在全天24小时下连续运行,通过长期的运行监测,发现系统存在运行中采集任务出错的情况,基于这个原因,我们设计了解决方案,即当程序出错后,在初始参数配置的基础上,重新建立并启动任务,继续执行数据采集。错误处理子VI如图4.4中3区deal error(子VI).vi,子VI内部设计如图4.7、图4.8所示,图4.7为系统运行正常时,则直接进行任务句柄的传递,当错误发生时,则为图4.8所示,此时,清除之前执行的任务,并以起始参数作为配置,建立虚拟通道,并将其添加至任务,然后通过调用“DAQmx Timing.vi” 配置采样数,并创建所需的缓冲区,然后启动采集任务,开始测量,并将建立的采集任务句柄作为输出,继续进行任务传递。图4.7 系统运行正常时的任务传递图4.8 系统运行发生异常时的任务重建5 主频和幅值的获取原始数据中获取振动信号的主频和幅值的功能设计,如图5.1为自定义的单通道主频、幅值获取函数“data process(butterworth)(子VI).vi”。图5.1 主频、幅值获取函数(判断“无错误”时)如图5.1,从左向右看去,该自定义vi的输入端有三个接线端子,分别为“数据输入”、“索引”和“error in”。输出端由四个接线端子,分别为“detected frequency”、“magnitude”、“amplitude”和“error out”。其中,“数据输入”端计划接入实时的8通道采集数据,为波形数组类型;整数类型的“索引”,用于通过后面的“索引数组”vi获取单通道的实时数据,以便进行后续的信号处理。“error in”输入端则作为条件结构的判断条件,当其为“无错误”时,执行图5.1条件结构内的程序;当其为“有错误”时,则将输出端各接线端子值赋“0”,如图5.2所示。图5.2 主频、幅值获取函数(判断“错误”时)如图5.1所示,当程序执行不存在错误时,则实时采集的多通道数据(即来自“数据输入”端的数据),通过“索引数组”vi,即可获得单通道的实时数据。为了减少高频干扰,提高数据的可靠性,系统首先对实时数据进行滤波后在进行主频和幅值的获取。系统的滤波操作通过LabVIEW提供的“Butterworth Filter”vi进行,该vi在函数面板上的位置如图5.3所示,对应巴特沃斯滤波器的参数设置分别为:采样率为1024hz,低截止频率为5hz,阶数为2,滤波器类型为低通滤波,输出端“滤波后的X”即为滤波后的数据输出,此处输出类型为double型。图5.3 函数选板中的Butterworth滤波器位置主频和幅值的获取主要用到三个vi函数:“Extract Single Tone Information(提取单频信息)”、“Amplitude and Levels(幅值和电平)”和“频谱测量”快捷vi,三个函数均位于波形测量函数库内,如图5.4所示,为“Extract Single Tone Information”在函数库内的位置。图5.4 波形测量函数库位置图5.1中的“Extract Single Tone Information.vi”函数的功能是输入信号,找到幅值最高的单频,或在指定频域内搜索,返回单频的频率、幅值和相位。该vi的“时间信号输入”端的输入类型为时域波形数据类型。为了保证数据的可靠性,波形数据内的Y值应使用滤波后的数据,这就需要使用滤波后的数据重新构建波形数据类型的数据作为“Extract Single Tone Information.vi”的输入,因此,系统设计中首先获取实时数据的t0、dt成分,然后用滤波后的数据Y与实时波形数据内的t0、dt重新创建波形,如图5.1中的“获取波形成分”“创建波形”函数使用即实现了波形数据的重建。这样重建后的波形数据通过“Extract Single Tone Information.vi”函数的处理,即可提取到单个通道信号的主频。关于幅值的求取,主要用到的函数为“Amplitude and Levels”,该函数返回波形或波形数组的幅值、高状态电平和低状态电平。 通过将数据连线至信号输入输入端可确定要使用的多态实例,也可手动选择实例。本系统只需将经过滤波的数据(即从滤波器“滤波后的X”端输出的数据流),通过“Amplitude and Levels”vi函数处理,来自“幅值”输出端的数据流即可得到需要的振动信号幅值。实时谱分析曲线的获得,系统主要通过“频谱测量”快捷vi获得,该函数的功能是可以对波形数据进行基于FFT的频谱测量,如信号的平均幅度频谱、功率谱、相位谱。本系统的测量为功率谱测量,当在程序框图窗口内放置“频谱测量”快捷vi(同样位于波形测量函数库)时,会弹出“配置频谱测量”窗口,在窗口左侧的“所选测量”栏选择为“幅度(峰值)”,这样测量频谱,并以峰值的形式显示结果。用峰值衡量频谱的幅度。例如,幅值为A的正弦波可在正弦的相应频率上产生幅值A。本系统将重建后的波形数据,作为“频谱测量”vi的“信号”输入,经过该vi的数据处理,可以得到用峰值衡量的频谱的幅度,作为实时谱分析曲线,即图2.1中的2区所示。综上所述,图5.1所示的“data process(butterworth)(子VI).vi”,实现了单通道数据主频和幅值的获取。为了实现对8通道数据的分析,进行如图5.5所示的程序设计。图5.5 f and a(buttworth)(子VI).vi在该自定义函数内,同样以错误输入作为条件结构的判断条件,使用方法与图5.1、5.2相似。图5.5条件结构中的即为上述“data process(butterworth)(子VI).vi”。通过给定“数据输入”和“索引”,即可得到各个通道的主频和幅值。为了方便数据显示,将各通道的主频和幅值捆绑成簇,作为vi的输出端;将各通道频谱的幅度,创建成一个数组,作为vi的另一输出端。这样,通过该函数的作用,即可获得8通道的主频、幅值和频谱的幅度。LabVIEW中的子VI(Sub VI),类似于文本编程语言中的函数,如果在LabVIEW中不使用子VI,就好比在文本编程语言中不适用函数一样,根本不可能构建大的程序。尤其是在LabVIEW图形化编程环境中,图形连线会占据较大的屏幕空间,用户不可能把所有的程序都在同一个VI的程序框图中实现。因此很多情况下,需要把程序分割为一个个小的模块来实现,也就是所说的子VI。其实任何VI本身就可以作为子VI被其他VI调用,关于子VI的设计,只需要在普通VI的基础上多进行两步简单的操作:定义连接端子和图标。(1) 打开或新建一个VI,如打开图5.5所示的f and a(buttworth)(子VI).vi。(2) 编辑VI图标。右击VI右上角的图标 ,选择Edit Icon选项或者直接双击该图标,打开VI图标编辑器,对VI图标进行编辑。该工具使用非常简单,类似于Windows画图工具。对VI图标编辑完成后,单击OK按钮即可。这时候该VI右上角的图标会自动更新为所编辑的结果。如图5.6所示,为f and a(buttworth)(子VI).vi进行图标编辑后的窗口。图5.6 子VI的图标编辑器窗口(3) 建立连接端子。连接端子就好比函数参数,用于子VI的数据输入与输出。右击VI前面板右上角图标,选择Show Connector显示VI的连接端子。初始情况下,连接端子是没有与任何控件连接的,即所有的端子都是空的,每0一个小方格代表一个端子。右击该图标,可以选择接线端子的个数,如三端子模式、五端子模式、八端子模式等等。单击图标的任意一个小方格,光标变为线轴形状,此时单击希望与之相关联的控件即可实现该端子与控件的链接。编辑完毕后,f and a(buttworth)(子VI).vi的接线端子为(4) 保存该VI。命名为“f and a(buttworth)(子VI).vi”保存该VI后,就可以在其他VI中调用该子VI了。打开或新建一个VI,在函数选板中选择“Select a VI”,在文件选择对话框中选择已保存的VI,就可将它放置在程序框图中,将控件与子VI端子连线就实现了对该子VI的调用,如图5.7所示。图5.7 在主程序中调用f and a(buttworth)(子VI)6 数据定时数据库存储及实时文本格式存储出于工程实践的需求,系统需要保留一定的分析数据(主频和幅值),和原始数据(供模态分析使用,二次采样后的数据),以便进行后续对数据的分析及信号的处理操作,及时地发现桥梁可能存在的健康隐患。所谓数据的定时数据库存储,是指对经过处理后的主频和幅值,在SQL Server数据库内进行存储,存储间隔为1分钟;而实时文本格式存储,是指对二次采样后的原始数据,采用Txt文件的形式进行存储,存储间隔为4秒钟。6.1 数据定时数据库存储关于数据的实时数据库存储,系统采用NI为LabVIEW用户提供的专门和数据库链接的工具包:Database Connectivity。该工具包原则上需要从NI官方进行购买,方可授权使用,但是现在从很多相关论坛可以找到该工具包的破解文件,亦可正常使用。安装好该工具包及其破解文件后,Database Connectivity工具包的相关VI将会在函数选板中出现。本人电脑中的Database子选板如图6.1所示(随安装路径不同而有所不同,有时会出现在函数选板中的附加工具包选板中)。图6.1 Database子选板该LabVIEW数据库连接(Database Connectivity)工具包提供了一套简单易用的工具,使用户能快速连接本地或远程数据库,并且无需进行结构化查询语言(SQL)编程就可以执行诸 多常用的数据库操作。可以更方便地连接各种常用数据库,如Microsoft Access、SQL Server和Oracle。本系统的设计采用SQL Server进行处理数据的存储。通常情况下,数据库的存储过程如图6.2所示。图6.2 Database Connectivity工具包访问数据库的一般过程整个数据插入的过程分为三步:(1)建立数据库连接数据库连接的建立主要通过“DB Tools Open Connection .vi”实现,该VI如图6.3所示,其功能是:打开一个由“connection information”输入端确定的数据库连接,并返回一个连接的引用,即“connection reference”输出端,该输出端返回一个指向ADO对象的引用,通过该引用,建立数据库的连接。因此,NI的Database Connectivity工具包也是基于ADO技术的。图6.3 DB Tools Open Connection图6.4 DB Tools Insert Data(2)将数据写入数据库数据库的写入通过“DB Tools Insert Data .vi”来实现,该VI如图6.4所示,其功能是:根据数据库连接插入一行新的数据到指定的表内。(3) 关闭数据库连接数据库连接的关闭是通过“DB Tools Close Connection .vi”来进行的,该VI如图6.5所示,其功能为:通过撤销“connection reference”引用,关闭数据库连接。图6.5 DB Tools Close Connection以图6.2中的数据存储过程为例,首先为以“数据库名称”控件命名的数据库打开数据库连接,并返回其连接的引用;然后为“DB Tools Insert Data.vi”设置输入参数,给定要写入的表名称,图中表名为“zhendong_new”,并将数据接入该VI的“data”输入端,同时传递第一步创建好的数据库连接引用,这样,数据就可以将指定数据写入指定数据库的指定表里面了。最后数据库使用完毕后,关闭数据库的连接。在本系统内,数据的定时数据库存储与上述数据库存储原理相同,仍然通过相同的三步完成系统期望的存储功能。如图6.6所示。图6.6 系统的消费者循环在图6.6中,主要从三个方面讲解数据库存储的设计思路。(1)数据库连接的建立数据库连接的建立同样采用“DB Tools Open Connection .vi”,该VI的输入端“connection information”赋予格式化后的初值“Provider=sqloledb;Initial Catalog=txz_gl;data Source=(local);Integrated Security=SSPI;”来打开指定数据库的连接。其中各项的含义分别为:“Provider=sqloledb;”表示打开数据库用oledb的方式连接;“Initial Catalog=txz_gl;”表示所选数据库的名称;“data Source=(local);”表示所用的数据源;“Integrated Security=SSPI;”表示以当前Windows系统用户身份去登录SQL Server服务器。(2)存储的定时为了实现数据库存储的定时,系统采用条件结构实现。当消费者循环的执行次数(采用移位寄存器实现循环计数)大于或等于60/(每通道采样数/采样率)时,执行条件结构内的数据库写入操作,并将循环计数置为“0”;否则,不执行数据库的写入操作。(3)写入数据格式的处理数据库的设计如表6.1所示。表6.1数据库表的设计表名字段名字段含义数据类型长度zhendong_newdate_time时间varchar50ch0_f1通道主频float8ch0_A1通道幅值float8ch1_f2通道主频float8ch1_A2通道幅值float8ch2_f3通道主频float8ch2_A3通道幅值float8ch3_f4通道主频float8ch3_A4通道幅值float8ch4_f5通道主频float8ch4_A5通道幅值float8ch5_f6通道主频float8ch5_A6通道幅值float8ch6_f7通道主频float8ch6_A7通道幅值float8ch7_f8通道主频float8ch7_A8通道幅值float8为了保证数据的可靠性,每1分钟将该时段各通道数据的平均值写入数据库。因此,系统设计采用寄存器和加法运算,求得1分钟内,各个通道数据的总和,然后当1分钟时间到达时,对各通道的数据总和做除以循环采集次数的平均运算,然后将党前时刻字符串与所有通道的平均值,捆绑成簇,作为“DB Tools Insert Data.vi”的“data”输入,即可实现数据信息的写入,同时将连接数据信息的移位寄存器置为“0”。关于当前时刻字符串与所有通道的平均值的捆绑操作,通过图6.6中的即“cluster to cluster(子VI).vi”实现,程序内部设计如图6.7所示。其中图6.7中的 即“format data(子VI).vi”,该VI内部设计如图6.8所示。图6.7 cluster to cluster(子VI).vi0图6.8 format data(子VI).vi关于当前存储时间的获取,通过图6.6中的 ,即“get date and time(子VI).vi”来获取,该自定义函数,可以返回两个字符串,分别为“日期字符串”和“日期时间字符串”,返回格式分别为“20101202”、“2010-12-02 14:44:40”,前者用于后续文本存储文件的命名,后者用于数据库存储时间的写入。该VI的内部实现如图6.9所示。图6.9 get date and time(子VI).vi图6.9中的库函数“获取日期/时间(秒)”用于获得当前的日期/时间(秒),输出类型为时间标识 ,如 。然后应用“格式化日期/时间字符串”,即图6.9中的 ,该库函数用于将“时间标识”按照“时间格式字符串”的格式进行时间显示。图6.9中,分别对时间标识进行“%Y%m%d”“%Y-%m-%d %H:%M:%S”的格式进行格式化,格式化后的结果分别同“20101202”、“2010-12-02 14:44:40”。6.2 实时文本格式存储为了为模态分析保留一定的原始数据,系统设计了实时的文本存储方案,其中存储的数据为原始数据经过二次采样后的数据(模态分析不需要太多的数据)。程序设计如图6.10所示。图6.10 文本格式存储设计本部分的设计主要包括四个方面:(1)首先设定txt文件的保存路径。如图6.11为“check and create file.vi”的内部程序设计,本系统选择“D:data”路径。在图6.11中,通过“Check if File Exists.vi”判断该路径的文件夹是否存在,若不存在,则以该路径创建新的文件夹,命名为传递的“路径”名,本系统在D盘下创建名称为“data”的文件夹,并传递该文件的引用至输出的引用端。若该文件夹存在,则传递该路径的引用,至输出的引用端。图6.11 check and create file.vi(2)设置完文件的存储路径后,以当前日期(如“20101202”)创建txt文件。日期字符串的获取通过图中的“获取日期/时间(秒)”和“格式化日期/时间字符串”函数来获得。文件的创建通过“store txt(子VI).vi”自定义VI来实现,函数内部设计如图6.12所示,当VI输入不存在错误时,则在输入端指定的“路径”下,首先创建以“日期字符串”和“.txt”连接后命名的路径,然后通过“打开/创建/替换文件”函数,创建该路径下的txt文档,函数输入模式为“open or create”,该模式用于打开或者创建新的文件。为了使新插入的数据总是位于文档的末尾,最后采用“设置文件位置”函数,选择“end”插入模式来实现上述系统要求。文件创建完毕,并将所建文件的引用作为函数的输出,即图6.12中的“引用句柄输出”。图6.12 store txt(子VI).vi(3)数据的二次采样函数“resample(子VI).vi”,函数内部设计如图6.13所示,主要通过LabVIEW的库函数“Resample Waveforms(continuous).vi”来实现,其在工具选板中的位置,如图6.14所示,该函数的功能是根据用户定义的t0和dt值,重新采样输入波形,并将采样后的波形作为函数的输出。本系统中函数的输入配置,如图6.13所示,插值模式为“样条插值”。图6.13 resample(子VI).vi图6.14 “Resample Waveforms(continuous).vi”(4)数据的写入操作,分为两步:a)获取txt文档的写入字符串,该功能的实现通过自定义函数“Get txt string (子VI).vi”来实现。该字符串的格式为“日期时间字符串+空格+第一通道数据+换行+第二通道数据+换行+换行+第八通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论