最近教導一些初學者學習LabVIEW,整理了一些心得和大家分享;我學習LabVIEW一直都跌跌撞撞的,一條路上鬼打牆、反覆撞了壁好幾次;接了幾個案子、換了幾次工作後,才歸納出怎樣co-working、發現培養團隊good style程式的重要,太有感而發,完全離題了 希望這篇能夠幫助到剛學習LabVIEW的初學者,能夠在學習之路上有個指引,少走些冤枉路。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
程式學習建議:
labVIEW學習開發出一個程式,非常簡單,拉幾條線放幾個Funtion,很快就能夠完成了,但是,你有考慮過你的程式記憶體使用問題嗎?、有考慮過其他人接手(或是下次你再複習)容不容易閱讀?、又或是程式架構擴增的彈性呢?
- NI Example :
我滿推薦初學者再遇到不會的function、或有時間的時候將NI Example打開來看看一樣的功能Example怎麼寫出出來的,然後模仿再寫一次,這樣反覆練習才會學習到比較好的good style。NI在文件上面非常的下功夫,教學的資源也是非常的多,每次的LabVIEW升版都能看到新的Example,也會淘汰一些不敷使用的範例程式。
Help-->Find Example
或是對著元件按Control+H ,在內文中找Find Example
2.LabVIEW 書籍 :
這裡有兩本書推薦,
一本是比較適合初階,CLD程度閱讀的LabVIEW For Everyone,這本是本英文書,深入淺出的介紹LabVIEW的元件,
另外一本市聖經,The LabVIEW Style Book,這本書我之前有介紹過,可以參考: LabVIEW_推薦參考書_The LabVIEW Style Book, 這本書分成很多段落在分享和教導讀者如何建立程式架構、設計親切易懂的人機介面和養成良好習慣 。
3.論壇:LabVIEW Pro、NI英文論壇
網路上很多LabVIEW資源,從以前的LabVIEW360、LAVA、到現在NI 台灣官方支持的LabVIEW Pro,我都很建議可以去瀏覽,這編列幾個:
LabVIEW Pro : 小編很用心地在經營,有練功區、程式基礎教學、討論區、技術專題..等 (已停)
NI Discussion Forums : 外國高手討論都會激起如元子彈的震撼教育
LabVIEW 360 : 很多不錯的資源,討論人氣也是非常的旺
LAVA : 討論很多VI擴充tools
程式寫作建議:
1. 使用英文版的LabVIEW:
LabVIEW許多資源都是用英文的,包括白皮書、使用說明、Help文件、或是spec文件..等等。用英文版的LabVIEW開發熟習元件名稱,這樣再搜尋資源會比較輕鬆;放心,英文介面對寫程式不會有什麼影響的。
2.LabVIEW Good Style :
使用Good Style開發LabVIEW是我一再強調的,好的寫作習慣養成是日後建立大型專案的重要基礎,要檢查自己的程式是否符合Good Style最簡單也是最快的方法就是打開Analyzer。或是參考我的另外一篇:LabVIEW_寫好程式Good Style_Code Review檢測Analyzer、Check List
Tools-->VI Analyzer-->Analyze VI
他分析的面向很廣包括:Block Diagram、Complexity Metrics、Documents、Front Panel、General、VI Metrix
分析完後會給一份報告,評估程式的風險程度,可以看到自己寫出來的程式哪邊和建議的違和,
或是直接查看 LabVIEW Check List ,檢查什麼事重要的項目。
5.架構選擇:
我覺得程式架構只要穩、易維護,都是很好的架構;所以我並沒有非常推崇高階的程式專案架構,我認為需要依照專案、團隊來選擇程式架構,不過如果是初學者學習的話,我推薦下面的程式架構:
- State Machine :適合小程式,需要輪轉重複的功能
- Producer & Consumer: LabVIEWPro介紹中文版
- Queue Message Handler :這個比較進階一點,不過試LabVIEW的Project Template,教學文件很多,可以試試看
Template-->Producer/Consumer
Template-->Simple State Machine
6.程式整理
程式凌亂絕對會降低Coding效率,義大利麵程式、巣狀程式會增加維護的困難。
1. 建議常常使用小掃把整理程式,
2.避免過多彎取的線、堆疊的線
7.Type Define
使用State Machie Enum、GUI Tab、交握的Data、傳遞在不同程式的Data...等常常再不同VI或是同一個VI使用多次的原件都將型態存起來,好處是修改時不用一個一個更改,使用Type Define後一次可以修改到全部。
可以參考這篇教學:https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019MFtSAM
8. 程式大小控制在同一個畫面中
如果你的撰寫需要用50吋的螢幕才能完整展開,絕對是需要整理得程式、利用SubVI、好的程式架構、Good Style,增加程式閱讀性。
9.不要濫用global、local Variable
變數濫用、Race Condition是LabVIEW開發初期的通病,使用過多會造成程式的不穩定性。試著使用FGV、Shit Register來取代這些跳脫資料流概念的變數;
這篇有詳細的介紹: LabVIEW_什麼是Race Condition(競爭危害)?
10 程式註解
千萬不要覺得註解是幫助別人閱讀自己的程式才需要寫,我的經驗是,大部分都是幫助自己 不用一年,程式邏輯沒有文件的輔助是很難快速切入的。
應該是LabVIEW2014後,註解還可以加上箭頭,非常的方便。
11.使用Cluster
Cluster的使用可以簡化Block Diagram,最重要的是可以讓相關的資料做一個結合,在後續的使用上比較清楚,也減少connect的接角。
請注意,當在bundle 和unbundle cluster 時一定要使用by Name的方法,最好搭配type define做cluster的資料結構定義。
12.開始寫做前規劃程式架構、應用方式
開始撰寫前先想過程式需求用什麼架構來開發會更融易、把需求想過一次後,會看到很多一開始想不到的盲點。最好是畫出流程圖,並把這些開發文件都留在專案、程式的資料夾中,幫助日後的閱讀。
程式人機(GUI)建議:
1.利用對齊工具來讓面板整齊:有各種對齊、置中對齊、靠左對齊、靠右對齊...
2.利用調整間距工具: 有各種調整間距的方法:平分、固定間距、0間距...
3.調整物件大小: 調整物件大小,也可以多選多個物件將他們調整成大小全部一樣。
4.字體大小\顏色:
整個面板的字體大小、顏色最好控制在3種不同的組合,過多顏色、大小會讓畫面過於凌亂。可以分成 不重要小字(size:14、灰色)、正文(size:16、黑色)、非常強調(size:20、紅色)
5.利用Tab簡化控制元件很多的人機,才不會讓使用者一次看到過多的控制元件產生恐懼感(?)
可以參考NI Example-->Programmatically Manipulate a Tab Control.vi 來看使用方法
Debug程式建議:
利用Explain Help查看錯誤碼,每個錯誤都要發揮偵探的精神,找出最實質的原因,才不會出現"幽靈bug"的問題。(有時候會發生有時候又不會發生的bug)
專案程式建議:
1.資料夾整理,將程式依照自己的固定方法、分類正理control、SubVI,這樣在移動專案時,不容易有"丟包"的subVI,也容易一目了然專案的程式用途。
2.使用VI Hirechy檢視
從hirechy可以檢查程式的整潔度和關聯圖,在閱讀他人的程式格外重要,可以從這個架構途中,了解整個專案架構和應用層面。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
留言列表