對話資深專家:LabVIEW學(xué)習(xí)的技巧與誤區(qū) - 全文

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

標(biāo)簽:電子工程師(94930)labview(315273)

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

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

 ?、佟∧懿荒芙o大家分析一下您對Labview市場前景發(fā)展的看法呢?

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

 ?、凇abVIEW編程相對于其他語言的優(yōu)勢在哪里,現(xiàn)在最新版本的Labview可以實現(xiàn)哪些功能?

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

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

  LabVIEW設(shè)計模式,如果純粹一點,基本是LabVIEW的模板自帶了。大家在LabVIEW菜單-文件-新建下可以看到如下的幾個選項?;揪褪鞘荓abVIEW常用的設(shè)計模式。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

上一頁12全文