33
1 ni.com/taiwan NI 寒假期間學生聚會 主題分享: 加速學習 LabVIEW 之十大密技 講師: 吳維翰

加速學習 LabVIEW 之十大密技

Embed Size (px)

Citation preview

Page 1: 加速學習 LabVIEW 之十大密技

1ni.com/taiwan

NI 寒假期間學生聚會

主題分享:

加速學習 LabVIEW 之十大密技

講師: 吳維翰

Page 2: 加速學習 LabVIEW 之十大密技

2ni.com/taiwan

About Me

吳維翰 / John

行動電話: 0910-611-802電子郵件: [email protected]

• 學歷: 美國麻省 Tufts University

– 機械工程系學士、碩士 (2002, 2004)

• 畢業論文:

– The Development of Well-Defined 3D Biomaterial Scaffolds for Cellular Growth Studies Using a Micromolding Approach

• 經歷:

– 美商國家儀器 應用工程師

– 美商國家儀器 教育訓練課程 講師

– 美商國家儀器 行銷工程師

– 美商國家儀器 新竹縣業務工程師

– 台灣區機器人競賽 WRO,FLL 技術裁判

• 現職: 美商國家儀器 行銷部技術經理

Page 3: 加速學習 LabVIEW 之十大密技

3ni.com/taiwan

程式撰寫概念

Page 4: 加速學習 LabVIEW 之十大密技

4ni.com/taiwan

1. 寫程式先要有計劃!

• 規格文件 (Specifications Document)

– 你希望程式達到的效果?

– 輸入給程式的資料,程式輸出的資料?

– 人機界面要有那些功能或顯示?

– 請先把程式想成一個「黑箱」

程式輸入資料:

123?

ABC?

12.32894?

輸出資料:

OK!

Move Motor!

The answer is XXX!

Page 5: 加速學習 LabVIEW 之十大密技

5ni.com/taiwan

Example: 計算機

• 規格文件…

– 你希望程式達到的效果

• 加,減,乘,除

– 輸入給程式的資料,程式輸出的資料

• 我給它兩個數字,並選擇功能,程式給我答案

– 人機界面要有那些功能或顯示?

• 我要有可以輸入兩個數字的地方

• 我要有選擇加減乘除的選項

• 我要有可以顯示答案的地方

Page 6: 加速學習 LabVIEW 之十大密技

6ni.com/taiwan

於是 …

輸入資料:

數字1?

數字2?

加,減,乘,除?

輸出資料:

答案!

人機界面 …

程式

Page 7: 加速學習 LabVIEW 之十大密技

7ni.com/taiwan

寫程式先要有計劃!

• 流程圖 (flowchart)

– 相信我,流程圖畫出來,LabVIEW 程式就會寫了。

Page 8: 加速學習 LabVIEW 之十大密技

8ni.com/taiwan

2. 資料流 (Dataflow)

• LabVIEW 核心概念

• 要駕馭 LabVIEW,一定要清楚 dataflow

• 隨堂測驗

Page 9: 加速學習 LabVIEW 之十大密技

9ni.com/taiwan

Page 10: 加速學習 LabVIEW 之十大密技

10ni.com/taiwan

程式撰寫技巧

Page 11: 加速學習 LabVIEW 之十大密技

11ni.com/taiwan

3. 保持 LabVIEW 程式整齊

• LabVIEW 是個圖形化的環境

• LabVIEW 程式的清晰度,取決於

程式有多整齊

• 雜亂的程式,不但影響後續程式

維護,甚至也影響執行效率

• 請記得:「水可載舟,亦可覆舟」

– 不要被圖形化的便利性絆倒了!

Page 12: 加速學習 LabVIEW 之十大密技

12ni.com/taiwan

看得懂嗎?

Page 13: 加速學習 LabVIEW 之十大密技

13ni.com/taiwan

幾個準則

• 線,儘量不要彎

Page 14: 加速學習 LabVIEW 之十大密技

14ni.com/taiwan

幾個準則

• 程式大小控制在一個畫面以內

– 別忘了可以用 subVI

Page 15: 加速學習 LabVIEW 之十大密技

15ni.com/taiwan

4.不要濫用 local/global variable

• 資料就如忍者一樣,來無影,去無蹤

– 資料的「瞬間移動」

• 完全違反了資料流概念!

• 資料多佔一倍記憶體

– 拖慢 LabVIEW 程式

• 不得已的時候再用

Page 16: 加速學習 LabVIEW 之十大密技

16ni.com/taiwan

什麼時候不得已?

• 通常都是跟迴圈有關

– 而且又是不同速度的迴圈Local Variable

Page 17: 加速學習 LabVIEW 之十大密技

17ni.com/taiwan

5. 記得加註解

• 請加有意義的註解,謝謝

Page 18: 加速學習 LabVIEW 之十大密技

18ni.com/taiwan

6. 用 cluster 來簡化資料

• 就像購物袋一樣,把重複使用資料的資

料裝起來

Page 19: 加速學習 LabVIEW 之十大密技

19ni.com/taiwan

人機界面

Page 20: 加速學習 LabVIEW 之十大密技

20ni.com/taiwan

7. 人機界面設計準則

• 利用裝飾來幫元件進行分類

• 善用對齊工具,讓元件距離勻稱

Page 21: 加速學習 LabVIEW 之十大密技

21ni.com/taiwan

Page 22: 加速學習 LabVIEW 之十大密技

22ni.com/taiwan

7. 人機界面設計準則

• 避免畫面上元件重疊

– 可以利用 tab control

Page 23: 加速學習 LabVIEW 之十大密技

23ni.com/taiwan

除錯 (debugging)

Page 24: 加速學習 LabVIEW 之十大密技

24ni.com/taiwan

8. 不要不理會錯誤訊息

• 電腦是個很奇妙的東西 …

– Bug 是不會自己抓 bug 的。

– 再重開機幾百次也沒有用。

• 錯誤訊息

– 除錯時唯一的線索

– 可以多加利用翻譯工具

• http://translate.google.com.tw/

Page 25: 加速學習 LabVIEW 之十大密技

25ni.com/taiwan

錯誤訊息

• Status: 綠色則無錯誤,紅色則有錯誤

• Code: 32-bit 錯誤訊息代碼

• Source: 錯誤在哪個 VI 發生的

按右鍵選擇“Explain Error” ,就會跳出來更詳細的說明!

Page 26: 加速學習 LabVIEW 之十大密技

26ni.com/taiwan

9. Divide and Conquer - 分而治之

• 大問題變小問題,小問題變沒問題

– 將程式分成幾個重要部份 (或subVI),然後一

個一個擊破

– 儘可能將程式還原至無錯狀態,再進行比對

子程式 子程式 子程式

Page 27: 加速學習 LabVIEW 之十大密技

27ni.com/taiwan

10. 在無硬體狀況下,快速驗證程式邏輯

• 學長把儀器借走了

• 硬體壞了,正在維修

• 還不知道要買哪些設備

• 此問題不止困擾學生,也困擾業界人士!

難道沒有硬體,就,就,就不能寫程式嗎?

Page 28: 加速學習 LabVIEW 之十大密技

28ni.com/taiwan

幾種做法

• 用 Simulate Signal 來產生代替儀器的訊號

– 可以定義 sine/cosine,方波,三角波,鋸齒波

– 還可以模擬雜訊!

程式邏輯或演算法

Page 29: 加速學習 LabVIEW 之十大密技

29ni.com/taiwan

幾種做法

• 在儀器還沒被借走前,先將測試資料存檔

• 讀取檔案來代替儀器的資料

程式邏輯或演算法

Page 30: 加速學習 LabVIEW 之十大密技

30ni.com/taiwan

幾種做法

• 如果是 NI 的儀器系列,大多數都可以經

由 MAX 來模擬它的存在

*MAX: Measurement & Automation Explorer

Page 31: 加速學習 LabVIEW 之十大密技

31ni.com/taiwan

11. 培養自己尋找資源的能力

• NI 範例程式總覽 (NI Example Finder)

– Help -> Find Examples

• NI 台灣技術論壇

– http forums.ni.com/ni/board?board.id=5170

• 非官方 LabVIEW 論壇

– Itpointed.com (前 labview360.com)

Page 32: 加速學習 LabVIEW 之十大密技

32ni.com/taiwan

感謝參加今日活動!

• 重點復習:

– 寫任何程式前都要有規劃!

– 保持 LabVIEW 程式碼整齊!

– 不要不理會錯誤訊息!

• 能夠寫出好的 LabVIEW 程式不但是一門技術,

更是一門藝術…

• 如何讓自己的LabVIEW能力變強?

– 勤練習,勇于分享,把握每次上課機會!

Page 33: 加速學習 LabVIEW 之十大密技

33ni.com/taiwan

今年度 NI 學術展望

&

學生使用 LabVIEW 之「我有話要說」