Zapis pomiaru z karty

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
Awatar użytkownika
yawa20
Posty: 25
Rejestracja: 28 mar 2007 00:00
Lokalizacja: Gdańsk

Zapis pomiaru z karty

Post autor: yawa20 »

Witam forumowiczów i forumowiczki.

Mam problem z zapisem pomiarów do pliku. Zapisując dane z karty pomiarowej przy pomocy DAQmx oraz Express Write To Measurement File (tekst) otrzymuję plik z pomiarem. Teraz gdy odczytuję dane z pliku pojawia się efekt jak na obrazku w załączniku. Co 100 próbek (tak jest ustawione samples to read) pojawia się przesunięcie przez co próbkowany sygnał ulega segmentacji. Jeżeli ustawię ten parametr np na 50k to przesunięcie pojawia się co 50k próbek. Mam w związku z tym pytanie czy da się to jakoś wyeliminować, by zapisany plik z pomiarem zawierał sygnał ciągły. Zapis do pliku binarnego daje ten sam efekt.

Karta pomiarowa to NI PCI 6111
Input Rate 5M
Sample to rad 100
LabView 8.2.1


Pozdrawiam
eech
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: Zapis pomiaru z karty

Post autor: PMaj »

Witam

Niestety niewidząc kodu zgaduję, że dane z karty czytasz paczkami, ale nie w trybie ciągłym. W takim przypadku czytasz paczkę danych i następnie zapisujesz je na dysk i ponownie uruchamiasz funkcję czytającą paczkę danych. Aby uniknąć "dziury" w danych należy ustawić opcję "continuous read" w opcjach (albo funkcje drivera DAQmx albo opcja w DAQmx Wizard). Wówczas po otrzymaniu paczki próbek (punktów pomiarowych) driver zwróci do RAMu dane i od razu zacznie zbierać do bufora kolejne próbki. W czasie tej akwizycji powinieneś się wyrobić z analizą i zapisywaniem na dysk.

pozdrawiam

PS. jeżeli dobrze rozumem parametry ustawiane przez Ciebie w programie, to starasz się pętlą pod windowsem kręcić 50 kHz, i w tym czasie zapisywać dane i pewnie jeszcze robić jakąś prostą analizę - myślę, że to kiepski pomysł - ale może źle rozumem te parametry

pmaj
Ostatnio zmieniony 12 gru 2007 16:43 przez PMaj, łącznie zmieniany 2 razy.
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
Awatar użytkownika
yawa20
Posty: 25
Rejestracja: 28 mar 2007 00:00
Lokalizacja: Gdańsk

Re: Zapis pomiaru z karty

Post autor: yawa20 »

Witam ponownie.

Rzeczywiście próbuję rozbić bardzo prostą analizę w postaci detekcji częstotliwości.

Może rozbicie na kilka pętli by pomogło?

W załączniku przesyłam mój programik.
eech
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Zapis pomiaru z karty

Post autor: vugie »

Wyprowadź bloczki inicjujące i zamykające kanał na zewnątrz pętli (tak jak jest to w przykładach do DAQmx). Zamykanie i otwieranie kanału w każdej iteracji zajmuje pewien czas i stąd te opóźnienia.

EDIT:
Ten okropny błont co tu był, to już go nie ma
Ostatnio zmieniony 13 gru 2007 13:37 przez vugie, łącznie zmieniany 1 raz.
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: Zapis pomiaru z karty

Post autor: PMaj »

Witam


poprawiłem trochę ten program - tak sobie - bo miałem tylko 5 min. wolnego czasu - więc jest jak jest i da się to lepiej napisać ale trzeba jeszcze około 15 min.
Patrz w dół na panelu i diagramie + krótki komentarz w tym co poprawiłem na górze.

PS. otwieranie i zamykanie wątku zajmuje niezauważalnie mało czasu - tylko pierwsze uruchomienie jest dłuższe ze względu na konieczność załadowania driverów DAQmx do pamięci.

pozdrawiam
Ostatnio zmieniony 15 gru 2007 22:34 przez PMaj, łącznie zmieniany 1 raz.
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Zapis pomiaru z karty

Post autor: vugie »

PMaj pisze:PS. otwieranie i zamykanie wątku zajmuje niezauważalnie mało czasu - tylko pierwsze uruchomienie jest dłuższe ze względu na konieczność załadowania driverów DAQmx do pamięci.
To może zależy od karty, bo u mnie (6251) powodowało właśnie podobny efekt.
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: Zapis pomiaru z karty

Post autor: PMaj »

Witam vugie, podobny efekt otrzymałeś nie dla tego że trzeba było czekać na zamknięcie i otwarcie wątku, ale - o ile się nie mylę - zamknięcie wątku powoduje wyjście z trybu odczytu continuous - a przez to zatrzymujesz na chwile akwizycję danych i ponownym jej rozpoczęciu nadpisujesz w buforze próbki, które zostały zebrane tuż po wyjściu z bloczka read (w trybie continuous akwizycja do bufora jest ciągła). Wówczas otrzymasz oczywistą nieciągłość danych pomiarowych.
Podejrzewam, że taki właśnie był powód złego działania, a czas zamknięcia i otwarcia tasku był ciągle bardzo szybki
pozdrawiam
pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
Awatar użytkownika
yawa20
Posty: 25
Rejestracja: 28 mar 2007 00:00
Lokalizacja: Gdańsk

Re: Zapis pomiaru z karty

Post autor: yawa20 »

@Pmaj


Twoje rozwiązanie działa... tylko obawiam się że, jest bardziej zasobożerne. :-/

Może teraz jak obniżyć wymagania?
eech
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: Zapis pomiaru z karty

Post autor: PMaj »

Witam

Rozwiązanie, moim zdaniem, jest poprawne, zabiera dużo czasu procesora, gdyż czytasz dane 5MHz, i do tego wszystko co czytasz streamujesz na dysk twardy. Zauważ, że bardzo często pobierasz dane z karty pomiarowej, i co za tym idzie tak samo często piszesz do pliku całkiem spore paczki danych. Jeżeli możesz to zwiększ ilość czytanych próbek lub zmniejsz częstotliwość próbkowania jeżeli nie potrzebujesz tak dużej. Jeżeli potrzebujesz dokładnie takich ustawień to niewiele zrobisz.

pozdrawiam

pmaj
Ostatnio zmieniony 17 gru 2007 18:42 przez PMaj, łącznie zmieniany 1 raz.
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
Awatar użytkownika
yawa20
Posty: 25
Rejestracja: 28 mar 2007 00:00
Lokalizacja: Gdańsk

Re: Zapis pomiaru z karty

Post autor: yawa20 »

mam jeszcze jedno pytanie w sumie wydaje mi się, że głupie ale....
gdy włączę zapis na dysk to wizualizacja bardzo zwalnia, dzieje się to samo z analizą czy przebiega ona płynniej i wszystkie dane są zapisywane?
eech
ODPOWIEDZ