【NI-RIO入门】扫描模式

这篇具有很好参考价值的文章主要介绍了【NI-RIO入门】扫描模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       于NI KB摘录

         所有CompactRIO设备都可以访问CompactRIO扫描引擎和LabVIEW FPGA。 CompactRIO 904x 系列是第一个引入 DAQmx 功能的产品线。

  • 扫描引擎(IO 变量) – 主要为迁移和初始开发而设计。控制循环频率高达 1 kHz1,性能控制器上的频率更高。
  • 实时 (NI-DAQmx) – 专为波形采集和访问硬件定时而设计。控制环路频率高达 5kHz。
  • LabVIEW FPGA 模块 – 专为定制协议、协同处理和可靠性而设计。 MHz 范围内的控制环路。 

        使用 CompactRIO 扫描模式,您可以选择直接在 LabVIEW Real-Time 和主机应用程序中访问每个 I/O 模块(无需 FPGA 编程)或在 LabVIEW FPGA 中访问,以获得最大的灵活性和性能。您还可以使用新的测试面板和 I/O 强制功能来快速启动和运行、执行高级调试并监控系统性能。

1.什么时候使用扫描模式?

        CompactRIO 扫描模式专为需要高达 1 kHz 速率的同步 I/O 更新的应用而设计1。使用扫描模式的主要好处是易于开发,因为它不需要 FPGA 编程。借助系统管理器的 I/O 强制和测试面板功能,您还可以使用扫描模式进行初始设置、系统性能监控和高级故障排除。

        扫描模式允许用户无需对 FPGA 进行编程即可读取/写入数据。这可以减少不需要板载 FPGA 功率和循环速率的应用的开发时间和复杂性。 

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

        CompactRIO扫描模式会自动检测CompactRIO机箱中的I/O模块并将它们添加到LabVIEW项目中。然后,您可以将 I/O 变量拖放到 LabVIEW Real-Time 和主机 VI 程序框图上。这些 I/O 变量允许您立即读取和写入缩放的、校准的 I/O 数据,而无需任何 FPGA 编程或编译。您可以创建 I/O 变量的别名,以提供物理 I/O 通道的附加抽象层。 I/O 变量和别名可使用线性和平方根缩放。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview 

        NI 扫描引擎是 LabVIEW Real-Time 的一个组件,它以您指定的速率(最高 1 kHz)更新 I/O 变量值1< a i=2>)。所有通道扫描均通过模块间同步进行硬件定时。您可以通过 LabVIEW 项目或以编程方式配置扫描引擎。扫描引擎还提供定时循环定时源,因此您可以将代码与 I/O 更新同步,以实现低抖动控制应用。

        CompactRIO 扫描模式还可以向任何现有的八通道数字 NI C 系列模块添加计数器、正交编码器和脉宽调制 (PWM) 功能,而无需任何 FPGA 编程。您可以通过 LabVIEW 项目配置这些专用数字函数,但它们在 FPGA 上运行以提高准确性和速度。现在,无需编译,您就可以执行高达 1 MHz 的边沿计数、脉冲宽度和频率测量、正交解码和 PWM 控制。

计数器功能包括: 

  • 八个通道 1 MHz
  • 32位寄存器,具有可编程终端计数
  • 可配置的终端计数和终端计数行为
  • 可配置的计数边沿(上升沿、下降沿或两者)、源极和门极
  • 具有可配置时基的周期、PWM 和频率测量

正交编码器功能包括: 

  • 1 MHz 最大四边形计数率
  • 32位计数寄存器
  • 32位速度测量寄存器
  • 可配置的速度测量时基(256 µs、512 µs、...16384 µs 或 32768 µs)
  • X4编码
  • 每个模块有两个四通道,带有 A+B+Index 输入
  • 可选编码器极性

PWM 特定功能

  • 八个输出通道
  • 每通道占空比和周期配置
  • 可配置频率周期(1 Hz、50 Hz、250 Hz、500 Hz、1 kHz、5 kHz、10 kHz 或 20 kHz)

        使用 CompactRIO 扫描模式时需要权衡一些性能。例如,专用数字功能支持高达 1 MHz 的计数器,而 LabVIEW FPGA 可支持 20 MHz 的计数器。扫描引擎使用系统资源,其中包括 FPGA 空间、两个 DMA 通道、内存以及随扫描速率变化的 CPU 时间量。 FPGA 上 RSI 占用的空间随着使用扫描模式的模块数量而变化。 

2. 使用 NI 分布式系统管理器调试和监控 I/O

        

        NI 分布式系统管理器为监控网络上的系统和管理发布的数据提供了一个中心位置。分布式系统管理器为使用 CompactRIO 扫描模式的 C 系列模块提供测试面板。一旦您的系统在网络上可用,您就可以访问实时和历史趋势 I/O 值,以便您可以快速验证连接和信号完整性。除了测试面板之外,系统管理器还可以查看 CompactRIO 控制器的内存使用情况和处理器负载。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

         将NI分布式系统管理器与CompactRIO扫描模式结合使用可提供I/O强制,这是一种调试工具,您可以使用它来覆盖I/O变量的值,而无需停止或更改实时应用程序。您可以强制输入以在没有物理刺激的情况下测试应用程序的响应,也可以强制输出覆盖程序输出值。您可以使用系统管理器或新的I/O强制VI强制通道值。        

3.使用混合模式通过扫描模式和 LabVIEW FPGA 访问模块

        一些应用程序受益于使用 CompactRIO 扫描模式访问某些 I/O 模块,而使用 LabVIEW FPGA 访问其他模块。这称为“混合模式”。当某些模块需要 LabVIEW FPGA 的自定义触发、基于硬件的分析或高速模拟流时,该功能非常有用。 

        要在 LabVIEW FPGA 模式下使用 I/O 模块,只需将模块拖至 LabVIEW 项目中的 FPGA 目标,将其从扫描模式中移除即可。然后使用 LabVIEW FPGA 对模块进行编程,并使用 I/O 变量在其余模块上读写 I/O。 

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

        当在一个或多个模块上使用 LabVIEW FPGA 模式时,FPGA 上的 CompactRIO 扫描模式逻辑(称为 RIO 扫描接口)将与 LabVIEW FPGA VI 一起编译到单个 FPGA 应用程序中。这种逻辑组合会对编译时间和可用于数据传输的 DMA FIFO 产生影响。如果没有模块配置为使用扫描模式,则 RIO 扫描接口不会包含在编译中。

        您可以创建用户定义的I/O变量以提供实时VI和FPGA VI之间的通信。这提供了一种将来自 FPGA VI 的数据插入扫描引擎并在 LabVIEW Real-Time 中读出的方法,使用与扫描模式 I/O 相同的 I/O 变量 API。这些I/O变量还可以将数据从实时VI传递到FPGA;然而,每个 I/O 变量都是单向的。还提供了将 LabVIEW FPGA 代码与 RIO 扫描接口 I/O 更新同步的方法。

        例如,假设 CompactRIO 系统使用 LabVIEW FPGA 监控 50kHz 的加速度计并实时计算 RMS,FPGA 上的 RMS 计算可以同步到 FPGA 扫描模式逻辑并写入用户定义的 I/O变量,然后在 LabVIEW Real-Time VI 中访问该变量。

4. CompactRIO 扫描模式架构

 文章来源地址https://www.toymoban.com/news/detail-805408.html

RIO扫描接口

        CompactRIO 扫描模式由 RIO 扫描接口和 NI 扫描引擎这两种技术提供支持,它们协同工作以提供对 CompactRIO 上物理 I/O 的访问。 RIO扫描接口是NI开发的一套FPGA知识产权(IP),下载到CompactRIO FPGA中,负责I/O模块检测、定时、同步和通信。 RIO 扫描接口运行硬件定时扫描循环,更新物理 I/O 值。两个 DMA 通道用于在 FPGA 和实时操作系统 (RTOS) 之间传输 I/O 数据。该实现在引脚处提供硬件定时 I/O 更新,抖动小于 500ns。  

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

 NI 扫描引擎和 RIO 扫描接口的同步可在引脚处保持低于 500ns 的抖动。

        RIO 扫描接口包含多个组件,可实现其灵活性和性能。每个 I/O 模块直接与盒控制器通信,盒控制器负责检测模块类型并向模块传送 I/O 数据。墨盒控制器是一个“软核”八位微控制器,在 FPGA 中实例化,允许您使用任何支持的 I/O 模块而无需编译。 RIO 扫描接口中还有两个预构建的专用数字模块,可为任何八通道(或更少)数字 C 系列模块提供高速计数器、脉宽调制 (PWM) 和正交编码器输入功能。专用数字模块可以路由到 CompactRIO 机箱中的任意两个插槽。可以使用 LabVIEW FPGA 模块添加其他专用数字模块。每个卡盒控制器与一个卡盒管理器通信,该管理器控制硬件扫描定时、I/O 模块同步以及与 NI 扫描引擎的同步。 DMA 引擎还与盒控制器和盒管理器通信,以将数据传输至实时控制器或从实时控制器传输数据。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

RIO 扫描接口包含多个组件,所有这些组件均在 FPGA 中实例化。

NI 扫描引擎

        NI 扫描引擎是 LabVIEW Real-Time 的一个组件,其运行优先级高于时间关键型或介于时间关键型和定时结构之间(您可以对其进行配置)。每次RIO扫描接口完成最新的I/O扫描时,LabVIEW将I/O变量添加到全局扫描引擎内存映射中,并同时更新所有I/O变量的值。但是,您可以将每个 I/O 变量节点配置为使用扫描访问或直接访问。默认情况下,LabVIEW将I/O变量节点配置为使用扫描I/O,即使用扫描引擎内存映射来执行非阻塞I/O读取和写入(见图5)。直接 I/O 访问绕过扫描引擎内存映射并直接与 I/O 设备驱动程序通信以执行阻塞 I/O 读取和写入(参见图 5)。 NI 扫描引擎还将 I/O 变量发布到网络,使它们可在主机应用程序、测试面板和 I/O 强制中进行读写。扫描引擎(而不是LabVIEW共享变量引擎)处理I/O变量的网络发布,您可以从I/O变量属性页面禁用它。

        当硬件忙于从 I/O 模块获取数据时,FPGA 内的定时信号被置位。此硬件扫描的周期由您在扫描引擎属性中指定的扫描速率决定。每次硬件扫描结束时,扫描引擎都会在控制器和 FPGA 之间传输 I/O 数据。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

 FPGA 内的时序信号决定 I/O 数据何时从 FPGA 传输到实时控制器。

混合模式(使用 LabVIEW FPGA 的扫描模式) 

        CompactRIO 扫描模式最强大的功能之一是能够选择单个模块直接使用 LabVIEW FPGA 模块进行编程。使用这种方法,您选择直接使用 LabVIEW FPGA 进行编程的模块将从 I/O 扫描中删除,其余模块则与 RIO 扫描接口进行通信。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

 CompactRIO 混合模式底层。

        当您编译LabVIEW FPGA VI时,如果任何I/O模块配置为使用扫描模式,则RIO扫描接口的必要组件将包含在编译中。结果是一个单位文件,支持配置为使用扫描模式的模块的扫描模式功能,以及直接与其余 I/O 模块通信的自定义 FPGA 逻辑。 LabVIEW 具有智能编译功能,仅包含给定配置所需的 RIO 扫描接口组件。例如,如果您编译的FPGA VI在扫描模式下仅使用一个模块,则RIO扫描接口中将仅包含一个盒式控制器。如果未配置,专用数字块也会被删除。因此,在编译 FPGA VI 时,RIO 扫描接口消耗的 FPGA 空间量与使用扫描模式的模块数量成比例。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

 

在扫描模式和 LabVIEW FPGA 中访问 I/O 模块时,仅编译所需的 RIO 扫描接口组件。

输入/输出时序

        当硬件扫描信号有效时,所有 I/O 模块上的转换时钟自由运行。每个 I/O 模块类型都有单独的转换时序,相同类型的模块具有同步转换。当 FPGA 上的硬件定时信号未置位时,最新的 I/O 转换值将传输至 NI 扫描引擎。每个模块执行尽可能多的转换,以向配置为直接 I/O 访问的 I/O 变量提供最新的 I/O 值,从而绕过扫描并直接从硬件读取。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

输入模块时序。

        慢速输入模块可能需要几个硬件扫描周期来转换单个通道。在这种情况下,硬件扫描会触发所有通道上的一系列转换。在所有通道完成转换之前,不会将通道值复制到扫描引擎,然后将所有通道值一起传输。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

慢速模块的输入时序。

        输出模块时序与输入模块时序类似,但转换是左对齐的,以便在扫描开始时立即写入输出值。每个模块在硬件扫描期间执行尽可能多的更新,以便写入配置为直接 I/O 访问的 I/O 变量的值将尽快更新。

compactrio最小扫描周期,NI-RIO入门【CompactRIO】,CompactRIO,labview

5. C系列模块和 CompactDAQ 或 CompactRIO 硬件与 LabVIEW 的兼容性

C Series Module and CompactDAQ or CompactRIO Hardware Compatibility with LabVIEW - NI 

 

到了这里,关于【NI-RIO入门】扫描模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LabVIEW CompactRIO 开发指南 3 选择CompactRIO编程模式

    第二章 选择CompactRIO编程模式 第一章中介绍的CompactRIO架构为我们提供了通过LabVIEW FPGA定制FPGA硬件或使用NI CompactRIO扫描模式来实现I/O的选项。如果计算机上有LabVIEW Real-Time和LabVIEW FPGA,那么当向LabVIEW项目添加CompactRIO目标时,将提示选择想要使用的编程模式。在选择一种模式后

    2024年02月02日
    浏览(35)
  • 【LabVIEW FPGA入门】没有CompactRIO时进行编程测试

            1.新建一个空白项目。                  2.新建cRIO终端。         要添加仿真的远程实时目标,请选择项目名称,右击并选择 新建目标和设备(Targets and Devices) 。                   3.新建终端和设备,选一个cRIO型号         接下来,当添加目标和设备

    2024年01月17日
    浏览(40)
  • 在 NI VeriStand 中使用 NI FPGA 设备的入门资料

    在 NI VeriStand 中使用 NI FPGA 设备的入门资料 - NI 软件 VeriStand LabVIEW FPGA Module 驱动 NI CompactRIO NI R Series Multifunction RIO FlexRIO NI VeriStand 是一个用于配置实时测试应用程序的软件环境,包括 hardware-in-the-loop (HIL) 模拟器和测试单元控制和监控系统。当 NI VeriStand 添加实时 I/O 接口时,

    2024年02月03日
    浏览(44)
  • 【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信

            NI提供了 SPI and I2C Driver API:下载SPI and I2C Driver API - NI         该API使用FPGA数字I / O线与SPI或I2C设备进行通信。         选择数字硬件时,要考虑三个选项: NI Single-Board RIO硬件可同时使用SPI和I2C驱动程序。 NI 9401 C系列模块与SPI驱动程序配合使用效果最佳。

    2024年02月02日
    浏览(59)
  • 【NI-DAQmx入门】LabVIEW中DAQmx同步

            触发器: 触发器是控制采集的命令。您可以使用触发器来启动、停止或暂停采集。触发信号可以源自软件或硬件源。         时钟: 时钟是用于对数据采集计时的周期性数字信号。根据具体情况,您可以使用时钟信号直接控制数据采集或作为参考时基来导出

    2024年01月15日
    浏览(34)
  • 【Spring专题】Spring之Bean的生命周期源码解析——上(扫描生成BeanDefinition)

    由于Spring源码分析是一个前后联系比较强的过程,而且这边分析,也是按照代码顺序讲解的,所以不了解前置知识的情况下,大概率没办法看懂当前的内容。所以,特别推荐看看我前面的文章(自上而下次序): Spring底层核心原理解析——引导篇【学习难度: ★★☆☆☆ 】

    2024年02月13日
    浏览(40)
  • 【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)

    由于Spring源码分析是一个前后联系比较强的过程,而且这边分析,也是按照代码顺序讲解的,所以不了解前置知识的情况下,大概率没办法看懂当前的内容。所以,特别推荐看看我前面的文章(自上而下次序): Spring底层核心原理解析——引导篇【学习难度: ★★☆☆☆ 】

    2024年02月13日
    浏览(44)
  • STM32系列单片机“中断触发时间、最小中断周期、指令周期、平均执行速度、和单条指令执行时间”的问题研究

    查阅相关资料书籍和博客总结了一下知识点,以便学习巩固复习。 在学习《ARM Cortex-M3与Cortex-M4权威指南(第3版)》 这本书具体说明了触发中断需要多长时间。 在权威指南的第74页提到, Cortex-M3和Cortex-M4的中断等待非常小,只有12个周期 。也就是说触发中断后,需要12个时钟

    2024年04月10日
    浏览(42)
  • STM32中ADC的单次转换与连续转换模式 扫描与非扫描模式

    单次转换模式 (Single Conversion Mode):在单次转换模式下,ADC按照设定的配置执行一次转换,然后停止转换并等待进一步的触发。这种模式适用于需要单次获取转换结果的应用场景。 连续转换模式 (Continuous Conversion Mode):在连续转换模式下,ADC在完成一次转换后自动开始下

    2024年02月02日
    浏览(43)
  • stm32矩阵键盘(扫描模式)

    因为最近开发一个项目需要用到3*4的矩阵键盘,所以我就写了一下相关的矩阵键盘的内容,分享出来供大家参考。 特别感谢:Yeah__binbin 我所用到的矩阵键盘是3*4的矩阵键盘实物图如下 其中是4行3列,示意图如下 采用循环扫描的方式主要是应用while循环来进行,优点是可以进

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包