Strona 1 z 1

akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 07:53
autor: mwojcie3
Cześć

W aplikacji wykonuje pomiar ciągły z 10 kanałów analogowych w jednej pętli. Wynik przesyłam kolejką do drugiej pętli while, w której zapisuję wyniki do pliku TDMS. Struktura aplikacji podobna jest do tej z przykładów - akwizycja i logowanie ciągłe. Chciałbym żeby sygnały były próbkowane z częstotliwością 10 kHz.

Gdy chcę wykonać akwizycji - 1 blok diagram
akwizycja.png
, przy drugim przejściu pętli pojawia się błąd:

Error -200279 occurred at Acqusition Message Loop.vi
Possible reason(s):
The application is not able to keep up with the hardware acquisition.
Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.


Gdy zwiększę bufor jest ok.
bufor.png
Teoretycznie nie powinienem zmieniać rozmiaru zgodnie z przykładem z labview. Powinien wystarczyć rozmiar buforu 10 kHz/10 = 1000 wg zaleceń.

Nie wiem czy ten bufor trzeba dać dużo większy i ile większy. Jak obliczyć rozmiar buforu?

Re: akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 09:47
autor: pawhan11
Jeżeli rozmiar buforu masz 1000 to zapełni się on po 0.1s przy próbkowaniu 10k
Daj sobie rozmiar 50k albo więcej, przy kilku Gb ramu na Windowsie i tak jest to pomijalne a jak z jakichś powodów aplikacja zwolni to na pewno się bufor nie przepełni.

Re: akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 10:12
autor: mwojcie3
No dobra zapełni się w 0,1 sekundy i co z tego wynika, czemu pojawia się błąd, nie mogę odczytywać małego bufora? Jak to zależy od ilości mierzonych kanałów.
A czy rozmiar bufforu może spowolnić akwizycję? I jak ten bufor dobierać (jak wyznaczyć rozmiar).

A jeżeli nie zrobię w ten sposób:
akwizycja2.png
To jaka będzie częstotliwość próbkowanie i rozmiar buforu?? (z tego co w dokumentacji jest to dla 100 - 10000 kS/s bufor ma rozmiar domyślny 10000 kS)

Gdy używałem tego sposobu to nie miałem żadnych błędów.

Re: akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 10:36
autor: Zyga
mwojcie3 pisze:..czemu pojawia się błąd..
Bufor się przepełnił :-B

A tak serio, to co jest w dokumentacji może być tylko założeniem i w 90% przypadków zadziała, ale w 10% już nie. A to komputer za wolny, a to windows odpalił Cortane itd.

Re: akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 10:45
autor: pawhan11
http://digital.ni.com/public.nsf/allkb/ ... B1004E9B07
http://digital.ni.com/public.nsf/allkb/ ... enDocument

rozmiar bufora nie spowolni akwizycji w żaden sposób, rozmiar bufora mówi o tym ile danych FIFO karty moze przerzucić do ramu PC.
Jeżeli odczytasz dane gdy bufor się przepełnił dostajesz właśnie ten błąd -> DAQ read wykonuje się rzadziej niż co 0.1 sek.
Przy finite samples jak na zalaczonym screenie rozmiar bufora = ilosc probek i tego nie można przepełnić.

Przyjmij sobie wielkosc bufora =10 x Fs i dla większości normalnych aplikacji poinno byc OK

akwizycja ciagła, a rozmiar buforu

: 07 kwie 2017 10:47
autor: pawhan11
Tu jest fajnie opisane jak to działa:
http://digital.ni.com/public.nsf/allkb/ ... F60060AB6F