LabView Fan Group
aplikuj!

Trwa rejestracja na MPPLV 2018! Zarejestruj się już dziś! Etap Online: 26.10.2018

www.mistrzostwa-labview.pl/rejestracja

Graphs vs Charts

Michał Bieńkowski

Jeżeli nie wiesz kiedy użyć Waveform Graph, a kiedy Waveform Chart lub nie wiesz na czym polega różnica pomiędzy tymi dwoma rodzajami wyświetlania danych w LabVIEW, to polecam przeczytać ten artykuł do końca.

Waveform Graphy i Waveform Charty różnią się sposobem wyświetlania i odświeżania danych.

Waveform Graph akceptuje tablice danych w wielu postaciach, może to być na przykład zwykła tablica lub dane dynamiczne, może to być również specjalny typ danych, który w LabVIEW nazwany jest waveform. Wyświetla on wszystkie otrzymane punkty naraz, nie akceptuje natomiast pojedynczych punktów. Gdy podłączymy tablicę z danymi do Waveform Graphu, to zostaną one wyświetlone z równym odstępem. Domyślnie początkowa wartość X oraz krok (t0 oraz dt) wynoszą kolejno 0 i 1. Te wartości mogą zostać zmienione w właściwościach grafu lub korzystając z węzłów property node.

Wspomniany wcześniej typ danych waveform, w skrócie WDT (Waveform Data Type), jest w zasadzie tablicą danych (np. punktów pomiarowych) zawierająca również informację o t0 i dt. Zatem gdy podłączymy taki typ danych do Waveform Graphu, to nasz graf będzie posiadać wszystkie niezbędne informacje, by wyświetlić dany przebieg – w tym również punkt początkowy – oraz wielkość kroku. Możesz stworzyć własny WDT zawierający dane pomiarowe, t0 oraz dt przy pomocy bloczka o mało zaskakującej nazwie Build Waveform. Możesz również wyświetlić kilka wykresów na jednym Waveform Graphie, podłączając do niego tablicę dwuwymiarową.

Drugą metodą wyświetlania danych pomiarowych jest wykorzystanie Waveform Chart. Ten rodzaj wykresu zapamiętuje i wyświetla określoną liczbę próbek, przechowując je we wbudowanym buforze. Słowo „chart” można przetłumaczyć z języka angielskiego jako tablica1. W naszym przypadku ową tablicą jest bufor przechowujący dla nas dane, dzięki któremu Waveform Chart bardzo dobrze sprawdza się w wyświetlaniu danych „w locie”.

Gdy bufor się zapełnia, Waveform Chart zaczyna nadpisywać najstarsze dane nowymi. Po otrzymaniu nowych danych są one dopisywane do poprzednich i tak nasz wykres rośnie. Możesz podłączyć do Waveform Charta pojedynczy punkt lub wiele punktów jednocześnie. Gdy podłączysz do niego tablicę z danymi, to zostaną one dołączone do już istniejących danych w buforze. Możesz tworzyć kilka wykresów jednocześnie, podłączając klaster lub tablice 2D, zawierające dane dla każdego z wykresów. Na przykład gdy podłączysz do Waveform Chart klaster z trzema punktami, to na wykresie dodadzą się do bufora po jednej próbce dla każdego z trzech wykresów. Zachęcam Cię do własnych prób, bo z pewnością przyniesie to więcej pożytku niż samo czytanie. Możliwa jest zmiana wielkości bufora czy też inaczej długości historii w ustawieniach Waveform Chart.

Zwrócę jeszcze uwagę na pewną istotną rzecz. Otóż jeżeli chcemy zmienić ilość punktów przechowywanych w naszym buforze (chart history buffer), możemy to zrobić, klikając na Chart History Length... w ustawieniach Waveform Chartu. Wyskoczy nam okienko, w którym dowolnie2 możemy zwiększyć lub zmniejszyć wielkość historii. Ważne jest, aby zrobić to PRZED uruchomieniem programu. W zasadzie nie ma możliwości zmiany wielkości bufora programowo i jest tak dlatego, że LabVIEW przydziela pamięć dla Waveform Chart zanim program zostanie wykonany. Można natomiast określić programowo jaką część historii chcesz oglądać. Dopóki znana jest maksymalna liczba próbek bufora, można zastosować pewne obejście, które pozwoli nam ustawić liczbę widocznych próbek historii. Zainteresowanych tym tematem odsyłam do przykładu.

To była dygresja, teraz wracamy do tematu. Poniżej zamieszone zostały snippety, na których przedstawiona jest różnica w funkcjonalności przedstawianych metod.

rysunek 1

Rysunek 1 Przykład – Waveform Graph

 

rysunek 2 

Rysunek 2 Przykład – Waveform Graph

W górnym przykładzie w pętli for z włączonym auto indeksowaniem tworzona jest tablica 100 losowych punktów, a następnie cała tablica wysyłana jest do Waveform Graph. W dolnym przykładzie w pętli for do Waveform Chart wysyłana jest nowa losowa wartość w każdej iteracji (których w sumie jest 100).

Wyniki dla obu przykładów są takie same, różnica polega na sposobie dojścia do tego wyniku. Waveform Graph wyświetlił dane dopiero, gdy w tablicy zebrano wszystkie 100 wartości natomiast Waveform Chart wyświetlał dane na bieżąco.

Na koniec jeszcze jedna dygresja, tym razem na temat trybów wyświetlania danych w Waveform Chartach. Jest to coś co powinien wiedzieć każdy CLADowiec. Istnieją trzy tryby pracy Charta.

1. Strip chart – tryb domyślny. Wyświetla dane w sposób ciągły, przewijając je z lewej strony do prawej ze starymi danymi po lewej stronie i nowymi po prawej. Jest to tryb przypominający pracę np. starych wariografów (strip można tłumaczyć jako taśmę czyli to, na czym te stare wariografy pisały).

2. Scope chart – ten tryb podobny jest do pracy oscyloskopu, gdzie plamka biegnie z lewej strony okna do prawej, a gdy dojdzie do prawego końca, obraz jest czyszczony i plamka znowu pojawia się z lewej strony. Zastąp plamkę oscyloskopu pikselami na Waveform Chart i masz Scope chart mode. Kolejna mnemotechniczna sztuczka – można kojarzyć z oscilloSCOPE.

3. Sweep chart – różni się od trybu Scope tym, że dane nie są czyszczone, lecz nadpisywane jak w obrazie EKG. Nowe dane, po lewej stronie, są oddzielone od startych, znajdujących się z prawej strony, czerwoną pionową linią. Tutaj musisz już wymyślić własną metodę zapamiętania nazwy…

 

Rysunek 3 Tryby wyświetlania danych w Waveform Chart

Artykuł na podstawie dokumentów z NI KnowladgeBase.

______________________________

1. W rzeczywistości można przypuszczać, że nazwa pochodzi raczej od „paper tape strip CHART RECORDER” czyli na przykład wariografu starego typu z taśmą papierową, którego sposób działania jest podobny do podstawowego trybu działania Waveform Chartu. Nie mniej jednak sposób tłumaczenia przedstawiony w tym artykule jest dobrą mnemotechniczną sztuczką mającą na celu zapamiętanie idei.
2. Nie należy tego brać dosłownie gdyż ogranicza nas z góry oczywiście pamięć komputera.
© 2011-2018 LabVIEW Fan Group