LabVIEW front panel物件控制

2023/01/28閱讀時間約 2 分鐘

最近的一個小project需要對前面板的物件做大量操控, 花了點時間搞懂一些東西

前面板(front panel)可以看作是視窗的外殼,上面有一個pane, 大概類似其他引擎的canvas

labview可以藉由splitter在視窗分隔出一個以上的pane來

pane裡面放置的物件分為三個group:AllObjs, Decorations和Controls

這裡的controls包含control和indicator

大概是panel-->pane-->Objects (controls+decocations) 這樣

所以控制前面板物件要到pane裡抓出要控制物件的ref, 再從裡面的方法和屬性去控制

==========================================

20200615補充

從以下程式可以看出三種group的不同, 以及Reference的順序關係 

AllObjs因為包含不同group所以可已控制的property少很多

raw-image

==========================================

 

作法有兩種

如果是要subVI要控制上層VI的物件要從front panel (FP)拉出ref control

(是的,下層VI可以控制上層面板的物件)

只是要控制本身面板物件就到block diagram (BD)拉

 

在FP按右鍵找到Refnum, 把裡面的VI Refnum control拉到FP

當然, 如果你要控制的是上層control也可以選Control Refnum

raw-image

 

在control按右鍵重新選擇Ref的種類為Pane

raw-image

 

在BD建立則是選擇application crontrol裡的VI server refnum, 然後在icon按右鍵重新連結到pane

這邊可以看到pane底下列出了所有的control (但沒有decoration)

所以也可以把refnum直接設定成要控制的control

raw-image

 

 

從Pane裡回傳的物件Ref順序是會變的, 他的排列依據是物件或裝飾在pane上的位置

在最上層的一個物件會在index 0的位置, 往下就類推, 一旦改變前後順序ref順序也會變

比如說想要把某個裝飾或物件放到最下一層,把他的refnum移到array最後面就可以了

從下面這個程式就可以看出這個現象

 

raw-image
raw-image

 

 

    5會員
    56內容數
    ktest
    留言0
    查看全部
    發表第一個留言支持創作者!