Strona 1 z 1

Przeskakujący kursor po wartościach osi X na graphie

: 19 sty 2009 21:09
autor: kacperekk
Witam serdecznie, mam dziwny problem i zwracam się o pomoc w ugryzieniu go.

Mam Waveform Graph i XY Graph.

Na Waveform Graphie mam zmieniające się w czasie liniowe napięcie, powiedzmy że mam 1000 punktów i napięcie zmienia się w tym czasie od 0,2V do 0,3V. A więc napięcie jest na osi Y.

Teraz na XY Graphie mam zebrany z urządzenia wykres prądu w zależności od napięcia, czyli na tym wykresie napięcie mam na osi X.

Chce sobie zrobić taki myk, aby jeździć pionowym kursorem po pierwszym wykresie, czyli ustawiać pewne napięcie (na osi Y) i żeby to samo napięcie ustawiało się automatycznie na kursorze na drugim wykresie (na osi X).

Zrobiłem więc Property Nody:
Waveform Graph Cursor Position Y --> Waveform XY Cursor Position X

i wszystko działa super fajnie jak trzeba, ale...

działa tylko jak na XY Graph, czyli na tym na którym ma być ustawiane automatycznie mam zaznaczone Free Dragging dla kursora. Ja wolałbym mieć Snap to, aby pozioma linia kursora automatycznie pokazywała mi wartość prądu.

A to w tym wypadku działa, tylko że kursor ustawia się na tym wykresie co pewną wartość, a nie "liniowo" jak przy free draggig.

Ten skok ani nie jest co równą wartość, ani co równą ilość próbek (raz 11, raz 13, raz 12..)

Jako że dane na drugim wykresie są eksperymentalne, spróbkowane więc nie zawsze jest akurat idealna wartość napięcia jaką sobie ustawię kursorem pierwszego wykresu, ale jak mniemam LabView powinno próbować zesnapować się do najbliższej wartości, a on mi robi skoki co kilkanaście próbek i to bez żadnej reguły.

Czy ktoś spotkał się z czymś takim i wie jak się za to zabrać?

Pozdrawiam
Kacper

Re: Przeskakujący kursor po wartościach osi X na graphie

: 20 sty 2009 10:06
autor: jogurt_owocowy
Hejka

Pomóż sobie pomóc:

1. Zamieść kod obrazujący zachowanie, o którym piszesz.
2. Podaj wersję LV jakiej używasz.

Przeskakujący kursor po wartościach osi X na graphie

: 20 sty 2009 10:56
autor: folon
Witam,

Allow Drag może być na TRUE
Cursor Mode -> 1 (single plot)
Plot -> 0 (skoro jeden plot na wykresie)

Z Waveform Graph czytanie uskutecznij przez Property Node (Cursor->Cursor Position->Cursor Y).

W XY Graphie ponownie użyj Property Node, ustaw pozycje X (Cursor->Cursor Position->Cursor X), po czym odczytaj z pozycji Y.

Pozioma linia kursora wykresu XY Graph pokaże wartość prądu odpowiadającą najbliższej wartości wybranego napięcia.

Nie bardzo rozumiem co masz na myśli mówiąc "że kursor ustawia się na tym wykresie co pewną wartość, a nie "liniowo". Graph XY posługuję się domyślnie koordynatami, więc wpisanie tablicy (1, Y1), (5, Y2), (3, Y3), graficznie pokaże je o tak (1, Y1), (3, Y3), (5, Y2). Chodzi o przeskok, gdy wybrałeś napięcie '1', a potem '5', a kursor skoczył na Graph XY o dwie próbki?

Pzdr.

Re: Przeskakujący kursor po wartościach osi X na graphie

: 20 sty 2009 13:59
autor: kacperekk
Witam, jak już wspominałem kod programu nie jest skomplikowany :)
Obrazek
Niestety całego VI nie umieszczę bo ta część problematyczna to tylko kawałek całości, do tego musiałbym dać duże pliki z danymi, ale zamieszczam screenshota z tym o co chodzi.
Proszę spojrzeć na czerwony wykres napięcia od czasu po lewej na dole, przesuwam po nim kursorem i chciałbym żeby ten sam potencjał ustawiał się na wykresie po prawej strony (wykres zależności prądu od napięcia) Mimo dośc znacznego przesunięcia - potencjał zmienił się od -0,798841 do -0,796621 to na wykresie z prawej cały czas kursor jest ustawiony na wartości -0,810087, mimo iż bez problemu mógłby się ustawić na którymś punkcie bliższym wartości -0,798841 lub -0,796621, ponieważ mimo iż nie mam jak tego pokazać, to wartości takie istnieją w tablicy z której rysuje się ten wykres.
Dopiero jak pociągnę kursor jeszcze bardziej w prawo to kursor wykresie po prawej wskoczy na wartość -0,807787 i znowu ta wartość będzie się utrzymywała przez pewien okres i potem znów wskakuje na kolejną, dzieje się to tak schodkowo, chociaż po drodze ma po kilkanaście punktów bliższych wartości ustawianej na której mógłby się zatrzymać.
Obrazek tu http://img84.imageshack.us/my.php?image ... lemjn6.jpg
Mam nadzieję że teraz jest to ciut bardziej zrozumiałe :)
Pozdrawiam

Re: Przeskakujący kursor po wartościach osi X na graphie

: 20 sty 2009 22:45
autor: kacperekk
Coś odkryłem, mianowicie powiększyłem obszar wykresu na ekranie i okazało się, że teraz skok jest mniejszy - poprzednio było o ok 13mV, teraz jest o około 6mV.

W związku z tym nasuwa mi się przypuszczenie, że problem leży w tym, iż skok kursora następuje dopiero wtedy gdy przesunie się on o jeden piksel na ekranie. Jeśli to jest przyczyna to jest to bug w LabView, ponieważ wartość położenia kursora powinna być i tak poprawnie zwracana (przybliżana do najbliższej wartości na wykresie) natomiast sam kursor może się na wykresie nie ruszać jak nie może wykonać skoku większego niż piksel.

Przypominam że problem jest tylko jak ustawię snap to plot, przy free drag nie ma żadnego problemu, wartość położenia kursora na prawym wykresie jest dokładnie taka jaką ustawiam se kursorem na lewym wykresie.

Co Wy na to?

Pozdrawiam