【NI-RIO入门】使用LabVIEW进行数据采集测量

news2024/11/23 1:15:40

于ni kb摘录

选择合适的编程模式

        CompactRIO系统具有至少两个用户可选模式。某些CompactRIO型号具有附加的用户可选模式,可以在实时NI-DAQmx中进行编程。请参考本文以判断您的CompactRIO是否能够使用实时NI-DAQmx。将目标添加到项目后,将提示您选择要使用的编程模式。
注意:如果需要,您可以稍后使用CompactRIO机箱属性对话框更改编程模式。

        实时(NI-DAQmx)模式–带有NI-DAQmx的CompactRIO是CompactRIO控制器系列的最新产品。通过结合使用NI-DAQmx的易用性和LabVIEW FPGA的低级功能,将两种软件体验融为一体。它还通过将最新的同步和控制技术引入CompactRIO平台来简化系统架构。要在这种模式下对C系列模块进行编程,请将其放置在LabVIEW项目的Real-Time Resources文件夹下。

        实时扫描(I/O变量)模式–此选项使您可以对CompactRIO系统的实时处理器进行编程,而不能对FPGA进行编程。在这种模式下,NI为FPGA提供了预定义的特征,该特征会定期扫描I/O并将其放置在内存映射中,从而可用于LabVIEW Real-Time。对于需要以几百赫兹的速率单点访问I/O的应用程序,CompactRIO实时扫描模式已足够。要在这种模式下对C系列模块进行编程,请将其放置在LabVIEW项目的Real-Time Scan Resources文件夹下。要了解有关扫描模式的更多信息,请阅读理解NI CompactRIO扫描模式白皮书并查看 基准。
注意:NI建议使用实时(NI-DAQmx)模式,而不是实时扫描(I/O变量)模式。

        LabVIEW FPGA接口模式–该选项使您不仅可以对实时处理器进行编程,还可以通过自定义FPGA个性来释放CompactRIO的真正功能,从而获得通常需要自定义硬件的性能。使用LabVIEW FPGA,您可以实现自定义定时和触发,卸载信号处理和分析,创建自定义协议以及以最大速率访问I/O。要在此模式下对C系列模块进行编程,请将其放置在LabVIEW项目中的FPGA目标下。
LabVIEW现在将尝试检测系统中存在的机箱和C系列I/O模块,并将它们自动添加到LabVIEW项目中。

扫描模式FPGA数据采集​​模块
  • 易于编程:在开发过程中将 I/O 变量直接拖放到 LabVIEW Real-Time VI 中。
  • 动态检测 I/O 模块的能力:未通过项目配置的插槽会自动检测插入的模块。然后您可以通过变量 API 配置这些模块。
  • 故障引擎:NI 扫描引擎具有内置 NI 故障引擎,可确定性地引发错误。
  • 诊断和调试:使用分布式系统管理器,您可以在程序运行时查看当前值和故障以及覆盖当前 I/O 值。
  • 最高性能和可靠性:由于 FPGA 芯片上没有操作系统,因此代码的实现方式可确保最高性能和可靠性。
  • 高速波形采集/生成(>500 Hz):您可以使用单点 I/O 与多通道、可调 PID 或其他控制算法来实现确定性控制环路速率超过 1 MHz。
  • 自定义触发/定时/同步:借助可重新配置的 FPGA,您可以创建简单、高级或以其他方式自定义的触发器、定时方案以及 I/O 或机箱同步实现.
  • 基于硬件的分析/生成和协处理:许多传感器输出的数据超出了实时处理器单独合理处理的数据量。
  • 简单配置:不需要大量低级编程,因为驱动程序会为您完成大量配置。
  • 熟悉的API:这是其他DAQ卡使用的API,因此对于使用过其他DAQ平台的程序员来说很熟悉。
  • 有限支持:DAQmx 仅在某些 cRIO 设备上受支持,如上面 DAQmx 部分的链接所示。

        注意:如果未发现您的系统,并且选择离线添加,则需要手动添加机箱和C系列I/O。本文档讨论了扫描模式和FPGA模式的此过程。

        下图显示了每种模式如何通过唯一路径发送I/O数据。对于实时(NI-DAQmx)模式,通过NI-DAQmx VI通过处理器读取数据。对于实时扫描(I/O变量)模式,数据通过FPGA发送,但通过将IO节点拖放到实时VI中,最终可以在处理器上访问。对于LabVIEW FPGA模式,可通过将IO节点拖放到FPGA VI直接从FPGA内部读取I/O。


        如果您的开发计算机上装有LabVIEW Real-Time,LabVIEW FPGA和NI-DAQmx,则可以通过将模块放在项目中的适当标题下,来选择基于每个模块使用的编程类型。编程模式由LabVIEW项目中模块旁边的文本指示。您还可以通过从Measurement and Automation Explorer(MAX)的下拉菜单中选择要使用的编程模型。

在CompactRIO上创建一个基本的日志记录应用程序

        本节分为三个小节,向您展示如何创建基本的温度记录应用程序。请根据您所需的编程模式和CompactRIO控制器选择一个部分。如果不确定所需的编程模式,请参考“选择恰当的编程模式”部分。这些部分按以下顺序列出

  1. NI-DAQmx API
  2. FPGA编程模式
  3. 实时扫描模式

1.使用NI-DAQmx API

        NI-DAQmx驱动程序带有各种示例VI,可帮助用户熟悉NI-DAQmx API。本节将指导您如何将NI-DAQmx示例导入CompactRIO终端。我们将导入热电偶-连续输入VI。

  1. 通过选择文件»创建项目,在LabVIEW中创建一个新项目。
  2. 要将您的CompactRIO系统添加到项目中,请右键单击树顶部的“项目”,然后选择“新建»终端和设备…”。

        3.该对话框使您可以发现网络上的系统或添加离线系统。展开Real-Time CompactRIO文件夹,选择cRIO-904x系统,然后单击OK 。注:如果未列出您的系统,LabVIEW将无法在网络上检测到该系统。确保在Measurement&Automation Explorer中为系统正确配置了有效的IP地址。如果您的系统位于远程子网中,则也可以选择手动输入IP地址。


 

        4.要将“热电偶-连续输入.vi”添加到LabVIEW项目中,请右键单击cRIO-904x目标,然后选择“添加>>” 。这将打开文件资源管理器。

        NI-DAQmx示例将默认安装到以下位置:

        C:\Program Files(x86)\National Instruments\LabVIEW <xxxx>\ examples\DAQmx

(在x32 OS上,默认文件路径为C:\Program Files\National Instruments\LabVIEW <xxxx>\examples\DAQmx)。

5.通过将模块移至“实时资源”项目下,确保已配置为在热电偶-连续输入.vi的NI-DAQmx任务中使用的模块处于实时(NI-DAQmx)模式。还要确保将编程模式的所有更改都部署到目标。

6.打开VI并为相应的模块和通道配置物理通道控件/常量。注意:NI-9211要求的采样率低于本示例VI中观察到的默认值。

7.打开程序框图。导航至框图的“定时设置”部分。

8.在DAQmx定时属性节点条件结构之间实现DAQmx配置记录(TDMS)VI 。确保通过DAQmx配置日志记录(TDMS)VI连接任务接线和错误接线。

9.右键单击记录模式终端,然后选择创建>>常量。确保常量设置为记录并读取-Log and Read 。

10.右键单击文件路径终端,然后选择创建>>常量。有关如何引用文件路径的说明,请参考“使用CompactRIO实时扫描模式”部分的步骤23。

11.确认您的DAQmx配置记录(TDMS)VI的配置如下所示。


 

12.导航到前面板并运行该应用程序。

13.查看和记录数据完成后,单击“停止”按钮。您可以从本文档的“下载/附件”部分下载解决方案。

2.使用LabVIEW FPGA接口模式


        LabVIEW FPGA接口模式能够利用CompactRIO的板载FPGA来提高性能和确定性。使用cRIO-9074上的NI-9205为该应用创建了一个示例项目来记录温度,该项目可在此页面的下载/附件部分中找到。该项目包含两个VI,如下所示。


 

        如下面的框图所示, FPGA VI使用DMA FIFO与RT VI进行通信。在实时处理器上运行的VI将需要从DMA FIFO中读取值。请参考示例项目,以帮助理解RT VI用于读取和存储从板载FPGA接收的温度值的方法。


3.使用CompactRIO实时扫描模式


        本节将引导您使用扫描模式在CompactRIO上创建基本的记录应用程序。现在,您应该有一个包含您的CompactRIO系统的新LabVIEW项目,包括控制器,机箱和C系列I/O模块。在本教程中,我们将使用NI 9211热电偶输入模块。但是,任何模拟输入模块均可遵循该过程。您也可以从此页面的"下载/附件”部分下载解决方案。
注意:NI建议使用实时(NI-DAQmx)模式,而不是实时扫描(I/O变量)模式。

  1. 通过选择左上角的文件»保存来保存项目。
  2. 输入名称为“使用扫描模式的基本记录”,然后单击“确定”关闭对话框窗口。

3.通过右键单击项目中的CompactRIO控制器并选择新建»VI来创建VI 。将VI另存为RT.vi。该项目将仅包含一个VI,即在CompactRIO控制器上运行的LabVIEW Real-Time应用程序。

4.如下图所示,在RT.vi框图上放置带有三个帧的平铺式顺序结构。该应用程序的基本操作将包括三个步骤:启动,运行和关闭。平铺式顺序结构是强制执行此操作顺序的简便方法。

5.定时循环添加到序列结构的“运行”帧中。定时循环提供了以不同时间为基础同步代码的能力,包括读取和写入扫描模式I/O的NI扫描引擎。

6.双击左侧输入节点上的时钟图标以配置定时循环。


 

7.选择“同步到扫描引擎”作为循环时钟源。

8.单击确定。这将导致定时循环中的代码在每次I/O扫描后立即执行一次,确保此定时循环中使用的任何I/O值都是最新的值。


 

9.右键单击LabVIEW项目中的CompactRIO控制器,然后选择属性

10.从左侧的类别中选择“扫描引擎” ,然后输入100ms作为“扫描周期”。这将导致CompactRIO系统中的所有I/O每100毫秒(10Hz)更新一次。也可以从此页面设置网络发布时间,该页面控制将I/O值发布到网络以进行远程监视和调试的频率。单击确定


 

11.通过单击并使用Shift键选择模块下面的所有通道,然后将它们拖放到RT.vi图上的定时循环中,如下所示。使用CompactRIO扫描模式时,您只需将I/O变量从LabVIEW项目拖放到程序框图中。展开要记录的CompactRIO控制器,机箱和I/O模块。


 

提示:使用LabVIEW工具栏上的对齐对象»左边缘 and 分布对象»垂直压缩项在图表上组织I/O变量。


 

12.在定时循环下的“运行”帧中放置一个普通的while循环,该循环将用于文件I/O任务。由于文件I/O占用时间并减少了时间,因此必须将I/O采集任务和文件I/O任务分开。忽略此要求可能导致数据丢失,因为文件I/O可能比I/O扫描花费更长的时间,从而导致样本丢失。

        为了在常规while循环中将数据写入磁盘,您需要使用实时FIFO从定时循环中传输I/O值。这将在两个循环之间提供一个缓冲区。定时循环将运行,同步I/O扫描,并每次将新的I/O值写入缓冲区。然后,常规的while循环将从缓冲区中读取数据并将其写入磁盘。通过这种方式将I/O任务和磁盘访问分开,可以使定时循环以“实时”性能运行,这意味着它将始终按时完成。

 

13.在LabVIEW项目中,右键单击CompactRIO控制器,然后选择新建»变量


 

14.将变量命名为Data buffer,选择单进程-Single Process作为变量类型。

15.选择双精度数组作为数据类型。这将创建一个局部范围的变量(无网络发布),该变量包含双精度浮点数和数组。


 

16.然后从左侧菜单中选择RT FIFO 。

17.选中“ RT FIFO”类别后,选中“启用RT FIFO”复选框,为“ FIFO类型”选择“多元素”。

18.输入50作为数组的数量,并输入4作为元素的数量(如果记录的通道数不是4,则输入该数字。)这会将变量配置为作为实时安全FIFO运行,可以用作实时和低优先级任务之间的数据缓冲区。 FIFO将容纳五十一个一维数组,每个数组包含四个双精度数字。单击确定


 

19.将数据缓冲区RT FIFO拖放到定时循环中,并使用Build Array函数从I / O变量构建数组,然后将其传递到RT FIFO。


 

20.将数据缓冲区RT FIFO的其他副本拖放到常规while循环中,您将在其中读取数据并将其记录到磁盘。

21.右键单击RT FIFO,然后选择Show Timeout并设置超时100 。这将导致RT FIFO最多等待100毫秒,等待新数据在超时之前到达缓冲区。如果缓冲区中存在数据,则RT FIFO将立即返回缓冲区中最早的数据。

22.将TDMS Open VI放置在序列结构的启动帧中。

23.为文件路径操作输入创建常量。在文件路径中键入c:\tempdata.tdms,然后选择创建或替换操作。如果您的CompactRIO控制器正在运行其他实时操作系统,请选择以下所示的适当文件路径。请参阅实时控制器和实时操作系统兼容性以获取更多信息。


 

24.在此处下载该文件,或将以下VI片段从Web浏览器拖放到图表中以执行文件I/O。

25.将此代码放置在常规的while循环中,并按如下所示进行接线。仅当RT FIFO不超时时才使用条件结构执行此部分代码,这表明已从缓冲区返回新数据。然后,将数据格式化以写入TDMS文件并显示在波形图上。除了检查错误作为停止条件之外,还提供了while循环的停止按钮。


将此VI代码段拖至VI的程序框图


 

26.在LabVIEW项目中,右键单击自动创建的现有库,其中包含数据缓冲区变量,然后选择新建»变量,以创建另一个共享变量

27.将变量命名为stop,选择单进程,然后选择布尔-Boolean 。选择左侧的RT FIFO类别。


 

28.选择启用RT FIFO ,保留单个元素的选择,然后单击确定。这将创建一个可以在需要实时性能的任务中安全读取的变量。

29.将stop变量的副本放置在定时循环中,并将其连接到stop条件

30.如图所示,将stop变量的另一个副本放入常规while循环中,然后将OR函数的结果写入其中。当常规while循环停止时,这将导致定时循环停止。

31.将TDMS关闭功能放在关机框架中,并将文件引用和错误簇连接到该框架。另外,从TDMS关闭错误输出终端创建并指示。完成的应用程序应如下图所示:

32.单击在RT.vi上运行”,单击“保存”保存所有未保存的项目,然后在任何有关将更改应用于CompactRIO系统的对话框或警告中单击“确定”。 LabVIEW现在将通过以太网部署您的VI,以在CompactRIO系统上嵌入式运行。

33.VI部署并开始运行后,查看VI的前面板以查看当前I/O值在波形图上的绘制。


 

34.查看和记录数据完成后,请单击“停止” 。

恭喜你!您已经使用LabVIEW和CompactRIO成功创建了嵌入式数据记录应用程序。要继续学习,请查看“使用LabVIEW和CompactRIO嵌入式编程”页面上的其他资源。

访问记录的数据

        完成这些步骤以检索和查看CompactRIO系统上记录的数据。如果您的系统上未安装FTP服务器,则CompactRIO也支持WebDAV(Web分布式编写和版本控制)。这是使用标准Web浏览器交换文件的安全选择。有关更多信息,请参见使用WebDAV将文件传输到实时RT目标。

  1. 使用Windows资源管理器或Web浏览器,导航到ftp://<ip地址>,其中<ip地址>是CompactRIO系统的IP地址。
  2. 下载tempdata.tdms(或您命名的TDMS文件)
  3. 如果您具有Microsoft Excel,则可以通过选择“加载项Add-Ins”标签并单击“ TDM导入器来查看TDMS文件。工作簿的第一页包含文件信息,其余工作表包含通道数据。默认情况下,TDM Importer随LabVIEW一起安装。但是,如果不存在TDM Importer,则可以从此处安装它。

        4.如果没有Excel,则可以在LabVIEW中使用TDMS File Viewer VI查看TDMS文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1320386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)

一、工具使用方法介绍 工具使用方法参照&#xff1a;http://www.bolet.org/TestSSLServer/ 全篇英文看不懂&#xff0c;翻译了下&#xff0c;能用到的简单介绍如下&#xff1a; 将下载的TestSSLServer4.exe工具放到桌面上&#xff0c;CMD命令行进入到桌面目录&#xff0c;执…

Gitee基础知识

目录 1-gitee 1.1gitee介绍 1.2git与gitee的关系 1.3在国内为什么选择Gitee 2-注册与创建远程仓库 2.1注册 2.2创建远程仓库 2.3配置ssh公钥 2.3.1公钥的生成方法&#xff1a; 2.3.2 在gitee中配置公钥 2.3.4验证公钥 3-添加与推送远程仓库master 3.1基本命令…

78-C语言-完数的判断,以及输出其因子

简介&#xff1a;一个数如果恰好等于它的因子之和&#xff0c;这个数就称为完数&#xff0c;C语言编程找出1000之内的所有完数&#xff0c;并输出其因子。因子可以整除该数字的数&#xff0c; 如6的因子&#xff1a;1 2 3&#xff0c;6%10 6%20 6%30 解释全在注…

20 5G中高速列车通信:设计相关元素以减轻高移动性带来的影响

文章目录 一 、物理层设计1 DMRS2 CSI 和SRS3 PTRS4 多天线配置 二 初始接入三 目前面临困难 解决问题&#xff1a;列车高速移动&#xff0c;会使信道相干时间较短、多普勒频移和多普勒扩展较大等问题。为了在列车高速移动中解决这些问题&#xff0c;这篇文章概括了5G关键技术&…

掌动智能浅谈云网络流量分析的主要过程

在云计算时代&#xff0c;网络流量分析成为确保网络安全和性能的重要环节。随着企业和组织将应用和服务迁移到云平台&#xff0c;对云网络流量进行深入的分析变得至关重要。本文将介绍云网络流量分析的主要过程&#xff0c;以帮助读者更好地理解如何有效地监控和管理云环境中的…

MySQL进阶|MySQL中的事务(一)

文章目录 数据库事务MySQL中的存储引擎InnoDB存储引擎架构什么是事务事务的状态总结 数据库事务 MySQL 事务主要用于处理操作量大&#xff0c;复杂度高的数据。比方我想要删除一个用户&#xff08;销户&#xff09;以及这个用户的个人信息、订单信息以及其他信息&#xff0c;这…

对JVM内存模型的理解

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

MySQL主从复制详解

目录 1. 主从复制的工作原理 1.1. 主从复制的角色 1.2. 主从复制的流程 2. 配置MySQL主从复制 2.1. 确保主服务器开启二进制日志 2.2. 设置从服务器 2.3. 连接主从服务器 2.4. 启动复制 3. 主从复制的优化与注意事项 3.1. 优化复制性能 3.2. 注意复制延迟 3.3. 处理…

干涉光学测试导论

1.用于光学测试的基本干涉仪 2。相移干涉术 3。专业光学测试 4。长波长干涉术 5。非球面试验 6。表面微观结构的测量 7。绝对测量 8。结束语 第1部分-光学测试用基本干涉仪 (1)双光束干涉 (2)菲佐干涉仪和特维曼-格林干涉仪 (3)测试平面和球面的基本技术 (4)球面的基本…

2020年度NPcon-容器与微服务实践峰会 回顾

一&#xff0c;会议基本信息 时间&#xff1a;12月16日14:00-17:00 地点&#xff1a;上海机遇星球&#xff08;上海市黄浦区南京西路389号明天广场裙楼2楼&#xff09; 电梯旁边的指示牌 会场现场 出来的时候&#xff0c;天快黑了 二&#xff0c;内容回顾 由四个讲座和一个…

(5)shell命令以及Linux的权限

写在前面 本章我们将重点讲解 Linux 权限&#xff0c;这是 Linux 基础部分中非常重要的一部分。内容比较干&#xff0c;我会稍稍正经些去讲解。话不多说&#xff0c;我们直接切入正题。 shell 命令及运行原理 严格意义上说的是一个操作系统&#xff0c;我们称之为 —— &…

【AI基础设施】智算场景的资源管理系统与未来展望

高性能计算与智算场景 首先澄清两个概念&#xff0c;高性能计算与智算场景&#xff0c;高性能计算主要是面向天气预测、生物计算、材料计算等场景&#xff0c;而最近几年很火的智算主要是面向AI场景的计算&#xff0c;如语音识别、图像识别、自动驾驶等场景&#xff0c;我们可…

Git 如何撤回已 Push 的代码

在日常的开发过程中&#xff0c;我们广泛利用Git进行版本控制。然而&#xff0c;有时我们可能会误将错误的代码推送到远程仓库&#xff0c;或者希望在本地返回到先前的某个版本以重新进行开发。 就像我个人的经历一样&#xff0c;我曾推送了一些我认为未来会非常有用的优化方案…

14:00面试,14:05就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到12月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40…

SQL进阶理论篇(十一):什么是MVCC?

文章目录 简介什么是MVCC快照读与当前读悲观锁的问题示例参考文献 简介 在MySQL中&#xff0c;默认的隔离级别是可重复读&#xff0c;可以解决脏读和不可重复读的问题&#xff0c;但不能解决幻读问题。如果想要解决幻读问题&#xff0c;就需要采用串行化的方式&#xff0c;通过…

数据结构——【万字文章+配图+代码】带你深入理解二叉树

1. 二叉树的概念 二叉树是一种有限集合&#xff0c;由根和左右子树构成&#xff0c;每个结点最多有两棵子树&#xff0c;且这两棵子树具有顺序关系 2. 二叉树的特殊情况&#xff1a; 2.1 满二叉树&#xff1a; 一个二叉树&#xff0c;如果每次的结点都达到最大值&#xff…

07-Eventing及实践

1 Knative Eventing的相关组件 Knative Eventing具有四个最基本的组件&#xff1a;Sources、Brokers、Triggers 和 Sinks 事件会从Source发送至SinkSink是能够接收传入的事件可寻址&#xff08;Addressable&#xff09;或可调用&#xff08;Callable&#xff09;资源 Knative S…

二维码智慧门牌管理系统升级解决方案:房屋管理

文章目录 前言一、一站式服务二、全方位管理三、未来展望四、智慧解决方案 前言 科技带来智慧生活 随着科技的不断发展&#xff0c;智能化已经成为我们生活的重要组成部分。二维码智慧门牌管理系统是这一趋势中的关键工具之一。除了提供标准地址服务外&#xff0c;该系统还为房…

全栈开发中的安全注意事项:最佳实践和工具

安全性是当今数字环境中最重要的问题&#xff0c;而在全栈开发中这一点尤为重要。当企业努力创建强大且动态的应用程序时&#xff0c;他们必须应对复杂的安全威胁领域。在本文中&#xff0c;我们将探讨开发人员可以用来确保安全的全栈开发环境的最佳实践和工具。 1.1 全栈开发的…

电脑软件:推荐一款非常实用的屏幕截图软件

目录 一、功能介绍 二、软件特色 三、常用快捷键 四、软件总结 五、软件下载 FastStone Capture是一款功能强大的屏幕截图软件&#xff0c;它可以帮助用户轻松地捕获屏幕上的任何区域&#xff0c;并将其保存为各种格式的图像文件。以下是关于FastStone Capture软件的一些详…