Strona 1 z 1

Wykres danych odebranych z RS232

: 19 gru 2014 14:53
autor: Zombol
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.

Re: Wykres danych odebranych z RS232

: 20 gru 2014 19:34
autor: J.Sz
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.

Wykres danych odebranych z RS232

: 23 gru 2014 11:27
autor: Zombol
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?

Wykres danych odebranych z RS232

: 03 sty 2015 23:01
autor: J.Sz
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 .