- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
LabVIEW基本常见问题解答(四)
18、利用Build Application生成exe文件,如果原程序用到了current vi’s path,那么就会出现原先默认能找到的文件现在程序自己找不到了 A:当使用current vi’s path这个函数时,它会将文件名和该vi所在的路径返回,如果刚编写vi还没有保存,那么运行它会返回一个无效值,如果已保存了该vi,那么就能返回完整路径,例如一个名为:“Application.vi”的vi被保存在C:Program FileApplication这个文件夹下面,current vi’s path函数返回的路径就是C:Program FileApplication Application.vi;如果生成exe,并且与Application.vi保存在同一个目录下,那么运行的时候会返回C:Program FileApplication App.exeApplication.vi,所以我们需要多用一个Strip path function才能得到和原来一样的路径。
19、 如何自定义窗口标题字符,而不是用默认的Vi 名称? A:如果只是设置一个非VI名称的默认标题,可以在VI Property>>Window Appearance中设置,去掉Same As VI name前面选中符号,然后在Window title中输入需要显示的字符;如果希望在程序中修改标题,可以使用VI Server中属性FP.Title
20、 LV中使用NI-VISA软件控制USB设备 A:为了使用NI-VISA,在Windows环境中,可以通过INF文档做到这一点。NI-VISA3.0包含VISA Drive Development Wizard(DDW)将为USB设备创建一个INF文档。1)、选择Start Programs National Instruments VISAVISA Drive Developer Wizard,打开DDW。可以用这个向导为PXI/PCI或USB设备创建一个INF文档,点击Next。此时出现VISA DDW基本设备信息窗口。2)进行这一步时,需要清楚USB供应商ID和产品ID。这两个数据都是16位十六进制数字,由供应商提供。点击Next。出现输出文档属性窗口。3)USB Instrument Prefix是一个描述符,用来识别本设备所用的相关文档。在USB Instrument Prefix中输入相应信息,并在“output file directory”中选择存放这些文档的目录,然后点击Finish。INF文档就创建好并保存在您指定的位置了。假定Windows XP操作系统。复制INF文档并将其放入INF文件夹,这个文件夹的位置通常是:“C:WINDOWSINF”。这个文件夹可能是隐藏的。右击C:WINDOWSINF文件夹中INF文件,然后点击Install。这个过程为您的文件创建了PNF文档。现在就可以准备安装USB设备了。连接USB设备。Windows探测到您的USB设备后,立即会打开“添加新硬件向导”。遵照屏幕上有关向导程序的指定行事。如果您准备为该设备选择驱动程序,就请浏览INF文件夹,并选择您使用DDW创建的INF文档。就可以在MAX和LV中编成控制了。
21、利用LV的迅捷VI读出.lvm的数据,但是无法正常在waveform graph中正常显示。 A:读出的二维数组是以列为单位存放数据的,而waveform graph显示2D数组是以每行作为一条曲线进行输出的,所以,利用Transpose 2D Array 将行列转制就可以了。Waveform chart与graph刚好相反,是以每列数据作为一条曲线进行输出的,所以不加转制就可以用chart代替工人阿婆和也可以正常显示。
22、 LV7.1DataSocket协议传输数据怎样保证客户端完整地从服务器接收数据而不丢失?A:数据丢失的原因是读取数据的速度比发布慢使得数据被覆盖,处理方法有两方面:1) 提高客户端运行速度,保证服务器发布新数据前已经读完。2) 设立数据缓存区。服务器的在DataSocket Server Manager设置,默认是25M。客户机的要将Datasocket Open函数模式参数选为BufferedRead或BufferedRead/Write,然后通过属性节点设置缓存大小。同时也可以用属性节点作缓存区诊断。
23、 如何将MAX配置文件保存下来 A:在MAX里,当配置完成后,在菜单栏,选择FILE---Export,选择保存位置已经类型,点击Next,选择需要保存的文件,接着点击Export,finish。载入时,选择Import
24、Developer Suit中State diagram toolkit是做什么用的 A:状态框图使用一个图形化状态框图标识,定义多个状态及其转移逻辑,并包含有自动生成LV代码的工具,在对于搭建大程序的构架上是很有用的一个工具
25、 LV7.1用局部变量的时候只能将机械动作改成Switch,而不能用Latch,例如用Stop按钮停止两个并行的循环,怎么做? A:在用Latch方式时,系统读这个控件一次后自动改为默认值,所以用Latch方式时用局部变量,在两次读出的值即使时间间隔很短也不能保持一致,所以就不能用了。此时,可以用Switch方式,并在程序开始时初始化按钮就可以了。
26、在ActiveX容器中播放Flash的动画,如何实现在LV中响应Flash中的按钮动作? A:通过调用ActiveX,可以在LV中播放*.swf的动画。响应FLAH中控键动作的办法是用一个事件结构,在ActiveX容器中特定区域响应鼠标动作。
27、在调试LV7.1程序的时候,程序总是进行到无法响应得状态,然后只能强行关闭,因此无法正常运行? A:在VI前面板有个长度很大的字符串Indicator,因此程序在刷新屏幕的时候很消耗资源,将这个Indicator设为隐藏,问题就解决了。同样的问题也会出现在数据量很大的Graph,Chart,甚至探针上。
28、LV7.1中一个while循环嵌套另一个While循环,如何通过一个布尔量停止这两个循环? A:创建一个布尔量的局部变量,用这个局部变量控制一个循环,用布尔量控制另一个循环,注意机械特性是不能带锁存的(Latch)。
29、采集3路信号,需要根据一列的数据的值来对整个数组进行排序,保证每一排的数据仍然对应。A:
30、 每次运行时CPU使用率都达到100%,为什么? A:循环里面没加延时就会有这种现象发生
31、仪器驱动器的概念和VISA的特点? A:仪器驱动器是指使用标准化的I/0函数仪器设备进行通信的程序,主要用于对仪器进行程控操作。在LV编程语言中,仪器驱动器是指由VISA标准和仪器程控指令共同构成的仪器控制程序的应用接口(API)。仪器驱动器采用VISA标准编程,从而可避开许多复杂而低级的仪器程控命令。VISA是虚拟仪器体系结构的简称,它的特点有1)面向对象编程;2)VISA是当前所有仪器接口类型功能函数的超集,且十分简洁。3)VISA作为标准函数,与仪器的I/O接口类型无关;4)VISA程序与操作系统与编程语言无关。
32、如何选择告诉CAN卡和低速CAN卡的使用? A:高速CAN 和低速CAN设备是不能允许于同一个CAN网络中。如果CAN设备是Serials 2 的CAN设备那么是有两个PORT分别可以做高速CAN和低速CAN的,而且是通过软件来设置的,直接在MAX里找对应的CAN设备选择相应的PORT的属性就可以更改是高速还是低速CAN。如果Serials1的就需要一个端子,从一个CANport分出两个Port分别作高速CAN和低速CAN,也是在MAX设置的。
33、如何使用Read Text File函数从文本文件中逐行读取数据? A:在Read Text File函数的输入输出端口无法设置读取行的功能。只有用鼠标右击该函数,从弹出的快捷菜单中选择Read Lines才能实现读取行的操作。将这个函数放到一个循环里,就可以实现逐行读取的目的了。
34、用LV写的串口程序,生成EXE文件后不能在没有Lv的机器上运行,这台机器已经装好了相应的LAB VIEW Run-Time,为什么? A:如果串口程序使用VISA写的,就需要在目标及其上安装相应的VISA驱动。可以在目标及其上单独安装VISA驱动,也可在LV中使用打包功能将VISA驱动和应用程序一起做成一个安装文件,统一安装到目标机器上。