LabVIEW开发虽然简便,但是对于大项目来说,代码量(这里是框图节点的数量)并不亚于文本编程方式。所以,如果出现了以下的问题而又没有及时备份的话,很容易丢失大量的工作成果。
1. LV6.1可能会出现的一个小Bug!
在用“Build application or shared library(dll)”生成应用程序时碰到过这样的一个情况:
建立应用程序的配置文件(包括路径、top-level vi等等)被保存在一个叫做*.bld的文件中。并且在配置文件被保存过以后,下次重建只需单击左下角的“Load快捷按钮”(单击Load旁边的小三角出现的下拉菜单),然后选中这个.bld文件的名称就会导入该配置文件。但是我在使用中出现过这样的提示:"this .bld file is not valid!"并且LV会自动把这个.bld文件删掉,这种错误对于每个.bld文件都一样,但是把LV重启一下就没有这样的错误。所以如果没有备份的话,许多重要的应用程序配置就无故的丢失了。
2. VI在内存中的组织
曾经在开发过程中遇到这样一个问题,经调试运行正常的VI程序,在没有修改任何框图程序的前提下,再次打开,出现错误,不能运行!为什么呢?经查明,是因为它调用了另外一个接口完全不同的同名子VI。
VI在内存中是按名称调用的,可能是因为要给每个VI创建一个线程吧。带来的后果就是,一个时刻,内存中不能出现同名VI,这将会导致VI的错误调用和错误的覆盖保存了同名VI。
举个例子,两个运行正常的VI:a1.vi、a2.vi,a1.vi调用了C:/b.vi;而a2.vi调用了D:/b.vi。这两个b.vi只是同名,其框图程序完全不同。首先打开了a2.vi,这样D:/b.vi就被装入内存,然后再打开a1.vi,这时a1.vi就会自动去调用已经装载在内存中的那个b.vi,也就是D:/b.vi,这样必然会导致不该出现的错误。
所以,在同一个项目中不要使用名称相同的VI;最好不要同时打开两个项目,除非这两个项目没有同名的子VI。
3. LabVIEW中头疼的路径问题
l Build Application前后VI的路径
current vi's path.vi功能是取出VI的当前路径,例如此时路径为.../a.vi,在Build Application后就会变成.../Application/a.vi,在vi的外部又套了一层目录,所以在开发程序时安本地路径成功调用的一些外部文件,在Build Application后很可能就找不到了。这时需要修改框图程序。
l 子VI路径问题
子VI的调用还是按绝对路径,也就是说,当你把开发时存放VIs的文件夹移到别处(也就是改变每个VI的绝对路径),LV6.1的处理方式:提示找不到子VI,然后弹出文件对话框,由用户去一个一个browse;LV7.1的处理方式:自动探测到本地的一些子VI,然后提问是应用这些新的VI路径还是重新由用户去browse。
所以最好一开始就对文件夹的位置仔细斟酌,以免往后移动文件夹是带来不必要的工作量。
l Report Generation Toolkit中的路径问题
程序中大都需要开发报表模块,而使用Microsoft Office无疑是比较流行和方便的。对于LabVIEW,这时需要安装Report Generation Toolkit。
Report Generation Toolkit中有很多子VI都是通过名称来调用,所以在Build Application的时候这些VI并不能够被自动装入,而需要在Dynamic VI中一个一个添加。默认情况下,这些VI的路径与LabVIEW整个平台的安装路径有关,所以在LabVIEW安装路径改变时(例如重装LV于不同的位置),就需要再次找到这些Dynamic VI并一个一个的改变。
文章评论(0条评论)
登录后参与讨论