XY Graph - są dane, nie ma wykresu.

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
rockfor2
Posty: 8
Rejestracja: 02 lis 2011 13:01
Wersja środowiska: LabVIEW 2012

XY Graph - są dane, nie ma wykresu.

Post autor: rockfor2 »

Witajcie.

realizuje pewien vi związany z obróbką danych dostarczonych z Matlaba. Pobieram z ML dane i chcę je wyświetlić na wykresie... od trzech dni nad tym siedzę i albo błąd jest tak trywialny, że go nie widzę, albo jest to coś głębszego... stąd proszę Was o pomoc. Dodam, że próbowałem kilkunastu rozwiązań i albo efekt jest gorszy albo taki sam.

Dostaje z ML dane w postaci dwóch array's - dane pomiarowe oraz czas. Chce to wyświetlić na XY Graph.
Podaje je na bundle i XP Graph - efekt? Osie grafu zmieniają tak, jak by odbierał dane, probe wykazuje, że docierają właściwe wartości. A wykresu jak nie było tak nie ma... nawet punktów żadnych.
Próbowałem rozwiązać problem podłączając dane pod Graph różnymi sposobami, część widać na screenach.
W jednym z rozwiązań udało mi się uzyskać wykres, ale osie były odwrócone (odwracanie array's bloczkiem Reverse 1-D Array nie pomogło), ale i tak wyrysowywany był ciągle, przez co wykres cały czas zmieniał kształt (tak, mógłbym dodać jakąś pętle zatrzymania, ale wyrysowując wykres, poprzednie dane były zastępowane, tzn. wartości na osiach rosły wraz ze wzrostem wartości, zamiast trzymać przynajmniej początkową wartość w początku układu współrzędnych i tylko podwyższać wartość końca osi).

W związku z tym proszę o pomoc przy rozwiązaniu powyższych problemów:
1. rysowanie wykresu z XY Graph
2. jak już będzie rysował, to najlepiej tak, aby cały wykres był widoczny, a nie fragmenty (chodź tu mogę ostatecznie pomóc sobie, wyłączając auto-dopasowanie skali. lepiej żeby plot nakładał się dynamicznie, nawet jeśli początkowo będzie mniej widoczny).

Z góry serdecznie dziękuje za pomoc.
Załączniki
zmienia się tylko skala
zmienia się tylko skala
na XY Graph wchodzą poprawne dane
na XY Graph wchodzą poprawne dane
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

XY Graph - są dane, nie ma wykresu.

Post autor: Mikrobi »

1. Włącz automatyczne skalowanie obu osi
2. Zapisz wyniki numeryczne do indykatorów, te zamień na stałe i w osobnym VIju zrób wykres bazując tylko na stałych wynikach i bundle, wpisz to na wykres.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
rockfor2
Posty: 8
Rejestracja: 02 lis 2011 13:01
Wersja środowiska: LabVIEW 2012

Re: XY Graph - są dane, nie ma wykresu.

Post autor: rockfor2 »

Dziękuje za zainteresowanie.

Wyprowadziłem dane poza pętle poprzez local variable (zmienioną na Read). Następnie w osobnym VI pobieram dane X i Y, bundle'uje i wrzucam na graph.

Efekt jest taki sam. Problem polega na tym, jak mniemam, że w danej chwili czasu, mam dostęp tylko do jednej próbki danych X i Y, które trafiają na wykres. Kolejna próbka danych zamazuje poprzednią i zamiast dwóch, jest jedna - nowa. Sprawę załatwiło by, jak myślę, zbieranie próbek w osobne array's (po jednym dla X i Y) tak, aby w pojedynczym array nie było po jednej danej(tak jak jest teraz) a np. tysiąc.
Pewnie jest to banalnie proste, za pomocą jakiejś pętli :/
Ew może czegoś nie rozumiem w pojęciu przerobienia wartości z indykatorów na stałe (Po wybraniu Change to Constant, nie znam innego sposoby dostarczenia danych jak tylko poprzez ręczne wpisanie ich)
Załączniki
wyswietlanie.vi
(37.49 KiB) Pobrany 442 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

XY Graph - są dane, nie ma wykresu.

Post autor: Pitol »

Nie mam LV12 więc nie będę bazował na Twoim kodzie.
Z tego co rozumiem, chcesz mieć na wykresie XY jakieś dane. Przy każdym obrocie pętli (przykładowo) chcesz dodawać na wykres nowe dane.
Z Twojego kodu wynika (bazując na obrazkach), że za każdym razem ładujesz na wykres nowe dane nadpisując poprzednie. XY Graph nie ma wbudowanej pamięci poprzednich próbek.
Musisz ją sobie sam zbudować. Jak? Rejestr Przesuwny (Shift Register) zapięty na pętli, w którym będzie tablica zawierająca próbki (klaster XY).
W każdym momencie gdy chcesz dodać nowe dane do wykresu po prostu dodajesz element do tablicy i wrzucasz tablicę na wykres.

Na forum już mnóstwo przykładów z rejestrami było, więc jak będziesz miał problem najpierw skorzystaj z funkcji Search na forum.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
rockfor2
Posty: 8
Rejestracja: 02 lis 2011 13:01
Wersja środowiska: LabVIEW 2012

Re: XY Graph - są dane, nie ma wykresu.

Post autor: rockfor2 »

Zanim zasięgnąłem pomocy na forum, przejrzałem przykłady w LV, podobnie tu, ale nie znalazłem przykładu, który pozwoliłby utworzyć taki bufor danych w sytuacji, gdzie napływają strumieniem z innego źródła - nie mam dokońca wpływu na ilość iteracji dokonywanych przez pętle "dostarczające" dane. Stąd mój apel i prośba o pomoc.
Będąc samoukiem czasem z tutorial's jestem wstanie wyciągnąć potrzebną wiedzę, a czasem na prostych sprawach się zacinam. a że firma kupiła LV2012 ale niewiele osób z niego korzysta to cóż :/
I podobnie podejrzewam jest tu, przecież wykonanie bufora danych na zasadzie if nowa_dana then dopiszą ją do listy to pisząc w kodzie nie jest problem, wiele osób chce działać na XY Graph.

jeśli zatem mogę prosić o odrobinę cierpliwości, będę doprawdy wdzięczny... udało mi się przynajmniej dość do sytuacji, w której otrzymuje array z tymi samymi znakami (tak jak w przykłądzie - chciałem array z 5 elementami i dostałem, chodź wszystkie to piąty element) a wyniki nie skaczą, czyli już jakiś sukces. Nie wiem, gdzie popełniam błąd, że w array nie ma elementów od 0 do 4 a tylko ostatni....
załączam przykład oraz sam vi.
Stosowanie node'ów niewiele pomaga, ale nie psuje. Wyrzucanie całej konstrukcji poza odpowiednie pętle tez już sprawdzałem.

Jeśli uda się otrzymać poprawna tablicę, to "będę już w domu".
Jeśli to kwestia zaśmiecenia forum, z wielką chęcią można przenieść problem na PW.
Dziękuje!
Załączniki
problemcd.jpg
dzialajace cos.vi
(7.78 KiB) Pobrany 407 razy
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

XY Graph - są dane, nie ma wykresu.

Post autor: Jamal79 »

Witaj.
Twoje zamieszczone VI'aje powalaja wielkoscia i rozmachem.
Ja uzywam LV2012, polecam go wlaczyc i pojawi ci sie Okno startu, tu wybieramy "Create Project". W nowym okienku wybieramy "Queued Message Handler".
Odczyt danych powinienes umiescic w "aqqusition message loop".
Powinno ci pomoc
ODPOWIEDZ