最近教導一些初學者學習LabVIEW,整理了一些心得和大家分享;我學習LabVIEW一直都跌跌撞撞的,一條路上鬼打牆、反覆撞了壁好幾次;接了幾個案子、換了幾次工作後,才歸納出怎樣co-working、發現培養團隊good style程式的重要,太有感而發,完全離題了 希望這篇能夠幫助到剛學習LabVIEW的初學者,能夠在學習之路上有個指引,少走些冤枉路。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

程式學習建議:

labVIEW學習開發出一個程式,非常簡單,拉幾條線放幾個Funtion,很快就能夠完成了,但是,你有考慮過你的程式記憶體使用問題嗎?、有考慮過其他人接手(或是下次你再複習)容不容易閱讀?、又或是程式架構擴增的彈性呢?

  1. 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.架構選擇:

我覺得程式架構只要穩、易維護,都是很好的架構;所以我並沒有非常推崇高階的程式專案架構,我認為需要依照專案、團隊來選擇程式架構,不過如果是初學者學習的話,我推薦下面的程式架構:

  1. State Machine :適合小程式,需要輪轉重複的功能
  2. Producer & Consumer: LabVIEWPro介紹中文版
  3. 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文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

arrow
arrow

    安伯伯 發表在 痞客邦 留言(2) 人氣()