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

概览

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​工程​师,​我们​会​尽快​给​您​回​电!