Wykres danych odebranych z RS232

Tematy związane z LabVIEW pracującym w czasie rzeczywistym.
Zombol
Posty: 2
Rejestracja: 25 lip 2014 16:16
Wersja środowiska: LabVIEW 2013

Wykres danych odebranych z RS232

Post autor: Zombol » 19 gru 2014 14:53

Witam
Pracuję nad urządzeniem, które będzie mierzyło napięcie, prąd i temperaturę. Interfejs ma być w LabVIEW. Uruchomiłem już transmisję, ale mam problem z prezentowaniem wyników. Chcę zrobić ciągły wykres dla wszystkich zmierzonych wartości. Każda wartość na osobnym wykresie. Próbowałem sam coś zrobić, ale nie działa to tak jak chcę. Wartość napięcia i prądu wysyłam co 1 sekundę, a temperaturę co 3 sekundy. Wartości są przesyłane jako kody ASCII. Mój program jest na razie dla jednego kanału. W wyniku jego działania otrzymuję poprawne wartości w postaci szpilek co sekundę, a tak nie chcę.
Kod mojego programu:
http://imageshack.com/a/img538/6435/4YmdC7.png

Z góry dziękuję za wszelką pomoc.

Awatar użytkownika
J.Sz
Posty: 34
Rejestracja: 09 sty 2014 11:31
Wersja środowiska: LabVIEW 2014
Lokalizacja: Gliwice

Re: Wykres danych odebranych z RS232

Post autor: J.Sz » 20 gru 2014 19:34

A jak chcesz żeby się wyświetlało?

Piki się pojawiają, bo używasz waveform chart, a tam próbka to próbka, nie ważne co ile przyjdzie, jedyne co możesz zmienić to ilość widzianych próbek na wykresie.
Sugeruję żebyś użył XY graph i obliczał dt po odczytaniu każdej próbki, dzięki temu będziesz miał rzeczywisty przebieg.

W ogóle jak Ci ten kod działa?
Z tego co jest na obrazku to pobierzesz jedną paczkę danych z RS i program się kończy.
Dlaczego nie zamykasz połączenia?
Na pewno pomogą Ci przykłądy z LabVIEW (help->Find Examples): Simple Serial, Continuous Serial Write and Read, wyszukaj sobie też przykładów dla XY graph.
Ja tu tylko wklejam linki ale i tak możesz kliknąć pochwal ;)

Zombol
Posty: 2
Rejestracja: 25 lip 2014 16:16
Wersja środowiska: LabVIEW 2013

Wykres danych odebranych z RS232

Post autor: Zombol » 23 gru 2014 11:27

Próbowałem zrobić to z wykorzystaniem XY Graph. Przejrzałem przykład w helpie, poczytałem w necie i zrobiłem podobne proste przykłady. Spróbowałem to dołączyć do mojego programu z RS232 i nie działa. I nie mam zielonego pojęcia czemu.

http://imageshack.com/a/img673/3350/E2DXPW.png

Co masz na myśli pisząc o obliczaniu dt? Mam za każdym razem obliczać krok czasowy? W sensie, że zaczynam od wartości 0 i z każdym powtórzeniem pętli dodaję 1 do zmiennej czas i ją wyświetlam?

Awatar użytkownika
J.Sz
Posty: 34
Rejestracja: 09 sty 2014 11:31
Wersja środowiska: LabVIEW 2014
Lokalizacja: Gliwice

Wykres danych odebranych z RS232

Post autor: J.Sz » 03 sty 2015 23:01

To nie ma prawa działać choćby z tego powodu, że masz niekończącą się pętlę while. Wrzuć kod to Ci poprawie.
Co masz na myśli pisząc o obliczaniu dt? Mam za każdym razem obliczać krok czasowy? W sensie, że zaczynam od wartości 0 i z każdym powtórzeniem pętli dodaję 1 do zmiennej czas i ją wyświetlam?
Jeśli chcesz mieć realne dane tzn jeśli kolejny pomiar przyjdzie po 2 s, a nie po 1 to dalej wykres będzie przedstawiał prawdę. Do tego możesz użyć timestamp.
Przy pierwszym odczycie zapamiętujesz t0 potem przy każdym kolejnym wykonujesz operacje tn -t0 =delta t .
Ja tu tylko wklejam linki ale i tak możesz kliknąć pochwal ;)

ODPOWIEDZ