對(duì)話(huà)資深專(zhuān)家:LabVIEW學(xué)習(xí)的技巧與誤區(qū) - 全文

2014年12月12日 10:57 來(lái)源:電子發(fā)燒友網(wǎng)論壇 作者:王順 我要評(píng)論(0)

標(biāo)簽:電子工程師(95607)LabVIEW(322813)

點(diǎn)擊學(xué)習(xí)>>《龍哥手把手教你學(xué)LabVIEW視覺(jué)設(shè)計(jì)》視頻教程
 
 小編導(dǎo)讀:學(xué)習(xí)LabVIEW好找工作嘛?LabVIEW的發(fā)展前景有如何呢?LabVIEW相對(duì)于其他語(yǔ)言有啥優(yōu)勢(shì)呢?真的是冥冥之中自有安排啊!抱著這些問(wèn)題我們找到了小草童鞋,他的熱情,樂(lè)于分享的經(jīng)驗(yàn)深深打動(dòng)小編。下面就跟著小編的采訪揭開(kāi)上述迷霧吧!

  電子發(fā)燒友:對(duì)于這次采訪,很多用戶(hù)都表示非常期待,并踴躍提問(wèn)。結(jié)合此前做的采訪內(nèi)容征集,我們整理了以下幾個(gè)問(wèn)題:

  ① 能不能給大家分析一下您對(duì)Labview市場(chǎng)前景發(fā)展的看法呢?

  LabVIEW這幾年學(xué)習(xí)的人越來(lái)越多,市場(chǎng)也越來(lái)越大,也有一些新手經(jīng)常問(wèn)我LabVIEW可以用來(lái)做什么,我覺(jué)得這個(gè)問(wèn)題應(yīng)該反問(wèn)下,你想用 LabVIEW做什么,LabVIEW的應(yīng)用領(lǐng)域很廣,前景至少也是很不錯(cuò)的。之前看到一些科技展覽會(huì),里面很多都是用LabVIEW編程的。我也看到很 多以前用VC,C#,VB,Delphi編程的人,開(kāi)始學(xué)習(xí)LabVIEW編程。所以未來(lái)使用的人會(huì)越來(lái)越多。而且目前人們對(duì)產(chǎn)品的可靠性,穩(wěn)定性等要求越來(lái)越高,作為測(cè)試行業(yè)來(lái)說(shuō),使用LabVIEW是個(gè)絕佳的選擇。

  ② LabVIEW編程相對(duì)于其他語(yǔ)言的優(yōu)勢(shì)在哪里,現(xiàn)在最新版本的Labview可以實(shí)現(xiàn)哪些功能?

  LabVIEW的優(yōu)勢(shì):前面已經(jīng)講到很多以前用其他語(yǔ)言編程的人,開(kāi)始轉(zhuǎn)向用LabVIEW編程。為什么呢?他們的答案都是LabVIEW編程快速,做界面方便。很多東西有現(xiàn)成的函數(shù)。還有是用的連線方式(數(shù)據(jù)流)編程比較直觀。我想這些優(yōu)勢(shì)是一般人可以直觀看到的。當(dāng)然還有后期修改調(diào)試方便,移植性好什么的優(yōu)點(diǎn),具體的隨便百度一下都可以看到。

  ③ 能否講解下labview的設(shè)計(jì)模式,例如生產(chǎn)者和消費(fèi)者、隊(duì)列的應(yīng)用等

  LabVIEW設(shè)計(jì)模式,如果純粹一點(diǎn),基本是LabVIEW的模板自帶了。大家在LabVIEW菜單-文件-新建下可以看到如下的幾個(gè)選項(xiàng)。基本就是是LabVIEW常用的設(shè)計(jì)模式。

  具體的看模板的解釋就可以了。

  不過(guò)總結(jié)一點(diǎn)就是,LabVIEW里的編程模式有一種常見(jiàn)的結(jié)構(gòu)叫狀態(tài)機(jī),我覺(jué)得是個(gè)萬(wàn)能的結(jié)構(gòu),還有很多狀態(tài)機(jī)的拓展。另外,關(guān)于隊(duì)列在LabVIEW使用也很多,有一種叫結(jié)構(gòu)隊(duì)列狀態(tài)機(jī)。所以學(xué)習(xí)LabVIEW的人,一定要學(xué)好狀態(tài)機(jī)和隊(duì)列。很多初學(xué)者不理解隊(duì)列,其實(shí)只要想想下日常生活中的排隊(duì)現(xiàn)象就可以了。打個(gè)比方,銀行辦業(yè)務(wù),銀行上班后,首先我們會(huì)上去排隊(duì)(排隊(duì)前要知道自己在哪里排隊(duì),也就是要存在一個(gè)隊(duì)列,沒(méi)有就創(chuàng)建隊(duì)列),然后前面的人辦完事后離開(kāi)隊(duì)列,銀行下班后,就不能排隊(duì)了。撤銷(xiāo)隊(duì)列。隊(duì)列用的靈活,在LabVIEW編程中會(huì)帶來(lái)很多方便。

  至于應(yīng)用方面。生產(chǎn)者消費(fèi)者模型,其實(shí)就是用了隊(duì)列作為緩沖。我們?cè)跀?shù)據(jù)采集,或者儀器通信方面,由于數(shù)據(jù)量太大或者處理內(nèi)容太多,我們的計(jì)算機(jī)CPU單個(gè)線程循環(huán)沒(méi)辦法即使處理。就多增加幾個(gè)線程循環(huán)。只要自己考慮到一個(gè)線程有延遲,或者運(yùn)行緩慢的,都可以用生產(chǎn)者消費(fèi)者模型。也都可以用隊(duì)列。

  ④ 多個(gè)串口傳輸數(shù)據(jù),可能速度(等待接收)不一樣,放在一個(gè)循環(huán)好還是不同的速度各建一個(gè)循環(huán)好呢?

  串口問(wèn)題,很多人也在問(wèn),我覺(jué)得是具體問(wèn)題具體處理吧。LabVIEW是自動(dòng)多線程編程。如果串口多,不想相互干擾,還是各自用各自的線程吧。不過(guò)一般串口通信都不會(huì)很快。特別是做一些狀態(tài)測(cè)試的,對(duì)時(shí)間要求不高的,不需要同時(shí)的,都可以考慮用一個(gè)線程就夠了。對(duì)需要同時(shí)并行的,就多個(gè)線程吧。

  電子發(fā)燒友:電信類(lèi)學(xué)科分布比較廣,當(dāng)時(shí)上學(xué)的時(shí)候怎么就看中Labview了呢,然后畢業(yè)后工作也是與這個(gè)相關(guān)的呢,怎么一步步走過(guò)來(lái)能跟大家分享下嗎?

  當(dāng)時(shí)本科是測(cè)控技術(shù)與儀器專(zhuān)業(yè),碩士是控制專(zhuān)業(yè),偶爾用到LabVIEW,當(dāng)時(shí)純粹憑興趣學(xué)習(xí),一個(gè)人自學(xué)的。當(dāng)時(shí)也學(xué)習(xí)了其他語(yǔ)言,比如 VC++,C#,VB之類(lèi)的,連網(wǎng)頁(yè)編程ASP.NET等也研究過(guò),讀書(shū)的時(shí)候?qū)W的比較雜,什么都想學(xué)。LabVIEW應(yīng)該是自學(xué)研究中比較成功的。后來(lái)有一些公司請(qǐng)我做程序,我就幫忙做了一些,補(bǔ)貼讀書(shū)時(shí)候的生活費(fèi),也是不錯(cuò)的,學(xué)以致用。

  具體學(xué)習(xí)步驟,就沒(méi)有那么細(xì)了。完全憑興趣了。當(dāng)時(shí)看了很多LabVIEW的書(shū),然后看LabVIEW的范例,幾乎所有的基礎(chǔ)范例我都看了并且研究過(guò)。也經(jīng)常上網(wǎng)上的相關(guān)LabVIEW論壇逛逛。一路走來(lái),慢慢的自己就會(huì)了。總之就是:興趣+積累。時(shí)間長(zhǎng)了,自然就會(huì)了。

  目前工作,也是從事測(cè)試方面工作,會(huì)用到LabVIEW,當(dāng)然也會(huì)用到其他的一些知識(shí)。LabVIEW知識(shí)一個(gè)編程工具,單單會(huì)一個(gè)工具是無(wú)法勝任工作的,還需要專(zhuān)業(yè)知識(shí)。

------------------
本文選自電子發(fā)燒友網(wǎng)11月《測(cè)試測(cè)量特刊》EE SHOW欄目,轉(zhuǎn)載請(qǐng)注明出處!

  電子發(fā)燒友:你覺(jué)得初學(xué)者學(xué)習(xí)Labview 相對(duì)于其他語(yǔ)言C、C++、C#、Java,在學(xué)習(xí)方法、難度和周期上有沒(méi)有一些區(qū)別?

  LabVIEW的優(yōu)勢(shì)前面已經(jīng)講了。學(xué)習(xí)方面,前面也講過(guò)。難度個(gè)人覺(jué)得LabVIEW最簡(jiǎn)單的。因?yàn)槲野l(fā)現(xiàn)很多LabVIEW使用者,都是業(yè)余的,學(xué)電子的,或者學(xué)機(jī)械的。周期看自己的熟練程度。一般如果做一個(gè)簡(jiǎn)單的應(yīng)用,用LabVIEW從初學(xué)到編程實(shí)現(xiàn),應(yīng)該一個(gè)月內(nèi)就可以弄完。LabVIEW基本上很適合沒(méi)有編程基礎(chǔ)的人去快速開(kāi)發(fā)軟件。

  但是要深入LabVIEW編程,還是需要很多知識(shí)的。比如要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)啊,學(xué)習(xí)ActiveX,批處理啊,.NET方面第三方接口等等,有些底層的驅(qū)動(dòng)LabVIEW無(wú)法調(diào)用,還得自己用C++封裝DLL。像數(shù)據(jù)庫(kù)等,你得去學(xué)習(xí)數(shù)據(jù)庫(kù)知識(shí)。

  電子發(fā)燒友:在Labview編程方面,你個(gè)人有沒(méi)有比較好的習(xí)慣和建議?

  習(xí)慣,建議大家去看一本書(shū),叫《LabVIEW編程樣式》,里面有些好的規(guī)則。個(gè)人覺(jué)得LabVIEW編程習(xí)慣最基礎(chǔ)的是,連線要直,程序框圖要美觀。建議就是多看自帶的幫助文檔,和看自帶的范例。這些是LabVIEW最原始的材料,也是最權(quán)威的。

  我覺(jué)得大家有時(shí)間關(guān)注下歷屆NI組織的LabVIEW天下會(huì),LabVIEW挑戰(zhàn)賽,看看里面的參賽選手的代碼就足夠了。里面晉級(jí)的選手很多程序都是很不錯(cuò)的。而且你會(huì)發(fā)現(xiàn)很多共性。比如都會(huì)用到狀態(tài)機(jī)隊(duì)列等。

  電子發(fā)燒友:用Labview做一些軟件開(kāi)發(fā),在需求分析、開(kāi)發(fā)流程、測(cè)試、軟件優(yōu)化、版本方面和軟件相關(guān)文檔撰寫(xiě)方面有沒(méi)有個(gè)人的一些想法?

  這個(gè)問(wèn)題涉及到一門(mén)學(xué)科,叫軟件工程。《LabVIEW編程樣式》這本書(shū)有介紹。具體和其他的軟件編程一樣。而且需求分析很重要。有時(shí)候你發(fā)現(xiàn)后期經(jīng)常要加功能。如果前期LabVIEW編程結(jié)構(gòu)做的不好,加功能是很頭疼的事情。

  電子發(fā)燒友:你之前是準(zhǔn)備一口氣把“手把手教你學(xué)Labview”這個(gè)系列完成,包括Labview入門(mén)、Labview之串口儀器控制、Labview之?dāng)?shù)據(jù)采集、Labview之圖像處理,怎么又中途放棄了呢。

  以前上學(xué)時(shí)候,空閑時(shí)間比較多,有大量時(shí)間研究一些知識(shí)。而且比較熱心,也幫助過(guò)很多人,也經(jīng)常無(wú)償給別人修改代碼,有時(shí)候修改一兩天。我也經(jīng)常在網(wǎng)上發(fā)表過(guò)一些分享帖子和回復(fù)網(wǎng)友問(wèn)題。不過(guò)總體覺(jué)得LabVIEW學(xué)習(xí)的人,求資料的和求代碼的人太多了。我的串口教程,放網(wǎng)上后,還是一直有人找我要源程序,求其他資料,其實(shí)他們看完我那個(gè)PDF教程就夠了。另外,加上現(xiàn)在工作十分繁忙。寫(xiě)其他教程的可能性比較小。不過(guò)如果真心有很多人有需求的,我會(huì)考慮寫(xiě)的。

  電子發(fā)燒友:最后,小草君大概還有什么經(jīng)驗(yàn)、想法跟大家溝通一下的呢?

  以前剛開(kāi)始學(xué)LabVIEW的時(shí)候,也和很多人一樣,喜歡加QQ群,看論壇。當(dāng)時(shí)我買(mǎi)了幾本LabVIEW的書(shū),加了幾個(gè)QQ群。后來(lái)發(fā)現(xiàn)QQ群里問(wèn)的都是基礎(chǔ)知識(shí),每次他們問(wèn)的時(shí)候,我就去翻翻書(shū),然后去回答他們,其實(shí)我當(dāng)時(shí)也是剛學(xué),也各種不會(huì)。但是我卻能回答他們問(wèn)題。論壇里也是,看到有人問(wèn)問(wèn)題,我也會(huì)自己翻翻書(shū),自己百度下,然后去幫忙回答。

  其實(shí)我想說(shuō)的是,學(xué)習(xí)是一種態(tài)度問(wèn)題。學(xué)習(xí)LabVIEW的人,很多態(tài)度就不是很好,最常見(jiàn)的是其他專(zhuān)業(yè)的,比如農(nóng)業(yè),化工生物等專(zhuān)業(yè)的,就老師讓使用,畢業(yè)了也就不用了。就隨便學(xué)學(xué),也不系統(tǒng)看書(shū),有了問(wèn)題就使勁在論壇和QQ群?jiǎn)枴_@樣是很不科學(xué)的。還有些人,甚至都不自己買(mǎi)一本書(shū),到處看電子書(shū),有些還看的比較舊的書(shū)籍,而且不會(huì)靈活變通,比如LabVIEW有些控件和函數(shù)變化了,他們也不去思考,而且到處問(wèn)某個(gè)控件在哪里,某個(gè)函數(shù)在哪里。很多事情,我們得身體力行才知道得來(lái)不容易。編程是個(gè)力氣活,我們需要一點(diǎn)一點(diǎn)的去操作鼠標(biāo)鍵盤(pán)。一點(diǎn)一點(diǎn)的完成一個(gè)項(xiàng)目。

  相關(guān)資料下載小草手把手教你LabVIEW儀器控制

上一頁(yè)12全文