加速學習 LabVIEW 之十大密技

1,469 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,469
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

加速學習 LabVIEW 之十大密技

  1. 1. NI 寒假期間學生聚會<br />主題分享: <br />加速學習 LabVIEW之十大密技<br />講師: 吳維翰<br />
  2. 2. About Me<br />學歷: 美國麻省 Tufts University<br />機械工程系學士、碩士 (2002, 2004)<br />畢業論文:<br />The Development of Well-Defined 3D Biomaterial Scaffolds for Cellular Growth Studies Using a Micromolding Approach <br />經歷:<br />美商國家儀器 應用工程師<br />美商國家儀器 教育訓練課程 講師<br />美商國家儀器 行銷工程師<br />美商國家儀器 新竹縣業務工程師<br />台灣區機器人競賽 WRO,FLL 技術裁判<br />現職: 美商國家儀器 行銷部技術經理 <br />吳維翰 / John<br />行動電話: 0910-611-802<br />電子郵件: wei-han.wu@ni.com<br />
  3. 3. 程式撰寫概念<br />
  4. 4. 1. 寫程式先要有計劃!<br />規格文件 (Specifications Document)<br />你希望程式達到的效果?<br />輸入給程式的資料,程式輸出的資料?<br />人機界面要有那些功能或顯示?<br />請先把程式想成一個「黑箱」<br />程式<br />輸入資料:<br />123?<br />ABC?<br />12.32894?<br />輸出資料:<br />OK!<br />Move Motor!<br />The answer is XXX!<br />
  5. 5. Example: 計算機<br />規格文件…<br />你希望程式達到的效果<br />加,減,乘,除<br />輸入給程式的資料,程式輸出的資料<br />我給它兩個數字,並選擇功能,程式給我答案<br />人機界面要有那些功能或顯示?<br />我要有可以輸入兩個數字的地方<br />我要有選擇加減乘除的選項<br />我要有可以顯示答案的地方<br />
  6. 6. 於是 …<br />程式<br />輸入資料:<br />數字1?<br />數字2?<br />加,減,乘,除?<br />輸出資料:<br />答案!<br />人機界面 …<br />
  7. 7. 寫程式先要有計劃!<br />流程圖 (flowchart)<br />相信我,流程圖畫出來,LabVIEW程式就會寫了。<br />
  8. 8. 2. 資料流 (Dataflow)<br />LabVIEW核心概念<br />要駕馭 LabVIEW,一定要清楚 dataflow<br />隨堂測驗<br />
  9. 9.
  10. 10. 程式撰寫技巧<br />
  11. 11. 3. 保持 LabVIEW程式整齊<br />LabVIEW是個圖形化的環境<br />LabVIEW程式的清晰度,取決於程式有多整齊<br />雜亂的程式,不但影響後續程式維護,甚至也影響執行效率<br />請記得:「水可載舟,亦可覆舟」<br />不要被圖形化的便利性絆倒了!<br />
  12. 12. 看得懂嗎?<br />
  13. 13. 幾個準則<br />線,儘量不要彎<br />
  14. 14. 幾個準則<br />程式大小控制在一個畫面以內<br />別忘了可以用 subVI<br />
  15. 15. 4.不要濫用 local/global variable<br />資料就如忍者一樣,來無影,去無蹤<br />資料的「瞬間移動」<br />完全違反了資料流概念!<br />資料多佔一倍記憶體<br />拖慢 LabVIEW程式<br />不得已的時候再用<br />
  16. 16. 什麼時候不得已?<br />通常都是跟迴圈有關<br />而且又是不同速度的迴圈<br />Local Variable<br />
  17. 17. 5. 記得加註解<br />請加有意義的註解,謝謝<br />
  18. 18. 6. 用 cluster 來簡化資料<br />就像購物袋一樣,把重複使用資料的資料裝起來<br />
  19. 19. 人機界面<br />
  20. 20. 7. 人機界面設計準則<br />利用裝飾來幫元件進行分類<br />善用對齊工具,讓元件距離勻稱<br />
  21. 21.
  22. 22. 7. 人機界面設計準則<br />避免畫面上元件重疊<br />可以利用 tab control<br />
  23. 23. 除錯 (debugging)<br />
  24. 24. 8. 不要不理會錯誤訊息<br />電腦是個很奇妙的東西 …<br />Bug 是不會自己抓 bug 的。<br />再重開機幾百次也沒有用。<br />錯誤訊息<br />除錯時唯一的線索<br />可以多加利用翻譯工具<br />http://translate.google.com.tw/<br />
  25. 25. 錯誤訊息<br />Status: 綠色則無錯誤,紅色則有錯誤<br />Code: 32-bit 錯誤訊息代碼<br />Source: 錯誤在哪個 VI 發生的<br />按右鍵選擇<br />“Explain Error” ,<br />就會跳出來更詳細的說明!<br />
  26. 26. 9. Divide and Conquer - 分而治之<br />大問題變小問題,小問題變沒問題<br />將程式分成幾個重要部份 (或subVI),然後一個一個擊破<br />儘可能將程式還原至無錯狀態,再進行比對<br />子程式<br />子程式<br />子程式<br />
  27. 27. 10. 在無硬體狀況下,快速驗證程式邏輯 <br />學長把儀器借走了<br />硬體壞了,正在維修<br />還不知道要買哪些設備<br />此問題不止困擾學生,也困擾業界人士!<br />難道沒有硬體,就,就,就不能寫程式嗎?<br />
  28. 28. 幾種做法<br />用 Simulate Signal 來產生代替儀器的訊號<br />可以定義 sine/cosine,方波,三角波,鋸齒波<br />還可以模擬雜訊!<br />程式邏輯或演算法<br />
  29. 29. 幾種做法<br />在儀器還沒被借走前,先將測試資料存檔<br />讀取檔案來代替儀器的資料<br />程式邏輯或演算法<br />
  30. 30. 幾種做法<br />如果是 NI 的儀器系列,大多數都可以經由 MAX 來模擬它的存在<br />*MAX: Measurement & Automation Explorer<br />
  31. 31. 11. 培養自己尋找資源的能力<br />NI 範例程式總覽 (NI Example Finder)<br />Help -&gt; Find Examples<br />NI 台灣技術論壇<br />http://forums.ni.com/ni/board?board.id=5170<br />非官方 LabVIEW論壇<br />Itpointed.com (前 labview360.com)<br />
  32. 32. 感謝參加今日活動!<br />重點復習:<br />寫任何程式前都要有規劃!<br />保持 LabVIEW程式碼整齊!<br />不要不理會錯誤訊息!<br />能夠寫出好的 LabVIEW程式不但是一門技術,更是一門藝術…<br />如何讓自己的LabVIEW能力變強?<br />勤練習,勇于分享,把握每次上課機會!<br />
  33. 33. 今年度 NI 學術展望&學生使用 LabVIEW之「我有話要說」<br />

×