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