虚拟仪器
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 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扫描模式主要包括两个技术: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扫描模式
在某些应用中,需要高达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应用的监测,维护。
在线研讨会:CompactRIO 交互式指南视频
中文网页:了解 LabVIEW 最新版本
下载索取:LabVIEW评估版
技术文档: LabVIEW I/O变量值与NI扫描引擎的使用
全部0条评论
快来发表一下你的评论吧 !