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开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。