buforowanie danych pomiarowych

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

buforowanie danych pomiarowych

Post autor: arczi »

Witam. Mam w programie dwie pętle. Pierwsza pętla chodzi szybko i odczytuje dane pomiarowe. Druga pętla chodzi wolniej i zapisuje zebrane dane pomiarowe na dysk. Teraz chciałbym odczytane dane z pętli pierwszej zapisać na dysk (pętla druga) W jaki sposób zbuforować dane z pętli pierwszej aby zapisać wszystkie pomiary z pętli pierwszej?
Awatar użytkownika
ky3orr
Posty: 149
Rejestracja: 10 gru 2006 00:00
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Siechnice
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: ky3orr »

możesz na przykład przesyłać dane pomiarowe w pierwszej pętli do drugiej z użyciem kolejki, zaś w pętli drugiej dodawać je sobie do tablicy (po każdym odebraniu danej z kolejki) i gdy tablica ma odpowiedni rozmiar zapisać na dysk.

to tak na szybko wedle własnej wiedzy :)

pozdrawiam
KY3ORR

Okablowanie audio / RF -> www.CabLAB.eu
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

A jak użyć kolejki o której mówisz?
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

Mam jeszcze pytanie odnośnie tych kolejek. Skoro szybka pętla będzie non stop dorzucać dane do kolejki, to jak zczytać na bieżącą wszystkie dane pomiarowe w petli która chodzi wolniej? Wydaje mi się że nie będę w stanie zapisać wszystkich danych pomiarowych.
Awatar użytkownika
ky3orr
Posty: 149
Rejestracja: 10 gru 2006 00:00
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Siechnice
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: ky3orr »

przekazywanie danych poprzez kolejkę to standardowa aplikacja frameworka: producent-konsument.

dane mierzone w pierwszej pętli są przekazywane do drugiej za pomocą kolejki.
tam są odbierane, wrzucane do tablicy i gdy jest odpowiednia ich ilość np. zapisywane na dysku.



jeśli chodzi o to, że druga pętla chodzi wolniej możesz w pierwszej pętli wykonać dodawanie kolejnych pomiarów do tablicy i gdy pakiet bedzie odpowiednio duży dopiero taką tabelę wrzucać do kolejki.
druga pętla odbierze taki pakiecik i zapisze np. od razu na dysk.

mam nadzieję, że jakoś pomogłem :)

pozdrawiam
Załączniki
producent_konsument.jpg
producent_konsument.vi
(8.1 KiB) Pobrany 260 razy
KY3ORR

Okablowanie audio / RF -> www.CabLAB.eu
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

Kolego ky3orr mam jeszcze pytanie odnośnie zamieszczonego przez ciebie programu. Przetestowałem go sobie i potrzebowałbym pomocy w jego rozwinięciu. Chciałbym wrzucać do kolejki w szybszej pętli dwie dane pomiarowe - czas oraz zmienną procesową. Teraz w wolniejszej pętli potrzebowałbym przechwycić te dane w formie tablicy, gdzie w kolumnie 1 ma byc czas, w kolumnie 2 zmienna procesowa, zaś w wierszach poszczególne pomiary. Jak to zrobić?
Awatar użytkownika
ky3orr
Posty: 149
Rejestracja: 10 gru 2006 00:00
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Siechnice
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: ky3orr »

arczi w jakiej postaci zapisujesz czas (timestamp, date/time rec, liczba double, integer) i zmienną procesową?

ponadto ile pomiarów "na raz" chcesz przesyłać z tej szybszej pętli do wolniejszej?

uprzedzając fakty dane z kolejki są odbierane w takiej samej formie jak sa nadawane. jak wpuścisz tablicę to i takową odbierzesz z kolejki :)

pozdrawiam
KY3ORR

Okablowanie audio / RF -> www.CabLAB.eu
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

Zmienna procesową oraz czas chce zapisywać w formacie liczby integer. Chciałbym za jednym razem przesyłać około 1000 pomiarów, by potem zapisywać je w wolniejszej pętli.
Awatar użytkownika
ky3orr
Posty: 149
Rejestracja: 10 gru 2006 00:00
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Siechnice
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: ky3orr »

kolego podeślij kawałek kodu z tymi 2 pętlami ponieważ nie bardzo wiem jak generujesz dane i jak je odbierasz.

generalnie po wstawieniu danych do tablicy należałoby sprawdzić jej rozmiar i jeśli 1000 to wrzucenie tablicy do kolejki i jej opróżnienie.

w drugiej pętli odbierasz nadane 1000 rekordów i wykonujesz dalsze działania.
KY3ORR

Okablowanie audio / RF -> www.CabLAB.eu
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

Ok zamieszczam swój kod. Udało mi się stworzyć tablicę, przesłać ją poprzez kolejkę do drugiej pętli oraz tam zapisać dane pomiarowe. Proszę o sprawdzenie diagramu blokowego czy wszystko jest ok.
Załączniki
kolejka.jpg
kolejka_zapis_pliku.vi
(67.4 KiB) Pobrany 257 razy
Awatar użytkownika
ky3orr
Posty: 149
Rejestracja: 10 gru 2006 00:00
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Siechnice
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: ky3orr »

na mój gust jest to raczej poprawny kod.
można pokusić się o to by zakończeniem pierwszej pętli sterować jakimś przyciskiem, lub sygnałem innym niż błędu.

pozdrawiam
KY3ORR

Okablowanie audio / RF -> www.CabLAB.eu
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

Mam jeszcze pytanie - czy taką kolejkę można zastosować w LabVIEW RT?
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: skoziate »

Można, ale po pierwsze nie masz kontroli nad buforami pamięci (osobiście sprawiało mi to problemy na RT), a po drugie kolejka nie jest deterministyczna. Zamiast tego polecma RT FIFO. W RT FIFO trzeba jednak z góry podać objętość przesyłanych danych i nie wszystkie typy danych są obsługiwane (na przykład klastry).
Pozdrawiam,
Sebastian
arczi
Posty: 25
Rejestracja: 02 sty 2008 11:33
Kontakt:

Re: buforowanie danych pomiarowych

Post autor: arczi »

A czy można prosić o jakiś przykłądzik na RT FIFO żeby działał analogicznie jak mój program oparty na kolejkach?
ODPOWIEDZ