本文主要是介绍【NI-RIO入门】NI CompactRIO waveform library,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
于NI KB摘录
此库集成了host、fgpa、rt在RIO硬件上采集波形的范例项目,其中所有数据和采集VI和都针对NI RIO平台进行了优化,融合了业界最佳的工程实践。您也可以在这些范例的基础进行修改,从而快速开发自己的应用程序。
1.下载工具包
打开 VI Package Manager,搜索waveform 找到并安装此库。
2.简介
许多可重配置的I/O (RIO)应用需要从多个同步的NI C系列模块中获取连续的数据包。本教程演示了针对RIO硬件平台优化并融合业界最佳工程实践的CompactRIO数据采集VI,并提供了几个可以帮助您快速着手进行程序开发的范例。
功能
- VI将常见的采集功能组合到逻辑块中,可支持许多不同的采样模式。范例程序演示了不同情况的连续采样和有限点采样。
- VI可以用NI LabVIEW的波形数据类型来显示相关数据,以方便地与其它常用LabVIEW软件组件集成。而且波形数据类型会将采集到的数据、采样周期、时间戳和通道属性(比如通道名称)都捆绑在一起。
- VI将校准和缩放操作放置在现场可编程逻辑门阵列 (FPGA)上,以节约上位机资源。
- VI提供了一套完备的错误检验机制,包括DMA FIFO数据溢出(采样数据将FIFO空间全部填满导致数据丢失),硬件模块采样下溢出 (FPGA代码执行时间过长,导致硬件模块实际采样率低于设定采样率)以及开始/读/停止操作超时错误。
- 其中读取函数采用轮询机制,以便用户控制数据采集过程中的CPU占用率。
- 这些示例非常灵活,可以适应许多不同的硬件组合。在大多数应用场合,只要对FPGA VI进行相应修改即可满足需求。
函数选板
函数在此路径下面
3.范例项目概述
cRIO Wfm Examples.lvproj演示了常见的采样模式以及如何将上位机代码链接到FPGA代码。 本范例安装在LabVIEW环境中的“范例项目”中,可通过启动窗口中的“新建项目(Create Project)”打开。
该项目还可在以下位置找到:
National Instruments\LabVIEW [Version]\ProjectTemplates\Source\cRIOWfm
注意,修改代码需要把当前VI另存为新的再进行修改。
- 上位机范例演示了连续采样和有限点采样的各种场景。
- FPGA模板部分包含一个适用于基于Delta Sigma的模块的模板和一个适用于基于SAR的模块的模板。 在FPGA硬件下,您还将找到DMA通道,以及一个PDF文档,该文档描述了如何针对您的硬件配置自定义FPGA
4.程序范例架构
有限点采样:在有限点采样模式下,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同时会清空上位机应用程序数据缓冲区,以保证接下来的采样不会返回旧的数据。
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) |
这篇关于【NI-RIO入门】NI CompactRIO waveform library的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!