對話資深專家:LabVIEW學習的技巧與誤區 - 全文
2014年12月12日 10:57 來源:電子發燒友網論壇 作者:王順 我要評論(0)
點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程
小編導讀:學習LabVIEW好找工作嘛?LabVIEW的發展前景有如何呢?LabVIEW相對于其他語言有啥優勢呢?真的是冥冥之中自有安排??!抱著這些問題我們找到了小草童鞋,他的熱情,樂于分享的經驗深深打動小編。下面就跟著小編的采訪揭開上述迷霧吧!
電子發燒友:對于這次采訪,很多用戶都表示非常期待,并踴躍提問。結合此前做的采訪內容征集,我們整理了以下幾個問題:
?、佟∧懿荒芙o大家分析一下您對Labview市場前景發展的看法呢?
LabVIEW這幾年學習的人越來越多,市場也越來越大,也有一些新手經常問我LabVIEW可以用來做什么,我覺得這個問題應該反問下,你想用 LabVIEW做什么,LabVIEW的應用領域很廣,前景至少也是很不錯的。之前看到一些科技展覽會,里面很多都是用LabVIEW編程的。我也看到很 多以前用VC,C#,VB,Delphi編程的人,開始學習LabVIEW編程。所以未來使用的人會越來越多。而且目前人們對產品的可靠性,穩定性等要求越來越高,作為測試行業來說,使用LabVIEW是個絕佳的選擇。
?、凇abVIEW編程相對于其他語言的優勢在哪里,現在最新版本的Labview可以實現哪些功能?
LabVIEW的優勢:前面已經講到很多以前用其他語言編程的人,開始轉向用LabVIEW編程。為什么呢?他們的答案都是LabVIEW編程快速,做界面方便。很多東西有現成的函數。還有是用的連線方式(數據流)編程比較直觀。我想這些優勢是一般人可以直觀看到的。當然還有后期修改調試方便,移植性好什么的優點,具體的隨便百度一下都可以看到。
③ 能否講解下labview的設計模式,例如生產者和消費者、隊列的應用等
LabVIEW設計模式,如果純粹一點,基本是LabVIEW的模板自帶了。大家在LabVIEW菜單-文件-新建下可以看到如下的幾個選項?;揪褪鞘荓abVIEW常用的設計模式。
具體的看模板的解釋就可以了。
不過總結一點就是,LabVIEW里的編程模式有一種常見的結構叫狀態機,我覺得是個萬能的結構,還有很多狀態機的拓展。另外,關于隊列在LabVIEW使用也很多,有一種叫結構隊列狀態機。所以學習LabVIEW的人,一定要學好狀態機和隊列。很多初學者不理解隊列,其實只要想想下日常生活中的排隊現象就可以了。打個比方,銀行辦業務,銀行上班后,首先我們會上去排隊(排隊前要知道自己在哪里排隊,也就是要存在一個隊列,沒有就創建隊列),然后前面的人辦完事后離開隊列,銀行下班后,就不能排隊了。撤銷隊列。隊列用的靈活,在LabVIEW編程中會帶來很多方便。
至于應用方面。生產者消費者模型,其實就是用了隊列作為緩沖。我們在數據采集,或者儀器通信方面,由于數據量太大或者處理內容太多,我們的計算機CPU單個線程循環沒辦法即使處理。就多增加幾個線程循環。只要自己考慮到一個線程有延遲,或者運行緩慢的,都可以用生產者消費者模型。也都可以用隊列。
④ 多個串口傳輸數據,可能速度(等待接收)不一樣,放在一個循環好還是不同的速度各建一個循環好呢?
串口問題,很多人也在問,我覺得是具體問題具體處理吧。LabVIEW是自動多線程編程。如果串口多,不想相互干擾,還是各自用各自的線程吧。不過一般串口通信都不會很快。特別是做一些狀態測試的,對時間要求不高的,不需要同時的,都可以考慮用一個線程就夠了。對需要同時并行的,就多個線程吧。
電子發燒友:電信類學科分布比較廣,當時上學的時候怎么就看中Labview了呢,然后畢業后工作也是與這個相關的呢,怎么一步步走過來能跟大家分享下嗎?
當時本科是測控技術與儀器專業,碩士是控制專業,偶爾用到LabVIEW,當時純粹憑興趣學習,一個人自學的。當時也學習了其他語言,比如 VC++,C#,VB之類的,連網頁編程ASP.NET等也研究過,讀書的時候學的比較雜,什么都想學。LabVIEW應該是自學研究中比較成功的。后來有一些公司請我做程序,我就幫忙做了一些,補貼讀書時候的生活費,也是不錯的,學以致用。
具體學習步驟,就沒有那么細了。完全憑興趣了。當時看了很多LabVIEW的書,然后看LabVIEW的范例,幾乎所有的基礎范例我都看了并且研究過。也經常上網上的相關LabVIEW論壇逛逛。一路走來,慢慢的自己就會了??傊褪牵号d趣+積累。時間長了,自然就會了。
目前工作,也是從事測試方面工作,會用到LabVIEW,當然也會用到其他的一些知識。LabVIEW知識一個編程工具,單單會一個工具是無法勝任工作的,還需要專業知識。
------------------
本文選自電子發燒友網11月《測試測量特刊》EE SHOW欄目,轉載請注明出處!
電子發燒友:你覺得初學者學習Labview 相對于其他語言C、C++、C#、Java,在學習方法、難度和周期上有沒有一些區別?
LabVIEW的優勢前面已經講了。學習方面,前面也講過。難度個人覺得LabVIEW最簡單的。因為我發現很多LabVIEW使用者,都是業余的,學電子的,或者學機械的。周期看自己的熟練程度。一般如果做一個簡單的應用,用LabVIEW從初學到編程實現,應該一個月內就可以弄完。LabVIEW基本上很適合沒有編程基礎的人去快速開發軟件。
但是要深入LabVIEW編程,還是需要很多知識的。比如要學習數據結構啊,學習ActiveX,批處理啊,.NET方面第三方接口等等,有些底層的驅動LabVIEW無法調用,還得自己用C++封裝DLL。像數據庫等,你得去學習數據庫知識。
電子發燒友:在Labview編程方面,你個人有沒有比較好的習慣和建議?
習慣,建議大家去看一本書,叫《LabVIEW編程樣式》,里面有些好的規則。個人覺得LabVIEW編程習慣最基礎的是,連線要直,程序框圖要美觀。建議就是多看自帶的幫助文檔,和看自帶的范例。這些是LabVIEW最原始的材料,也是最權威的。
我覺得大家有時間關注下歷屆NI組織的LabVIEW天下會,LabVIEW挑戰賽,看看里面的參賽選手的代碼就足夠了。里面晉級的選手很多程序都是很不錯的。而且你會發現很多共性。比如都會用到狀態機隊列等。
電子發燒友:用Labview做一些軟件開發,在需求分析、開發流程、測試、軟件優化、版本方面和軟件相關文檔撰寫方面有沒有個人的一些想法?
這個問題涉及到一門學科,叫軟件工程?!禠abVIEW編程樣式》這本書有介紹。具體和其他的軟件編程一樣。而且需求分析很重要。有時候你發現后期經常要加功能。如果前期LabVIEW編程結構做的不好,加功能是很頭疼的事情。
電子發燒友:你之前是準備一口氣把“手把手教你學Labview”這個系列完成,包括Labview入門、Labview之串口儀器控制、Labview之數據采集、Labview之圖像處理,怎么又中途放棄了呢。
以前上學時候,空閑時間比較多,有大量時間研究一些知識。而且比較熱心,也幫助過很多人,也經常無償給別人修改代碼,有時候修改一兩天。我也經常在網上發表過一些分享帖子和回復網友問題。不過總體覺得LabVIEW學習的人,求資料的和求代碼的人太多了。我的串口教程,放網上后,還是一直有人找我要源程序,求其他資料,其實他們看完我那個PDF教程就夠了。另外,加上現在工作十分繁忙。寫其他教程的可能性比較小。不過如果真心有很多人有需求的,我會考慮寫的。
電子發燒友:最后,小草君大概還有什么經驗、想法跟大家溝通一下的呢?
以前剛開始學LabVIEW的時候,也和很多人一樣,喜歡加QQ群,看論壇。當時我買了幾本LabVIEW的書,加了幾個QQ群。后來發現QQ群里問的都是基礎知識,每次他們問的時候,我就去翻翻書,然后去回答他們,其實我當時也是剛學,也各種不會。但是我卻能回答他們問題。論壇里也是,看到有人問問題,我也會自己翻翻書,自己百度下,然后去幫忙回答。
其實我想說的是,學習是一種態度問題。學習LabVIEW的人,很多態度就不是很好,最常見的是其他專業的,比如農業,化工生物等專業的,就老師讓使用,畢業了也就不用了。就隨便學學,也不系統看書,有了問題就使勁在論壇和QQ群問。這樣是很不科學的。還有些人,甚至都不自己買一本書,到處看電子書,有些還看的比較舊的書籍,而且不會靈活變通,比如LabVIEW有些控件和函數變化了,他們也不去思考,而且到處問某個控件在哪里,某個函數在哪里。很多事情,我們得身體力行才知道得來不容易。編程是個力氣活,我們需要一點一點的去操作鼠標鍵盤。一點一點的完成一個項目。
相關資料下載:小草手把手教你LabVIEW儀器控制
本文導航
- 第 1 頁:對話資深專家:LabVIEW學習的技巧與誤區
- 第 2 頁:Lavbiew和其他語言的對比
用戶評論
查看全部 條評論
查看全部 條評論>>