有哪位大神有用labview进行CAN编程的学习资料

分享几个LABVIEW做的例子 - LabVIEW论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
分享几个LABVIEW做的例子
16:59:06  
分享几个LABVIEW做的例子
捕获.PNG (31.43 KB, 下载次数: 0)
16:50 上传
捕获.PNG (22.72 KB, 下载次数: 1)
新型计算器
16:50 上传
捕获.PNG (72.99 KB, 下载次数: 0)
串口调试助手
16:51 上传
捕获.PNG (63.2 KB, 下载次数: 3)
16:53 上传
捕获.PNG (55.35 KB, 下载次数: 0)
自动售货机1
16:55 上传
捕获.PNG (229.67 KB, 下载次数: 21)
自动售货机2
16:56 上传
地址:游客,如果您要查看本帖隐藏内容请
20:58:26  
好实用,可以拿来参考学习
21:11:00  
好,这几个看着都不错,下来学学
21:27:54  
我晕,里面的“新型计算器“是我编的,哈哈
21:14:19  
好样的,看起来不错顶一个
10:31:32  
哪位大神有用LABVIEW开发的安捷伦E4360A的例子?
10:37:08  
学习一下哈哈 需要打这么多字
21:35:05  
先学习学习希望有用
23:08:59  
好实用,可以拿来参考学习
23:29:01  
参考一下,请教
07:59:04  
asfasdfasdgsagsagsadgasgsadgsadg
11:51:44  
12:30:09  
谢谢楼主分享!
14:11:46  
来学习了! 谢谢楼主分享!
15:59:26  
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
16:57:13  
此主题将同步到腾讯微博,您的听众能够看到您发表的
17:42:20  
这个可以有啊,学习了
18:14:53  
来看看是什么样的资料,希望有帮助,谢谢楼主分享!
19:38:40  
谢谢楼主分享,过来学习
等待验证会员
11:15:40  
快让我来看看串口的例子吧!!!
Powered byLabview初学者常见问题及解答
1、Labview如何实现由一个事件引发其他三个事件的顺序发生,且这三次事件间的时间间隔为50ms?kXn电子资料网
A:可以引用状态机来设计程序,将触发事件作为状态机的状态控制参数,后面发生的三个事件依次作为状态机的三个顺序状态,设置状态切换时间间隔为500ms.kXn电子资料网
&kXn电子资料网
2、labview在主程序通过局部变量不能实时看子vi的参数kXn电子资料网
A:通过局部变量只能得到子vi运行完之后的结果。可以用control reference
方式,在子vi加一个属性节点引出一个reference。kXn电子资料网
主程序里把需要显示的控件创建一个reference连到子vi的reference输入端口。另外也可以用vi
server方式实现。kXn电子资料网
&kXn电子资料网
3、如何在一个graph或chart显示多个Y轴刻度,并且使每个通道对应每个刻度?kXn电子资料网
A:在前面板上,右键点击刻度,然后选择duplicate scales,就会创建一个新的刻度。然后再点击右键,选择swap
sides,就可以让刻度显示在图的左边或右边。然后右键右上角的plot legend上的曲线plot,选择Y
scales然后就可以选择与该曲线相应的Y轴SCALES。多条曲线对应多条Y轴的刻度时,是同样的方法。&kXn电子资料网
&kXn电子资料网
4、如何从labview中打开一个pdf文件?kXn电子资料网
A:最简单的方法:用system exec.vi实现,在system exec.vi的command line
端口创建一个常量,输入adobe reader
的路径,再加上文件名等几个参数就可以实现上述要求。举例如下:如果要拉开位于c盘的1234.pdf文件可以这样写“C:/Program
files/Acrobt 7.0/Acrobat/Acrobat.exe”/t “C:/1234.pdf”
“username”其中C:/Program files/Adobe/Acrobt
7.0/Acrobat/Acrobat.exe是Adobe Reader
的安装路径,/t是命令参数,C:/1234.pdf则是要打开的文件名,最后的username是用户的名字。&kXn电子资料网
&kXn电子资料网
5、采集在graph如何显示系统时间,并且随着采集点数时间不断刷新。kXn电子资料网
A:有两种方式,一种是采集波形然后输出给graph,在graph上选择显示绝对时间,并且去掉ignore time
stamp选项。第二种是采集文件,然后用获取时间的vi获取当前时间,然后把采集的文件和当前vibuild成波形文件再给
graph.graph的设置和前种方法一样。这样就可以显示出时间虽采集点不断刷新的效果。&kXn电子资料网
&kXn电子资料网
generation里的standard和HTML究竟是什么意思?kXn电子资料网
A:STANDARD和HTML是LV本身就有的报表类型,无须安装其他的文本编辑工具就可以打印。STANDARD是LV内建的一种报表格式,可以打印但不能存盘,也就是说我们的报表没有电子版。HTML是网页格式的文件,可以用浏览器打开,其实相当于LV帮我们编写HTML,这种格式是不能直接打印的,需要先指定网页路径才能打印出来。还要注意,如果是一段程序是用了report
generation的vi,在打包成exe文件或llb文件时,需要加入两个动态vi:_excel dynamic vi和 _word
vi。如果生成的报表采样了模板需要自支持文件里添加相应模板。&kXn电子资料网
&kXn电子资料网
7、如果要将channel名字,测的是什么信号,采样率是多少这样的和采得一起存入文件应该用什么方式比较好?kXn电子资料网
A:推荐一种以前基本被忽略的文件结构——TDM
FILE格式来存,这种文件格式基于二进制的方式,而在存储过程中可以加入很多的外部信息进去,例如free text;free
interger等等,所以存这样的应用还是挺合适的。&kXn电子资料网
&kXn电子资料网
8、vi property 下execution中选项reetrant
execution,选用和不选用有什么区别?kXn电子资料网
A:如果主程序执行同一个子vi,是同时两次或多次执行时,在不选用时,就会依次使用这个子vi;如果选用,则这个子vi就会并行执行,提高程序运行速度。&kXn电子资料网
&kXn电子资料网
9、为什么把LABVIEW程序框图解密以后,就可以一直打开程序框图,如何才能实现每次打开vi都是加密的?kXn电子资料网
A:如果在LABVIEW解开程序的框图的密码,关闭以后该程序,不退出labview,这个程序如果再次被打开会一直可以查看他的框图程序,原因是lv
没有关闭,所以密码会一直存在内存当中,所以再次打开会依然看到程序框图,如果要实现每次打开都是加密的,只要在一次打开后,把labview也关掉,下次再想要查看程序框图就需要输入密码。&kXn电子资料网
&kXn电子资料网
10、使用vi
server技术,如何实现从一个vi打开运行并读取另一个vi中控件的值?kXn电子资料网
A:kXn电子资料网
1)& 调用Open vi reference.vi ,输入子VI的路径到其VI
PATH的端口;kXn电子资料网
2)& 调用Ivoke Node.vi并设为Open FP;kXn电子资料网
3)& 调用Ivoke Node.vi并设为Run VI;kXn电子资料网
4)&& 调用Ivoke Node.vi并设为Get
control Value[Variant];对Control Name端口填入子VI循环的停止按钮控件名称;Get Control
Value [Variant]输入端的值通过Variant To Data
.vi设为控件相对应的控件类型后,输出到前面板,这就可实现取VI控件的值;kXn电子资料网
5)& 最后调用Close Reference.vi关闭VI
Server。&kXn电子资料网
&kXn电子资料网
11、连续采集程序分成配置task状态和采集状态两大部分。在配置状态中得配置出有效的task。根据需要在适当的时候进入采集状态。在采集状态中使用start
task 和read两个 vi并且循环执行。当程序开始后立刻报错。kXn电子资料网A:因为采集状态中使用start
task和 read 两个vi并且循环执行,当采集已经开始后再使用start
task就会重复开始相同的资源,导致资源冲突产生错误。建议start部分单独作为一个状态,在循环执行的状态中只使用read.vi。&kXn电子资料网
&kXn电子资料网
12、LV7.1在前面板突然找不到Scrollbar了,现在想看或者操作屏幕之外的控件显示件非常麻烦,怎么能够找到Scrollbar?kXn电子资料网
A:在File/VI Property/Window Appearance/Customize里有Show
scrollbar的选项。&kXn电子资料网
&kXn电子资料网
13、LV7.1如何实现将Chart的时间坐标与计算机系统时间一致?kXn电子资料网
A:Chart属性Format And Precision选Absolute Time,显示方式改System Time Format
和System Data Format。程序框图里Get Data/Time In
Seconds获取当前时间,转换为双精度浮点型后输入到Waveform Chart的属性节点Xscale.
Offset。属性节点Xscale. Format设为模式7。&kXn电子资料网
&kXn电子资料网
14、LV7.1如何设计时间输出格式为小时:分:秒.毫秒?kXn电子资料网
A:用Get Data/Time In Seconds用来获得当前时间,另一个是Format Data/Time
String函数,这个函数用来定义输出时间的格式,再time format
string端口上输入字符串%H:%M:%S%.3u,然后time stamp连接Get Data/Time In
Seconds的时间输出即可。关于时间格式的定义可以在help里看到。&kXn电子资料网
&kXn电子资料网
15、为什么用子程序调用时pop up前面板,前面板总是自主程序后面?kXn电子资料网
A:在window appearance里面选择default floating
和modal这三项,将主程序的选项设在较低的优先级而子程序设得高一点应该可以了。&kXn电子资料网
&kXn电子资料网
16、如何读出excel里的来作分析?kXn电子资料网
A:使用Excel Get Data.vi并在参数data type上使用二维字符数组可把Excel内以字符串的方式读出。&kXn电子资料网
&kXn电子资料网
17、如何对Excel文件作续存?kXn电子资料网
A:使用Excel Get Last Row.vi先将Excel内已有的最后一行的行数得出,再于该行开始续存。&kXn电子资料网
&kXn电子资料网
18、如何将文件保存为Excel格式kXn电子资料网
A:1)&&&&&
用ActiveX技术,将LV作为一个ActiveX服务器。可以参考National Instruments/Labview
7.1/examples/apps/freqresp.llb VI库里面的Frequency
Response.vi例子程序。2)使用Report
Generation工具包,它屏蔽了底层的ActiveX,使用比较简单,不过需要购买。3)保存为文本方式,后缀为.xls,这样子也可以用
Excel打开,不过不能用Excel修改保存,要不然会自动修改为Excel文档,以后也不能用LV对其进行操作。&kXn电子资料网
&kXn电子资料网
19、如何在table中既显示小数又显示整数kXn电子资料网
A:table中显示的是字符串,显示小数还是整数是在转换成字符串而未放入table之前的过程中完成的,因此可以将整数小数分别转换成字符串后再合并输出到table中即可。&kXn电子资料网
&kXn电子资料网
20、如何一个边框是透明的string控件kXn电子资料网
A:选择一个classic simple
string控件,使用工具模板的染色工具,在弹出的对话框中选择右上角“T”;一样的transparent,然后给这个控件染色就可以了。&kXn电子资料网
&kXn电子资料网
21、循环采集并对采集的结果判断,前面板放置一个布尔报警灯,只保存报警的,并可回放,怎么实现?kXn电子资料网
A:存储vi外加一个case结构,并以布尔报警灯作为判断,如果为真值,存储,为false,不存。回放有两种形式,即:可以把试验存储,然后回调。也可以把graph存为图片。&kXn电子资料网
&kXn电子资料网
22、怎样把While
loop的循环次数i写入Table的行头ColHdrs[]呢?kXn电子资料网
A:创建Table的属性节点,属性ColHdrVis=T显示行头,ColHdrs[]连接一个字符串数组,需要将循环次数i加1,然后通过
Number To Fractional String转化为字符类型,精度为0。添加移位寄存器,赋初值为空字符串数组,build
array上端输入接移位寄存器,下端接数字,右端接ColHdrs[]和移位寄存器另外一端。&kXn电子资料网
&kXn电子资料网
23、串口程序打包安装到一台没有LV环境的机器下,串口不可用,为什么?kXn电子资料网
A:LV7.1的版本,在Application Builder中Installer页面选择:Advanced/Serial Port
Support。&kXn电子资料网
&kXn电子资料网
24、使用CLF节点调用DLL中的函数,如果原函数中指定的类型为结构,那么在CLF配置过程中该如何指定类型?kXn电子资料网A:可以选择类型(TYPE)为Adapt To
Type,然后在输出或输入端口连接一个Cluster,这个Cluster的定义和原函数中结构的定义一样。选择Adapt To
Type后,连接到端口的类型是什么,与函数接口的类型就是什么。kXn电子资料网
&kXn电子资料网
&kXn电子资料网
25、在子vi运行过程中,如何将实时传递到调用它的主vi中,而不是等待子VI运行结束后才在主VI中获得子Vi的输出?kXn电子资料网A:使用带控制参量的属性节点可以实现在子VI中修改主VI属性的目的,由于控件的值(Value)也是控件的属性之一,因此可以使用控制参量是新以上要求。在子VI中,使用带有控制参量的属性节点,将要传递到主VI的写入这个属性(Value)中,将控制参量要设置为Control,并且在子VI的连接器中进行定义;在主VI中,为接收子VIshuju的控件建立一个控制参量,将这个控制参量连接到子VI,即可达到在主VI中实时获取子VI的要求。kXn电子资料网
&kXn电子资料网
26、事件结构中两种事件类型,一个是通知事件(Notify),另一个是过滤事件(Filter),这两种事件的区别是什么?kXn电子资料网
A:对于通知事件,程序可以感知事件的发生并且响应该事件,然后再处理在事件结构中定义的任务;对于过滤事件,程序感知事件发生后首先处理在事件结构中定义的任务,然后根据时间结构中的设定(Discard?)决定是否响应该事件。举例来说,时间为Panel
Close,在事件发生时弹出一个对话框。如果是通知事件,首先响应事件关闭了前面板,因此没有办法处理“弹出对话框”的任务;如果是过滤事件,首先处理
“弹出对话框”的任务,然后根据事件结构中的Discard的值判断是否关闭前面板,若Discard为T,则不关闭,若为F,则关闭。&kXn电子资料网
&kXn电子资料网
27、LV7.1主程序已经完成,想在主程序运行之前,先执行一个别的界面,当退出该界面的时候,再显示主界面,如何实现?kXn电子资料网
A:可以在主程序框图之前,将主程序前面板隐藏,调用子程序,推出子程序后,再显示主程序前面板。这可以通过VI属性节点来实现,先调用一个属性节点,右键选择Select
Class/VI Server/VI,然后在属性中选择Front Pannel
Window/State属性,分为设为Hide和Standard。Demo程序见项目进程管理中AE-01labview编程技术讨论的“主界面隐藏”。&kXn电子资料网
&kXn电子资料网
28、将LV7.1前面板控件(graph)的内容保存成图像文件,在LV中如何编程实现?kXn电子资料网
A:右键控件创建Invoke Node,选择方法为“Get Panel Image”;另外,调用Graphics
&Sound/Graphics
Formats下面的VI,将第二步获得的图像写入相应格式文件中。&kXn电子资料网
&kXn电子资料网
29、在LV程序中使用matlab,生成exe文件以后,发现文件可以运行但是无法弹出运行界面。kXn电子资料网A:在lv中如果使用了MATLAB的话,生成EXE文件的时候需要加一个名为马特script.dll的文件作为支持文件,此外在目标PC上必须安装MATLAB软件。&kXn电子资料网
&kXn电子资料网
30、LV7.1使用VI
Server的方式,在一台机器上调用另一台机器上的VI并运行,需要做哪些设置?(两台机器在同一个网络中)kXn电子资料网
A:1)在Tools/Options/VI
Server:Configurtion下选择Protocols为TCP/IP,这样才能在网络中使用VI
Server,否则只是在本机上使用VI Server。 2)在Tools/Options/VI Server:TCP/IP
Access下设置可以访问的VI
Server的主机IP。如果不进行设置,远程机器将无法调用需要的VI。&kXn电子资料网
&kXn电子资料网
31、在LV7.1中如何在运行程序后,前面板上去掉windows的关闭按钮kXn电子资料网
A:可以在LV的前面板FILE/VI properties/windows appearance/customize,去掉allow
user to close window对钩,保存设置,运行后可以实现效果。kXn电子资料网
kXn电子资料网
32、LV7.1中如何清除前面板的Graph,即在每次运行时,让Graph重新显示而不显示历史。kXn电子资料网
A:在Graph里面可以通过创建Local Varible并对其赋空来解决。而在Chart里可以通过创建History
Data属性节点并对其赋空来解决。&kXn电子资料网
&kXn电子资料网
33、LV7.1中怎样将一个数组中所有满足条件的元素的索引值提取出来,保存成一个新的数组?kXn电子资料网
A:使用移位寄存器、Build
Array和Select函数就可以做到,具体方法:1)使用FOR循环,在循环边框上添加一个移位寄存器,并初始化为一维空数组,类型为I32;2)在循环内部使用Select函数,每次循环都判断数组中的一个元素,并将判断结果(布尔量类型)送入Select的“s”输入端;3)每次循环都使用
Array函数将左端的移位寄存器直接连接到Select函数的“f”输入端,这样Select函数的输入端就是所有满足条件的元素的索引值;4)将
Select函数的输出端连到右端的移位寄存器上。这样程序结束后,For循环的右端移位寄存器的就是需要的索引值。&kXn电子资料网
&kXn电子资料网
35、 移位寄存器和反馈节点的区别?kXn电子资料网
回答:反馈节点箭头的起始端相当于移位寄存器的右端,箭头的末端相当于寄存器的左端。区别在于移位寄存器的左端元素可以通过下拉下拉方式增加,而反馈节点的端口是无法增加的。&kXn电子资料网
&kXn电子资料网
36、如何让子VI的前面板也显示出来?kXn电子资料网
A:右键点击子VI,选择SUBVI
NODE……然后再选择第2项SHOW……就是当子VI被调用时,显示前面板。&kXn电子资料网
&kXn电子资料网
37、弹出窗口无法进行任何操作,并且被主界面挡住,如何解决?kXn电子资料网
A:主界面VI properties中windows appearance里customs设定windows
behavior为normal了,因此主界面保持在最前端,应该设为default。&kXn电子资料网
&kXn电子资料网
38、在程序中实现按对应键弹出窗口,在窗口已打开情况下继续可打开其他窗口?kXn电子资料网
A:在程序框图内使用并行循环。每一个可能要运行的子VI(打开其窗口)及其运行条件(按键)各占一个循环。各个循环相互独立,互不干扰。在考虑同时关闭各个窗口时,需要使用全局变量。&kXn电子资料网
&kXn电子资料网
39、在调度Vi的时候,经常无意地把面板上的一些控件移动了位置。还要花很大功夫去重新布置这些面板控件。有没有办法让已经设计好的控件的位置固定不动?kXn电子资料网
A:首先我们可以通过Operate菜单中的Change To Run/Edit
Mode命令,设置VI为运行或编辑模式。面板控件的移动只在编辑模式下有效。在运行模式下是不能移动任何控制的位置的。第二种方法是,选择指定的控件(可多选),然后在菜单的Reorder下拉菜单下,选择LOCK命令,来锁住指定的控件。这样,除非使用Unlock命令解锁。否则是无法移动指定控件的位置。&kXn电子资料网
&kXn电子资料网
40、为什么子VI节点的输出端口没有传递出来?kXn电子资料网
A:这类问题的主要原因是子VI中存在着循环。如果子VI中的循环不能推出,子VI节点就一直在运行。对于LV的流编程机制来讲,一个节点没有执行完,它的所有输出端口就不会有有效输出。解决方法:一是把子VI中的循环提出到主VI里来。二是使用全局变量,并在主VI中使用并行循环来控制子VI
的结束。&kXn电子资料网
&kXn电子资料网
41、怎样在LABVIEW中实现全屏显示?kXn电子资料网
A:1)要全屏显示,在File/VI Properties/Window Size/Size the front panel to
the width and height of the entire screen打上钩,就可以了。kXn电子资料网
2)是否控件显示方法,第一,要完全不显示时,可以把控件放在界面看不见的地方他就不显示了;第二种方法,你可以使用控件的属性进行控制控件的
Visible,具体方法是在程序框图里点击鼠标右键/Create/Properties
Node,选择Visible,并将其改为Change to
Read,对Visble设置为True或False就可以控制控件是否显示了&kXn电子资料网
&kXn电子资料网
42、LV如何对Excel文件作续存?kXn电子资料网A:使用Excel Get Last
Row.vi先将Excel内已有的最后一行的行数得出,再于该行开始续存。&kXn电子资料网
&kXn电子资料网
43、LV当用鼠标点击Graph时,该Graph的大小变化了,当鼠标离去后Graph的大小恢复到原来情况?kXn电子资料网
A:可以应用一个Event
Structure来做,添加两个事件(一个是鼠标点击,另一个是鼠标离去)。通过在这两个事件中分别赋给Graph的PlotArearSize属性节点不同的值,来改变Graph的大小。&kXn电子资料网
&kXn电子资料网
44、如何用LABVIEW编程检测U盘?kXn电子资料网
A:需要调用Windows API函数GetDriveTypeA,其函数返回值盘符类型的类型为长整形,输入参数为检测盘符。调用CLFN.vi选择/windows/
system32/kernel32.dll,选择GetDriveTypeA,设置Return Type为Numeric Signed
32-bit Integer;再添加参数nDrive,设置参数类型为STRING和格式为C String
Pointer。运行时在输入端填上要检测的U盘盘符,返回结果为时表示为DRIVE_REMOVABLE即为可移动的U盘
kXn电子资料网
如何用Labview与可编程仪器通信,该仪器没有GPIB接口,但有COM口,能否用LV操作?kXn电子资料网
A:可以通过Labview的串口通信来解决仪器控制问题,参看FIND EXAMPLE的BASIC 2 PORT SERIAL
WRITE AND READ.VIkXn电子资料网
&kXn电子资料网
&kXn电子资料网
46、& 如何将EVENTSTRUCT中捕获的时间传递到STATE
DIAGRAM?kXn电子资料网
A:使用VENTSTRUCT捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通过QUEUE将VENTSTRUCT中的字符串传递到STATEDIAGRAM中,再根据得到的字符串进行相应的处理。kXn电子资料网
&kXn电子资料网
47、& 使用WRITE TO BINARY
FILE函数向二进制文件中写入一个1D数组,为什么在READ FROM BIANRY FILE读取时,会多出4个字节呢?kXn电子资料网A:写入时加入了头信息,多出的4个字节就是头信息,代表了数组或字符串的长度。在WRITE
TO BINARY FILE 中的APPEND ARRAY OR STING
SIZE这个输入端口中设置,其默认值为T,代表加入头信息;如果将其改为F,就不会多出4个字节了。kXn电子资料网
&kXn电子资料网
卸载Labview7.1时出现错误1603,接着出现错误,程序询问是否继续卸载操作,怎样消除该错误并正确卸载7.1?kXn电子资料网
A:该错误通常出现在试图卸载某些共享组件的时候。按照以下步骤可以解决该问题。kXn电子资料网
1)& 注意当错误发生时是在卸载哪一部分组件。一般讲在卸载LV核心部分或LV RUNTIME
ENGINE的时候容易出现。kXn电子资料网
2)& 当出现错误1603,弹出对话框提示继续卸载操作时候,点击YESkXn电子资料网
3)& 如果卸载完成之后提示需要重新启动计算机,点击NO。kXn电子资料网
对于卸载过程中产生的错误,从CD相应的文件夹中手动运行相应的组件,路经如下:/components/lvcorefull/lvcorefull.msi或components/lvruntimeeng/lvruntimeeng.msi点击修复按钮。kXn电子资料网
5)& 修复之后再次运行这些MSI,选择卸载按钮。这样就可以完全卸载。kXn电子资料网
&kXn电子资料网
49、Labview7.1在编写大型程序时希望优化计算机的内存使用,那么需要考虑哪些内容?kXn电子资料网A:1)、将VI分解为SUBVI,当SUBVI不再被执行的时候,LV能够释放它的内存。kXn电子资料网
2)、尽可能少使用全局变量或局部变量,这两者会造成LV为备份。kXn电子资料网
3)、在需要时才在打开的前面板上显示大型数组和字符串,因为前面板的显示控件需要复制他们显示的。kXn电子资料网
4)、属性节点会造成SUBVI的前面板滞留在内存中,这样会增加内存的使用。因此,如果SUBVI的前面板不被显示,不要在SUBVI中使用属性节点。kXn电子资料网
&& 5)、尽量在数组中使用相同的类型,并在传输进入子VI使用强制小数点位置。当LV改变类型,输出需要一个新的缓存。kXn电子资料网
6)、当设计流程图,要注意任何输入大小与输出的大小不同的地方。EG:频繁的增加数组或者字符串的大小将造成的多次复制。造成内存增加,并造成内存碎片。kXn电子资料网
&kXn电子资料网
在Labview7.1中生成可执行文件后运行出现如下错误:“Executable version(7.1.1) doesn’t
match resource file(7.1)”怎样消除错误?kXn电子资料网
A:这种情况是由于LV7.1.1Run-time Engine安装损坏或者版本不兼容造成的。解决如下:kXn电子资料网
1)& 到控制面板---添加或者删除程序kXn电子资料网
2)& 选择National Instruments
Software点击更改kXn电子资料网
3)& 在National Instruments
Software对话框选择LV7.1.1Run-time Engine点击修复kXn电子资料网
附注:安装了LV Run-time Engine7.1.1后,在MAX的software里一般看不到LV7.1.1Run-time
Engine7.1.1,只能在控制面板里看到。kXn电子资料网
&kXn电子资料网
51、& VISA Set I/O Buffer
SizekXn电子资料网
A:可以完成对缓存的设置,放的位置一定要跟在串口配置VI的后面,MASK的设置要对,如果不设置,默认值为4096Bytes,如果需要用串口读取的比这个大,就会造成丢失。kXn电子资料网
&kXn电子资料网
如何将CVI驱动程序(fp文件)转换成LV的驱动程序?kXn电子资料网A:Labview自带这个功能。在TOOLS的Instrumentation
中的Import Instrument from CVI Fp菜单里。kXn电子资料网
&kXn电子资料网
Labview7.1如何创建控件以自定义图片方式显示?kXn电子资料网A:在前面板放上要创建的控件类型,选中它后点击EDIT---CUSOMIZE
CONTROL进入编辑面板,用工具栏的控件变成CUSTOMIZE MODE,EDIT—Import Picture From
File选择要显示的图片,右击前面板的控件点Import Picture。切回Edit Mode。右击控件选择Import
Picture然后选择方式。同样操作其他图片。kXn电子资料网
&kXn电子资料网
如何把Labview前面板控件当前值通过程序设为下次打开时的默认值?kXn电子资料网
A:方法如下kXn电子资料网
1)& 手动操作:对控件点击鼠标右键----Data Operations---Make
Current Value Default。kXn电子资料网
通过文件或注册表方式先把控件当前值存下来,再下次打开时再从文件或注册表把值读回来。kXn电子资料网
3)& 使用VI
Server技术在保存控件当前值为默认值,但这种方法只能处于编辑状态使用,在生成exe文件后不能使用。操作如下kXn电子资料网
(1)&&&&&&
调用Invoke Node设VI的Edit Mode值为TRUEkXn电子资料网
(2)&&&&&&
调用Invoke Node设Make Current Value DefaultkXn电子资料网
(3)&&&&&&
调用Invoke Node设Save Instrumentt的Path to saved
file为需要设置默认值的VI路径kXn电子资料网
&kXn电子资料网
55、 使用串口过程中发生如下错误:kXn电子资料网
1)& Unable to open session to
“ASRL1::INSTR”kXn电子资料网
2)& Return Value :0XBFFF0072kXn电子资料网
3)& Status Name :VI_ERROR_RSRC_BUSYkXn电子资料网
4)& The resource is valid, but VISA can not
currently access it.kXn电子资料网
A:这是由于访问COM口的软件引起的,有可能是运行LV程序打开了VISA的对话而没有关闭它;或者打开了一个永远不能关闭的超级终端连接。或者是其他的软件正在使用该串口或者串口挂起了,这是需要关闭所有的程序。若果还是没有解决,最后方法:禁止COM口以释放资源;步骤如下:打开控制面板,点击系统图标,选择设备管理器,展开端口,选中要操作的串口,右击选择属性,在常规选项里选择不再使用该设备。或者直接右击选择停用。设定完毕重新启动,然后选择再启用该串口。kXn电子资料网
&kXn电子资料网
56、 在使用Open/Create/Replace File.vi选择create or replace
方式时,如果文件已经存在,需要Replace,怎样才能不弹出对话框直接Replace?kXn电子资料网
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.vikXn电子资料网
&kXn电子资料网
LV在做网络发布的时候,能否在由LabVIEWWEBServe生成的HTML中嵌入其他语言写的脚本文件?或者在其他网络服务器上使用由LV生成的HTML?kXn电子资料网
A:这两种情况都是不允许的,原因在于NI的Web Server不允许这样的操作。LV的Web
Server无法将非LV环境下生成的脚本信息传送到客户端浏览器,也无法访问客户端浏览器中非LV环境下生成的脚本信息;同样是处于NI
Web Server的问题,其他的Web Server(Apache,IIS等)也无法使用由LV的Web
Server生成的HTML文件实行对VI控制。kXn电子资料网
&kXn电子资料网
58、& 如何较精确的判断延时时间?kXn电子资料网
A:需要使用迅捷VI(Elapsed
Time.vi)而不能使用Wait。因为Wait是会受到系统运行的影响,而且重复延时后会产生积累误差。而Elapsed
Time使用的系统时间(精确到Ms),不会产生累积误差。kXn电子资料网
&kXn电子资料网
59、 如何动态添加Tree控件内条目?kXn电子资料网
A:查找Directory hierarchy in tree
control.vi例程,打开init-open-close子vi内的Directory to tree子vi内add
Item.vi。使用该属性节点进行添加删除操作。重点在于parent tag端口的使用。如果添加的为最上层的条目,则parent
tag为空字符串。如果是子层条目,则parent必须为上一层条目的tag。kXn电子资料网
&kXn电子资料网
60、 在Labview7.1中如何使用Database Connectivity更新ACCESS库中类型为OLE的字段?&kXn电子资料网
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)断开连接。kXn电子资料网
&kXn电子资料网
61、 Labview7.1,Time
Loop结构主程序内调用了两个不同功能的子程序,当子程序被调用时弹出子VI前面板。子程序内均使用了Time
Loop,设置均一样,但是调用任一子VI后另一个再也调用不了了。&kXn电子资料网
A:两个子VI均使用了同一个设置的Time Loop结构,这是由于两个子VI的Time Loop的Loop
name名称相同造成的。kXn电子资料网
&kXn电子资料网
在Labview7.1中如何设定和显示Cursor&kXn电子资料网
A:举例对于waveform graph,我们可以调出它的属性节点,然后在属性节点中选择Cursor
list,程序就会以簇数组的形式列出所有的游标,先索引出来某个游标,然后再利用簇函数就可以修改了,如果要改变游标的坐标,可以Index
Array 索引出某个游标,然后Bundle by name就可以修改,再replace
array或者其他数组函数,将改变后的簇数组写入另一个cursor list的属性节点即可。kXn电子资料网
&kXn电子资料网
63、利用Build Application生成exe文件,如果原程序用到了current vi’s
path,那么就会出现原先默认能找到的文件现在程序自己找不到了?&kXn电子资料网
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才能得到和原来一样的路径。kXn电子资料网
&kXn电子资料网
64、 如何自定义窗口标题字符,而不是用默认的Vi
名称?&kXn电子资料网
A:如果只是设置一个非VI名称的默认标题,可以在VI Property&&Window
Appearance中设置,去掉Same As VI name前面选中符号,然后在Window
title中输入需要显示的字符;如果希望在程序中修改标题,可以使用VI Server中属性FP.TitlekXn电子资料网
&kXn电子资料网
Labview中使用NI-VISA软件控制USB设备&kXn电子资料网
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操作系统。kXn电子资料网
复制INF文档并将其放入INF文件夹,这个文件夹的位置通常是:“C:WINDOWSINF”。这个文件夹可能是隐藏的。kXn电子资料网
右击C:WINDOWSINF文件夹中INF文件,然后点击Install。这个过程为您的文件创建了PNF文档。现在就可以准备安装USB设备了。kXn电子资料网
连接USB设备。Windows探测到您的USB设备后,立即会打开“添加新硬件向导”。遵照屏幕上有关向导程序的指定行事。如果您准备为该设备选择驱动程序,就请浏览INF文件夹,并选择您使用DDW创建的INF文档。就可以在MAX和LV中编成控制了。kXn电子资料网
&kXn电子资料网
66、利用Labview的迅捷VI读出.lvm的,但是无法正常在waveform
graph中正常显示。&kXn电子资料网
A:读出的二维数组是以列为单位存放的,而waveform
graph显示2D数组是以每行作为一条曲线进行输出的,所以,利用Transpose 2D Array
将行列转制就可以了。Waveform chart与graph刚好相反,是以每列作为一条曲线进行输出的,所以不加转制就可以用chart代替工人阿婆和也可以正常显示。kXn电子资料网
&kXn电子资料网
67、 Labview7.1DataSocket协议传输怎样保证客户端完整地从服务器接收而不丢失?kXn电子资料网
A:丢失的原因是读取的速度比发布慢使得被覆盖,处理方法有两方面:kXn电子资料网
1)& 提高客户端运行速度,保证服务器发布新前已经读完。kXn电子资料网
2)&& 设立缓存区。服务器的在DataSocket Server
Manager设置,默认是25M。客户机的要将Datasocket
Open函数模式参数选为BufferedRead或BufferedRead/Write,然后通过属性节点设置缓存大小。同时也可以用属性节点作缓存区诊断。kXn电子资料网
&kXn电子资料网
68、 如何将MAX配置文件保存下来?&kXn电子资料网
A:在MAX里,当配置完成后,在菜单栏,选择FILE---Export,选择保存位置已经类型,点击Next,选择需要保存的文件,接着点击Export,finish。载入时,选择ImportkXn电子资料网
&kXn电子资料网
69、Developer Suit中State diagram
toolkit是做什么用的?&kXn电子资料网
A:状态框图使用一个图形化状态框图标识,定义多个状态及其转移逻辑,并包含有自动生成LV的工具,在对于搭建大程序的构架上是很有用的一个工具kXn电子资料网
&kXn电子资料网
LV7.1用局部变量的时候只能将机械动作改成Switch,而不能用Latch,例如用Stop按钮停止两个并行的循环,怎么做?&kXn电子资料网
A:在用Latch方式时,系统读这个控件一次后自动改为默认值,所以用Latch方式时用局部变量,在两次读出的值即使时间间隔很短也不能保持一致,所以就不能用了。此时,可以用Switch方式,并在程序开始时初始化按钮就可以了。kXn电子资料网
&kXn电子资料网
71、在ActiveX容器中播放Flash的动画,如何实现在LV中响应Flash中的按钮动作?&kXn电子资料网
A:通过调用ActiveX,可以在LV中播放*.swf的动画。响应FLAH中控键动作的办法是用一个事件结构,在ActiveX容器中特定区域响应鼠标动作。kXn电子资料网
&kXn电子资料网
72、在调试LV7.1程序的时候,程序总是进行到无法响应得状态,然后只能强行关闭,因此无法正常运行?&kXn电子资料网
A:在VI前面板有个长度很大的字符串Indicator,因此程序在刷新屏幕的时候很消耗资源,将这个Indicator设为隐藏,问题就解决了。同样的问题也会出现在量很大的Graph,Chart,甚至探针上。kXn电子资料网
&kXn电子资料网
73、Labview7.1中一个while循环嵌套另一个While循环,如何通过一个布尔量停止这两个循环?&kXn电子资料网
A:创建一个布尔量的局部变量,用这个局部变量控制一个循环,用布尔量控制另一个循环,注意机械特性是不能带锁存的(Latch)。kXn电子资料网
&kXn电子资料网
74、采集3路信号,需要根据一列的的值来对整个数组进行排序,保证每一排的仍然对应。kXn电子资料网A:kXn电子资料网
&kXn电子资料网
&kXn电子资料网
每次运行时CPU使用率都达到100%,为什么?&kXn电子资料网
A:循环里面没加延时就会有这种现象发生kXn电子资料网
&kXn电子资料网
76、仪器驱动器的概念和VISA的特点?&kXn电子资料网
A:仪器驱动器是指使用标准化的I/0函数仪器设备进行通信的程序,主要用于对仪器进行程控操作。在LV编程语言中,仪器驱动器是指由VISA标准和仪器程控指令共同构成的仪器控制程序的应用接口(API)。仪器驱动器采用VISA标准编程,从而可避开许多复杂而低级的仪器程控命令。VISA是虚拟仪器体系结构的简称,它的特点有1)面向对象编程;2)VISA是当前所有仪器接口类型功能函数的超集,且十分简洁。3)VISA作为标准函数,与仪器的I/O接口类型无关;4)VISA程序与操作系统与编程语言无关。kXn电子资料网
&kXn电子资料网
77、如何选择告诉CAN卡和低速CAN卡的使用?&kXn电子资料网
A:高速CAN 和低速CAN设备是不能允许于同一个CAN网络中。如果CAN设备是Serials 2
的CAN设备那么是有两个PORT分别可以做高速CAN和低速CAN的,而且是通过软件来设置的,直接在MAX里找对应的CAN设备选择相应的PORT的属性就可以更改是高速还是低速CAN。如果Serials1的就需要一个端子,从一个CANport分出两个Port分别作高速CAN和低速CAN,也是在MAX设置的。kXn电子资料网
&kXn电子资料网
78、如何使用Read Text File函数从文本文件中逐行读取?&kXn电子资料网
A:在Read Text File函数的输入输出端口无法设置读取行的功能。只有用鼠标右击该函数,从弹出的快捷菜单中选择Read
Lines才能实现读取行的操作。将这个函数放到一个循环里,就可以实现逐行读取的目的了。kXn电子资料网
&kXn电子资料网
79、用Labview写的串口程序,生成EXE文件后不能在没有Lv的机器上运行,这台机器已经装好了相应的LAB
VIEW Run-Time,为什么?&kXn电子资料网
A:如果串口程序使用VISA写的,就需要在目标及其上安装相应的VISA驱动。可以在目标及其上单独安装VISA驱动,也可在Labview中使用打包功能将VISA驱动和应用程序一起做成一个安装文件,统一安装到目标机器上。kXn电子资料网
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

 

随机推荐