【NI-RIO入门】NI CompactRIO waveform library

于NI KB摘录

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

1.下载工具包

        打开 VI Package Manager,搜索waveform 找到并安装此库。

【NI-RIO入门】NI CompactRIO waveform library_第1张图片

2.简介

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

【NI-RIO入门】NI CompactRIO waveform library_第2张图片

功能

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

 函数选板

函数在此路径下面

【NI-RIO入门】NI CompactRIO waveform library_第3张图片

3.范例项目概述 

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

【NI-RIO入门】NI CompactRIO waveform library_第4张图片

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

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

注意,修改代码需要把当前VI另存为新的再进行修改。

【NI-RIO入门】NI CompactRIO waveform library_第5张图片

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

4.程序范例架构

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

【NI-RIO入门】NI CompactRIO waveform library_第6张图片

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

【NI-RIO入门】NI CompactRIO waveform library_第7张图片

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

【NI-RIO入门】NI CompactRIO waveform library_第8张图片

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

【NI-RIO入门】NI CompactRIO waveform library_第9张图片

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

【NI-RIO入门】NI CompactRIO waveform library_第10张图片

 5.连续采样基准性能测试

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

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

控制器 1D Wfm SGL 2D Array SGL 交织的SGL
NI 9074 6通道(1.23 MB/s) 7通道(1.43 MB/s) 8通道(1.64 MB/s)
NI 9068 8通道(1.64 MB/s) 8通道(1.64 MB/s) 9通道(1.84 MB/s)
NI 9014 8通道(1.64 MB/s) 10通道(2.05 MB/s) 13通道(2.66 MB/s)
NI 9076 9通道(1.84 MB/s) 12通道(2.45 MB/s) 15通道(3.07 MB/s)
NI 9022 10通道(2.05 MB/s) 13通道(2.66 MB/s) 19通道(3.89 MB/s)
NI 9024 15通道(3.07 MB/s) 19通道(3.89 MB/s) 27通道(5.53 MB/s)

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

控制器 交织的SGL
NI 9074 8通道(1.64 MB/s)
NI 9068 9通道(1.84 MB/s)
NI 9014 18通道(3.69 MB/s)
NI 9076 20通道(4.10 MB/s)
NI 9022 25通道(5.12 MB/s)
NI 9024 36通道(7.37 MB/s)

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

2D Array SGL

控制器 1D Wfm SGL 2D Array SGL 交织的SGL
NI 9074 12通道(2.46 MB/s) 13通道(2.66 MB/s) 18通道(3.69 MB/s)
NI 9014 12通道(2.46 MB/s) 14通道(2.87 MB/s) 23通道(4.71 MB/s)
NI 9022 16通道(3.28 MB/s) 20通道(4.10 MB/s) 35通道(7.17 MB/s)
NI 9024 29通道(5.94 MB/s) 32通道(6.55 MB/s) 45通道(9.22 MB/s)
NI 9068 40通道(8.19 MB/s) 40通道(8.19 MB/s) 45通道(9.22 MB/s)

  

你可能感兴趣的:(fpga开发,CompactRIO)