Wykresy X-Y w LabView.


        Spis treści:
             1.  Budowa danych dla obiektu XY Graph.
             2.  Kreślenie wykresu po zgromadzeniu danych XY.
             3.  Kreślenie wykresu równolegle z zbieraniem danych XY charakterystyk.
                3.1.  Kreślenie pojedynczej charakterystyki (Single Plot).
                3.2.  Kreślenie kilku jednocześnie mierzonych charakterystyk (Multi Plot).
                3.3.  Kreślenie kilku kolejno mierzonych charakterystyk (Multi Plot).
                3.4.  Kreślenie bieżące charakterystyki z zastosowaniem bufora okrężnego (Single Plot).
             4.  Inne sposoby uzyskania wykresów - wykres wektorowy (Polar Plot).
             5.  Zerowanie wykresów.


1.Budowa danych dla obiektu XY Graph.

Środowisko LabView posiada szereg różnych możliwości graficznej prezentacji danych. Prezentację danych w przestrzeni kartezjańskiej X-Y zapewnia obiekt prezentacyjny pulpitu XY Graph. Jego port wejściowy z diagramu przyjmuje złożone typy danych na podstawie, których są kreślone wykresy (pojedynczy lub cała rodzina). Dane dla pojedynczego wykresu muszą być przekazane w postaci tablicy z współrzędnymi kolejnych punktów lub w postaci dwóch tablic zawierających odpowiednio współrzędne x i y (tablica 1).

    Tabela 1: Budowa danych przekazywanych do obiektu XY Graph.

Sposób prezentacji punktów Typ wykresu Budowa danej
  Zbiór koordynat punktów (x,y).   Single Plot   { Tablica jednowymiarowa struktur:
       { Każda struktura jest koordynatą punktu
         i składa się z dwóch pól:
             { x } i { y }
       }
   }
  Zbiór koordynat punktów (x,y).   Multi Plot   { Tablica jednowymiarowa struktur:
      { Każda jej struktura reprezentuje jeden wykres
        i zawiera jednowymiarową tablicę struktur :
          { Każda struktura tej tablicy jest koordynatą punktu
            i składa się z dwóch pól:
                { x } i { y }
          }
      }
   }
  Osobne zbiory współrzędnych
   x i y punktów.
  Single Plot   { Struktura złożona z dwóch pól:
       { Tablicy jednowymiarowej z współrzędnymi x }
       { Tablicy jednowymiarowej z współrzędnymi y }
   }
  Osobne zbiory współrzędnych
   x i y punktów.
  Multi Plot   { Tablica jednowymiarowa struktur:
       { Każda jej struktura reprezentuje jeden wykres
         i jest złożona z dwóch pól:
             { Tablicy jednowymiarowej z współrzędnymi x }
             { Tablicy jednowymiarowej z współrzędnymi y }
       }
   }


Rys.1.Graficzna prezentacja budowy danych dla obiektu XY Graph.

Kreślenie wykresu wymaga wyprodukowania danych w wymaganym przez obiekt prezentacyjny formacie (Tablica 1, rys.1). Rodzaj budowy danych dostarczanych do obiektu XY Graph zależy od preferencji projektanta oraz konkretnej sytuacji projektowej.

2.Kreślenie wykresu po zgromadzeniu danych XY.

Dane mają postać tablic. Domyślnie wykres jest tworzony po opracowaniu danych XY. Typową prezentację pojedynczej charakterystyki pokazuje rys.2. Dane XY są produkowane wewnątrz pętli For. Pierwszy sposób polega na utworzeniu osobnych tablic dla współrzędnej X i Y. Realizują to automatycznie wyjścia pętli For z autoindeksacją. Węzeł 1 (Bundle) umieszczony na zewnątrz pętli buduje strukturę złożoną z dwóch pól zawierających tablice współrzędnych x i y. Daną o takiej budowie można wprowadzić do terminala obiektu XY Graph. Drugi sposób polega na zbudowaniu dla każdego punktu koordynaty w postaci struktury z polami zawierającymi dane X i Y. Realizuje to węzeł 2 (Bundle). Tablicę koordynat buduje automatycznie trzecie wyjście z autoindeksacją pętli For.


Rys.2.Metody kreowania danych w wypadku pojedynczych wykresów (Single Plot).

Kreślenie kilku wykresów na wspólnym obiekcie prezentacyjnym ilustruje rys.3. Wewnętrzna pętla For produkuje dane XY jednej charakterystyki. Pętla zewnętrzna powtarza operację dla innych danych wejściowych. W rezultacie zostają wytworzone trzy zestawy danych XY stanowiących trzy osobne charakterystyki. Podobnie jak poprzednio są dostępne dwa sposoby uzyskania wymaganej postaci danych przekazywanych do terminala obiektu prezentacyjnego XY Graph. Zgodnie z pierwszym sposobem, każde wykonanie pętli wewnętrznej kończy się zbudowaniem przez węzeł 1 struktury zawierającej dane jednej charakterystyki. Wyprowadzenie tej danej przez wyjście z autoindeksacją pętli zewnętrznej produkuje tablicę struktur. Każde pole tej tablicy tworzy jeden wykres w obiekcie XY Graph.


Rys.3.Metody kreowania danych w wypadku kilku wykresów (Multi Plot).

Drugi sposób wymaga wytworzenia z tablicy koordynat uzyskanych w wyniku działania pętli wewnętrznej (węzeł 2 i wyjście z autoindeksacją) struktury z jednym polem w postaci uzyskanej tablicy. Realizuje to węzeł 3 (Bundle). Drugie wyjście pętli zewnętrznej For tworzy tablicę takich struktur. Każdy element tej tablicy dotyczy odrębnej charakterystyki. Wyniki działania obu przykładowych programów pokazuje rys.4. Niezależnie od wybranego sposobu utworzenia danych wizualna postać charakterystyk na XY Graph i XY Graph2 jest identyczna.


Rys.4.Forma prezentacji danych aplikacji z rys2 i 3.

3.Kreślenie wykresu równolegle z zbieraniem danych XY charakterystyk.

W aplikacjach pomiarowych można z powodzeniem stosować przedstawione metody tworzenia danych dla wykresów szczególnie, gdy proces akwizycji danych jest szybki i obserwacja postępu pomiaru charakterystyki jest zbyteczna. Dane są gromadzone szybko a żądaną postać końcową wymaganą przez obiekty XY Graph uzyskują po wykonaniu części pomiarowej aplikacji. W sytuacji, gdy gromadzenie danych jest stosunkowo wolne, bieżąca prezentacja graficzna ma istotne zalety:

Kreowanie wykresu na bieżąco jest nieco trudniejsze z powodu konieczności modyfikacji danych tablicowych przekazywanych do obiektu XY Graph w każdym obiegu pętli realizującej pomiar charakterystyki. Modyfikacja polega na kumulowaniu kolejnych punktów mierzonej charakterystyki w tablicy i przekazywaniu jej do obiektu XY Graph. Nowe dane kasują poprzedni wykres i tworzą nowy. Takie postępowanie wprowadza dodatkowe narzuty czasowe i jest uzasadnione tylko w sytuacji powolnej akwizycji danych podyktowanej mała szybkością działania urządzeń pomiarowych.

W dalszych przykładach założono wykorzystanie pętli While do pomiaru charakterystyk. Jej zaletą w stosunku do pętli For jest możliwość uwzględnienia dodatkowych warunków przerwania jej działania, np. na życzenie użytkownika, z powodu błędu wykonania pewnej operacji itp. Wadą są większe koszty czasowe operacji na tablicach wynikające z konieczności ciągłej realokacji obszarów pamięci przeznaczonych na takie dane. Przy założeniu powolnej akwizycji wspomniane niedogodności nie odgrywają jednak istotnej roli.

3.1.Kreślenie pojedynczej charakterystyki (Single Plot).

Przykład akwizycji danych z jednoczesnym kreśleniem charakterystyki przedstawia rys.5 (Single Plot). Kumulację danych uzyskiwanych w kolejnych iteracjach pętli wykonuje subVI o budowie pokazanej na rys.6. Jego działanie opiera się na dołączaniu kolejnych danych (Cluster XY) do aktualnej zawartości obiektu 'Array out' stanowiącego wyjście subVI. Każda iteracja realokuje pamięć rozszerzając obszar o jeden dołączany element i wpisuje w to miejsce nowy Cluster XY.


Rys.5.Pętla akwizycji danych z bieżącym kreśleniem charakterystyki.

Diagram SubVI zawiera konstrukcję Case z dwoma ramkami o budowie przedstawionej na rys.6. Działa następująco:


Rys.6.Budowa subVI akumulującego dane.

Przedstawiony subVI korzysta z zaalokowanego obszaru pamięci dla tablicy (obiekt wskaźnikowy pulpitu subVI) oraz zmiennej lokalnej z nim skojarzonej. W wypadku zastosowania kilku instancji takiego subVI w projektowanej aplikacji (rys.7), każda z nich korzysta z tego samego obszaru pamięci co prowadzi do błędnej prezentacji graficznej uzyskanych danych. Oba wykresy XY Graph oraz XY Graph2 wyglądają identycznie i są błędne. W rzeczywistości wierzchołki dolne są punktami, które powinny znaleźć się na wykresie XY Graph a górne na wykresie XY Graph2. Aby uniknąć takiej sytuacji należy skonfigurować opcję wykonawczą subVI do pracy na rozdzielnych obszarach pamięci dla każdej jego instancji (VI Properties: - Category:Execution - zaznaczyć opcję Reentrant Execution).


Rys.7.Błędny wykres spowodowany złą konfiguracją subVI.

3.2.Kreślenie kilku jednocześnie mierzonych charakterystyk (Multi Plot).

Aplikacja mierzy równolegle kilka parametrów np. moduł i przesunięcie fazowe transmitancji obiektu w funkcji częstotliwości. Obie charakterystyki mogą być przedstawione na jednym wykresie (rys.8). Jest to możliwe, jeśli dane każdej charakterystyki zostaną zgromadzone w osobnej strukturze, której polem jest tablica struktur z koordynatami jej punktów. Tablica takich struktur może być przekazana do obiektu prezentacyjnego XY Graph, który wykreśli każdą z nich w postaci osobnej krzywej (rys.1 - MultiPlot - Koordynaty X, Y).

Do kumulacji danych produkowanych w iteracjach pętli (rys.8) zastosowano podobną technikę do poprzednio zaprezentowanej. Realizuje to subVI Real Multi Plot pozwalający gromadzić dane dla dowolnej liczby osobnych charakterystyk (krzywych). Dane wejściowe muszą mieć postać tablicy struktur (Cluster) z koordynatami punktu, aby można łatwo zbudować ogólny algorytm gromadzenia i wytworzenia danych wyjściowych o żądanej budowie. Tablicę (tutaj dwuelementową) koordynat buduje węzeł Build Array. Rozmiar tej tablicy decyduje o liczbie kreślonych krzywych.


Rys.8.Przykład kreślenia dwóch charakterystyk w trybie Multi Plot.

Diagram subVI Real Multi Plot zawiera konstrukcję Case z dwoma ramkami o budowie przedstawionej na rys.9. Działa następująco:

SubVI Real Multi Plot można zastosować do kreślenia pojedynczej charakterystyki realizowanej w aplikacji z rys.5 jeśli ze struktury z koordynatą punktu utworzy się jednoelementową tablicę struktur. Tak utworzoną daną można wprowadzić do wejścia 'Array in' subVI Real Multi Plot.

3.3.Kreślenie kilku kolejno mierzonych charakterystyk (Multi Plot).

Inne warunki kumulacji danych dla wykresu występują w aplikacji, która tworzy rodzinę charakterystyk, ale są one budowane szeregowo, jedna po drugiej (rys.10), np. pomiary rodziny charakterystyk Ice=f(Uce) przy różnych prądach bazy tranzystora. Można zastosować technikę sukcesywnego rozszerzania zawartości tablicy wyjściowej z tym, że składana jest jedna charakterystyka i dopiero po jej skompletowaniu jest kreowany następny element tablicy i w nim są kumulowane koordynaty następnej charakterystyki. SubVI realizujący taką kumulację danych potrzebuje dodatkowej informacji określającej rozpoczęcie tworzenia nowej, kolejnej charakterystyki.


Rys.10.Szeregowe konstruowanie kilku charakterystyk (Multi Plot).


Rys.11.Uzyskana rodzina charakterystyk (składają się z różnej liczby punktów).

Aplikacja z rys.10 tworzy rodzinę charakterystyk w sposób szeregowy. Każdą z nich buduje pętla wewnętrzna. Wprowadzono do niej dodatkowy, przykładowy warunek zakończenia. Pętla kończy działanie, gdy wartość współrzędnej Y przekroczy wartość 4.0 (np. przekroczenie dopuszczalnej mocy badanego tranzystora). Pętla zewnętrzna decyduje o liczbie charakterystyk (np. pomiary przy pięciu wartościach prądu bazy).

Do kumulacji danych wykorzystano subVI Real Ser. MPlot, który posiada trzy wejścia (rys.12):

Działanie subVI:


Rys.12.Budowa subVI kumulującego dane dla kilku charakterystyk realizowanych szeregowo.

3.4.Kreślenie bieżące charakterystyki z zastosowaniem bufora okrężnego (Single Plot).

Przedstawione dotąd subVI akumulują dane do wykresu wykorzystując realokację obszaru pamięci przeznaczonego na dane wyjściowe. Można to uznać za cechę negatywną. Dalej przedstawione rozwiązanie korzysta z stałego obszaru pamięci o zadeklarowanej pojemności i alokowanego w momencie rozpoczęcia pracy. Dodatkowo obszar ten jest buforem okrężnym i po wypełnieniu przechowuje N ostatnich punktów charakterystyki (N - zadeklarowana pojemność bufora). Ta cecha może być bardzo przydatna w warunkach monitorowania pewnego procesu, kiedy istotne są ostatnie wyniki a nie wszystkie uzyskane podczas działania aplikacji. Nie przeszkadza to w tworzeniu pełnych charakterystyk. Trzeba tylko zadeklarować pojemność bufora większą od liczby punktów całej charakterystyki.

SubVI posiada trzy wejścia (rys.13):


Rys.13.Kumulacja punktów z zastosowaniem bufora okrężnego (Single Plot).

Istotną rolę w działaniu przedstawionego subVI pełni pętla While z wejściem i wyjściem ustawionym do pracy z autoindeksacją. Zapewnia to pracę na stałym obszarze pamięci, jeśli nie zmieni się stan wejścia 'Length'. Działanie diagramu :

4.Inne sposoby uzyskania wykresów - wykres wektorowy (Polar Plot).

Graph XY jest obiektem, z którym użytkownik może interaktywnie współdziałać. Możliwe jest używanie kursorów, przesuwanie obrazu, zoomowanie, zmiana skal itp. LabView dysponuje też innymi, mniej wyrafinowanymi sposobami graficznej prezentacji danych na płaszczyźnie X-Y, który polega na wytworzeniu na podstawie dostarczonych danych statycznego obrazu w postaci bitmapy. Tak utworzony obraz może być przekazany do obiektu pulpitu Picture.clt, który prezentuje otrzymany obraz.

SubVI dostarczające takich możliwości znajdują się w grupie funkcji Picture Plots (obrazy wykresów). Użytkownik ma do dyspozycji szereg funkcji pozwalających prezentować dane w postaci specyficznych wykresów, np. polarnego lub Smitha (rys.14). Funkcje te są firmowymi podprogramami subVI dołączonymi do środowiska projektowego. Można poznać budowę ich diagramów i ewentualnie zbudować własne wersje uwzględniające indywidualne potrzeby.


Rys.14.Zestaw funkcji tworzących obrazy wykresów.

Funkcje tej grupy przyjmują dane charakterystyk, w których punkt jest reprezentowany strukturą z jego koordynatą (rys.1). W zależności od typu wykresu koordynata jest parą współrzędnych XY (Plot XY.vi) lub składa się z modułu i kąta (Polar Plot.vi) względnie wartości rzeczywistej i urojonej (Smith Plot.vi). Dodatkowo można funkcji dodać cały szereg innych danych określających parametry tworzonego obrazu (rys.15). Dane te są opcjonalne i jeśli nie zostaną doprowadzone obraz jest tworzony dla ustawień domyślnych. Wejścia te pozwalają określić rozmiary obrazu, sposób skalowania, kolory itp. (rys.16).


Rys.15.Końcówki węzła Polar Plot.vi.


Rys.16.Ustawianie własności obrazu wykresu polarnego.

Wykres wektorowy (polarny, biegunowy) jest przydatny między innymi do prezentacji charakterystyk częstotliwościowych transmitancji filtrów (moduł transmitancji, przesunięcie fazowe). Niżej pokazano sposoby wykorzystania węzła Polar Plot do uzyskania wykresu wektorowego prezentującego wyniki na bieżąco oraz po zgromadzeniu wszystkich danych.


Rys.17.Tworzenie obrazu wykresu polarnego.


Rys.18.Obraz wykresu polarnego w wersji Multi Plot.

Prezentację bieżącą uzyskano dzięki akumulacji danych za pomocą subVI Real One Plot opisanego wcześniej. Kreślenie kilku charakterystyk uzyskuje się przez kaskadowe połączenie kilku węzłów Polar Plot przekazujących sobie kolejno obraz. Każdy z węzłów dokłada jeden wykres. Wszystkie te węzły muszą być identycznie skonfigurowane w zakresie rozmiarów obrazu, skalowania, rodzaju skali itp. Nie ma możliwości autoskalowania. Konfiguracja węzłów musi być dostosowana do wartości uzyskiwanych danych. Obraz z dwoma charakterystykami uzyskanymi w przykładzie z rys.17 pokazuje rys.18.

5. Zerowanie wykresów.


Rys.19.Zerowanie wykresu.

Nowe dane przekazane do wykresu automatycznie kasują aktualną zawartość i wykreślają nowe charakterystyki. Na tej samej zasadzie można zerować wykresy. Trzeba przekazać im puste dane do wykreślenia. W tym celu stosuje się zmienne lokalne związane z obiektami prezentacyjnymi i wpisuje się do nich puste dane odpowiedniego typu (rys.19). Prymitywne, niezależne diagramy zerujące wykonują się natychmiast równocześnie z rozpoczęciem działania pętli produkującej dane. Dzięki temu plansze wykresów pozostają puste aż do momentu zakończenia działania pętli, wskazując tym samym, że proces akwizycji danych jeszcze trwa. W podobny sposób można zerować obrazy wykresów.


15 grudzień 2003 r. opr. dr inż. Bogdan Kasprzak
Interfejsy systemów pomiarowych Początek