LabVIEW在实时目标上使用文件路径 点击:107 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2023-01-29 16:59:23
楼主

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




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师