LabVIEW的學(xué)習(xí)心得
因?yàn)長(zhǎng)abVIEW對(duì)我們工科學(xué)生來說,像AutoCAD一樣,是一個(gè)非常重要的工具軟件。
LabVIEW用得熟,很多復(fù)雜的實(shí)驗(yàn)過程都可以用軟件來控制。實(shí)現(xiàn)很多意想不到的功能。
我觀察了很多師弟師妹們學(xué)LabVIEW的過程,有的學(xué)得好,有的學(xué)得較一般,
這最主要取決于他們的學(xué)習(xí)態(tài)度,當(dāng)然,他們使用的參考書的關(guān)系也不小。
雖然我都推薦他們看這本書“LabView-Advanced Programming Techniques”,但很多人因?yàn)槭怯⑽陌娑床幌聛怼?br />我發(fā)現(xiàn)大多數(shù)人首選的是去看中文版的入門級(jí)教材。
這些教材大多把軟件里面各個(gè)功能vi簡(jiǎn)要介紹了一下而已。“功能vi”可理解為系統(tǒng)自帶的,隨時(shí)可調(diào)用的子程序,也像Matlab的M文件。因?yàn)長(zhǎng)abVIEW的功能vi很多,結(jié)構(gòu)、數(shù)組、字符串、邏輯與算術(shù)運(yùn)算、簇、文件管理、屬性管理、波形生成/測(cè)量/計(jì)算、信號(hào)處理、接口通訊、ActiveX等等很多的功能vi,所以把這些玩意兒挨個(gè)介紹一翻,也湊夠一本厚厚的書了。這書雖然拿在手上有質(zhì)感,但內(nèi)容卻非??斩矗屓丝粗胨X。看完之后很快會(huì)忘記,一點(diǎn)收獲都沒有。最終造成的后果是讓人對(duì)這個(gè)軟件的熱情驟冷。
我上面推薦的教程主要側(cè)重于講如何實(shí)現(xiàn)某個(gè)功能,而不是簡(jiǎn)單地介紹各個(gè)功能vi。我覺得這樣的書才比較有技術(shù)含量,看的時(shí)候容易讓人思考,而不是死記硬背,也能經(jīng)常講一些良好的程序習(xí)慣。
有的人可能看到厚厚的英文書就頭大,我剛開始用LabVIEW的時(shí)候,只有英文版的軟件,說明文件都是英文的,所以看英文版的教程比較順,現(xiàn)在軟件跟說明文件都有了中文版,許多人可能不愿意看英文版的教材了,這樣的話也可以看一本中文版的書,楊樂平的《LabVIEW高級(jí)程序設(shè)計(jì)》,跟我推薦的那本“LabView-Advanced Programming Techniques”相似程度極高,許多章節(jié)都是從英文版翻譯過來的,連書名都差不多,如果覺得看英文版比較費(fèi)勁的話,可以考慮看這一本。
我來談?wù)勛约罕容^有趣的入門過程:
上研一的時(shí)候,有一天上完課,導(dǎo)師忽然把我叫住,讓去我跟一個(gè)師兄學(xué)LabVIEW。那個(gè)師兄也是剛開始學(xué),見了面,他就給我演示了什么是LabVIEW:放了兩個(gè)“數(shù)值輸入控件”跟一個(gè)“數(shù)值顯示控件”在前面板,然后在后面板放了個(gè)“加”運(yùn)算符,把三個(gè)控件的線連起來,程序就完成了。接著給我演示運(yùn)行程序,“數(shù)值輸入控件”分別填入1跟2,結(jié)果就輸出“3”來了。從1+2=3,我的LabVIEW就開始入門了,簡(jiǎn)單,明了。
接下來我開始自己去摸索LabVIEW。當(dāng)年學(xué)VB,我逼自己寫了個(gè)俄羅斯方塊的游戲,但對(duì)于LabVIEW,寫俄羅斯方塊太難了,這次我告訴自己,先寫一個(gè)計(jì)算器出來,實(shí)現(xiàn)簡(jiǎn)單的加減乘除功能。于是開始琢磨里面的循環(huán)控件、移位寄存器、數(shù)組跟布爾按鈕。前后花了大概個(gè)把星期的時(shí)間才寫出來了。經(jīng)過這個(gè)小程序的鍛煉,基本上對(duì)這個(gè)軟件是完全入門了,懂得使用循環(huán)、寄存器、數(shù)組、邏輯、顯示。后來每個(gè)入門的學(xué)生,導(dǎo)師都會(huì)要他們?nèi)憘€(gè)計(jì)算器,呵呵。這確實(shí)是不需要其他外部設(shè)備,可以直接在單機(jī)上寫的東西。
寫完計(jì)算器之后導(dǎo)師便開始交代任務(wù)了:寫個(gè)程序來控制一臺(tái)惠普的4339B高阻儀(現(xiàn)在是安捷倫了)。
網(wǎng)上搜索了一下,許多人都說可以上NI的網(wǎng)站下載驅(qū)動(dòng)(NI是開發(fā)LabVIEW的公司)。驅(qū)動(dòng)是下載來了,就是不知道怎么用。現(xiàn)在看起來多么簡(jiǎn)單的一件事情,當(dāng)初跟師兄兩個(gè)人想破頭皮摸索了一個(gè)多星期才摸索出來……
但這只是調(diào)用別人寫的東西而已,因?yàn)椴粷M足,自己開始為實(shí)驗(yàn)室一臺(tái)非標(biāo)準(zhǔn)SCPI通訊儀器的溫控儀寫驅(qū)動(dòng),第一次研究通訊協(xié)議,死活弄不懂該如何計(jì)算他們自定義的驗(yàn)證碼。可能我的學(xué)習(xí)熱情感染了導(dǎo)師,那天碩士論文答辯,他坐在答辯會(huì)員會(huì)位置上埋頭研究這個(gè)通訊協(xié)議,還時(shí)不時(shí)跑出來跟我討論?,F(xiàn)在看起來問題很簡(jiǎn)單,就是ASCII值沒轉(zhuǎn)換成十六進(jìn)制,導(dǎo)致儀器識(shí)別不出我們送過去的代碼,而不是我們計(jì)算的問題,但第一次寫這種程序確實(shí)碰了不少釘子,我們懷疑是串口線壞了、懷疑是計(jì)算有問題、懷疑是儀器的接口有問題……那天碩士論文答辯,導(dǎo)師連一個(gè)問題都沒提問,答辯的師兄們說:這是歷年來最有驚無險(xiǎn)的一次答辯。
后來為了給我學(xué)LabVIEW,導(dǎo)師給買了許多東西:如數(shù)據(jù)采集卡、GPIB轉(zhuǎn)USB線等等硬件設(shè)備,我自己也經(jīng)常跑到學(xué)校一個(gè)NI贊助的實(shí)驗(yàn)室?guī)湍菐腿舜螂s。一年過后就學(xué)得滾瓜爛熟了。
總結(jié)我的學(xué)習(xí)過程:
我不是從教程到實(shí)踐,恰恰相反,我是實(shí)踐過了一段時(shí)間之后再去看教程的。
寫計(jì)算器的時(shí)候,我對(duì)功能vi的理解是直接看它的圖標(biāo),很多功能vi的功能從圖標(biāo)一目了然就能看出來。如果看了還不懂的話,就幫助文件。計(jì)算器就是這么摸索出來的?,F(xiàn)在很多人寫計(jì)算器,有的說要看完書之后才能寫,結(jié)果是花了個(gè)把月看完了書,還是一樣無從下手,好一點(diǎn)的是邊看書邊寫,我覺得這才是正規(guī)學(xué)習(xí)方法。我那種憑自己想象力的學(xué)習(xí)方法,也應(yīng)該算是旁門左道,有時(shí)候會(huì)很快,但運(yùn)氣不好也會(huì)卡殼。但這種方法對(duì)我寫非標(biāo)準(zhǔn)通訊協(xié)議也有幫助,因?yàn)閷戇@種東西沒有任何一本教科書能教會(huì)你。
很多人只看教科書,不看幫助文件,這是一種錯(cuò)誤的方法。教科書可能出錯(cuò),但幫助文件不可能錯(cuò)。與其花時(shí)間在教科書上,不如看幫助文件。幫助文件各個(gè)相關(guān)聯(lián)的功能vi之間還有連接。
軟件的自帶的例程很全,基本上可以覆蓋你想學(xué)的功能。初學(xué)者多花時(shí)間去研究一下例程的話,提高會(huì)很快。
如果有問題,歡迎來討論,呵呵。
最后我要推薦一個(gè)非常不錯(cuò)的LabVIEW的論壇 :http://www.vihome.com.cn/bbs LabVIEW論壇 論壇資料非常豐富
大家可以上去搜索到幾乎所有的知識(shí) 強(qiáng)烈推薦
評(píng)論