当前位置:首页 >> 理学 >>

Labview基本常见问题解答2


Labview 基本常见问题解答 2 1、 如何用 LabView 与可编程仪器通信,该仪器没有 GPIB 接口,但有 COM 口,能否用 LabView 操作? A: 可以通过 LV 的串口通信来解决仪器控制问题, 参看 FIND EXAMPLE 的 BASIC 2 PORT SERIAL WRITE AND READ.VI

2、 如何将 EVENTSTRUCT 中捕获的时间传递到 STATE DIAGRAM? A:使用 VENTSTRUCT 捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通 过 QUEUE 将 VENTSTRUCT 中的字符串传递到 STATEDIAGRAM 中,再根据得到的字符 串进行相应的处理。 3、 使用 WRITE TO BINARY FILE 函数向二进制文件中写入一个 1D 数组, 为什么在 READ FROM BIANRY FILE 读取时,会多出 4 个字节数据呢? A:写入时加入了头信息,多出的 4 个字节就是头信息,代表了数组或字符串的长度。在 WRITE TO BINARY FILE 中的 APPEND ARRAY OR STING SIZE 这个输入端口中设置,其 默认值为 T,代表加入头信息;如果将其改为 F,就不会多出 4 个字节了。 4、 卸载 LabView 7.1 时出现错误 1603,接着出现错误 1722 和 1721,程序询问是否继续 卸载操作,怎样消除该错误并正确卸载 7.1? A:该错误通常出现在试图卸载某些共享组件的时候。按照以下步骤可以解决该问题。 1) 注意当错误发生时是在卸载哪一部分组件。 一般讲在卸载 LV 核心部分或 LV RUNTIME ENGINE 的时候容易出现。 2) 当出现错误代码 1603,弹出对话框提示继续卸载操作时候,点击 YES 3) 如果卸载完成之后提示需要重新启动计算机,点击 NO。 4) 对于卸载过程中产生的错误,从 CD 相应的文件夹中手动运行相应的组件,路经如下: /components/lvcorefull/lvcorefull.msi 或 components/lvruntimeeng/lvruntimeeng.msi 点击修复按 钮。 5) 修复之后再次运行这些 MSI,选择卸载按钮。这样就可以完全卸载。 5、LabView 7.1 在编写大型程序时希望优化计算机的内存使用,那么需要考虑哪些内容? A:1) 、将 VI 分解为 SUBVI,当 SUBVI 不再被执行的时候,LV 能够释放它的内存。 2) 、尽可能少使用全局变量或局部变量,这两者会造成 LV 为数据备份。 3) 、在需要时才在打开的前面板上显示大型数组和字符串,因为前面板的显示控件需要 复制他们显示的数据。 4) 、属性节点会造成 SUBVI 的前面板滞留在内存中,这样会增加内存的使用。因此,如 果 SUBVI 的前面板不被显示,不要在 SUBVI 中使用属性节点。 5) 、尽量在数组中使用相同的数据类型,并在传输数据进入子 VI 使用强制小数点位置。 当 LV 改变数据类型,输出需要一个新的缓存。 6) 、当设计流程图,要注意任何输入大小与输出的大小不同的地方。EG:频繁的增加数 组或者字符串的大小将造成数据的多次复制。造成内存增加,并造成内存碎片。 6、 在 LabView 7.1 中生成可执行文件后运行出现如下错误: “Executable version(7.1.1)

doesn’t match resource file(7.1)”怎样消除错误? A:这种情况是由于 LV7.1.1Run-time Engine 安装损坏或者版本不兼容造成的。解决如下: 1) 到控制面板---添加或者删除程序 2) 选择 National Instruments Software 点击更改 3) 在 National Instruments Software 对话框选择 LV7.1.1Run-time Engine 点击修复 附注: 安装了 LV Run-time Engine7.1.1 后, MAX 的 software 里一般看不到 LV7.1.1Run-time 在 Engine7.1.1,只能在控制面板里看到。 7、 VISA Set I/O Buffer Size A:可以完成对缓存的设置,放的位置一定要跟在串口配置 VI 的后面,MASK 的设置要对, 如果不设置, 默认值为 4096Bytes,如果需要用串口读取的数据比这个大, 就会造成数据丢失。 8、 如何将 CVI 驱动程序(fp 文件)转换成 LabView 的驱动程序? A:LV 自带这个功能。在 TOOLS 的 Instrumentation 中的 Import Instrument from CVI Fp 菜 单里。 9、 LabView 7.1 如何创建控件以自定义图片方式显示? A:在前面板放上要创建的控件类型,选中它后点击 EDIT---CUSOMIZE CONTROL 进入编 辑面板,用工具栏的控件变成 CUSTOMIZE MODE,EDIT—Import Picture From File 选择要 显示的图片,右击前面板的控件点 Import Picture。切回 Edit Mode。右击控件选择 Import Picture 然后选择方式。同样操作其他图片。 10、 如何把 LabView 前面板控件当前值通过程序设为下次打开时的默认值? A:方法如下 1) 手动操作:对控件点击鼠标右键----Data Operations---Make Current Value Default。 2) 通过文件或注册表方式先把控件当前值存下来,再下次打开时再从文件或注册表把值 读回来。 3) 使用 VI Server 技术在保存控件当前值为默认值,但这种方法只能处于编辑状态使用, 在生成 exe 文件后不能使用。操作如下 (1) 调用 Invoke Node 设 VI 的 Edit Mode 值为 TRUE (2) 调用 Invoke Node 设 Make Current Value Default (3) 调用 Invoke Node 设 Save Instrumentt 的 Path to saved file 为需要设置默认值的 VI 路径 11、使用串口过程中发生错误: 如下错误: 1) Unable to open session to “ASRL1::INSTR” 2) Return Value :0XBFFF0072 3) Status Name :VI_ERROR_RSRC_BUSY 4) The resource is valid, but VISA can not currently access it. A:这是由于访问 COM 口的软件引起的,有可能是运行 LV 程序打开了 VISA 的对话而没 有关闭它; 或者打开了一个永远不能关闭的超级终端连接。 或者是其他的软件正在使用该串 口或者串口挂起了,这是需要关闭所有的程序。若果还是没有解决,最后方法:禁止 COM 口以释放资源;步骤如下:打开控制面板,点击系统图标,选择设备管理器,展开端口,选

中要操作的串口,右击选择属性,在常规选项里选择不再使用该设备。或者直接右击选择停 用。设定完毕重新启动,然后选择再启用该串口。 12、 在使用 Open/Create/Replace File.vi 选择 create or replace 方式时,如果文件已经存在, 需要 Replace,怎样才能不弹出对话框直接 Replace? A:两种方式:1)双击打开 Open/Create/Replace File.vi 的程序框图,把里面的 If function is 2(create or replace with protection) ask user’s permission to 的 CASE 结构删除。2)在 Open/Creat/Replace File.vi 前加一个判断文件存在的结构,判断存在时运行 Delete.vi 13、 LabView 在做网络发布的时候,能否在由 LabVIEWWEBServe 生成的 HTML 中嵌入其 他语言写的脚本文件?或者在其他网络服务器上使用由 LabView 生成的 HTML? A:这两种情况都是不允许的,原因在于 NI 的 Web Server 不允许这样的操作。LV 的 Web Server 无法将非 LV 环境下生成的脚本信息传送到客户端浏览器,也无法访问客户端浏览器 中非 LV 环境下生成的脚本信息;同样是处于 NI Web Server 的问题,其他的 Web Server (Apache,IIS 等)也无法使用由 LV 的 Web Server 生成的 HTML 文件实行对 VI 控制。 14、 如何较精确的判断延时时间? A:需要使用迅捷 VI(Elapsed Time.vi)而不能使用 Wait。因为 Wait 是会受到系统运行的影 响,而且重复延时后会产生积累误差。而 Elapsed Time 使用的系统时间(精确到 Ms) ,不会 产生累积误差。 15、 如何动态添加 Tree 控件内条目? A:查找 Directory hierarchy in tree control.vi 例程,打开 init-open-close 子 vi 内的 Directory to tree 子 vi 内 add Item.vi。使用该属性节点进行添加删除操作。重点在于 parent tag 端口的使 用。如果添加的为最上层的条目,则 parent tag 为空字符串。如果是子层条目,则 parent 必 须为上一层条目的 tag。 16、 在 LabView 7.1 中如何使用 Database Connectivity 更新 ACCESS 数据库中数据类型为 OLE 的字段? A: 使用带参数更新数据库的方式更新 OLE 数据类型的数据。 具体方法如下: 使用 DB Tools 1) Open Connection.vi 打开数据库;2)使用 DB Tools Create Parameterized Query.vi 建立一个带 参数更新数据库的 Refnum, SQL query 输入 在 “update 表名称 set 列名称= (?), ” 由于 OLE 数据无法用文本方式直接体现,(?) “ ”在这里就代表 OLE 的数据类型;3)使用 DB Tools set Parameter.vi,在 Value 处输入 OLE 数据就可以,比如数组;4)使用两次 DB Tools Free Object.vi 释放 Refnum,才可以得到 Connection Reference,才可以再使用其他 DB Tools VI; 5)断开连接。 17、 LabView 7.1,Time Loop 结构主程序内调用了两个不同功能的子程序,当子程序被调 用时弹出子 VI 前面板。子程序内均使用了 Time Loop,设置均一样,但是调用任一子 VI 后 另一个再也调用不了了。 A:两个子 VI 均使用了同一个设置的 Time Loop 结构,这是由于两个子 VI 的 Time Loop 的 Loop name 名称相同造成的。 18、 在 LabView 7.1 中如何设定和显示 Cursor

A:举例对于 waveform graph,我们可以调出它的属性节点,然后在属性节点中选择 Cursor list,程序就会以簇数组的形式列出所有的游标,先索引出来某个游标,然后再利用簇函数 就可以修改了,如果要改变游标的坐标,可以 Index Array 索引出某个游标,然后 Bundle by name 就可以修改,再 replace array 或者其他数组函数,将改变后的簇数组写入另一个 cursor list 的属性节点即可。 19、利用 Build Application 生成 exe 文件,如果原程序用到了 current vi’s path,那么就会出 现原先默认能找到的文件现在程序自己找不到了 A:当使用 current vi’s path 这个函数时,它会将文件名和该 vi 所在的路径返回,如果刚编 写 vi 还没有保存,那么运行它会返回一个无效值,如果已保存了该 vi,那么就能返回完整 路径,例如一个名为: “Application.vi”的 vi 被保存在 C:/Program File/Application 这个文 件夹下面, current vi’ path 函数返回的路径就是 C: s /Program File/Application/ Application.vi; 如果生成 exe, 并且与 Application.vi 保存在同一个目录下, 那么运行的时候会返回 C: /Program File/Application/ App.exe/Application.vi,所以我们需要多用一个 Strip path function 才能得到 和原来一样的路径。 20、 如何自定义窗口标题字符,而不是用默认的 Vi 名称? A: 如果只是设置一个非 VI 名称的默认标题, 可以在 VI Property>>Window Appearance 中设 置,去掉 Same As VI name 前面选中符号,然后在 Window title 中输入需要显示的字符;如 果希望在程序中修改标题,可以使用 VI Server 中属性 FP.Title 21、 LabView 中使用 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 中编成控制了。 22、 利用 LabView 的迅捷 VI 读出.lvm 的数据, 但是无法正常在 waveform graph 中正常显示。 A:读出的二维数组是以列为单位存放数据的,而 waveform graph 显示 2D 数组是以每行作 为一条曲线进行输出的,所以,利用 Transpose 2D Array 将行列转制就可以了。Waveform chart 与 graph 刚好相反,是以每列数据作为一条曲线进行输出的,所以不加转制就可以用 chart 代替工人阿婆和也可以正常显示。

23、 LabView 7.1DataSocket 协议传输数据怎样保证客户端完整地从服务器接收数据而不丢 失? A:数据丢失的原因是读取数据的速度比发布慢使得数据被覆盖,处理方法有两方面: 1) 提高客户端运行速度,保证服务器发布新数据前已经读完。 2) 设立数据缓存区。服务器的在 DataSocket Server Manager 设置,默认是 25M。客户机 的要将 Datasocket Open 函数模式参数选为 BufferedRead 或 BufferedRead/Write, 然后通过属 性节点设置缓存大小。同时也可以用属性节点作缓存区诊断。 24、 如何将 MAX 配置文件保存下来 A:在 MAX 里,当配置完成后,在菜单栏,选择 FILE---Export,选择保存位置已经类型, 点击 Next,选择需要保存的文件,接着点击 Export,finish。载入时,选择 Import 25、Developer Suit 中 State diagram toolkit 是做什么用的 A:状态框图使用一个图形化状态框图标识,定义多个状态及其转移逻辑,并包含有自动生 成 LV 代码的工具,在对于搭建大程序的构架上是很有用的一个工具 26、 LabView 7.1 用局部变量的时候只能将机械动作改成 Switch,而不能用 Latch,例如用 Stop 按钮停止两个并行的循环,怎么做? A:在用 Latch 方式时,系统读这个控件一次后自动改为默认值,所以用 Latch 方式时用局 部变量,在两次读出的值即使时间间隔很短也不能保持一致,所以就不能用了。此时,可以 用 Switch 方式,并在程序开始时初始化按钮就可以了。 27、在 ActiveX 容器中播放 Flash 的动画,如何实现在 LV 中响应 Flash 中的按钮动作? A:通过调用 ActiveX,可以在 LV 中播放*.swf 的动画。响应 FLAH 中控键动作的办法是用 一个事件结构,在 ActiveX 容器中特定区域响应鼠标动作。 28、 在调试 LabView 7.1 程序的时候, 程序总是进行到无法响应得状态, 然后只能强行关闭, 因此无法正常运行? A:在 VI 前面板有个长度很大的字符串 Indicator,因此程序在刷新屏幕的时候很消耗资源, 将这个 Indicator 设为隐藏,问题就解决了。同样的问题也会出现在数据量很大的 Graph, Chart,甚至探针上。 29、LabView 7.1 中一个 while 循环嵌套另一个 While 循环,如何通过一个布尔量停止这两 个循环? A: 创建一个布尔量的局部变量, 用这个局部变量控制一个循环, 用布尔量控制另一个循环, 注意机械特性是不能带锁存的(Latch) 。 30、采集 3 路信号,需要根据一列的数据的值来对整个数组进行排序,保证每一排的数据仍 然对应。 A: 31、 每次运行时 CPU 使用率都达到 100%,为什么? A:循环里面没加延时就会有这种现象发生

32、仪器驱动器的概念和 VISA 的特点? A:仪器驱动器是指使用标准化的 I/0 函数仪器设备进行通信的程序,主要用于对仪器进行 程控操作。在 LV 编程语言中,仪器驱动器是指由 VISA 标准和仪器程控指令共同构成的仪 器控制程序的应用接口(API) 。仪器驱动器采用 VISA 标准编程,从而可避开许多复杂而低 级的仪器程控命令。VISA 是虚拟仪器体系结构的简称,它的特点有 1)面向对象编程;2) VISA 是当前所有仪器接口类型功能函数的超集,且十分简洁。3)VISA 作为标准函数,与 仪器的 I/O 接口类型无关;4)VISA 程序与操作系统与编程语言无关。 33、如何选择告诉 CAN 卡和低速 CAN 卡的使用? A: 高速 CAN 和低速 CAN 设备是不能允许于同一个 CAN 网络中。 如果 CAN 设备是 Serials 2 的 CAN 设备那么是有两个 PORT 分别可以做高速 CAN 和低速 CAN 的, 而且是通过软件 来设置的,直接在 MAX 里找对应的 CAN 设备选择相应的 PORT 的属性就可以更改是高速 还是低速 CAN。如果 Serials1 的就需要一个端子,从一个 CANport 分出两个 Port 分别作高 速 CAN 和低速 CAN,也是在 MAX 设置的。 34、如何使用 Read Text File 函数从文本文件中逐行读取数据? A:在 Read Text File 函数的输入输出端口无法设置读取行的功能。只有用鼠标右击该函数, 从弹出的快捷菜单中选择 Read Lines 才能实现读取行的操作。将这个函数放到一个循环里, 就可以实现逐行读取的目的了。 35、用 LabView 写的串口程序,生成 EXE 文件后不能在没有 Lv 的机器上运行,这台机器 已经装好了相应的 LAB VIEW Run-Time,为什么? A:如果串口程序使用 VISA 写的,就需要在目标及其上安装相应的 VISA 驱动。可以在目 标及其上单独安装 VISA 驱动,也可在 LV 中使用打包功能将 VISA 驱动和应用程序一起做 成一个安装文件,统一安装到目标机器上。


赞助商链接
相关文章:
基于LabVIEW的2PSK仿真设计(学年论文)
可以系统了解基本原理,以及 得到数字调制波形和解调波形的方法。利用 LabVIEW 仿真可以更好的认识2PSK 信号波形、调制和 解调的过程。 【关键词】2PSK、调制与...
无线通信第二次Labview实验
无线通信第Labview实验_信息与通信_工程科技_专业资料。北京交通大学无线试验...1.1 TX_init 2 本模块主要实现 USRP 的初始化,是配置一些基本 USRP 参数的...
Labview中如何计算两个不同日期的时间差
提供了非常丰富的时间操作函数。Labview8.2 版本后又提出了新的有关时间的 ...要想真正了解一种数据类型, 首要的问题是要搞清楚该数据类型在内存中或者文件中...
基于LABVIEW的温度计设计 (2)
基于LABVIEW的温度计设计 (2)_信息与通信_工程科技_专业资料。南昌大学实验报告...需的基 础知识, 学习 LabVIEW 的基本功能和使用方法, 复习数字信号处理的所学...
基于LABVIEW的滤波器设计 (2)
基于LABVIEW的滤波器设计 (2)_信息与通信_工程科技_专业资料。南昌大学实验报告...需的基 础知识, 学习 LabVIEW 的基本功能和使用方法, 复习数字信号处理的所学...
使用LabVIEW读取微软Excel的数值数据
主要软件版本: 8.2.1 主要软件修正版本: 主要软件修正版本: 次要软件: 次要软件: N/A 问题: 问题: 如何在 LabVIEW 中读取微软 Excel 电子数据表中的数值数...
LabVIEW程序设计模式(五)—生产者消费者模式(2)_VI的可...
LabVIEW 程序设计模式 五)—生产者 消费者模式 程序设计模式(五 生产者 消费者模式(2)_VI 的可重入性 生产者/消费者模式 (Reentrant Execution) ) LabVIEW ...
虚拟仪器教学大纲2
.2专业方向知识2.2.1系统思维能力, 2.2.2 工程推理及解决问题能力, 2.2....以基于 LabVIEW 图形化编程语言的虚拟仪器开发平台为基础,学习掌握 LabVIE 编程...
2.如何学习 LabVIEW
如果英文 够好,最好是到它的英文版面去提问,英文讨论区人气更旺,容易找到答案...了难题,于是来报名参加 LabVIEW 的培训课程,以为上完课可以解 决自己的问题。 ...
基于labview的输电线路的纵联差动保护的仿真开题报告2_...
燕山大学 本科毕业设计(论文)开题报 告 课题名称: 基于 LabVIEW 输 电线 路纵联差 动保 护研究 学院(系) : 里仁学院 年级专业: 09 级电力 2 班 学生...
更多相关标签: