LabVIEW在实时目标上使用文件路径

简介: LabVIEW在实时目标上使用文件路径

LabVIEW在实时目标上使用文件路径


文件路径和结构因目标操作系统而异。本文档讨论了推荐的LabVIEW编码实践,用于指定文件路径,以便应用程序可以无缝地从目标移动目标。


实时操作系统选项


所有NI实时控制器运行三种不同的操作系统之一,即PharLap、VxWorks或NI Linux Real-Time。在运行PharLap操作系统的目标上,文件路径的工作方式与根目录位于C:\的Windows文件路径非常相似。和反斜杠作为目录之间的分隔符。VxWorks目标具有Unix样式的文件结构,因此使用正斜杠作为以/c/作为根目录的目录之间的分隔符。然而,在LabVIEW中,用户会注意到使用PharLap文件路径和VxWorks文件路径之间差别很小。这是因为所有路径常量、控件和指示器都使用与LabVIEW中的Pharlap(或Windows)相同的格式显示VxWorks文件路径。因此,在按照本文档中的建议构建文件路径时,用户不应注意到使用PharLap和使用VxWorks之间的任何区别。


在NI Linux Real-Time目标上,根文件路径为/,正斜杠用作目录之间的分隔符。NI Linux实时目标没有C驱动器。但是,为了方便起见,存在目录/c和/c/ni-rt,并且/c/ni-rt/startup重定向到/home/lvuser/natinst/bin,这是NI Linux Real-Time目标上启动应用程序的推荐路径。


下图显示了在每个实时目标的目标根目录中创建名为test.txt的文本文件的简单代码:


动态构建的路径


在动态构建文件路径时,NI建议对根目录使用文件路径常量或控制,并使用带有各个路径元素(文件名称文件夹)的构建路径VI来构建完整路径,如下所示。这可确保使用正确的根目录和斜杠类型。下图显示了在不同操作系统上运行此代码时返回的路径。


或者,可以使用部署VI的位置作为参考来构建相对路径。下面的代码演示了如何使用当前VI的路径常量、条带路径和构建路径函数来执行此操作。与第一种技术一样,如果将VI移动到具有不同操作系统的控制器或具有不同文件结构的位置,这也避免了重新编写路径的需要。下图显示了在不同操作系统上运行此代码时返回的路径。


文件路径常量


文件路径常量和控件根据目标上下文动态更改路径。例如,包含C:\的文件路径常量当为Pharlap或VxWorks目标保存时,当移动到NI Linux RT目标时,将自动更新为/c/。文件路径常量和控件是在实时目标上指定静态路径的首选方法。


但是,文件路径常量通常无法更正无效的文件路径。如果在常量中键入无效路径,它可能会尝试更正当前操作系统的该路径,但可能会失败,从而产生不正确的结果。


下面是文件路径常量如何更正/尝试更正输入的几个示例。


1)用户在Windows机器上的路径常量中键入/c/Applicaton/SubVIs/Example.vi。路径常量将此识别为Linux实时操作系统的有效文件路径。它成功地将其更正为Windows样式路径:


2)用户在Windows上下文中的路径常量中键入\c\应用程序\子VIs\Example.vi。此路径与示例1中的路径相同,但带有反斜杠。这是一个无效的文件路径,因为它包含的斜杠是LinuxRT的错误方向,但不像Windows样式路径那样以驱动器号开头。路径常量尝试添加驱动器号,就好像它是Windows样式路径一样


3)用户在Windows上下文中的路径常量中键入C:/Application/SubVIs/Example.vi。这将是Windows样式路径,正斜杠除外。路径常量识别它以驱动器号开头并添加反斜杠:


用户必须负责识别输入无效路径并因此被错误更正的时间。


静态文件路径


可以在不使用文件路径常量的情况下构建文件路径。字符串到路径函数可用于指定实时系统上的静态文件路径,如下所示:


但是,NI不推荐使用此选项,因为字符串到路径功能在目标之间移动时不会动态更改根目录或斜杠方向。必须注意确保转换为文件路径的任何字符串仅包含目标操作系统的正确斜杠。例如,如果文件路径字符串包含反斜杠,并且您尝试在Linux实时目标上运行VI,则程序将无法在磁盘上找到正确的位置。这是因为Linux实时无法将反斜杠识别为分隔符;在NI Linux Real-Time上,文件名中可能包含反斜杠。


注意:大多数实时目标使用字母来指示不同的驱动器。以C开头的路径存储在实时目标的内部存储器中。外部紧凑型闪存驱动器从C之后的第一个可用驱动程序号开始映射,外部USB硬盘驱动器从U开始映射。


注意:在写入目标驱动器之前,您指定要写入的文件夹必须存在于目标驱动器上,否则VI将无法正常工作。


文件系统权限


文件和文件夹访问权限不会在运行VxWorks或PharLap操作系统的NI实时目标上强制执行。另一方面,NI Linux实时目标使用并强制执行标准Linux样式文件和文件夹访问权限。


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

相关文章
|
存储 Java 芯片
探索计算机的I/O控制方式:了解DMA控制器的作用与优势
对于有科班背景的读者,可以跳过本系列文章。这些文章的主要目的是通过简单易懂的汇总,帮助非科班出身的读者理解底层知识,进一步了解为什么在面试中会涉及这些底层问题。否则,某些概念将始终无法理解。这些计算机基础文章将为你打通知识的任督二脉,祝你在编程领域中取得成功!
696 1
探索计算机的I/O控制方式:了解DMA控制器的作用与优势
|
7月前
|
机器学习/深度学习 存储 传感器
光伏三相并网逆变器的控制策略与性能分析(Simulink仿真实现)
光伏三相并网逆变器的控制策略与性能分析(Simulink仿真实现)
327 0
|
11月前
|
存储 关系型数据库 MySQL
【免费动手教程上线】阿里云RDS MySQL推出大容量高性能存储:高性能本地盘(最高16TB存储空间)、高性能云盘(最高64TB存储空间)
阿里云RDS MySQL提供高性能本地盘与高性能云盘等存储方案,满足用户大容量、低延迟需求。高性能本地盘单盘最大16TB,IO延时微秒级;高性能云盘兼容ESSD特性,支持IO性能突发、BPE及16K原子写等能力。此外,阿里云还提供免费动手体验教程,帮助用户直观感受云数据库 RDS 存储性能表现。
|
缓存 JSON 安全
Http自定义Header导致的跨域问题
在Web开发中,正确处理跨域问题是确保应用安全和性能的重要环节。通过在服务器端设置适当的CORS头信息,处理预检请求,并遵循最佳实践,可以有效解决自定义Header导致的跨域问题,提高应用的安全性和用户体验。理解并掌握这些技巧,对于构建高效、可靠的Web应用至关重要。
1077 11
|
消息中间件 中间件 关系型数据库
阿里云中间件
阿里云中间件
806 1
|
机器学习/深度学习 存储 搜索推荐
NVIDIA Ampere 架构的结构化稀疏功能及其在搜索引擎中的应用
NVIDIA Ampere架构引入了结构化稀疏功能,显著加速了深度学习模型的推理过程。通过2:4的稀疏模式,即每4个相邻权重中有至少2个为0,实现了高效的内存访问和模型推理加速,同时保持了模型精度。腾讯机器学习平台部门利用这一特性,通过渐进式训练方法,实现了模型在搜索引擎中的高效部署与应用,如相关性预测、查询性能预测等场景,不仅提升了处理速度,还在某些情况下超过了原有模型的精度。此外,NVIDIA还提供了TensorRT和cuSPARSELt库,进一步增强了稀疏模型的推理效率。
408 0
 NVIDIA Ampere 架构的结构化稀疏功能及其在搜索引擎中的应用
|
消息中间件 Java Kafka
【Kafka】微服务学习笔记九:什么是消息中间件&Kafka的介绍及使用
主要介绍什么是消息中间件以及Kafka在Docker上的安装配置及使用,最后还涉及到Kafka高级部分的备份机制。
1941 112
【Kafka】微服务学习笔记九:什么是消息中间件&Kafka的介绍及使用
|
开发框架 Java 数据库
Spring Boot集成多数据源的最佳实践
Spring Boot集成多数据源的最佳实践
|
Linux 开发工具
linux sudo指令提权
linux sudo指令提权
|
SQL 关系型数据库 MySQL
在OceanBase数据库中,mysqldump工具是可以用于数据备份的
【2月更文挑战第2天】在OceanBase数据库中,mysqldump工具是可以用于数据备份的
644 6