NI CompactRIO波形参考库

概览

以下安装程序包含了主机VI、​FPGA模板​以及在NI RIO硬件上采集​波形​​的范​例​项目。其中​所有​数据和​采集​VI​和​都​针对​NI RIO​平台​进行​了​优​化,​融合了业界最佳的工程实践。​​您​也可以​在这些​范​例​的基础进行修改,从而​快速开发​自己​的​应用​程序​。

内容

下载

VIPM下载: 
访问NI社区,下载cRIO波形参考库。 该工具网络支持您轻松安装程序,并在发布更新时自动通知您。

简介

许多可重配置的I/O (RIO)应用需要从多个同步的NI C系列模块中获取连续的数据包。本​教程​演示​了​针对​RIO​硬件​平台​优​化​并融合业界最佳工程实践的​CompactRIO数据​采集​VI,​并​提供​了​几个​可以​帮助​您​快速​着手​进行​程序​开发​的​范​例。

图1. 连续采样范例

功能

  • VI将常见的采集功能组合到逻辑块中,可支持许多不同的采样模式。范例程序演示了不同情况的连续采样和有限点采样。
  • VI​可以​用​NI LabVIEW​的​波形​数据​类型​来​显示​相关​数据,​以​方便​地​与​其它​常用​LabVIEW​软件​组​件​集成。而且波形​数据​类型会​将​采集​到​的​数据、​采样​周期、​时间​戳​和​通道​属性​(比如​通道​名称)​都​捆绑​在一起。
  • VI​将​校准​和​缩​放​操作​​放置​在​现场​可​编​程​逻辑​门​阵​列 (FPGA)​上,​以​节约​上位​机​资源。 
  • VI提供​了​一套​完备​的​错误​检验​机制,​包括​DMA FIFO​数据​溢出​(采样​数据​将​FIFO​空间​全部​填满​导致​数据​丢失),​硬件​模​块​采样​下​溢出 (FPGA​代码​执行​时间​过​长,​导致​硬件​模​块​实际​采样​率​低于​设定​采样​率)​以及​开始/​读/​停止​操作​超​时​错误。
  • 其中读取函数​采用​轮​询​机制​,​以便​用户​控制​数据​采集​过程​中的​CPU​占用​率。
  • 这些示例非常灵活,可以适应许多不同的硬件组合。​在​大​多数​应用​场合,​只要​对​FPGA VI​进行​相应​修改​即可​满足​需求。

函数​选​板​概​览​(LabVIEW 2010及​更新​版本)

cRIO​波形​库​(cRIO Wfm Library)将​​​安装​至​user.lib​目录​下​并​显示​在​LabVIEW​的Addons选板中。


图2: cRIO波形参考库选板

范​例​项目​概览

cRIO Wfm Examples.lvproj演示了常见的采样模式以及如何将上位机代码链接到FPGA代码。 本范例安装在LabVIEW环境中的“范例项目”中,可通过启动窗口中的“新建项目(Create Project)”打开。

该项目还可在以下位置找到: 

National Instruments\LabVIEW [Version]\ProjectTemplates\Source\cRIOWfm

您可能需要将此范例移至另一个FPGA硬件,然后将所有VI“另存为”,以避免修改源安装程序。 如需了解更多信息,请参考ni.com/info,并输入信息代码fpgaex


图3.范​例​项目​概览

  1. 上位机范例演示了连续采样和有限点采样的各种场景。
  2. FPGA模板部分包含一个适用于基于Delta Sigma的模块的模板和一个适用于基于SAR的模块的模板。 在FPGA硬件下,您还将找到DMA通道,以及一个PDF文档,该文档描述了如何针对您的硬件配置自定义FPGA VI。

程序架构

有限点采样:在有限点采样模式下,FPGA在采集一定数量的样本后,停止采样。在这种模式下, ConfigTiming.vi调用BufferConfig.vi,并将上位机应用程序的数据缓冲区大小设置为等于有限点采样中的样本数。

具有​读​取​部分​采样​数据​功能​的​有限​点​采样:有限点采样会分配恰好足够的内存以容纳每个通道的所有请求采样。此外,Read(poly).vi具有一个名为Sam Chan Read per Chan的输入控件,可用于指定每个调用返回的数据块大小,​这样​您​就​可以​分​几次​来​读​取​完​有限​点​采样​得到​的​所有​采样​数据 – 这​是​数据​处理​类​应用​中​非常​有用​的​一个​功能。 

具有​软件​重​触发​启动​功能​的​有限​点​采样:当有限点采样终止时,FPGA会自动重新配置,以准备进行下一次采集。只需调用Start.vi,即可开始执行下一个有限点采样。

连续采样:在连续采样模式下,FPGA无限采集样本,直到接收到停止命令或遇到错误(FIFO溢出、模块下溢等)才会停止。在这种模式下,使用BufferCfg.vi可将上位​机应用程序的数据​缓冲​区​大小​为​每次​读​取​的​数据​点数​的​多倍。​在​随附​的​范​例​程序​中,​默认​使用​的是​十倍。​如果​上位​机​应用​程序​的​数据​缓冲​区​被​数据​填满,​那么​FPGA​将会​报​送​FIFO​数据​溢出​的​错误,导致​采样​进程​停止。

具有​开始/​停止​或者​暂停​功能​的​连续​采样: 如果​一个​有限​采样​任务​要求​的​采样​点数​过​大,​以至于​现有​的​上位​机​内存​空间​无法​完成​该​任务​时候,​可用状态机的​程序​架构​来执行​一段​特定​时间​长度​的​连续​采样​。当​程序​调​用Stop.vi​的​时候, FPGA​会​停止​当前​的​采集​任务,并立刻​自行​重新配置,​等待Start.vi被​调​用。​Stop VI同时​会​清​空​上位​机​应用​程序​数据​缓冲​区​,以​保证​接​下来​的​采样​不会​返回​旧​的​数据。

连续采样基准性能​测试

对于​所有​列出​的​控制器,​CompactRIO Continuous Acquisition Example将​连续​采集​​数据​,​然后​将​采样​数据​流​盘​至​一个​本​机​的​技术​数据​管理​流​(TDMS)​文件、​二​进制​文件,​或者​通过​TCP/​IP​协议​将​数据​发送​到​一个​远程​上位机​上。​下面​表格​中​带​宽的​大小​表示​可以​持续​进行​流​盘​的​数据​量​(直到​硬盘​空间​耗​尽)。

流​盘​至​本​机​文件​[TDMS]:​采样​率 = 51.2 kS/s

控制器1D Wfm SGL2D Array SGL交织的SGL
NI 90746通道(1.23 MB/s)7通道(1.43 MB/s)8通道(1.64 MB/s)
NI 90688通道(1.64 MB/s)8通道(1.64 MB/s)9通道(1.84 MB/s)
NI 90148通道(1.64 MB/s)10通道(2.05 MB/s)13通道(2.66 MB/s)
NI 90769通道(1.84 MB/s)12通道(2.45 MB/s)15通道(3.07 MB/s)
NI 902210通道(2.05 MB/s)13通道(2.66 MB/s)19通道(3.89 MB/s)
NI 902415通道(3.07 MB/s)19通道(3.89 MB/s)27通道(5.53 MB/s)

流​盘​至​本​机​文件[二进制]:采样率 = 51.2 kS/s

控制器交织的SGL
NI 90748通道(1.64 MB/s)
NI 90689通道(1.84 MB/s)
NI 901418通道(3.69 MB/s)
NI 907620通道(4.10 MB/s)
NI 902225通道(5.12 MB/s)
NI 902436通道(7.37 MB/s)

通过TCP/IP传输:采样率= 51.2 kS/s

2D Array SGL
控制器1D Wfm SGL2D Array SGL交织的SGL
NI 907412通道(2.46 MB/s)13通道(2.66 MB/s)18通道(3.69 MB/s)
NI 901412通道(2.46 MB/s)14通道(2.87 MB/s)23通道(4.71 MB/s)
NI 902216通道(3.28 MB/s)20通道(4.10 MB/s)35通道(7.17 MB/s)
NI 902429通道(5.94 MB/s)32通道(6.55 MB/s)45通道(9.22 MB/s)
NI 906840通道(8.19 MB/s)40通道(8.19 MB/s)45通道(9.22 MB/s)

  

更多资源

讨论反馈

该参考应用程序由NI系统工程小组创建。 

如有任何反馈意见,请发布到CompactRIO波形参考应用程序论坛。

Was this information helpful?

Yes

No