找回密码
 注册
Simdroid-非首页
查看: 7418|回复: 61

!!! LabVIEW初学者 FAQ (整理中) !!!

[复制链接]
发表于 2006-10-11 14:16:28 | 显示全部楼层 |阅读模式 来自 上海
这个帖子的目的是帮助初学者快速入门。 这里只是整理初学者容易碰到的问题,而且是概念性的问题。并不是帮助初学者解决编程时碰到的具体问题。 具体问题请到论坛里提问

如果您是初学者,请提出您的问题。第一时刻想到的问题最好。如果您是资深爱好者,请写写学习LabVIEW的心得体会。 感谢keiran, georegezou, Qia_sky 的贡献! 为了少些繁琐,以下汇总不注明作者,见谅。


未经允许,不得转载

---------------------------------------------------------------------------

应该怎样开始LabVIEW的学习

   第一步:先看看NI的入门资料。了解一下虚拟仪器的概念,LabVIEW的应用领域,编程特点等。
   第二步:照着LabVIEW Getting Started 依样画葫芦学一下。 (点LabVIEW开始画面右边New to LabVIEW>>Getting Started with LabVIEW)。这样你就对LabVIEW有个比较感性的认识了。知道LabVIEW编程的过程,一些基本的知识。
   第三步:做些练习,找个有经验的LabVIEWer给你提提建议。 做了练习,使得你逐渐熟悉LabVIEW里的常用palette上的VI. 更重要的是培养良好的编程习惯,学习怎样自己学习LabVIEW.
   第四部:做个实际的项目,还是要找个人给你提建议。 逐渐接触“设计模式”等软件工程的概念,思考作大的应用程序应该采用什么结构,开始注意程序的效率和维护性等问题。

怎样自己解决问题
当你碰到问题的时候,首先不是在论坛上去发贴。因该先自己研究研究。 可以从这几方面去考虑:

如果是用到硬件,先排除硬件出问题的可能性,你可以先用MAX或LabVIEW自带的例子采集信号看是不是正常。 如果有问题给NI打电话(记住不菲的价格里是包含技术支持的,没有好的技术支持,NI凭什么买你那么贵)

如果是软件上的问题,善用LabVIEW的debug功能,尽可能把问题具体化到你的程序的那一部分,在把它抽象出来。问题具体化以后到NI的网站和一些知名的论坛上查找有没有解决方案(多数是有的),NI的网站是很好的,能评上全美10个网上技术支持就好的网站之一。

如果是实在找不到已有的解决方法,到论坛上发帖子。发帖子也要注意技巧以便问题能够及时得到解决。原则上是问题要具体化要清楚. 如果你问"visa怎么用", 你很难得到答案的,谁有时间给你回答这么不着边际的问题。你最好要有VI附上来,把问题竟可能缩小范围。

如果你是为了问LabVIEW某个功能怎么用,你是不应该发帖子的。你可以用NI Example Finder去找例子,可以到NI网站上去找application notes.

------------------------------------------------------------------------------------

有些什么好书帮助入门?

谁有推荐的?  Getting Started with LabVIEW和LabVIEW Fundamental应该是很好的入门读物。在LabVIEW刚开时窗口上有着两个文档的连接。

LabVIEW是一种编程语言吗?和其他语言有什么不同

LabVIEW是一种编程语言,它具有一般编程语言的典型特征。理论上来说,你可以用它来做各种应用,就像用C/C++一样。 但这并不说明LabVIEW据有和C/C++一样强大的功能。 LabVIEW主要应用领域在于测试测量,控制,设计和仿真等,利用它你可以很方便的完成测试测量等应用。 LabVIEW也支持很多与其他语言和软件系统的接口,比如你可以把c/C++编成DLL在LabVIEW里调用,你可以调用AxtiveX和.net控件, 可以把LabVIEW当成ActiveX server来使用,等等。 这就是为什么说理论上可以用LabVIEW来做任何应用(只要你敢想)。

和其他语言相比,LabVIEW有两个非常突出的优点:一是它是一个真正的图形化编程语言,非常适合工程师和科学家使用(易于入门、易于调试、库函数丰富等)。二是他和硬件(特别是NI的硬件)结合紧密,你可以非常轻松地完成数据采集、仪器仪表控制等任务。

和其他语言相比,LabVIEW也有一些缺点,比如入门容易精通难,开发大型程序门槛太高,可利用的学习资源少。

什么是数据流编程?


LabVIEW是编译性的还是解析性的?运行效率怎样?

LabVIEW是编译性的。 同样的算法实现LabVIEW一般比C慢2~3倍。 如果你发现慢10倍,多数是程序编的有问题。LabVIEW里要特别注意内存拷贝的问题,特别是对大数组进行操作。


可以在一台机器上安装多个版本的LabVIEW吗

可以的,互相独立的,高版本的可以打开低版本的。高版本VI可以存为低版本VI.

什么是VI, Express VI

VI是Virtual Instruments的缩写,相当于c语言里的函数。 Express VI是带配置对话框的VI.  一般VI是通过输入连线对VI进行参数配置的。Express VI通过对话框进行参数配置(双击Express VI会弹出配置对话框)。 Express VI编程时会感觉方便些,但运行效率有时会比较低。

LabVIEW有递归吗

可以通过动态调用VI实现,但效率很低。一般还是不要用的好。 很多算法是可以用循环来实现的,并非一定的用递归。 如果你以前经常使用递归来思考问题,该改的时候了。 :-)

常用的LabVIEW编程模式有哪些?

为什么LabVIEW编的程序占用100%CPU?


-------------------------------------------------------------------------------------
待回答问题


很多VI有error in 和 error out, 那是干什么用的?
什么是状态机?


VI的Icon如何做到不是方方正正的,而是可以象Type Cast那样的形状?
---Icon Editor 以白色为透明色,以非白色的封闭外框定 icon 的形状。画好256色图标后,把它靠到16色和B/W图标上。

给定一个字符,如'A',如何用最简单的办法得到对应的ASCII码?
---在 String Control 中输入'A', 右击 String Control,在菜单中选 Hex Display [由georgezou回答]
---用程序的方法实现如下,[Keiran]

While循环和For循环中的Shift把我给整晕了,到底该怎么用?
要给一个数组的所有元素都加上一个数,我需要重新写函数吗?
字符常数End Of Line Constant、Carrage Return Constant和Line Feed Constant有什么作用?它们有什么区别吗?
我用Array To Cluster将数组转换成簇,但为什么转换的簇被截掉后面的部分?
在LabVIEW中我如何判断一个文件是否存在?
函数面板中的Advanced那一块挺高深的,都是干什么的?
First Call?这个函数有什么用?
Queue和Notifier有什么区别?
什么是信号量、Rendezvous以及Occurrence?

.....


希望大家大力贡献.

[ 本帖最后由 ilabview 于 2007-3-13 23:02 编辑 ]

评分

2

查看全部评分

发表于 2006-10-11 21:51:31 | 显示全部楼层 来自 广东广州
Simdroid开发平台
可惜我水平不够,。呵呵,版主确实不错,很热心,希望这个版面越办越好

[ 本帖最后由 ilabview 于 2007-3-13 23:13 编辑 ]
发表于 2006-10-17 16:38:04 | 显示全部楼层 来自 湖南长沙
哈哈,我虽然弄 过一端时间,但是又忘记差不多了,一些看来简单的问题,初学起来,真是花时间的,还希望个位高手们多多提拔啊!!!
发表于 2006-10-18 13:08:43 | 显示全部楼层 来自 江苏无锡
....

[ 本帖最后由 ilabview 于 2007-3-13 23:15 编辑 ]
发表于 2006-10-19 23:39:59 | 显示全部楼层 来自 广东深圳
我来提几个:
1、VI的Icon如何做到不是方方正正的,而是可以象Type Cast那样的形状?
2、给定一个字符,如'A',如何用最简单的办法得到对应的ASCII码?
3、While循环和For循环中的Shift把我给整晕了,到底该怎么用?
4、要给一个数组的所有元素都加上一个数,我需要重新写函数吗?
5、字符常数End Of Line Constant、Carrage Return Constant和Line Feed Constant有什么作用?它们有什么区别吗?
6、我用Array To Cluster将数组转换成簇,但为什么转换的簇被截掉后面的部分?
7、在LabVIEW中我如何判断一个文件是否存在?
8、函数面板中的Advanced那一块挺高深的,都是干什么的?
9、First Call?这个函数有什么用?
10、Queue和Notifier有什么区别?
11、什么是信号量、Rendezvous以及Occurrence?

评分

1

查看全部评分

 楼主| 发表于 2006-10-20 09:27:50 | 显示全部楼层 来自 上海
原帖由 keiran 于 2006-10-19 23:39 发表
我来提几个:
1、VI的Icon如何做到不是方方正正的,而是可以象Type Cast那样的形状?
2、给定一个字符,如'A',如何用最简单的办法得到对应的ASCII码?
3、While循环和For循环中的Shift把我给整晕了,到底该怎 ...


都是好问题,可是你别光提啊,把答案也写出来吧,老斑竹!
发表于 2006-10-20 09:44:16 | 显示全部楼层 来自 江苏无锡
脚踏实地,一个个来。一个一个解决。

评分

1

查看全部评分

发表于 2006-10-24 00:47:23 | 显示全部楼层 来自 美国

VI的Icon如何做到不是方方正正的,而是可以象Type Cast那样的形状?

Icon Editor 以白色为透明色,以非白色的封闭外框定 icon 的形状。
详见附件。


正确!

[ 本帖最后由 keiran 于 2006-10-24 22:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2006-10-24 00:52:32 | 显示全部楼层 来自 美国

给定一个字符,如'A',如何用最简单的办法得到对应的ASCII码?

在 String Control 中输入'A', 右击 String Control,在菜单中选 Hex Display。

非也,我说的是程序的方法,方法如下图所示(当然还有别的方法,^_^)  __Keiran

[ 本帖最后由 keiran 于 2006-10-24 22:11 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2006-10-24 00:59:17 | 显示全部楼层 来自 美国

要给一个数组的所有元素都加上一个数,我需要重新写函数吗?

不需要,用加号就可。如每个元素加的数不同,可用加号加一个常数数组。

评分

1

查看全部评分

发表于 2006-10-24 01:05:12 | 显示全部楼层 来自 美国

字符常数End Of Line、Carrage Return 和Line Feed 有什么作用?它们有什么区别吗?

Carrage Return 的 ASCII 定义是: 0x0D (\r);
Line Feed 的 ASCII 定义是: 0x0A (\n);
End Of Line 的定义有多种,0x0D0A (\r\n) 最常见。
发表于 2006-10-24 06:09:47 | 显示全部楼层 来自 美国

我用Array To Cluster将数组转换成簇,但为什么转换的簇被截掉后面的部分?

右击 Array To Cluster icon, 在菜单中选 Cluster Size...

正确

[ 本帖最后由 keiran 于 2006-10-24 22:14 编辑 ]
发表于 2006-10-24 06:25:52 | 显示全部楼层 来自 美国

在LabVIEW中我如何判断一个文件是否存在?

严格说来,你得用 Window API。详见附件。

严格来说,并没有必要调用API!!如下图所示:
其实,这是不严格的。因为它假定用户有足够的权限。

[ 本帖最后由 georgezou 于 2006-10-24 23:10 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2006-10-24 06:45:25 | 显示全部楼层 来自 美国

First Call?这个函数有什么用?

多在循环中和 case structure 连用,当该 block 首次被调用(First Call)时,First Call return TRUE,你可以调用 instrument setup VIs。以后每次循环 First Call return FALSE,你可以跳过 case structure。
shane410 该用户已被删除
发表于 2006-11-9 13:19:31 | 显示全部楼层 来自 陕西西安
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-11-11 11:15:13 | 显示全部楼层 来自 浙江杭州
请问能不能把MYSQL的也制作到安装文件中,这样LABVIEW程序到某台机子进行安装的时候,能一起把MYSQL也安装好?谢谢!
yjj8 该用户已被删除
发表于 2006-11-12 08:09:47 | 显示全部楼层 来自 广东佛山
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-11-13 17:40:34 | 显示全部楼层 来自 湖北武汉
2、一个曲线图能否同时显时几个通道的曲线
可以的
eeijiake 该用户已被删除
发表于 2006-11-23 21:12:26 | 显示全部楼层 来自 安徽合肥
提示: 作者被禁止或删除 内容自动屏蔽
varrior 该用户已被删除
发表于 2006-11-24 15:41:20 | 显示全部楼层 来自 加拿大
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 03:21 , Processed in 0.074838 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表