点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程
小编导读:学习LabVIEW好找工作嘛?LabVIEW的发展前景有如何呢?LabVIEW相对于其他语言有啥优势呢?真的是冥冥之中自有安排啊!抱着这些问题我们找到了小草童鞋,他的热情,乐于分享的经验深深打动小编。下面就跟着小编的采访揭开上述迷雾吧!
电子发烧友:对于这次采访,很多用户都表示非常期待,并踊跃提问。结合此前做的采访内容征集,我们整理了以下几个问题:
① 能不能给大家分析一下您对Labview市场前景发展的看法呢?
LabVIEW这几年学习的人越来越多,市场也越来越大,也有一些新手经常问我LabVIEW可以用来做什么,我觉得这个问题应该反问下,你想用 LabVIEW做什么,LabVIEW的应用领域很广,前景至少也是很不错的。之前看到一些科技展览会,里面很多都是用LabVIEW编程的。我也看到很 多以前用VC,C#,VB,Delphi编程的人,开始学习LabVIEW编程。所以未来使用的人会越来越多。而且目前人们对产品的可靠性,稳定性等要求越来越高,作为测试行业来说,使用LabVIEW是个绝佳的选择。
② LabVIEW编程相对于其他语言的优势在哪里,现在最新版本的Labview可以实现哪些功能?
LabVIEW的优势:前面已经讲到很多以前用其他语言编程的人,开始转向用LabVIEW编程。为什么呢?他们的答案都是LabVIEW编程快速,做界面方便。很多东西有现成的函数。还有是用的连线方式(数据流)编程比较直观。我想这些优势是一般人可以直观看到的。当然还有后期修改调试方便,移植性好什么的优点,具体的随便百度一下都可以看到。
③ 能否讲解下labview的设计模式,例如生产者和消费者、队列的应用等
LabVIEW设计模式,如果纯粹一点,基本是LabVIEW的模板自带了。大家在LabVIEW菜单-文件-新建下可以看到如下的几个选项。基本就是是LabVIEW常用的设计模式。
具体的看模板的解释就可以了。
不过总结一点就是,LabVIEW里的编程模式有一种常见的结构叫状态机,我觉得是个万能的结构,还有很多状态机的拓展。另外,关于队列在LabVIEW使用也很多,有一种叫结构队列状态机。所以学习LabVIEW的人,一定要学好状态机和队列。很多初学者不理解队列,其实只要想想下日常生活中的排队现象就可以了。打个比方,银行办业务,银行上班后,首先我们会上去排队(排队前要知道自己在哪里排队,也就是要存在一个队列,没有就创建队列),然后前面的人办完事后离开队列,银行下班后,就不能排队了。撤销队列。队列用的灵活,在LabVIEW编程中会带来很多方便。
至于应用方面。生产者消费者模型,其实就是用了队列作为缓冲。我们在数据采集,或者仪器通信方面,由于数据量太大或者处理内容太多,我们的计算机CPU单个线程循环没办法即使处理。就多增加几个线程循环。只要自己考虑到一个线程有延迟,或者运行缓慢的,都可以用生产者消费者模型。也都可以用队列。
④ 多个串口传输数据,可能速度(等待接收)不一样,放在一个循环好还是不同的速度各建一个循环好呢?
串口问题,很多人也在问,我觉得是具体问题具体处理吧。LabVIEW是自动多线程编程。如果串口多,不想相互干扰,还是各自用各自的线程吧。不过一般串口通信都不会很快。特别是做一些状态测试的,对时间要求不高的,不需要同时的,都可以考虑用一个线程就够了。对需要同时并行的,就多个线程吧。
电子发烧友:电信类学科分布比较广,当时上学的时候怎么就看中Labview了呢,然后毕业后工作也是与这个相关的呢,怎么一步步走过来能跟大家分享下吗?
当时本科是测控技术与仪器专业,硕士是控制专业,偶尔用到LabVIEW,当时纯粹凭兴趣学习,一个人自学的。当时也学习了其他语言,比如 VC++,C#,VB之类的,连网页编程ASP.NET等也研究过,读书的时候学的比较杂,什么都想学。LabVIEW应该是自学研究中比较成功的。后来有一些公司请我做程序,我就帮忙做了一些,补贴读书时候的生活费,也是不错的,学以致用。
具体学习步骤,就没有那么细了。完全凭兴趣了。当时看了很多LabVIEW的书,然后看LabVIEW的范例,几乎所有的基础范例我都看了并且研究过。也经常上网上的相关LabVIEW论坛逛逛。一路走来,慢慢的自己就会了。总之就是:兴趣+积累。时间长了,自然就会了。
目前工作,也是从事测试方面工作,会用到LabVIEW,当然也会用到其他的一些知识。LabVIEW知识一个编程工具,单单会一个工具是无法胜任工作的,还需要专业知识。
------------------
本文选自电子发烧友网11月《测试测量特刊》EE SHOW栏目,转载请注明出处!
#p#Lavbiew和其他语言的对比#e#
电子发烧友:你觉得初学者学习Labview 相对于其他语言C、C++、C#、Java,在学习方法、难度和周期上有没有一些区别?
LabVIEW的优势前面已经讲了。学习方面,前面也讲过。难度个人觉得LabVIEW最简单的。因为我发现很多LabVIEW使用者,都是业余的,学电子的,或者学机械的。周期看自己的熟练程度。一般如果做一个简单的应用,用LabVIEW从初学到编程实现,应该一个月内就可以弄完。LabVIEW基本上很适合没有编程基础的人去快速开发软件。
但是要深入LabVIEW编程,还是需要很多知识的。比如要学习数据结构啊,学习ActiveX,批处理啊,.NET方面第三方接口等等,有些底层的驱动LabVIEW无法调用,还得自己用C++封装DLL。像数据库等,你得去学习数据库知识。
电子发烧友:在Labview编程方面,你个人有没有比较好的习惯和建议?
习惯,建议大家去看一本书,叫《LabVIEW编程样式》,里面有些好的规则。个人觉得LabVIEW编程习惯最基础的是,连线要直,程序框图要美观。建议就是多看自带的帮助文档,和看自带的范例。这些是LabVIEW最原始的材料,也是最权威的。
我觉得大家有时间关注下历届NI组织的LabVIEW天下会,LabVIEW挑战赛,看看里面的参赛选手的代码就足够了。里面晋级的选手很多程序都是很不错的。而且你会发现很多共性。比如都会用到状态机队列等。
电子发烧友:用Labview做一些软件开发,在需求分析、开发流程、测试、软件优化、版本方面和软件相关文档撰写方面有没有个人的一些想法?
这个问题涉及到一门学科,叫软件工程。《LabVIEW编程样式》这本书有介绍。具体和其他的软件编程一样。而且需求分析很重要。有时候你发现后期经常要加功能。如果前期LabVIEW编程结构做的不好,加功能是很头疼的事情。
电子发烧友:你之前是准备一口气把“手把手教你学Labview”这个系列完成,包括Labview入门、Labview之串口仪器控制、Labview之数据采集、Labview之图像处理,怎么又中途放弃了呢。
以前上学时候,空闲时间比较多,有大量时间研究一些知识。而且比较热心,也帮助过很多人,也经常无偿给别人修改代码,有时候修改一两天。我也经常在网上发表过一些分享帖子和回复网友问题。不过总体觉得LabVIEW学习的人,求资料的和求代码的人太多了。我的串口教程,放网上后,还是一直有人找我要源程序,求其他资料,其实他们看完我那个PDF教程就够了。另外,加上现在工作十分繁忙。写其他教程的可能性比较小。不过如果真心有很多人有需求的,我会考虑写的。
电子发烧友:最后,小草君大概还有什么经验、想法跟大家沟通一下的呢?
以前刚开始学LabVIEW的时候,也和很多人一样,喜欢加QQ群,看论坛。当时我买了几本LabVIEW的书,加了几个QQ群。后来发现QQ群里问的都是基础知识,每次他们问的时候,我就去翻翻书,然后去回答他们,其实我当时也是刚学,也各种不会。但是我却能回答他们问题。论坛里也是,看到有人问问题,我也会自己翻翻书,自己百度下,然后去帮忙回答。
其实我想说的是,学习是一种态度问题。学习LabVIEW的人,很多态度就不是很好,最常见的是其他专业的,比如农业,化工生物等专业的,就老师让使用,毕业了也就不用了。就随便学学,也不系统看书,有了问题就使劲在论坛和QQ群问。这样是很不科学的。还有些人,甚至都不自己买一本书,到处看电子书,有些还看的比较旧的书籍,而且不会灵活变通,比如LabVIEW有些控件和函数变化了,他们也不去思考,而且到处问某个控件在哪里,某个函数在哪里。很多事情,我们得身体力行才知道得来不容易。编程是个力气活,我们需要一点一点的去操作鼠标键盘。一点一点的完成一个项目。
相关资料下载:小草手把手教你LabVIEW仪器控制