【NI-RIO入门】NI CompactRIO waveform library

2023-12-22 04:04

本文主要是介绍【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另存为新的再进行修改。

  1. 上位机范例演示了连续采样和有限点采样的各种场景。
  2. 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 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-RIO入门】NI CompactRIO waveform library的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/522523

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

MySQL入门到精通

一、创建数据库 CREATE DATABASE 数据库名称; 如果数据库存在,则会提示报错。 二、选择数据库 USE 数据库名称; 三、创建数据表 CREATE TABLE 数据表名称; 四、MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串类型 4.1 数值类型 数值类型 类型大小用途INT4Bytes整数值FLOAT4By

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是