Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Tablice i Klastry
(Tutorial: Arrays and Clusters)
Poniższy poradnik wprowadza do tworzenia oraz obsługi tablic i typów danych klastra.
Tablica składa się z elementów i wymiarów. Jest albo kontrolką, albo wskaznikiem - nie może
jednocześnie zawierać kontrolek i wskazników, czyli musi przechowywać zmienne jednego typu.
Elementami są dane lub wartości zawarte w tablicy. Wymiarem jest długość, wysokość lub
głębokość tablicy. Tablice są bardzo pomocne podczas prac z kolekcją podobnych do siebie danych,
oraz kiedy trzeba przechowywać powtarzające się obliczenia.
Elementy tablicy są uporządkowane. Każdy element w tablicy ma odpowiednią wartość indeksu, a
korzystając z niego można uzyskać dostęp do konkretnego elementu tablicy. W LabVIEW
indeksowanie tablicy rozpoczyna się od zera. Oznacza to, że jednowymiarowa (1D) tablica zawiera
n elementów, natomiast zakres indeksu wynosi od 0 do n-1, gdzie indeks 0 oznacza pierwszy
element, a indeks n-1 ostatni element tablicy.
Klastry grupują elementy danych różnego typu. Przykładem klastra, jest klaster błędu LabVIEW,
który łączy w sobie wartość logiczną, wartość liczbową oraz wartość tekstową. Klaster jest podobny
do struktury w tekstowych językach programowania.
Podobnie do tablic, klaster jest albo kontrolką, albo wskaznikiem i nie może jednocześnie zawierać
kontrolek i wskazników. Różnica między klastrami i tablicami polega na tym, że szczególny klaster
ma ustalony rozmiar, a rozmiar szczególnej tablicy może się zmieniać. Ponadto klaster może
zawierać mieszaninę typów danych, a tablica tylko jeden typ danych.
Tworzenie tablic i wskazników
(Creating Array Controls and Indicators)
Aby utworzyć tablicę w LabVIEW, trzeba umieścić ikonę tablicy na przednim panelu, a następnie
umieścić w niej element, np. numeryczny, logiczny lub wskaznik.
1. Stwórz nową VI.
2. Prawym przyciskiem kliknij na przednim panelu, aby wyświetlić paletę Controls (kontrolki)
3. Na palecie Controls, przejdz do Modern (Nowoczesne)>>Array,Matrix &Cluster
(Tablice, Macierze i Klastry) i przeciągnij Array (Tablica) na przedni panel.
4. Na palecie Controls (kontrolki) przejdz do Modern (Nowoczesne)>>Numeric
(numeryczne) i przeciągnij wskaznik numeryczny do Array (tablica).
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 1
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
5. Umieść kursor myszy nad tablicą i przeciągnij prawą stronę tablicy, aby ją rozciągnąć
i wyświetlić wiele elementów.
Poprzednie kroki prowadziły przez tworzenie talbicy 1D. Tablica 2D mieści elementy w
siatce lub macierzy. Każdy element tablicy 2D ma dwie odpowiadające wartości indeksu,
indeks wiersza i indeks kolumny. Podobnie jak w tablicy 1D, indeks wiersza i kolumny
zaczynają się od 0.
Aby utworzyć tablicę 2D, należy najpierw utorzyć tablicę 1D, a następnie dodać do niej
wymiar.
Wróć do tablicy 1D utworzonej wcześniej
1. Na przednim panelu kliknij prawym przyciskiem myszy na wyświetlaczu indeksu i wybierz
Add Dimension(dodaj wymiar) z menu skrótów.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 2
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
2. Umieść kursor myszy nad talbicą i przeciągnij jej róg, tak aby ją rozwinąć i wyświetlić
wiele wierszy i kolumn
Aż do tego momentu, elementy numeryczne tablic, które stworzyłeś były wygaszonymi
zerami. Przyciemniony element tablicy oznacza, że element nie został jeszcze zainicjowany.
Aby to zrobić wystarczy na niego kliknąć i wprowadzić żądaną liczbę zamist 0.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 3
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Elementy mogą być inicjowane z jakąkolwiek wartością. Nie muszą być takie same jak w
przykłądzie powyżej.
Tworzenie Tablic Stałych
(Creating Array Constants)
Tablice stałych można używać do przechowywania stałych danych albo do porównań z innymi
tablicami.
1. Na schemacie blokowym, kliknij prawym przyciskiem myszy, aby wyświetlić paletę
Functions(Funkcje)
2. Na palecie Functions(Funkcje), przejdz do Programming (Programowanie)>>Array
(Tablica) i przeciągnij Array Constant (Tablica stała) ze schematu blokowego.
3. Na palecie Functions (Funkcje), przejdz do
Programming(Programowanie)>>Array(Tablica) i przeciągnij Numeric Constant (Stałe
numeryczne) wewnątrz powłoki tabeli.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 4
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
4. Dopasuj wielkość tabeli i zainicjuj kilka elementów
Tablice Wejścia / Wyjścia
(Array Inputs/Outputs)
Jeżeli podepniesz tablicę, jako wejście do pętli FOR, LabVIEW domyślnie ustawi autoindeksowanie -
opcję automatycznego odwoływania się do kolejnych elementów tablicy wraz z krokiem pętli.
Można włączyć lub wyłączyć opcję automatycznego indeksowania przez kliknięcie prawym
przyciskiem myszy tunelu pętli połączonego z tablicą i wyboru Włącz indeksowanie (Wyłącz
indeksowanie)
Po włączeniu automatycznego indeksowania każdemu cyklowi pętli przypisana jest odpowiednia
wartość tablicy.
Jeśli podłączysz zmienną do wyjścia pętli FOR, używając automatycznego indeksowania, to na
wyjściu (po zakończeniu działania pętli) uzyskasz tablicę o rozmiarze równym ilości powtórzeń
pętli.
1. Stwórz nową VI. Przejdz do File(pliki)>>New VI(Nowa VI).
2. Utwórz i zainicjuj dwie tablice stałych 1D zawierającą sześć numerycznych elementów, na
schemacie blokowym podobne do tablic poniżej.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 5
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
3. Stwórz tablicę zawierającą numeryczne wskazniki na panelu przednim. Zmień typ liczbowy
na 32 bity. Kliknij prawym przyciskiem myszy i wybierz Representation
(Reprezentacja)>>I32(I32)
4. Stwórz pętle FOR na schemacie blokowym i umieść wewnątrz niej funkcję add
5. Połącz tablicę stałych z pętlą FOR oraz podłącz ją do terminala x funkcji add.
6. Połącz drugą tablicę stałych z pętlą FOR i podłącz ją do terminala funkcji add.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 6
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
7. Połącz terminal wyjścia funkcji add poza pętlę FOR i podłącz go do terminalu wejścia tablicy
wskazników numerycznych
8. Końcowy schemat blokowy i panel przedni powinny być podobne do tych przedstawionych
poniżej
Block diagram (Schemat blokowy)
Front panel(panel przedni)
9. Przejdz do panelu przedniego i uruchom VI. Należy pamiętać, że każdy element tablicy
wskazników numerycznych jest wypełniony sumą odpowiednich elementów z dwóch tablic
stałych.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 7
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Należy pamiętać, że po włączeniu automatycznego indeksowania w więcej niż jednym tunelu
pętli FOR, to liczba powtórzeń jest równa mniejszej ilości elementów tablicy. Na przykład na
poniższym rysunku na terminalu liczba powtórzeń pętli jest zaplanowana na 15. Array 1
zawiera 10 elementów, Array 2 zawiera 20 elementów. Po uruchomieni VI na poniższym
rysunku, pętla wykonywana jest 10 razy i tablica wyników zawiera 10 elementów.
Można utworzyć tablicę 2D za pomocą zagnieżdżonych pętli FOR i automatycznego
indeksowania jak pokazano poniżej. Zewnętrza pętla FOR tworzy elementy wiersza, a
wewnętrzna tworzy elementy kolumn.
Tworzenie klastrów
(Creating Clusters)
1. Stwórz nowy VI.
2. Kliknij prawym przyciskiem myszy, aby wyświetlić paletę Controls (kontrolki)
3. Na palecie Controls (kontrolki), przejdz do Modern (Nowoczesne)>>Array,Matrix
&Cluster (Tablice, Macierze i Klastry) i przeciągnij powłokę Cluster (klaster) na przedni
panel.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 8
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
4. Dostosuj wielkość Cluster, tak, żeby był wystarczająco duży, aby zawierać wiele
elementów.
5. Na palecie Controls przejdz do Modern (Nowoczesne)>>Numeric(Numeryczne) i
przeciągnij kontrolki numeryczne do powłoki klastra.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 9
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
6. Na palecie Controls przejdz do Modern(Nowoczesne)>>String & Path (Ciąg i ścieżka) i
przeciągnij String Control do powłoki klastra.
7.
8. Na palecie Controls(kontrolki) przejdz do Modern(Nowoczesne)>>Bolean (Logiczne) i
przeciągnij Vertical Toggle Switch (Pionowy Przegubowy Przełącznik) do powłoki klastra.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 10
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
9. Twój klaster powinien teraz wyglądać podobnie do tego poniżej.
Możesz teraz połączyć kontrolki numeryczne, ciągi sterujące oraz kontrolki logiczne w cały schemat
blokowy za pomocą jednego przewodu, zamiast trzech.
Tworzenie Stałych Klastrów
(Creating Cluster Constants)
Podobne do tablic z stałymi wartościami, można postąpić w przypadku klastrów. Zabieg ten
umożliwia przechowywanie stałych danych lub może być podstawą do porównań z innym klastrami.
Tworzenie stałych klastrów przebiega w ten sam sposób jak tworzenie stałych tablic.
Jeżeli chcesz zrobić klaster ze stałą wartością, który zawiera te same typy danych, a masz już
kontrolkę klastra i wskaznik, wystarczy zrobić kopię kontrolki klastra lub wskaznika na schemacie
blokowym, a następnie kliknąć prawym przyciskiem na kopii i wybrać Change to constant (zmień
na stałe) z menu skrótów.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 11
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Dostępnie funkcje na klastrach
(Cluster Functions)
Dostępne są cztery podstawowe funkcje klastra, umożliwiające jego manipulacją. Są to: Bundle
(połącz), Unbundle (rozłącz), Bundle By Name (Połącz po nazwie) i Unbundle By Name
(Rozłącz po nazwie).
Używaj funkcji Bundle, aby stworzyć klaster z kilku indywidualnych elementów. Aby połączyć
elementy za pomocą funkcji Bundle użyj myszy by zmienić rozmiar funkcji albo kliknij prawym
przyciskiem na funkcji i wybierz Add Input (Dodaj Wejście) z menu skrótów.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 12
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Użyj funkcji Bundle By Name albo funkcji Bundle by zmodyfikować istniejący klaster. Możesz
zmienić rozmiar funkcji Bundle By Name tak samo jak funkcji Bundle.
Funkcja Bundle By Name jest bardzo przydatna do modyfikowania istniejących klastrów,
ponieważ informuje dokładnie, który element jest modyfikowany. Na przykład wezmy pod uwagę
klaster zawierający dwa ciągi elementów oznaczonych, jako Ciąg 1 i Ciąg 2 . Jeżeli użyjemy
funkcji Bundle do zmodyfikowania klastra, terminal funkcji pojawi się jako różowe abc. Nie
wiadomo wtedy, który terminal modyfikuje Ciąg 1 a który Ciąg 2
Jednak, jeżeli użyjemy funkcji Bundle By Name do zmodyfikowania klastra, to terminal funkcji
wyświetli etykiety elementów pokazując, który terminal modyfikuje Ciąg 1 , a który Ciąg 2
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 13
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Użyj funkcji Unbundle, aby rozłożyć klaster na pojedyncze elementy. Użyj funkcji Unbundle By
Name, aby konkretnym elementom nadać konkretne nazwy. Możemy również zmienić rozmiar tych
funkcji w taki sam sposób jak przy funkcjach Bundle By Name i Bundle.
Kolejność w klastrach
(Cluster Order)
Elementy klastra mają logiczny szyk niezwiązany z ich pozycją w powłoce. Pierwszy element, jaki
umieścisz w klastrze to element 0, drugi to element 2 itd. Jeżeli usuniesz jakiś element, kolejność
zostanie dostosowana automatycznie. Kolejność elementów w klastrze, determinuje kolejność w
jakich te elementy pojawią się jako terminale w funkcji Bundle i Unbundle w schemacie
blokowym. Możemy oglądać i modyfikować szyk klastra przez kliknięcie w prawą granicę klastra i
wybranie Reorder Controls In Cluster (Zmień Szyk Kontrolek w Klastrze) z menu skrótów.
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 14
http://zone.ni.com/devzone/cda/tut/p/id/7571
Robert Barański, AGH, KMIW Arrays and Clusters v1.0
Białe pole w każdym elemencie pokazuje jego obecne miejsce w kolejności klastra. Czarne pole
pokazuje jego nowe miejsce w szyku. Aby ustawić szyk elementów klastra wprowadz nową liczbę
porządkową w polu tekstowym Click to set to (kliknij aby ustawić na) i kliknij element. Szyk
elementów klastra zmienia się oraz automatycznie dostosowuje. Zapisz zmiany klikając Confirm
(Potwierdz) na pasku narzędzi. Powróć do oryginalnego szyku klikając Cancel (Anuluj).
Opracowano przez studentów AGH w ramach zaliczenia zajęć na podstawie materiałów
str. 15
http://zone.ni.com/devzone/cda/tut/p/id/7571
Wyszukiwarka
Podobne podstrony:
Rat s Bow and Quiver v1 1Cadigan, Pat [Novelette] Truth and Bone [v1 0]Shwartz and Greenberg Sisters in Fantasy (v1 0) [html]Magazine Analog Science Fiction and Fact 2004 Issue 12 December (v1 0) [txt]Bushnell, Candace Sex and the City v1 0Kornbluth, CM and Pohl, Frederik Mars Tube v1 0Kornbluth, CM and Pohl, Frederik Best Friend v1 0Macfarlane, W Heart s Desire and Other Simple Wants v1 0Kornbluth, CM Thirteen O Clock and Other Zero Hours v1 0Kornbluth, CM and Pohl, Frederik The Space Merchants v1 0Pohl and Williamson U2 Undersea Fleet v1 5Magazine Analog Science Fiction and Fact 2004 Issue 11 November (v1 0) [txt]Kornbluth and Pohl Wolfbane (v1 1)Magazine Analog Science Fiction and Fact 2004 Issue 09 September (v1 0) [txt]Camus The Myth of Sisyphus and Other Essays v1 1Apex Authors Apex Science Fiction and Horror Digest 11 (v1 0) [html]Pohl and Williamson U1 Undersea City v1 5więcej podobnych podstron