background image

Wirtualne Instrumenty i Systemy

Klastry

Dr inż. Witold Nocoń

background image

Clusters

– sposób na grupowanie zmiennych różnych typów

W tekstowych językach programowania istnieją

rekordy

(PASCAL) 

lub

struktury (structures)

(in C).

W LabVIEW mamy klastry (

clusters

).

Podobnie jak w przypadku tablic, dwa kroki 
w celu utworzenia: 

1. Umieścić Zasobnik Klastra
(

Cluster Shell)

na panelu

2. Do zasobnika wstawić potrzebne elementy.

background image

Clusters

– sposób na grupowanie zmiennych różnych typów

Krok pierwszy:

Cluster Shell

Cluster Terminal

Potrzebne elementy 
umieszczone wewnątrz
zasobnika klastra

Krok drugi:

background image

Clusters

– sposób na grupowanie zmiennych różnych typów

Klaster (jako całość) może być albo kontrolką albo wyświetlaczem

Cluster control:

Cluster indicator:

background image

Clusters

– na diagramie

Aby uzyskać składowe klastra należy „rozpleść”

(unbundle)

przewód:

Funkcja unbundle jest

polimorficzna

- jej  wygląd zmienia się w zależności 

od składowych klastra.

Poszczególne elementy mogą być wyprowadzone

background image

Clusters

– na diagramie

Zauważ, że elementy klastra są uporządkowane w kolejność. To 
uporządkowanie

jest niezależne od położenia

elementu wewnątrz 

klastra.

Domyślnie, kolejność odpowiada kolejności wstawiania 
elementów do zasobnika.

Aby zmienić kolejność, należy z 
menu podręcznego klastra wybrać

Reorder Controls in Cluster...

background image

Clusters

– na diagramie

Aby stworzyć klaster na diagramie, należy „spleść” przewody (boundle) :

bundle

UWAGA

: W powyższym przykładzie łatwo popełnić błąd 

polegający na niezauważonym przestawieniu kolejności 
zmiennych – co może nie doprowadzić do błędu w czasie 
kompilacji

background image

Clusters

– na diagramie

Podmiana elementów klastra

• zmienne których wartości nie zostaną połączone, nie ulegną 
zmianie

Nie trzeba splatać z powrotem wszystkich wartości

background image

Clusters

– na diagramie

Warto korzystać z funkcji „splatania przez nazwę”, co zapobiega 
pomyłkom związanym z zamianą wartości tych samych typów

Bundle by Name

– nazwa zmiennej używana jako identyfikator 

zmiennej

Funkcja ta daje się powiększać. Daje też możliwość 
wyboru wejść (z których każde musi być połączone)

background image

Clusters

– na diagramie

Unbundle by Name

– umożliwia rozplatanie przy użyciu nazwy 

zmiennej jako identyfikatora.

Wyświetlane są tylko wybrane przez programistę elementy.

Nazwy zmiennych powinny być mądrze nazywane – ułatwi 
to poruszanie się w programie.

Przykład (nie robiący niczego szczególnego): pro_05_01.vi. 

background image

XY Graphs 

– teraz  się wszystko wyjaśni

Po umieszczeniu XY Graph’a na panelu...

... na diagramie pojawi się terminal 
klastra.

Terminal przyjmuje klaster 
dwóch wektorów (wektor X 
oraz wektor Y):

lub tablicę klastrów wektorów (w 
przypadku większej liczby 
wykresów):

Przykład: pro_05_02.vi. 

background image

Clusters

– dwie przydatne funkcje

Array To Cluster:

Zamienia tablicę 1D na klaster elementów typu elementów 
tablic.Przydatne, jeśli chcemy wyświetlić elementy tablica jako 
klaster, ale mieć możliwość operowania na nim jak na tablicy

Menu podręczne funkcji umożliwia określenie wielkości klastra
(Cluster Size). Domyślnie 9, maksymalnie 256

background image

Clusters

– dwie przydatne funkcje

Cluster To Array:

Zamiana klastra na tablicę elementów klastra

• Składowymi klastra (

cluster)

nie mogą być tablice. 

• Elementy klastra muszą być tego samego typu (dokładnie)

Krótki przykład: pro_05_03.vi. 

background image

Przykład – z leksza bardziej zaawansowany - przedsmak przyszłego semestru:

Używając dynamicznie ładowanych funkcji (w dowolnej ilości), potrzebny jest 

kontener

w którym 

przechowywane będą referencja do wszystkich 

załadowanych funkcji

.

Dynamiczne ładowanie funkcji omówimy później (przyszły semestr?).

To co zrobimy teraz to

tablica o zmiennym rozmiarze, zawierająca klastry

.

Klastry zawierać będą dane (nie ważne jakie)

Zapewnić jednak musimy mechanizm, wstawiania nowych klastrów do 
kontenera, usuwanie istniejący klastrów z kontenera oraz edytowanie danych 
już w kontenerze się znajdujących.

Trzeba też jednoznacznie identyfikować elementy. W tym celu należy 
każdemu nowemu elementowi nadać niepowtarzalny 

number referencyjny.

Numer ten odróżniał będzie elementy od innych elementów

Rozwiązanie: pro_05_04.vi. 


Document Outline