Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

NI CompactRIO扫描模式在NI LabVIEW软件中的使用

1 ratings | 2.00 out of 5
Read in | Print | PDF

Overview

LabVIEW 8.6实时模块引入了功能强大的新功能,在CompactRIO硬件编程中能够缩短开发时间,降低开发复杂度,同时提供实现监测和维护CompactRIO应用的工具。CompactRIO是一款高性能可编程自动化控制器(PAC),不同的核心构架使它区别于现场可编程门阵列(FPGA)。FPGA的最高层是可重复编程的硅片,FPGA为自定义硬件提供高性能及可靠性的同时,保持了软件定义系统的灵活性。传统上,对FPGA的使用仅限于能够熟练使用VHDL及其它硬件描述语言的硬件设计工程师;然而LabVIEW让您无需这类专业知识就能从FPGA中受益。LabVIEW是一款功能强大且直观的图形化编程语言,它内置上百种控制、分析、通信、及数据记录功能。CompactRIO完全可通过LabVIEW来编程,包括FPGA、实时处理器、及人机界面(HMI)等。

通过LabVIEW 8.6实时模块中的新功能 - CompactRIO扫描模式,您可以在两个方案中选择其一:在无需对FPGA编程的情况下直接在LabVIEW Real-Time及主机应用程序中访问I/O模块;或者在LabVIEW FPGA编程中访问I/O模块从而实现最大的灵活性及性能。您还能通过全新的测试面板及I/O强置功能来快速启动、运行,实现高级调试及系统性能监测。

缩短开发时间,降低开发难度

图1. CompactRIO扫描模式提供与LabVIEW Real-Time和主机VI的I/O直接连接,

无需FPGA编程或编译

传统上,访问CompactRIO I/O是通过对FPGA编程来实现的,而在LabVIEW Real-Time中,通过LabVIEW FPGA交互VI。CompactRIO扫描模式自动监测I/O模块,将其添加入LabVIEW项目。您可以将I/O变量拖拽到LabVIEW Real-Time及主机VI程序框图中,并立即读写经比例变换、校准后的I/O数据,无需FPGA编程或编译(见图2)。

图2.在LabVIEW实时系统下,通过在程序框图中拖拽I/O变量直接访问I/O

NI扫描引擎,是一款新的LabVIEW Real-Time组件,它能够以用户设定频率值来更新I/O变量(频率最高达1 kHz)。所有扫描的通道由硬件定时来实现模块间的同步。您可以在LabVIEW项目中配置扫描引擎,或通过内含的 VI库来编程。扫描引擎还能提供定时循环的定时源,从而可以同步低抖动控制应用中的I/0更新的代码。还可以为I/O变量创建别名,在物理I/O通道上抽象出新的I/O层。同时,可对I/O变量和命名进行线性比例变换。

CompactRIO扫描模式为现有的8通道数字NI C系列模块加入计数器、正交编码器、及脉冲宽度调制器(PWM)等功能,无需任何编程。您可以在LabVIEW项目中配置这些专业数字功能,然后在FPGA上精确、高速运行。现在,您可以在无需编译的情况下实现高达1 MHz的边沿计数器、脉宽及频率测量、正交编码、及PWM控制等功能。

计数器特有属性

  • 在8通道上实现1 MHz计数
  • 32位计数寄存器,可编程中断计数
  • 可配置中断计数及中断计数行为
  • 可配置计数边沿 (上升沿、下降沿、或同时),源及门
  • 周期、PWM、及频率测量并且可配置时基

正交编码器特有属性

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

PWM特有属性

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

轻松安装、调试、及监测

NI分布式系统管理器是LabVIEW 8.6中的另一新工具,它能够监测网络系统,管理发布数据。在CompactRIO扫描模式下,全新的系统管理器为CompactRIO模块提供了测试前面板。系统联网并就绪后,即刻能得到I/O的实时值及历史趋势值,用于快速校验连接性及信号完整性。除了测试面板外,系统管理器还能显示CompactRIO控制器的内存占用及处理器负载。

图3.全新NI分布式系统管理器通过在CompactRIO中加入测试面板帮助您快速启动及运行

CompactRIO扫描模式下引入I/O强置工具,这款调试工具用于重置I/O变量值,且无需中止或修改实时应用程序。您可以通过强制设置输入值来测试系统响应,从而代替物理仿真;还可以强制设置输出来重置程序的输出值。您可以通过系统管理器或全新I/O强置VI来强制设置通道值。

LabVIEW FPGA及CompactRIO扫描模式

LabVIEW 8.6实时模块中可通过CompactRIO扫描模式或LabVIEW FPGA来访问每个模块。通过LabVIEW FPGA可以实现自定义触发、基于硬件的分析、信号处理、或高速模拟传输。要在LabVIEW FPGA 模式下使用I/O模块,只需简单地将其拖入LabVIEW 工程中的FPGA目标,从扫描模式下移除。然后在LabVIEW FPGA下对模块编程,使用I/O变量读写其余模块的I/O(见图4)。

图4.该VI通过CompactRIO扫描模式访问I/O,

同时通过LabVIEW FPGA对输入的加速度数据进行快速傅立叶变换

如果在一个或多个模块中采用LabVIEW FPGA模式,FPGA上的CompactRIO扫描模式逻辑,又称RIO扫描接口,通过LabVIEW FPGA VI在单独FPGA应用中编译。如果模块都未配置为扫描模式,RIO扫描接口就不会被编译。

深入理解CompactRIO扫描模式

CompactRIO扫描模式主要包括两个技术:NI扫描引擎和RIO扫描接口。RIO扫描接口是由美国国家仪器公司开发的一系列FPGA知识产权(IP),下载在CompactRIO FPGA上,用于实现I/O模块检测、定时、同步、通信等功能。RIO扫描接口执行硬件定时的扫描循环,更新物理I/O值。两条DMA通道用于在FPGA和实时操作系统(RTOS)之间传输I/O数据。之前创建的专用于数字化的功能也是RIO扫描接口的一个组件。更多关于RIO扫描接口的信息,请参阅下文的“相关资源”部分。

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变量属性页面关闭该功能。

当LabVIEW FPGA使用CompactRIO扫描模式时(有些模块使用CompactRIO扫描模式;而另一些模块采用LabVIEW FPGA模式),RIO扫描接口及FPGA VI共同编译成一个比特流,并部署于FPGA上。在LabVIEW FPGA模式下通过LabVIEW Real-Time 中的FPGA接口VI来访问I/O模块,而在扫描模式下通过I/O变量来连接I/O模块。如果将扫描模式下的所有模块都移除,RIO扫描接口将不会被编译到比特流。RIO扫描接口在FPGA上占用的空间取决于处于扫描模式下的模块数量。

图5. 深入理解CompactRIO扫描模式

CompactRIO扫描模式的应用场合

在某些应用中,需要高达1 kHz的同步更新率来更新I/O,CompactRIO扫描模式就是专为了这些应用所设计的。通过特定的数字化功能您可以在扫描模式下将现有的8通道数字I/O模块设计成高级的PWM、计数器、正交编码器模块等。通过系统管理器中的 I/O强置及测试面板功能,可在扫描模式下实现初始化设置、系统性能监测、及高级的故障排除等功能。对于更高性能要求的应用,例如接近1 MHz的模拟传输、高于1 kHz的高速PID控制回路、自定义硬件分析及信号处理、或不支持扫描模式的I/O模块等,可采用LabVIEW FPGA模块的扫描模式。您还可以通过LabVIEW FPGA模块从实时控制器上卸载处理。

由于RSI FPGA空间需求,扫描模式能够支持运行VxWorks RTOS的至少2M门的FPGA控制器。支持的控制器包括:NI 9012、NI 9014、NI 9073、及NI 9074。支持的底板包括: NI 9103、NI 9104、NI 9073、及NI 9074。

在使用CompactRIO扫描模式时可能要牺牲一些性能,例如:特定数字化功能支持高达1 MHz的计数器,相对的LabVIEW FPGA的支持可达到20 MHz。扫描引擎用到的系统资源,包括:FPGA空间、2个DMA通道、存储器、及取决于扫描频率的CPU运算时间。RSI消耗的FPGA空间取决于运行于扫描模式下模块数量。

结论

LabVIEW 8.6实时模块添加了一系列功能强大的特性,能够缩短CompactRIO开发时间,降低开发难度。通过CompactRIO扫描模式,无需FPGA编程即可在LabVIEW Real-Time及主机应用中访问I/O,同时还能选择直接对FPGA编程来满足最高级的应用需求。NI分布式系统管理器及I/O强置工具同时为CompactRIO提供了测试面板和高级调试功能,从而能够轻松实现对CompactRIO应用的监测,维护。

相关资源

如果您有任何问题,请留言给NI工程师,我们会尽快给您回电!

 

1 ratings | 2.00 out of 5
Read in | Print | PDF

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).