Zapis pomiaru z karty
Zapis pomiaru z karty
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
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
Re: Zapis pomiaru z karty
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
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
Mam zawyżone wymagania motywacyjne
Re: Zapis pomiaru z karty
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.
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
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Re: Zapis pomiaru z karty
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
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.
Re: Zapis pomiaru z karty
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
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
Mam zawyżone wymagania motywacyjne
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Re: Zapis pomiaru z karty
To może zależy od karty, bo u mnie (6251) powodowało właśnie podobny efekt.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.
Re: Zapis pomiaru z karty
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
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
Mam zawyżone wymagania motywacyjne
Re: Zapis pomiaru z karty
@Pmaj
Twoje rozwiązanie działa... tylko obawiam się że, jest bardziej zasobożerne. :-/
Może teraz jak obniżyć wymagania?
Twoje rozwiązanie działa... tylko obawiam się że, jest bardziej zasobożerne. :-/
Może teraz jak obniżyć wymagania?
eech
Re: Zapis pomiaru z karty
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
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
Mam zawyżone wymagania motywacyjne
Re: Zapis pomiaru z karty
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?
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