中国工控网 www.chinakong.com

中国自动化企业中心

企业目录

新闻中心

风采图片

产品中心

企业论坛

技术中心

资料下载

供求信息

招聘信息

深圳市天地华杰科技有限公司北京公司

http://www.tdhj.com.cn

首页  | 企业简介企业风采企业新闻产品目录企业论坛技术支持资料下载供求信息招聘信息留言信箱联系我们

所在位置:深圳市天地华杰科技有限公司北京公司 -- 企业论坛 -- 技术论坛1 -- LabVIEW常见问题及其解答

网站搜索:

企业目录

          企业首页

          企业简介

          企业风采

          企业新闻

          产品目录

          企业论坛

          4 技术论坛1

          技术支持

          资料下载

          留言信箱

          联系我们

发表人:张涛 发表时间:2010/12/3 11:03:00  

 

 本栏论题: LabVIEW常见问题及其解答  [11469] 
    LabView 常见问题及解答
    时间:2007-07-04 来源: 作者:linjing 点击:2711 字体大小:【大 中 小】
    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数据类型的数据。具体方法如下:1)使用DB Tools 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’s path函数返回的路径就是C:\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常见问题及其解答》论题的回复(共30篇,分3页显示)

 共3页  第3页  页次: 首页  上一页   

回复人:shiguangww

 回复时间:2014/8/22 20:45:00

 

    好东西啊 ,

回复人:shiguangww

 回复时间:2014/8/22 20:46:00

 

    好东西啊 ,

回复人:付飞

 回复时间:2016/4/25 23:35:00

 

    很好 ……。

回复人:lideqing7895

 回复时间:2016/11/3 10:22:00

 

    学习了!

回复人:duwen12

 回复时间:2018/6/15 23:10:00

 

    谢谢楼主提供
   
   
   
   

回复人:rdhhzjz6

 回复时间:2021/4/1 8:30:00

 

    学习学习

回复人:rdhhzjz6

 回复时间:2021/5/9 7:55:00

 

    学习学习

回复人:zhanwyang

 回复时间:2022/6/13 12:10:00

 

    路过,学习了

回复人:cz668323

 回复时间:2022/11/13 17:28:00

 

    谢!学习了.

回复人:sdmengzi

 回复时间:2024/9/21 14:39:00

 

    串口程序使用VISA是对的

 共3页  第3页   首页  页次: 1  2  3      上一页   

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网成员,请直接登录。

·如果你还不是中国工控网成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

     相关技术论坛:
     相关企业新闻:

深圳市天地华杰科技有限公司北京公司

联系地址:北京市东城区东四三条65号      邮政编码:100010

联系电话:010-67737811      传真:010-67759178      电子信箱:61305608@163.com       管理入口

中国工控网(www.chinakong.com)技术支持