LabVIEW NI Linux Real-Time深层解析

简介: LabVIEW NI Linux Real-Time深层解析

LabVIEW NI Linux Real-Time深层解析


NI LabVIEW Real-Time模块支持NI Linux Real-Time操作系统,在选定的NI硬件上提供。本文介绍了具体的新特性和高级功能,可让您为应用充分利用NI Linux Real-Time。


Linux Shell支持


NI Linux Real-Time操作系统提供了全面的Linux shell支持,因此您可以执行复杂的管理任务来更轻松地管理Real-Time终端。访问shell需要具有终端客户端。如果您使用的是Windows 7或更高版本,则可使用免费的热门客户端PuTTY,具体可访问:PuTTY:免费的Telnet/SSH客户端。


除了终端客户端,您还必须在运行NI Linux Real-Time操作系统的Real-Time终端上选中“启用SSH服务器(sshd)”(Enable Secure Shell Server(sshd))选项。您可以使用NI Measurement & Automation Explorer (MAX)或基于Web的配置和监测界面(见图1和图2)。为了安全起见,强烈建议更改admin帐户的默认密码。您可通过基于Web的配置和监测界面更改密码。如果要通过SSH登录到Linux shell,您可使用admin用户名以及配置好的密码来获得根访问权限;如果没有配置密码,则默认为空。您可通过基于Web的配置和监测界面创建新用户。这些用户也可以通过SSH登录,但没有根访问权限。


图1.可在Measurement and Automation Explorer上Real-Time终端的“系统设置”(System Settings)选项卡内找到“启用SSH服务器(sshd)”(Enable Secure Shell Server(sshd))选项。访问运行NI Linux Real-Time的Real-Time终端之前必须选中该选项。


图2.还可以通过Real-Time终端基于Web的配置和监测界面找到“启用SSH服务器(sshd)”(Enable Secure Shell Server (sshd))选项。访问运行NI Linux Real-Time的Real-Time终端之前必须选中该选项。


文件传输和文件路径


从LabVIEW 2013开始,所有NI Real-Time终端均支持WebDAV文件传输。WebDAV是一个基于HTTP的行业标准协议,应用于Dropbox等热门应用,您可用它轻松、安全地传输包含敏感信息的文件。WebDAV是运行NI LinuxReal-Time的Real-Time终端的默认文件传输机制。


与基于VxWorks和Phar Lap的较旧设备不同,NI Linux Real-Time终端默认状态下不安装FTP服务器。如需FTP支持以保持应用程序的向后兼容性,您可以通过MAX安装传统的FTP服务器,但其安全性较低。访问如何利用NI Linux Real-Time终端使用FTP,详细了解NI Linux Real-Time的FTP支持。如果WebDAV不适用于特定应用,NI Linux Real-Time终端还可通过SSH支持SFTP功能。


此外,NI Linux Real-Time的文件路径与现有Real-Time终端和Windows存在几点重要的区别。


编程式系统访问


LabVIEW Real-Time模块可支持NI Linux Real-Time终端上的System Exec VI。NI Linux Real-Time终端上的System Exec VI提供Linux命令行的访问权限,使您可以通过编程方式管理NI Linux Real-Time操作系统,并直接通过LabVIEW Real-Time应用程序与终端上运行的其他程序交互。


除了System Exec VI,NI Linux Real-Time终端也可支持调用库函数节点。调用库函数节点可帮助您更轻松地将外部C/C++代码与LabVIEW Real-Time应用程序集成,并为在NI Linux Real-Time终端上安装并运行的其他程序提供的C API创建LabVIEW包装器。


NI Linux Real-Time终端支持System Exec VI和调用库函数节点 NI Linux Real-Time终端支持System Exec VI和调用库函数节点


图3.NI Linux Real-Time终端支持System Exec VI和调用库函数节点。您可以通过LabVIEW Real-Time应用程序与NI Linux Real-Time操作系统和其他程序无缝交互。


访问Linux生态系统


运行NI Linux Real-Time的终端可极大受益于Linux提供的庞大IP生态系统。要安装、管理和利用该生态系统,需要使用NI Linux Real-Time上提供的Package Manager:opkg。如需详细了解opkg,请访问OPKGPackage Manager。


NI Linux Real-Time终端除了可帮助您更轻松地将C/C++代码与System Exec VI和调用库函数节点相集成之外,还支持您使用Linux生态系统的代码、复用内部代码,以及使用基于Eclipse的工具开发、部署和调试C/C++代码。如需详细了解NI Linux Real-Time的C/C++开发工具(Eclipse版),请查阅构建NI Linux Real-Time的C/C++应用程序。


高级实时性能


全新NI Linux Real-Time采用与当前Real-Time终端相似的实时调度器来处理时间紧迫的代码调度,通过完全公平调度器(CFS)来处理所有非关键代码调度。目前的Real-Time终端配备专用的RTOS,仅依赖一个实时调度器来管理时间关键型任务和优先级较低的系统任务。NI Linux Real-Time的CFS可更高效率地调度优先级较低的任务,从而提高性能。如需详细了解CFS,请访问Linux 2.6完全公平调度器内部解析。


除了调度器改变之外,您还应当注意到NI Linux Real-Time在支持多核方便也发生了变化,因为所有支持这个新RTOS的NI嵌入式硬件设备都是多核架构。对于多核支持来说,遵循最佳编程实践,避免以100%的内核占用率在处理器内核上运行时间关键型循环非常重要。这是因为多核NI Linux Real-Time系统中的每个内核均需要一定的时间来运行操作系统维护/开销功能,以免严重影响系统的性能。为了避免这种性能下降,应确保时间关键型循环允许CPU每运行10秒钟可有10毫秒的休眠时间来进行开销处理。


同样值得注意的是,如果连续关联任务可以在处理器内核间并行运行,那么在运行NI Linux Real-Time的多核系统上,处理时间关键型任务和系统任务都可能会出现性能下降。这是因为在不同处理器内核上同时运行的连续关联任务之间,信息不能有效地进行通信。为了避免这样的性能损失,请遵循LabVIEW Real-Time编程最佳实践,将时间关键型代码和系统任务分配给不同的处理器内核。您可以通过将处理器内核设置为仅处理时间关键型功能来实现这种分配,也可以指定用于定时循环或定时顺序结构的处理器内核,如图4所示。查看配置定时结构设置,了解更多使用LabVIEW Real-Time优化多核系统的最佳实践。


图4.在LabVIEW Real-Time中使用定时循环结构分配处理器亲和度的方法有2种:(1)双击定时循环结构,在弹出的配置对话框中设置处理器或(2)将一个值直接连线到结构左侧的节点上。


与所有系统升级一样,建议在迁移到基于的NI Linux Real-Time终端后重新验证应用程序,因为个别功能的性能可能会有所提升或降低,从而影响应用程序满足所有系统需求的能力。尤其是,基于Linux的Real-Time终端的内存分配可能会对抖动产生较大的影响。


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

相关文章
|
23小时前
|
消息中间件 运维 监控
Linux命令lsipc:深入解析与实战应用
`lsipc` (通常指 `ipcs`) 是Linux命令,用于查看系统中的IPC资源,包括消息队列、信号量和共享内存。它显示详细信息,支持过滤,并且需要相应权限。示例用法:显示共享内存(`-m`)、查询消息队列(`-q -i ID`)、查看关联进程(`-m -p`)。注意权限、操作影响及定期监控。结合`ipcrm`等工具可进行更深入管理。
|
23小时前
|
存储 数据挖掘 Linux
探索Linux的ls命令:深入解析与实用指南
**探索Linux的`ls`命令:简明指南** `ls`命令用于列出目录内容,是Linux用户的基础工具。它提供灵活的参数定制输出,如 `-l` 显示详细信息,`-a` 显示隐藏文件,`-h` 以易读格式显示大小,`-R` 递归列出子目录。结合其他命令和管道,`ls`能用于数据分析。注意权限和使用最佳实践,如避免多余参数,谨慎使用通配符,并利用`man ls`查阅手册以深入学习。善用`ls`能提升Linux操作效率。
|
23小时前
|
网络协议 安全 Linux
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
|
1天前
|
存储 Linux 数据处理
Linux中的link命令:深入解析与实际应用
**Linux的`ln`命令详解:创建硬链接和软链接。硬链接共享相同inode,不占额外空间;软链接(符号链接)如快捷方式,可跨文件系统。使用`-s`创建软链接,`-f`强制覆盖。注意选择合适链接类型,避免循环链接,确保目标存在。**
|
1天前
|
Linux 数据处理 开发者
Linux命令ldd:深入解析动态链接器依赖关系
`ldd`是Linux下分析可执行文件动态依赖的工具,它揭示了程序运行所需的共享库。通过模拟动态链接过程,`ldd`列出库文件路径,帮助理解程序环境和解决运行时问题。主要参数包括`-d`、`-r`、`-u`和`-v`。例如,`ldd my_program`展示`my_program`的依赖关系。注意,`ldd`不显示间接依赖,完整依赖树可能需借助其他工具。确保系统库完整且版本兼容是使用`ldd`时的关键。
|
2天前
|
消息中间件 监控 安全
深入解析Linux命令ipcmk:IPC对象管理新视角
`ipcmk`非标准Linux命令,假设的IPC对象创建工具,用于演示如何管理消息队列、信号量和共享内存。虽无此命令,但理解其概念有助于掌握IPC管理。例如,创建命名消息队列`my_mq`,最大1000消息,可模拟使用`ipcmk -t mq -n my_mq -q 1000`。实际操作中,应根据需求选择合适IPC机制,设置安全权限,监控使用并及时清理。
|
4天前
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。
|
23小时前
|
运维 Linux 数据处理
探索Linux命令lsinitrd:深入了解与实用指南
`lsinitrd`命令在Linux中用于查看initrd文件内容,它是系统引导时加载驱动和模块的关键组件。此命令无需挂载,支持gzip和cpio格式,提供详细输出,包括文件属性。使用`-a`, `-l`, `-R`参数可调整显示方式。例如,`lsinitrd -l initrd.img-版本号`列出详细信息。注意权限,确保正确路径,操作前备份数据,并可与其他命令结合使用。
|
23小时前
|
缓存 监控 Linux
深入了解Linux的`lscpu`命令:你的CPU信息专家
`lscpu`是Linux下的命令行工具,用于获取CPU详细信息,如架构、核心、线程、缓存和型号。它从系统文件读取数据,提供实时信息,支持多种输出格式,如扩展视图、解析格式。常用参数包括显示所有CPU (`-a`)、在线CPU (`-b`) 和可解析格式 (`--parseable`)。结合其他工具,`lscpu`在系统管理和性能调优中十分有用。
|
23小时前
|
算法 数据挖掘 Linux
Linux命令look:数据查找的得力助手
`look`命令是Linux下用于在排序文件中查找指定开头字符串的工具,基于二分查找,高效且精确。参数如`-a`显示所有匹配行,`-f`忽略大小写。示例:查找`fruits.txt`中以"a"、"ba"、"e"开头的单词。注意文件需排序,不支持正则表达式,常与其他命令结合使用。