首页 » labview » 视频教程

NI CompactRIO 波型采集工具包应用参考

2014-01-14

核心提示:概览 下面的安装文件包括了在 NI RIO硬件平台上实现波形数据采集所需要的上位机VI,FPGA程序模板以及波形采集的LabVIEW范例项目

概览
下面的安装文件包括了在 NI RIO硬件平台上实现波形数据采集所需要的上位机VI,FPGA程序模板以及波形采集的LabVIEW范例项目工程。 其中所有数据采集VI和配置都针对NI RIO平台进行了优化,以使其达到最佳的运行状态。此外,您还可以方便地对这些范例工程进行修改来开始自己的应用程序开发。
 
 
目录
 
  
下载
 
文件名: criowfm_305_installer.zip
要求: View
 
文件名: crio_wfm_acq_271.zip
要求: View
 
 
 
介绍
criowfm_305_installer.zip兼容LabVIEW 2010及更新的版本,并且可直接安装波形采集VI到函数选板。
 
crio_wfm_acq_271.zip兼容 LabVIEW 8.6及更新的版本,但不会将功能VI安装到 user.lib库下。
 
许多可重配置的 I/O (RIO) 应用程序都是从多个同步的NI C系列模块上采集连续的数据包。本教程演示了针对RIO硬件平台优化的CompactRIO 数据采集VI可达到最佳的波形采集效果,并提供了几个可以帮助您快速上手进行程序开发的范例。
 
 
 
1. 连续波形采集范例程序框图
 
 
功能
 
•   波形采集工具包将常用的采集函数组合成一系列支持许多不同采集模式的逻辑功能模块。相关的范例程序演示了连续及有限点数据采集的多方面特点。
•   波形采集工具包可以用NI LabVIEW的波形数据类型来显示相关数据,以方便地与其它常用LabVIEW软件组件整合。波形数据类型将采集到的数据、采样周期、时间戳和通道属性(比如通道名称)都捆绑在一起。
•   波形采集工具包将校准和缩放操作都放置在现场可编程逻辑门阵列 (FPGA)上,以节约上位机资源。 此外,工具包中所提供的范例可以将FPGA上的定点数据类型(FXP)转换成为单精度数据类型(SGL),并且将每个采样点数据编码为一个U32整形字。 在上位机中,将一个U32类型强制转换为SGL类型比直接将FXP类型转换为SGL类型要节省大约百分之四十的CPU运算周期。
•   为避免忽略在程序运行过程中可能发生的错误,波形采集工具包提供了一套完备的错误检验机制,包括DMA FIFO数据溢出(采样数据将FIFO空间全部填满导致数据丢失),硬件模块采样下溢出 (FPGA代码执行时间过长,导致硬件模块实际采样率低于设定采样率)以及开始//停止操作超时错误。
•   波形采集工具包提供了采用轮询机制的读函数,以便用户控制数据采集过程中的CPU占用率。
•   波形采集工具包中所提供的范例都相当灵活,可以适用于多种不同的硬件组合。在大多数应用场合,只要对FPGA VI进行相应修改即可满足需求。
 
 
函数选板概览(LabVIEW 2010 及更新版本)
 
cRIOcRIO波形采集工具包(cRIO Wfm Library)会将功能VI安装至user.lib目录下并显示在LabVIEW函数选板里的用户库选板中。
 
 
 
2: cRIO 波形采集工具包选板
 
无论是基于Delta SigmaADC或者是基于逐次逼近型(SAR)ADCNI C系列模块,波形采集工具包中所提供的范例工程都对其提供了支持。这些范例工程可以在以下路径中找到: 
National Instruments\LabVIEW [版本号]\user.lib\cRIO Wfm\_exampleProjects
 
 
范例工程概览
 
DeltaSigma_Acquisition.lvproj SAR_Acquisition.lvproj 具有五个相同的范例程序以及同样的整体架构。这两个工程唯一的区别在于FPGA VI的定时方式有所不同。
 
如果你希望在其它的FPGA目标设备上使用该范例程序,你可以将该范例移动至另一个目标的相应位置,并且对所有的VI使用另存为命令以避免对范例程序原文件进行修改。 如果在这一点上您需要更多的信息,可以访问网址 ni.com/info 并输入信息代码 fpgaex.
 
 
 
3.范例工程概览
 
1.      RT Templates (DS)部分示范了连续及有限点采集的各种特点。
2.      FPGA部分包括FPGA VIDMA通道,以及一份描述如何根据不同的硬件配置自定义FPGA VIPDF文档。
 
 
CompactRIO 波形采集VI
 
rwfm_CreateChan.vi
 
•   这个VI的主要功能是读取相应硬件通道的比例缩放参数,并将其与通道数一起传输到FPGA目标上。输入控件“Channel Info”中的元素数量必须与FPGA采集的波形数据通道数量相等。
 
 
 
rwfm_ConfigTiming(poly).vi
 
•   这个VI能够设置波形采集模式(有限点采集或者连续采集),并且将采样率发送到FPGA上。要特别留意这个VI所包含的多态实例某些 NI C 系列模块支持的采样率是 51.2 kS/s的整数倍分频,而另一些模块支持的采样率是50 kS/s的整数倍分频。当在程序中同步多个 delta-sigma ADC模块时,所有模块支持的采样率等于主模块所支持的采样率。而共享时基的设置则是在LabVIEW工程项目中通过配置模块来完成。另外,如果全局的采样率不是由基于delta-sigma ADCC系列模块来决定的话,在使用这个VI时一定要选择多态VI中的"Non Delta Sigma" 实例。
 
 
 
rwfm_BufferCfg.vi
 
•   这个VI能够配置上位机应用程序的数据缓冲区大小,对其进行正确的配置对达到最大的数据流量是非常重要的。这个数据缓冲区负责存储FPGA  上的DMA FIFO 传送到上位机的数据。对连续波形采集来说,应设置该数据缓冲区的大小为需要读取数据大小的数倍。附带的范例将缓冲区大小设置为10倍于读取大小,但这个倍数可以根据实际应用的情况来进行调整。而对于有限点采集来说,定时VI会自动调用该缓冲区配置VI,并将数据缓冲区大小设置为需要采集的采样数。
 
 
 
rwfm_Start.vi
 
•   这个VI会启动FPGA并等待FPGA发送一个表明其准备好开始进行数据采集的中断。该VI可以被多次调用以启动一个暂停的采集任务或者重新触发一个有限点采集任务。如果该启动VI被调用两次或以上,它会报送一个无害的警告信息(代码: 61003)告知FPGA已经处于运行状态。
 
 
 
rwfm_Read(poly).vi
 
•   这个VI会以用户指定的频率来对上位机数据缓冲区进行轮询直到缓冲区中有足够的数据来完成一次读操作。该VI 可以以一个一维单精度波形数据数组(1D Wfm SGL Array),一个二维单精度浮点数数组(2D Array of SGLs) 或更直接的以一个一维U32数据类型数组(1D Array of U32s)的形式来表示采集到的波形数据。以一维U32数据类型数组(1D Array of U32s)形式表示的数据还包含所有应用在FPGA上的校准和比例缩放信息,但以这种形式传输能够省略数据类型转换、创建数组以及波形捆绑,故能够提供最短的数据读取时间以及最高的数据传输效率。
 
•   这个VI还能报送所有FPGA程序运行过程中产生的错误信息,包括各种超时,FIFO数据溢出,硬件模块采样率下溢出以及错误的通道数等。
 
•   在调用这个函数的时候,你可以指定每个通道需要返回的采样点数。当设置这个数值为-1的时候,表示读取各个通道缓冲区中的所有数据。
 
 
 
rwfm_Stop.vi
 
•   这个VI会发送一个停止指令给FPGA上的数据采集循环并且等待循环确实停止的确认信息。该VI同时会清空上位机数据缓冲区的所有数据以保证后续的采集不会读取到已经停止的采集任务的无效数据。
 
 
 
 
范例程序架构
 
有限点采样:有限点采样模式配置FPGA采集一定数量的数据点,达到采样数量以后就停止采样任务。在这种采样模式下, rwfm_ConfigTiming.vi 调用rwfm_BufferConfig.vi,并设置上位机应用程序的数据缓冲区大小等于该有限点采样任务的采样点数。
 
 
 
具有读取部分采样数据功能的有限点采样:同样是有限点采集模式,并且分配了足够的存储空间来存放每个通道所要采样的数据。rwfm_Read(poly).vi节点上连接有一个名称为Samps Read per Chan的输入控件,通过这个输入控件您就可以配置每次调用该vi将会从缓冲区中读取的采样点数。这样您就可以分几次来读取完有限点采样得到的所有采样数据这是数据处理类应用中非常有用的一个功能。
 
 
 
具有软件重触发启动功能的有限点采样:当前一个有限点采样任务停止以后,FPGA会自动重新配置自己并开始下一次采样任务。您只需要调用rwfm_Start.vi就可以开始下一次的有限点采样。
 
 
 
连续采样:连续采样模式将配置FPGA使其不停地采样波形数据直到程序发布停止指令或者程序运行过程中发生了错误(比如FIFO数据溢出,硬件模块采样率下溢出等等)。在这种采样模式下,调用适当的rwfm_ConfigTiming VI并且设置上位机应用程序的数据缓冲区大小为每次读取的数据点数的多倍。在附带的范例程序中,默认使用的是十倍。如果上位机应用程序的数据缓冲区被数据填满,那么FPGA将会报送FIFO数据溢出的错误,该错误会导致采样进程的停止。
 
 
 
具有开始/停止或者暂停功能的连续采样:如果一个有限采样任务要求的采样点数过大,以至于现有的上位机内存空间无法完成该任务时候,可用状态机的程序架构来编写一段特定时间长度的连续采样程序来代替。当程序调用 rwfm_Stop.vi的时候, FPGA会停止当前的采集任务、立刻自行初始化并等待rwfm_Start.vi被调用。Stop VI 同时会清空上位机应用程序数据缓冲区以保证接下来的采样不会返回旧的数据。
 
 
 
 
连续数据采集性能测试
 
针对所有列出的控制器,在其上运行CompactRIO Continuous Acquisition Example 进行连续的波形数据采集,然后将采样数据流盘至一个本机的技术数据管理流(TDMS)文件、二进制文件,或者通过TCP/IP协议将数据发送到一个远程主机上。下面表格中带宽的大小表示了可以持续进行流盘的数据量(直到硬盘空间耗尽)
 
流盘至本机文件[TDMS]:采样率 = 51.2 kS/s
 
 
 
Stream to Disk [Binary]: sample rate = 51.2 kS/s
 
Stream over TCP/IP: sample rate = 51.2 kS/s
 
   
相关资源链接
开发者园地:参考设计:cRIO振动数据记录LabVIEW参考设计着重介绍了嵌入式振动监测、数据记录、通讯以及前端无外设配置。
开发者园地:析应用参考:使用高速转速计进行cRIO阶分析LabVIEW参考设计演示了如何以不同的采样率采集振动数据和一个高速转速计的数据,以及如何将这两部分数据同步以进行阶次分析。
开发者园地:参考设计:结构健康监测LabVIEW参考设计着重介绍了结构健康监测,包括分流校准(shunt calibration)以及数据记录。
开发者园地:在LabVIEW FPGA上将定点数(FXP)转换为单精度浮点数(SGL) - FXP to SGL Conversion on FPGA 程序的源代码已包含在上面的开发者园地资源中,但是您仍然可以在这个链接中找到相关的文档以及该代码的独立下载地址。
 
 
讨论与意见反馈
该参考应用文档由NI系统工程组编写提供。
我们不会定期查看本页面的读者评论。所以请将反馈提交至CompactRIO 波形采集参考应用论坛。
要求
软件要求

应用软件: LabVIEW Full Development System 2010
工具包和附加软件: LabVIEW Real-Time Module 2010, LabVIEW FPGA Module 2010
硬件要求

硬件组: CompactRIO
驱动软件: NI-RIO 3.5
 
软件要求

应用软件: LabVIEW Full Development System 8.6
工具包和附加软件: LabVIEW Real-Time Module 8.6, LabVIEW FPGA Module 8.6
语言: LabVIEW
硬件要求

硬件组: CompactRIO
驱动软件: NI-RIO 3.1
 

相关新闻

排行榜