Data i czas na wykresie

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Sir_Saracen
Posty: 8
Rejestracja: 25 maja 2007 00:00

Data i czas na wykresie

Post autor: Sir_Saracen »

Witam

Mam problem z wykresem, a mianowicie nie wiem jak na osi X wyświetlić datę i czas odczytanych próbek. Wiem, że jest opcja ustawienia daty na wykresie ale pokazuje mi tylko datę 1904 roku (może nie wiem jak to skonfigurować). Odstępy czasowe próbek są takie same (np. co 5 minut) a odczyt jest co jakiś czas odświeżany.

Za wszelką pomoc z góry dziękuję.
Jeżeli podobny temat znajduje się na forum to prosze o podesłanie linka, mnie nie udało się znaleźć.

Pozdrawiam
Sir Saracen
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Data i czas na wykresie

Post autor: bogdani »

Witaj

Zbuduj z tablicy próbek Waveform, gdzie podajesz informację nt. czasu u daty rozpoczęcia pomiarów oraz czasu między kolejnymi próbkami. Jak to podepniesz do wykresu będziesz miał już właściwe wartości.

bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Data i czas na wykresie

Post autor: Ender »

Z bloczka Get Date/Time In Seconds otrzymujesz aktualny czas. Podpinając to przez "To Double Precision Float" do property node "XScale.Minimum" oraz zmieniając oczywiście format osi X na "absolute time" otrzymasz wykres, którego początkiem będzie aktualny czas systemu.

Mam nadzieję, że ta wskazówka naprowadzi Cię na właściwy trop. :)
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Data i czas na wykresie

Post autor: Mikrobi »

Jak napisał bogdani:
Obrazek
Y to oczywiście tablica próbek.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Sir_Saracen
Posty: 8
Rejestracja: 25 maja 2007 00:00

Re: Data i czas na wykresie

Post autor: Sir_Saracen »

Ender zastosowałem Twój sposób bo chyba najbardziej mi pasuje ale mam mały problem. Wszystko jest ładnie ale wykres miga mi jak piorun. Przez bardzo krótką chwilę pojawia się a później znika na większość czasu i tak co sekundę. Nawet nie wiem do końca czy skala jest ta którą ustawiłem czy wskakuje standardowa. Jeżeli wiecie co robię źle to proszę o pomoc.

A drugie moje pytanko to czy można przerobić stringa z czasem spowrotem na time stamp? Bo bloczku takiego nie ma (jest tylko w drugą stronę) i nie wiem czy trzeba rozbijać tego stringa na clusters i przerabiać kolejno. Na rysunku jest ten string zaznaczony pytajnikiem.

Za pomoc z góry dziękuję
Sir Saracen
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Data i czas na wykresie

Post autor: jogurt_owocowy »

Na rysunku jest ten string zaznaczony pytajnikiem.
Zamieść kod, bo jednak nie wszystko można sobie wyobrazić ;)
W kontekście tego co napisałeś na początku można by dać głowę, że rozwiązanie Mikrobiego Cię zadowoli. Co Ci w nim nie pasuje?
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Data i czas na wykresie

Post autor: Mikrobi »

Sir_Saracen pisze:Wszystko jest ładnie ale wykres miga mi jak piorun. Przez bardzo krótką chwilę pojawia się a później znika na większość czasu i tak co sekundę. Nawet nie wiem do końca czy skala jest ta którą ustawiłem czy wskakuje standardowa. Jeżeli wiecie co robię źle to proszę o pomoc.
Stosujesz węzeł własności (property node) i to właśnie jest źle.
Problemem property node jest to, że kopiuje do bufora w pamięci wszystkie informacje jakie są związane z dana kontrolką, aktualizuje je, a nastepnie czeka na możliwośc aktualizacji z bufora do wątku interfejsu wyświetlającego na ekranie. To właśnie widzisz jako "miganie jak piorun".
Property Node nie powinno być stosowane w pętli, a na pewno nie w głownej pętli programu - a zakładam że tak ją własnie zastosowaleś. Pokazany na diagramie sposób można zastosować na początku programu, ale nie w pętli podczas akwizycji i prezentacji danych.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Data i czas na wykresie

Post autor: jogurt_owocowy »

Stosujesz węzeł własności (property node) i to właśnie jest źle.
Tylko, że pętla się wykonuje raz na sekundę, więc to chyba nie to. Problem jest raczej w czymś, czego nie ma na obrazku. Dobre zwrócenie uwagi na Property Node z własnością Value, nad którym jest niepodpięty terminal.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Data i czas na wykresie

Post autor: Mikrobi »

Węzły to jednak węzły. Niemal dosłownie :)
ponadto mam jedno pytanie:Sir_Saracen:
dlaczego wpisujesz wartośc przez węzeł Value pomimo że masz obok własciwy terminal...?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Sir_Saracen
Posty: 8
Rejestracja: 25 maja 2007 00:00

Re: Data i czas na wykresie

Post autor: Sir_Saracen »

Witam
Już odpowiadam na pytania.

jogurt_owocowy: troszke niezbyt precyzyjnie opisałem swój problem dlatego rozwiązanie Mikrobiego było niewystarczające. Chodzi o to, że posiadam próbki z pewnego przedziału ale niekoniecznie muszą być wszystkie próbki tzn. jakiś pomiar mógł zostać wyłączony na chwilę, a to w konsekwencji spowoduje duże zmiany zakresu na wykresie. Ostatnia wartość na wykresie musi mieć aktualny czas (jeżeli uda się przerobić stringa na Time stamp to być może będzie to czas ostatniej próbki). Jeżeli jakieś próbki będą pogubione w czasie pomiarów to na wykresie to nie ma znaczenia. Najważniejsze żeby był dobry początek i koniec zakresu.
Mikrobi: próbowałem różne sposoby umiejscowienia property node, czy to było poza pętlą czy też na samym początku programu to nie miało to znaczenia. Być może nadal popełniam jakiś błąd.
dlaczego wpisujesz wartośc przez węzeł Value pomimo że masz obok własciwy terminal...?
Wpisywanie wartości przez Value powoduje miganie wykresu (i być może nie zmieniają się wtedy czasy na zakresie wykresu) natomiast wpisywanie przez terminal powoduje, że wykres jest przez dłuższy czas wyświetlany ale powoduje to też zmianę zakresu na wykresie i jest wtedy data z 1904 roku... Nie wiem jak rozwiązać ten problem.
Drugą sprawą jest to, że nie mogę na sztywno ustawić czasu początku wykresu lecz muszę odczytać go z próbki dlatego potrzebuję przerobić stringa na time stamp. Chciałem tylko zapytać czy da się to jakoś łatwo zrobić tak jak łatwo jest zamienić Time stamp na Stringa, czy trzeba rozebrać takiego stringa na części pierwsze i kolejno przerabiać na time stamp?
Załączam kod tak jak sobie tego życzył jogurt_owocowy. Wiem, że pewnie nie jest to najoptymalniejszy kod ale proszę tylko o pomoc w moim problemie. Wartości pomiarów zapamiętałem na panelu. Proszę się nie sugerować tym że wartości są co sekundę bo to będzie zmienione na 5 minut.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Data i czas na wykresie

Post autor: Mikrobi »

Popatrzyłem na kod i po otarciu łez ;) kilka wniosków:
0. pd (trywialny) :!:
1. trzy pętle, które separują dane z ramki można zrobić prościej i - moim zdaniem - należy zamknąć do subVIjów :idea:
2. zastanawiałem się przez chwilę i nadal nie rozumiem dlaczego nie chcesz zastosować rozwiązania bogdaniego, które pokazałem na diagramie we wcześniejszej wypowiedzi :?:
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Data i czas na wykresie

Post autor: jogurt_owocowy »

Najważniejsze żeby był dobry początek i koniec zakresu.
Czyżby chodziło Ci o takie coś
[img]http://www.labview.pl/uploads/veir/X%20 ... 0Style.gif[/img]
?
A jeśli chodzi o Twoje drugie pytanie dotyczące konwersji stringa na Time Stamp to sprawa jest trudniejsza, choć nie niewykonalna. Do czego Ci to jest potrzebne?
Sir_Saracen
Posty: 8
Rejestracja: 25 maja 2007 00:00

Re: Data i czas na wykresie

Post autor: Sir_Saracen »

Jak już wspomniałem wcześniej to nie jest najoptymalniejszy kod...
Mikrobi
zastanawiałem się przez chwilę i nadal nie rozumiem dlaczego nie chcesz zastosować rozwiązania bogdaniego, które pokazałem na diagramie we wcześniejszej wypowiedzi
a czy zastanawiałeś się co się stanie jak nie będzie pełnego kompletu pomiarów? Np. wyłączymy sobie pomiar na 10 minut, które znajdują się wewnątrz zakresu. Końcowy czas na wykresie będzie pomniejszony o czas przerwania pomiaru a właśnie tam ma być teraźniejszy czas. Być może źle podchodzę do tego problemu.
jogurt_owocowy moja wypowiedź:
Najważniejsze żeby był dobry początek i koniec zakresu.
nie chodziło mi o wygląd wykresu tylko o to, żeby czas pierwszej próbki pomiarowej wskazywał początek zakresu na wykresie natomiast żeby koniec zakresu miał czas teraĹşniejszy (lub czas ostatniej próbki) i właśnie dlatego potrzebuję przerobić stringa na Time stamp aby mieć te czasy na zakresie wykresu.
Mam nadzięję, że jakoś to zrozumiecie
:wink:
Sir_Saracen
Posty: 8
Rejestracja: 25 maja 2007 00:00

Re: Data i czas na wykresie

Post autor: Sir_Saracen »

Chciałem wam podziękować za pomoc. Wasze podpowiedzi pomogły mi dojść do rozwiązania :wink:

Pozdrawiam
Sir Saracen
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Data i czas na wykresie

Post autor: Mikrobi »

Sir_Saracen pisze:Jak już wspomniałem wcześniej to nie jest najoptymalniejszy kod...
Mikrobi
zastanawiałem się przez chwilę i nadal nie rozumiem dlaczego nie chcesz zastosować rozwiązania bogdaniego, które pokazałem na diagramie we wcześniejszej wypowiedzi
a czy zastanawiałeś się co się stanie jak nie będzie pełnego kompletu pomiarów? Np. wyłączymy sobie pomiar na 10 minut, które znajdują się wewnątrz zakresu. Końcowy czas na wykresie będzie pomniejszony o czas przerwania pomiaru a właśnie tam ma być teraźniejszy czas. Być może źle podchodzę do tego problemu..
:arrow: Jeśli wyłączysz pomiar to wartościami wynikowymi są zera.
:arrow: jako wskazówka: przemyśl jednak zastosowanie XYGraph : jako pierwsza tablica - tablica timestampów a jako druga - tablica próbek
:arrow: każdy timestamp w tablicy powinien byc jednak pobierany w tej samej chwili co próbka.
...o własnie i tak
8)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ