LabVIEW NI CompactRIO控制器:性能和吞吐量基准测试

news2025/4/10 7:04:19

LabVIEW NI CompactRIO控制器:性能和吞吐量基准测试

CompactRIO控制器基于LabVIEW RIO架构,采用了功能强大的64位Intel Atom E3800片上系统(SoC)和Xilinx Kintex7 FPGA等最新技术。Intel Atom SoC提供了极高的性能和丰富的功能,包括集成式GPU和多核处理器。比起其他CompactRIO控制器的FPGA,Kintex-7325T FPGA包含大约3倍的复杂逻辑块和超过13倍的DSP片。FPGA与处理器使用PCI Express总线进行通信,大大提高了吞吐量,并可访问16个DMA通道。

全新CompactRIO控制器采用的LabVIEW RIO架构提供了软件灵活性,可将人机界面和控制任务整合到同一个终端和同一个操作系统中。这主要归功于多核IntelAtom SoC和NI Linux Real-Time操作系统提供的特性。NI Linux Real-Time操作系统可将任务优先级显示给开发人员,为控制任务分配的优先级应高于同一应用中运行的人机界面软件任务。

这些技术的结合大大提高了闭环控制应用的系统吞吐量并降低了延迟。CompactRIO控制器为嵌入式设计人员提供了灵活强大的硬件,同时还有助于降低系统复杂性和成本。

为了证明CompactRIO控制器的性能,编制了一系列控制和监测应用基准测试。这些测试同样适用于CompactRIO控制器(NI cRIO-903x)的所有双核和四核变体。

基准测试设置和测量

选择了具有代表性的常见控制和监测应用以及这些应用中常见的主要任务进行基准测试。下表列出了本次研究要进行的测试。

表1-在NI CompactRIO控制器上进行测试,以测量应用的性能和吞吐量

本研究的测试对象是以下硬件终端:

• NI cRIO-9025 | 800 MHz,PowerPC

• NI cRIO-9068 | 667 MHz,ARM Cortex-A9双核

• NI cRIO-903x | 1.33 GHz,Intel Atom双核

• NI cRIO-903x | 1.91 GHz,Intel Atom四核

• NI cRIO-9082 | 1.33 GHz,Intel Core i7双核

虽然本研究重点关注的是CompactRIO控制器及其与同一产品系列中其他现有控制器的性能对比,例如双核变体的cRIO-9025和四核变体的cRIO-9082,但是其他CompactRIO产品系列的代表性硬件终端,如cRIO-9068,也包含在测试中,以便读者更全面地了解CompactRIO系统所提供的各种可能性。

CPU使用率作为通用指标,用以比较这些CompactRIO控制器的相对性能。对于每个测试,通过在稳定的状态下,改变数据传输的通道数或控制循环速率来测量CPU使用率。这些指标可以帮助了解可用于添加代码、提高循环速率或增加数据传输通道的资源。

其他考量因素:

• 对于搭载多核处理器的CompactRIO系统,取每个内核测试结果的平均值。

• 对于CompactRIO控制器,分别在启用和禁用嵌入式用户界面的条件下进行测试,以测量该功能对系统整体性能的影响。

测试1-LabVIEW FPGA控制示例项目的性能基准测试

全新高性能CompactRIO系统采用的技术组合为复杂的实际应用带来了无可比拟的性能提升。针对控制应用测试,选择基于CompactRIO的LabVIEW FPGA控制示例项目。以该示例项目为基础,在实时控制器上执行8通道三次样条轨迹生成算法进行扩展,进一步增大CPU的负荷。

图1-基于CompactRIO的LabVIEW FPGA控制示例项目的架构框图,其中包含了一个8并联通道三次样条轨迹生成算法

下图显示的数字表示控制循环速率为1.5 kHz时的CPU使用率。在该速率下,双核高性能控制器使用约15%的处理器资源。相对于需要70%处理器资源的cRIO-9025控制器,这是一个重大改进。类似地,四核高性能控制器只使用5%的处理器资源,可以看到这与cRIO-9082控制器的性能非常相似。

图2-当控制循环速率为1.5 kHz时,控制应用运行包含8通道三次样条轨迹生成算法所需的处理器资源比较

对于CompactRIO控制器,在启用嵌入式用户界面选项的设置下又重复进行了该测试,由于本次测试没有涉及基于CompactRIO的LabVIEWFPGA控制示例项目的人机界面部分,因此CPU使用率并没有明显的变化。

测试2-监测应用的吞吐量基准测试

监测应用中一个常见的任务是将数据从I/O通道移动到实时处理器进行进一步处理、记录或可视化。设计了一个简单的测试来重现这一场景,并测量数据传输通道数发生变化时的CPU使用率。每个通道以100 kHz的控制循环速率传输16位采样数据。测试不包含任何数据流盘或在线处理。

图3-监测应用中一个简化的数据流盘任务的架构框图

下图显示了以100 kHz的控制循环速率读写100个通道数据的测试结果。在这个测试中,必须意识到硬件架构之间的细微差别可能会给测试带来瓶颈。例如,虽然cRIO-9068和CompactRIO控制器都使用不同的总线技术实现16个DMA通道,但它们仍然具备较高的理论最大带宽速率:cRIO-9068控制器为320 MB/s,CompactRIO控制器为250 MB/s。然而,CompactRIO控制器因其处理器具备更好的性能,能够以较低的CPU利用率维持较多数量的数据流。

图4-每通道控制循环速率为100 kHz时,读写100个通道的16位采样数据所需的处理器资源

类似于控制应用性能测试,由于本测试没有涉及人机界面,因而CompactRIO控制器的嵌入式用户界面选项对测试并没有太大的影响。如需了解嵌入式用户界面功能的影响,请查看测试3。

测试3-复杂真实应用的性能基准测试

充分发挥cRIO高性能控制器功能的最佳方式也许是进行基于复杂真实应用的测试。大型应用通常结合了不同类型的常见监测和控制任务,包括具有多速率控制的多个处理循环、数据处理、从I/O通道读写数据、数据流盘、通过网络将数据传送到远程人机界面以及执行非时间关键型健康和状态监测任务。

开发了一个包含上述任务的复杂应用,使用RT FIFO、定时循环以及网络流等常见的LabVIEW架构组件来协调各种应用组件并实现它们之间的通信。此外,还设计了一个任务,专门以较高的速度将数据发布到前面板显示控件,充分发挥cRIO高性能控制器的嵌入式用户界面功能。

图5-复杂真实控制和监测应用的架构框图

使用这一应用,NI cRIO-9025可实现大约950 Hz的最大控制循环速率。在该速率下,NI cRIO-9025的CPU使用率是91%,而双核高性能控制器仅使用可用处理器资源的15%就能达到相同的速率。这为增加额外的应用任务保留了大量的可用CPU资源,或者对于这个复杂的控制和监测应用,循环速率可提高到2 kHz以上。另一方面,可以看到四核变体在所有循环速率上都显示出与cRIO-9082非常相似的性能。

图6-在不同控制循环速率下,运行包含多个常见控制和监测任务的复杂应用所需的CPU使用率。

嵌入式用户界面的影响

CompactRIO控制器通过实现具有嵌入式用户界面支持的本地人机界面,以降低系统成本和复杂性。这主要归功于这款全新的控制器采用了最新的Intel Atom处理器,该处理器及其具有的显卡支持为使用NILabVIEW构建控制系统逻辑和触摸式用户界面提供了高性能基础。为了实现该集成,LabVIEW开发环境和NI Linux Real-Time操作系统会将任务优先级显示给开发人员,为控制任务分配的优先级应高于同一应用中运行的人机界面软件任务。

在该方法中,终端的资源用于系统控制和驱动用户界面的显卡。这降低了系统的硬件成本和维护负担,简化了软件开发的复杂性,但相对于其他显示选项会消耗更多的控制器资源。

为了测量嵌入式用户界面对处理器资源的影响,对测试3进行修改,在高速率下更新其组件,以连续运行人机界面。下图显示了在测试3的活跃用户界面下使用嵌入式用户界面功能的影响。

图7-启用嵌入式用户界面功能后,在高速率下更新用户界面,可以看到增加的CPU使用率大约恒定在3%-10%。

在满负荷下,使用嵌入式用户界面功能会导致双核高性能控制器的CPU使用率增加约10%,四核高性能控制器的CPU使用率增加约3%。类似于测试1和2,无论数据传输通道数如何变化,嵌入式用户界面功能的影响保持恒定。

为了支持嵌入式界面的图形处理能力,Intel Atom SoC采用了板载GPU来增强CPU。GPU通过频繁的处理器中断调用来与处理器进行通信,中断调用需要占用一定的LabVIEW Real-Time应用处理时间。由于采用高性能Intel Atom CPU,更新GPU所需的可变处理时间会持续增加,在测试3的应用基准测试中,控制循环速率低于6 kHz。为了实现更高的控制循环速率,同时仍然利用嵌入式用户界面,可以禁用GPU或将LabVIEW控制代码转移至板载FPGA,详情可参考以下链接。

对于嵌入式用户界面可能会影响系统性能的应用,请遵守以下建议:

通过LabVIEW中的处理器内核分配任务执行来进一步隔离任务。

如果需要进一步的隔离和更高的硬件可靠性,将LabVIEW控制代码转移至板载FPGA的硬件逻辑。

禁用Intel Atom SoC的GPU,以牺牲CPU利用率来减小抖动。

结论

嵌入式应用可执行的功能越来越多,如运动控制、数据记录、视觉采集和人机界面。由于NI CompactRIO控制器集成了最先进技术和独特的功能,可大幅加快开发时间并降低系统复杂性和成本,因而成为这些应用的理想选择。

相对于其他控制器产品系列,CompactRIO控制器有了显著的性能提升,而且扩展了可兼容NI Linux Real-Time等关键技术的终端范围。NI CompactRIO控制器基于LabVIEW RIO架构提供了灵活、功能强大的硬件和软件技术,适用于各种嵌入式控制和监测应用。

通过这一系列基准测试,证明CompactRIO控制器比同类CompactRIO控制器产品系列中的现有产品(如cRIO-9025),性能大约提升了4到8倍。此外,四核变体控制器的性能与cRIO-908x非常相似。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

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

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

相关文章

数据结构实验二 :二叉树的操作与实现

数据结构实验一:线性表,堆栈和队列实现 数据结构实验二 :二叉树的操作与实现 数据结构实验三: 图的操作与实现 数据结构实验四 : 查找和排序算法实现 文章目录一、实验目的:二、使用仪器、器材三、实验内容及原理1、教材P247实验题1:实现二叉树的各种基本…

Mybatis 笔记

一、mybatis简介 1.1 框架概念 软件的半成品,完成软件开发过程中的通用操作,实现特定的功能,从而简化开发人员在软件开发中的步骤,提升开发效率。 1.2 常用框架 MVC框架:简化servlet的开发步骤,与前端交…

java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能

一、前言oracle和mysql的group by 分组功能大家应该清楚,那如何使用java实现同样的功能呢比如下面这个表idnameagemathEnglish10yujianlin2092.5103ww84102520102611036310351020我们需要按id分组,求最大age和math累计成绩我们的sql应该这样写select id,…

Linux下的安装环境

目录 软件安装常识 Linux软件安装生态 Linux软件生态的本土化 yum的三板斧:查找、安装、卸载 yum补充的3个小知识 软件安装常识 我们知道Linux下有一条命令可以下载安装指令,那就是yum。在了解yum之前得先说一下Linux的整体安装环境。 Linux下用y…

每日学术速递2.1

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.Cv 1.SeaFormer: Squeeze-enhanced Axial Transformer for Mobile Semantic Segmentation 标题:SeaFormer:用于移动语义分割的挤压增强型轴向变换器 作者: Qian…

从 await-to-js 到 try-run-js

之前在做 code review 时候发现有同事使用 try catch 包装了一堆异步代码,于是个人就觉得很奇怪,难道不应该只 catch 可能出问题的代码吗?同事告诉我说 try catch 太细的话会出现内外作用域不一致,需要提前声明变量。 let res: D…

【微服务】微服务保护Sentinel

微服务保护Sentinel1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel1.4.微服务整合Sentinel2.流量控制2.1.簇点链路2.1.快…

豆瓣引流流程

豆瓣引流注册账号养号如何把豆瓣的帖子打造好并且引流到微信注册账号 第一:可以去营业厅或者卡商那里购买一批卡来进行注册。 第二:可以通过接码平台进行大量的一个小号注册,我们注册的号前期是作为一个顶帖号来使用。 第三:我…

商业智能 BI 跟业务系统的思维差异

我们在跟企业的沟通过程中经常发现,很多企业还是分不清商业智能 BI 跟一般的业务信息化系统定位、用户、思维层面上的差异。因为在企业的IT信息化规划中,基础的业务系统建设一定是走在前面的,有了这些系统基础,才会有数据的积累&a…

Python绘制图片一

文章目录一、代码段讲解1. theta np.linspace(0.0, 2 * np.pi, N , endpointFalse)2. ax plt.subplot(111,projectionpolar)3. bar.set_facecolor(plt.cm.viridis(r / 10.))4. bar.set_alpha(0.5)二、附录一、代码段讲解 1. theta np.linspace(0.0, 2 * np.pi, N , endpoint…

Windows软件:如何使用VMware® Workstation 16 Pro安装Centos7操作系统

前言: 在我们开发Java项目当中,经常会将jar包部署在Linux操作系统中运行,其中Centos7使用最广泛,前后端的各种运行环境所必须的软件均在此上运行,本章我们就来讲一下如何使用VMware安装Centos7系统,以便我们…

08技术太卷我学APEX-页面上显示静态图片

08技术太卷我学APEX-页面上显示静态图片 0 我想在首页面上留个人微信二维码和微信群二维码 我想在《技术太卷我学APEX》首页上留下联系方式,方便同学们加群一起交流联系方式。 先手机登录个人微信,截图个人微信二维码和《技术太卷我学APEX》微信群二维…

【MyBatis持久层框架】MyBatis参数传递详细解读

文章目录1. 前言2. MyBatis 参数传递3. 多个参数4. 单个参数4.1 POJO类4.2 Map集合类4.3 Collection集合类型4.4 List集合类型4.5 Array类型4.6 其他类型5. 总结1. 前言 前面在使用配置文件实现增删改查一文中,我们说到,使用 MyBatis 的 Mapper 代理开发…

glibc memcpy内部机制学习记录

判断需要拷贝的字节数是否大于临界值(16或8)。如果小于,直接按照one byte by one byte来拷贝。如果大于: 1、先进行内存对齐。假设要拷贝的目的地址如下所示 其中start为拷贝目的地的起始地址 ,end为拷贝目的地的结束…

企业的内部文档太杂乱,有什么好用的文档管理软件?

企业内部文档的管理,是一个老生常谈的问题。 有些企业的文档管理比较混乱,很难做好企业内部的信息管控。 我们可以先从以下几个方面入手: 企业内部文档杂乱分散,集中式的管理;信息更新不及时、错误频繁,通过…

大数据NiFi(十六):处理器Connection连接

文章目录 处理器Connection连接 一、查看队列中的FlowFile 二、查看FlowFile自定义属性值

【数据结构初阶】第一节.初识时间和空间复杂度

文章目录 前言 一、认识数据结构 二、时间复杂度 2.1 时间复杂度的概念 2.2 计算时间复杂度 2.2.1 大O的渐进表示法 2.3 常见时间复杂度计算举例 三、空间复杂度 3.1 空间复杂度的概念 3.2 计算空间复杂度 3.3 常见空间复杂度计算举例 四、常见复杂度的对比&#xff1…

CVE-2022-26937 Windows NFS 栈溢出漏洞分析

简介 NFS全称Network File System,即网络文件系统,用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程访问保存在存储设备上的数据。 CVE-2022-26937是微软5月份修复的Windows NFS中一个对NLM响应处理不当的栈溢出漏洞&#xff…

OAuth2(1)

目录 一、什么是OAuth2.0 二、OAuth2中的角色 三、认证流程 四、生活中的OAuth2思维 五、令牌的特点 六、OAuth2授权方式 1.授权码 2.隐藏方式 3.密码方式 4.凭证方式 一、什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制,用户授权第三方应用…

红宝书学习

第一章 认识js js的组成部分有哪些? ①ecma 核心语法 api ②dom 提供与网页内容交互的方法和接口 ③bom 浏览器对象模型,提供了和浏览器交互的接口 use strict 是什么? use strict 是一种 ECMAscript5 添加的(严格模式&#xff…