LabVIEW使用项目管理器
本文介绍LabVIEW项目并提供了如何管理和组织LabVIEW应用程序的建议。在开始开发之前,使用这些建议建立指南和程序,以确保应用程序能够针对大量VI和多个开发人员进行扩展。
建立存储和管理文件的准则需要预见到应用程序的结构、功能的划分方式以及源代码之外需要跟踪的文件类型。花时间决定如何在代码之间划分功能,并与开发人员一起处理文件存储位置以及正常运行所需的其他文件或资源。
组织磁盘上的文件
磁盘上的文件组织不应是事后的想法。对大型应用程序的规划不合理,会导致在开发过程中花费额外的时间移动和重命名文件。在处理大量文件时,会给LabVIEW中链接的完整性带来巨大的风险,从而会对应用程序的行为造成巨大的风险。尽早建立这些做法可以降低以后移动大型文件集的风险,并且可以帮助确保开发人员可以轻松查找文件并确定保存新文件的位置。
许多软件开发人员已经制定了实践和系统来确定文件的存储位置。将文件存储在单个根目录中可确保轻松访问所需的所有内容,并且强制实施标准命名约定可帮助用户了解在何处查找文件以及在哪里放置新文件。硬盘驱动器上的文件夹通常用于对文件进行分组或分类,从而将子VI与调用方分开。相反,平面目录结构使得查找文件或定位顶级VI变得困难,即使对于少量VI,也不建议使用。通常用于对这些文件进行分组的条件是应用程序中文件功能、类型和分层层的组合。实际上,磁盘上的组织应该是应用程序中文件和代码关系的物理表现形式。
建议
将所有文件存储在单个根目录中
将应用程序划分为大小可管理的逻辑部分
使用逻辑和描述性命名约定
将顶级VI与其他源代码分开
从包含应用程序主要组件的高级框图开始(例如,框图可以包括用于配置、采集、分析、数据显示、数据记录和错误处理的单独框架)
动态依赖项和共享代码的特殊注意事项
动态加载的文件带来了额外的挑战,通常需要特别考虑。由于这些文件不是由应用程序中的任何调用方静态链接的,因此在移动位置或以任何方式更改文件路径时,它们很容易放错位置或忘记。
为了最大程度地减少确保将所有动态访问的文件保存在正确位置所涉及的困难,可以将它们分组到一个单独的文件夹中,并使用相对路径引用它们。如果需要移动或分发应用程序,只需包含文件夹即可确保拥有所需的文件。
当大型应用程序共享代码时,请务必注意这些文件的存储位置,以及更改可能会无意中影响其他调用方。代码重用很常见,鼓励通过帮助利用已完成的工作来加快开发速度。相似的应用程序可能需要相同的功能,或者不同的代码分支可能引用同一组通用VI。引用同一代码副本通常要求这些文件位于至少一个应用程序的根目录之外。但是,如果计划对这些常见VI进行更改,请制作本地副本以进行测试和以后的集成。
还可以使用源代码控制提供程序来跟踪软件的多个版本,并比较在多次迭代之间所做的更改。
建议
将动态加载的依赖项保存在公共文件夹中
使用相对路径引用动态依赖项
最大限度地减少对应用程序共享的代码的更改
花时间管理和集成对共享代码的更改
使用源代码控制
LabVIEW项目管理器
LabVIEW8.0中引入了项目分析,为开发人员提供应用所需文件的系统级视图。LabVIEW项目探索器的目标是帮助开发人员在开发环境中轻松查找和组织文件,并提供附加功能来解决管理和开发大型LabVIEW应用程序的挑战。
使用LabVIEW项目将LabVIEW文件和其他文件组合在一起,创建构建规范,以及将文件部署或下载到目标。保存LabVIEW项目时,LabVIEW会创建一个.lvproj文件,其中包括对磁盘上文件的引用、变量、超链接、配置信息、构建信息、部署信息等。
LabVIEW项目资源管理器不会复制文件或将文件复制到磁盘上的新位置。它提供了一种在磁盘上显示文件的新方法,并提供了磁盘上文件位置的快捷方式。使用LabVIEW项目探索器,可以:
轻松访问和导航文件,无需离开LabVIEW
自定义和筛选文件的组织方式
在磁盘上移动或重命名文件时保留链接
防止、检测和解决不正确的链接
管理特定硬件目标的代码
管理生成配置
与源代码控制提供程序集成1
在项目资源管理器中管理文件
LabVIEW项目中有两个用于查看文件的页面:项目页面和文件页面。
默认视图是项目页面,它提供了已添加到LabVIEW项目的项目的树视图,并按硬件目标对项目进行分组。可以在此视图中创建文件夹,以自定义文件的组织方式或同步到磁盘上的特定位置。这是可能会花费大部分时间的地方。
无法从“项目”页面从磁盘中删除文件-这旨在防止用户意外删除代码。但是,可以通过右键单击“文件”视图中的项目并选择“在磁盘上移动...
“文件”页面显示磁盘上具有相应文件的项目的物理位置。使用此视图可以执行通常在系统文件浏览器中执行的相同文件操作,例如移动、复制或删除。由于LabVIEW知道这些变化,所以它能够在进行更改时更新呼叫者并保留链接。
可以在LabVIEW项目管理器中自定义文件的层次,而不会影响磁盘上文件的布局;但是,建议LabVIEW项目中的组织尽可能反映在磁盘上设置的层次结构。
在LabVIEW项目中使用文件夹
可以使用两种类型的文件夹来组织LabVIEW项目的内容:虚拟文件夹和自动填充文件夹。使用虚拟文件夹,可以自定义项目项的组织,而无需在磁盘上进行任何修改。
虚拟文件夹非常适合希望更改LabVIEW中文件的组织,而不对其在磁盘上的存储位置进行任何修改的场景。如果将磁盘上的文件夹作为虚拟文件夹添加到LabVIEW项目资源管理器,则添加该文件夹时由快照视图表示。如果之后进行任何更改,包括添加新文件,这些更改不会显示在LabVIEW项目中。但是,可以将新文件拖到LabVIEW项目中或将虚拟文件夹临时转换为自动填充文件夹,从而手动进行更改。
使用虚拟文件夹,可以在LabVIEW项目分析器中对磁盘上两个或多个独立位置的文件进行分组。它们还用于过滤LabVIEW项目管理器中显示的信息,以帮助确定文件是否与不需要的其他项目进行分组。
依赖
当打开调用VI时,LabVIEW会自动将所有静态链接的子VI加载到内存中。如果调用VI加载到LabVIEW项目资源管理器时,尚未将这些子VI添加到LabVIEW项目中,则LabVIEW项目资源管理器的依赖关系部分会自动填充这些相同的子VI。
将文件添加到LabVIEW项目会向LabVIEW指示哪些文件和资源用于应用程序。检查依赖关系部分,确保已将所需的所有内容添加到LabVIEW项目中–如果尚未添加,则本部分会列出剩余的文件。
LabVIEW项目中的VI可能错误地关联到错误的子VI,在这情况下,将打算使用的子VI副本添加到LabVIEW项目中,会发出LabVIEW信号,表明一个或多个主方可能错误地关联到具有相同名称的不同子VI。这种情况通常称为交联。
交联
LabVIEW使用相对路径从调用方中存储的位置打开子VI。如果LabVIEW在预期位置找不到子VI,则按名称搜索子VI。LabVIEW将通过该名称找到的第一个子VI加载到内存中,并通知用户有关修改的链接。由于具有不同功能的多个VI可能共享一个通用名称(例如initialize.vi),或者同一VI的两个版本可能存在于不同的位置,因此LabVIEW可能会链接到不正确的文件。
防止交联
交叉链接通常是由于移动或复制大型文件集以在新磁盘位置重现代码层次结构而发生的。如果相对路径发生更改,链接可能会损坏,并且应用程序可能会在不知不觉中链接到不正确的依赖项集。
LabVIEW无法将两个不同的VI加载到具有相同名称的内存中。因此,打开两个引用具有相同名称的单独子VI的应用程序意味着其中一个使用不正确的依赖项执行。
建议
可以采取多种措施来防止交联:
避免在同一台计算机上同时处理具有常见依赖项的多个应用程序
使用源代码控制应用程序准确指定文件应位于的位置并保留正确链接的调用方
避免移动或复制应用程序的片段
将所有文件添加到LabVIEW项目中,以指示打算使用哪些资源
避免使用initialize.vi等常用名称
使用项目库限定公用名以设置命名空间
识别冲突
确保正确的链接是所有编程语言的共同挑战。谨慎的做法可以最大限度地减少交叉链接的发生,并提供正确链接文件的备份,但这仍然是开发大型应用程序的供应商的一个大问题。
也许与交叉链接相关的最有益功能是LabVIEW项目可以确定VI是否调用的子VI与已加入LabVIEW项目的文件同名。LabVIEW在文件图标上通过黄色警告指示器通知,此时有几种方法可以查找有关文件的更多信息,以确定哪个文件是正确的版本:
右键单击LabVIEW项目资源管理器中的.lvproj文件,然后选择“查找没有调用方的项目”。如果除了顶级VI之外,还有任何未链接的VI,则会在此处列出它们。
右键单击VI,然后选择查找>>呼叫者以识别哪个VI正在呼叫它,或者它没有任何呼叫者。
在菜单工具栏中,选择“项目”>>“显示项路径”以查看“项”页中所有文件在磁盘上的位置。
单击“解决冲突...”工具栏图标以查看有关所有交叉链接VI的详细信息。
一旦识别了交叉链接并确定了如何修复链接,可以手动进行修正,或使用LabVIEW项目管理器工具来完成整个过程。
解决冲突
在LabVIEW检测到冲突后,有多种方法可以解决冲突。遵循以下建议有助于确保能够在进行所需更改时保留指向子VI的链接。
建议
如果自动填充文件夹中存在冲突,则需要停止自动填充或通过重命名“文件”页面中的项目来解决冲突。
如果一个或多个主方错误地关联到LabVIEW项目资源管理器之外的子VI,则需要将这些VI重新关联到LabVIEW项目中的相应子VI。在LabVIEW项目资源管理器窗口中右键单击冲突的VI,然后从快捷菜单中选择“替换”以在磁盘上选择正确的子VI。对任何剩余的冲突重复此过程。
如果调用方引用多个同名项,但磁盘上仅存在一个项,则可以右键单击冲突项,然后从快捷菜单中选择“替换为项目找到的项”。
如果LabVIEW项目已添加多个相同名称的项,并且希望在应用程序中使用这两个项,请重命名它们或将它们添加到单独的项目库中以限定其名称。
可以使用“解决项目冲突”对话框自动执行这些建议。从LabVIEW项目资源管理器窗口中选择项目»解决项目冲突,以显示“解决冲突”对话框。还可以单击“解决冲突”工具栏按钮或在LabVIEW项目资源管理器窗口中右键单击冲突项,然后从快捷菜单选择“解决冲突”以显示此对话框。
使用所选项目–解决要使用的项目时的冲突。如果冲突列表仅涉及顶级项目,LabVIEW会从LabVIEW项目中删除冲突列表中除选择的项目之外的所有项目。LabVIEW无法修改“解决项目冲突”对话框中自动填充的文件夹。可以手动解析这些项目,也可以通过右键单击文件夹并从快捷菜单中选择“停止自动填充”来禁用自动填充文件夹。
使用此对话框可以通过重定向冲突项以从正确的路径调用依赖项来解决冲突。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。