Witam, próbuje stworzyć vi w LabView8.6 które będzie pobierać dane z 14 czujników.
Niestety nie mogę poradzić sobie z kilkoma szczegółami.
1. Odebrane dane zapisuję do tabeli, ale co drugi odczyt jest najczęściej zbyt szybki i tabelkę wypełnia mi zerami. Jak ustawić tworzenie tabelki aby tego typu problem się nie pojawiał? Urządzenie wysyła dane co ~3s (możliwe że wydłużę ten czas).
Tak wygląda to teraz:
2. Jak dołączyć czas do każdego pomiaru, aby widoczny był w mojej tablicy?
czas - termometr 1, term 2, ... term 14.
czas - termometr 1, term 2, ... term 14.
: itd.
Moj program:
Z góry dziękuję za odpowiedź!.
Rozkład temperatury w pomieszczeniu
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Re: Rozkład temperatury w pomieszczeniu
1. Użyj Bytes at Serial Port. Jeżeli zwróci Ci taką liczbę bajtów jaką oczekujesz to wtedy dopiero odczytujesz to co masz na porcie.
2. Możesz użyć klastra do którego dajesz timestamp i array. Tak zbudowany klaster służy Ci jako zmienna głównego araya.
2. Możesz użyć klastra do którego dajesz timestamp i array. Tak zbudowany klaster służy Ci jako zmienna głównego araya.
Rozkład temperatury w pomieszczeniu
Jak wyglądają indykatory Temp1-Temp14? Ponieważ dokonujesz pojedynczego odczytu danych i potem je tylko formatujesz stawiałbym prędzej na przypadkowe zwiększenie precyzji przy którymś z wielu kolejnych rzutowań.
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Rozkład temperatury w pomieszczeniu
Niestety nie za bardzo wiem jak użyć: Bytes at Serial Port... Chyba już wymiękam ;)
Proszę o podpowiedź jeśli można.
To samo tyczy sie: time stamp?
Co do urządzenia. Są to termometry na linii 1-wire z których atmega odbiera i wysyła dane. O to chodziło?
Ramka składa się:
start - wyniki - stop
001 - 14*temperatura 2*wentylatory - 002
W moim programie start został pominięty, ale teraz widzę ze muszę to gdzieś dołożyć. Jak zrobić aby po rozkazie 001 były sczytywane dane a po 002 następował koniec odbioru? Dodanie godziny i przejście do następnej linii - tego też nie udało mi się rozwiązać.
Proszę o podpowiedź jeśli można.
To samo tyczy sie: time stamp?
Co do urządzenia. Są to termometry na linii 1-wire z których atmega odbiera i wysyła dane. O to chodziło?
Ramka składa się:
start - wyniki - stop
001 - 14*temperatura 2*wentylatory - 002
W moim programie start został pominięty, ale teraz widzę ze muszę to gdzieś dołożyć. Jak zrobić aby po rozkazie 001 były sczytywane dane a po 002 następował koniec odbioru? Dodanie godziny i przejście do następnej linii - tego też nie udało mi się rozwiązać.
Ostatnio zmieniony 21 lut 2012 00:09 przez napoleon13, łącznie zmieniany 2 razy.
Re: Rozkład temperatury w pomieszczeniu
Zrobiłem taką najprostszą wersję z czekaniem na dane i array przechowującego czas i temperatury.
Co do sprawdzania, to jeżeli coś odbierzesz, to sprawdzasz, czy ma to początek 001 i koniec 002 przez choćby zwykłe Search 1D array. Jak je znajdziesz, to już wiesz gdzie co masz, a jeżeli ich nie będzie, to dane albo jeszcze nie doszły, albo coś jest nie tak.
Co do sprawdzania, to jeżeli coś odbierzesz, to sprawdzasz, czy ma to początek 001 i koniec 002 przez choćby zwykłe Search 1D array. Jak je znajdziesz, to już wiesz gdzie co masz, a jeżeli ich nie będzie, to dane albo jeszcze nie doszły, albo coś jest nie tak.
- Załączniki
-
- Temp.vi
- (87.14 KiB) Pobrany 303 razy
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Re: Rozkład temperatury w pomieszczeniu
Problem rozwiązany. Dziękuję za pomoc
- Załączniki
-
- Temp.vi
- (54.54 KiB) Pobrany 301 razy