Sep 29, 2010

LV:cluster

cluster類似於C當中的struct
ex:
  struct point {
     float x;
     float y;
  }
cluster使用習慣是labview中是從初階昇級到中階的重要技巧

cluster在labview是很重要的應用
1.減少拉線
2.把相關資料聚集在一起
3.by name (bundle/unbundle by name)可以達到良好程式維護擴充性
4.相較array,可以保持住每個元件的名稱

XY, Error, 參數設定...etc都很常用到cluster

wire:
上圖為咖啡色:是屬於單純的cluster形式
                         單純的numeric
下圖為粉紅色:是屬於複雜形式
                         只要有boolean, Array, 巢狀結構(nested)
XY
XY也可以用array形式,用單純array反而計算更快
但是labview中很多vi是接收XY cluster的接線,如graph,picture畫圖
所以一般還是建議用cluster比較方便,像是2D Array哪能知道哪個是X哪個是Y
除非很重數值運算,不然就用cluster

Parameter
很多參數,最好都是用cluster,雖然會降低一點效率
但可以很清楚看線的分布,之後要在修改也很容易
參數很多,但是sub vi並沒有辦法支援很多node,就需要把參數bundle綁在一起

INI
ini是不少程式都有支援的參數檔
在openG當中就有寫好的library,只要你一建好cluster當中元件的名稱跟ini裡面項目名稱一樣
就可以直接讀參數設定,不需要慢慢一個一個Get Key Name

type define
活用type define,可以把cluster存成ctl,對於要繼續擴充cluster裡的原件是非常重要的
當使用labview到某種程度就知道這個威力的強大,需自己慢慢體會

bundle/ unbundle
bundle and unbundle by name可以個別處理所需要的元件
已經有cluster control可以直接使用bundle/unbundle by name
如果沒有control,但又想要把線拉到name上面,就需要建好cluster indicator,在從這indicator create一個constant,如上圖右方拉到中間node

要改變cluster中的值,可以先undundle再bundle





No comments:

Post a Comment