Wavwform Chart - pytanie

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wavwform Chart - pytanie

Post autor: Pitol »

honda pisze:1. jak ustawic na os X aktualny czas ? Gdy ustawiam Absolute Time w Properties to jakies glupoty mi wyswietla.
2. gdybym chcial miec 3 wykresy na tym jednym tonalezy zbudowac 3 elementowa tablice i wpiac ja jako New element do Replace Array Subset ?
pozdro
Aby mieć aktualny czas na osi X to już trzeba przygotować dane w formie Waveform. Typ Waveform składa się z trzech elementów: tablicy danych, t0 - czas początkowy, oraz dt - "interwał" między kolejnymi próbkami. Aby utrzymywać historię danych nie wystarczy tylko podmieniać wartości w tablicy. Trzeba również modyfikować t0, aby odpowiadało czasowi odczytu aktualnej pierwszej próbki.
Dodatkowo w opcjach wykresu należy odznaczyć "Ignore Waveform timestamp on x-axes".
Props.PNG
Kolejnym problemem jest autoskalowanie, które działa do dupy. Najlepiej jest ręcznie odświeżać wartości max i min skali wykresu.

W przykładzie mniej wiecej przedstawiłem jak to zrobić. Pobaw się, zrozum, a jak co, to pytaj ;)

I przy okazji zrobiłem też obsługę więcej niż jednego przebiegu na wykresie...
Załączniki
HistoryWG.vi
LV 8.6
(31.58 KiB) Pobrany 427 razy
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

Witam,

na razie wielkie dzięki.

pozdro
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

Czesc,

mam pytanie: Jak zrobic aby bylo mozna przegladać historie na tym wykresie ? Tzn. zeby pamietal historie z np. 1 dnia ale na wykresie na biezaca byla pokazywana tylko np. ostatnia godzina. Jak dodalem scroll bara to mi sie ustawil na najstarszych danych.

I jeszcze jedno pytanie: nie bardzo rozumiem jak dodales dodatkowe wykresy. Jezeli ja ma trzy rozne sygnalny to jak to mam podpiac ?

dzieki
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

Czesc,

Jak dolozyc drugi wykres zeby rysowal sie oddzielnie a nie nakladal jeden na drugi ? Jak dokladam drugi wykres to mam na osi Y dwie wartosci ktore nie rysuja oddzielnych wykresow tylko obie wartosci na jednym. Jak to rozdielic ?


pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wavwform Chart - pytanie

Post autor: Pitol »

honda pisze:mam pytanie: Jak zrobic aby bylo mozna przegladać historie na tym wykresie ? Tzn. zeby pamietal historie z np. 1 dnia ale na wykresie na biezaca byla pokazywana tylko np. ostatnia godzina. Jak dodalem scroll bara to mi sie ustawil na najstarszych danych.
Na to pytanie próbowaliśmy razem ze śmigą odpowiedzieć Ci w innym temacie. Tu pojawia się pytanie: czy jest sens ładować historię z np. całego dnia na wykres? Jeśli próbkujesz np. co 1s to masz ponad 80k próbek na jeden dzień. Wyświetlenie takiej ilości danych na wykresie mija się z celem.
honda pisze:I jeszcze jedno pytanie: nie bardzo rozumiem jak dodales dodatkowe wykresy. Jezeli ja ma trzy rozne sygnalny to jak to mam podpiac ?
Ilość sygnałów definiujesz w bloczku Initialize Array znajdującym się przed pętlą While. Jeśli masz trzy różne sygnały to stwórz tablicę 3-elementową.
honda pisze:Jak dolozyc drugi wykres zeby rysowal sie oddzielnie a nie nakladal jeden na drugi ? Jak dokladam drugi wykres to mam na osi Y dwie wartosci ktore nie rysuja oddzielnych wykresow tylko obie wartosci na jednym. Jak to rozdielic ?
A tego to nie rozumiem? W jaki sposób dokładasz ten wykres?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

A tego to nie rozumiem? W jaki sposób dokładasz ten wykres?[/quote]

Dokladam do Build Array w case.
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

Witam,

Mam pytanie. Po pieciu dnich ciaglego wyswietlania wykresu co 2 s roznica pomiedzy czasem biezacym na osi X a czsem systemowym wynosi prawie 1 min. Petla w ktorej dokladam dane do wykresu "kreci" sie co 2 s i co 2 s dodaje kolejna probke do wykresu. Z czego wynika ta roznica w czasie ?

pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wavwform Chart - pytanie

Post autor: Pitol »

Miałem Ci odpisać wcześniej ale mi z głowy wyleciało. Co do poprzedniego Twojego postu to ilość wykresów kontrolowane jest poprzez stałą (możesz to jakoś sparametryzować sobie).
Untitled.png
Kod, który Ci pokazałem powoduje, że tworzona jest tablica pięciu wykresów, które są potem wypełniane w pętli for. Dla każdej iteracji pętli for wypełniany jest jeden wykres. Dlatego jeśli chcesz dodać kolejny wykres po prostu zmieniasz wartość tej stałej a następnie w odpowiedniej iteracji pętli (w tym przypadku jak zwiększysz liczbę o 1 to w szóstej iteracji) podmieniasz to, co w tym momencie wchodzi do bloczka Build Array. W przykładzie w każdej iteracji jest podpięte to samo: sinus + szum. Możesz sobie tak to przygotować, żeby w każdej iteracji wchodziło coś innego...

A co do drugiego pytania to wklej/załącz ten kawałek kodu z dodawaniem elementów do wykresu.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

dot. 2. Nic w tym twoim przykladzie nie zmienilem oprócz dlugosci historii i czasu dodawania kolejnych probek.

dot. 1. Nie rozumiem jak to sie dzieje ze w petli for mozna dokladac rozne wartosci w zaleznosci od iteracji ? Chyba ze powinien byc dodatkowy case ktory w zaleznosci od iteracji rysowal by odpowiedzi wykres ?

pozdro
Załączniki
wykres1.JPG
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Wavwform Chart - pytanie

Post autor: honda »

Czesc,

z czego moze wynikac ta roznica w czasie ?
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Wavwform Chart - pytanie

Post autor: PiDi »

W Elapsed Time sprawdzasz, czy upłynęło 0.5 sekundy, a czas pętli wynosi 2 sekundy (co najmniej, o czym zaraz). To znaczy, że Elapsed Time jest zupełnie zbędny, bo zawsze zwróci true.
Ale to nie jest problem, problemem jest jak sądzę właśnie odpowiedni timing. W sposobie Pitola ustalamy stałe dt, a to znaczy, że trzeba zapewnić dostarczanie kolejnych próbek dokładnie co dt (u Ciebie 2 sekundy). Zegarek w pętli tego nie załatwia, bo oznacza czekanie 2 sekundy po wykonaniu pętli. A to sprawia, że kolejne próbki dostajesz w rzeczywistości co 2 sekundy + parę milisekund (albo nawet mniej). W krótkim horyzoncie to może nie mieć znaczenia, ale w kilka dni takich "obsuw" się już nazbierało, jak widać.
Prosty eksperyment-dowód w załączniku - chciałbym wykonać pętlę co pół sekundy, a tu niespodzianka ;)
Uff, po uszyciu tej teorii czas na rozwiązanie: jeśli mam rację, to zamiana Wait [ms] na Wait Until Next ms Multiple powinna załatwić sprawę (albo przynajmniej znacznie złagodzić efekt). Jeszcze skuteczniejsze może się okazać użycie Timed Loop, bo umożliwia przejęcie pełnej kontroli nad cyklem pętli.

ED. Dla ścisłości: Wait Until Next ms Multiple powinno zdecydowanie wystarczyć przy 2 sekundowym cyklu, coś by się musiało walić i palić żeby ta pętla nie zdążyła w tym czasie się wykonać (choć to zależy od systemu operacyjnego i wykorzystania sprzętu do innych celów oczywiście).
Załączniki
czas.jpg
ObrazekObrazekObrazekObrazek
ODPOWIEDZ