Strona 1 z 1

FPGA zapis danych poprzez FIFO

: 13 wrz 2015 23:11
autor: tomus
Witam!
Mam problem z zapisem danych na dysk, przygotowałem projekt z 2 .vi:
-pierwszy w FPGA odczytuje wartości z karty i zapisuje je w FIFO
-drugi .vi działa w RT i odczytuje wartosci z FIFO, otwiera/tworzy plik TDMS, zapisuje dam dane i go zamyka
Niestety po odpaleniu drugiego .vi wywala błąd odczytu danych z FIFO, ktoś mógłby zerknąć do kodu co robię źle??

FPGA zapis danych poprzez FIFO

: 14 wrz 2015 11:36
autor: Rivulet
Hej,

o ile dobrze pamiętam błąd -50400 oznacza, że RT nie udało się zebrać żądanej ilości danych w wymaganym czasie, bądź coś innego związanego z timeout'em. Ten błąd występuje w pierwszej iteracji pętli?

Zaczęłabym od poukładania pewnych rzeczy:
1. Na FPGA - wyrzuć kontrolkę wskazującą na timeout poza pętlę FOR tak, żeby świeciła się jeżeli timeout wystąpi kiedykolwiek. W tym momencie program niekoniecznie musi Cię informować o timeoutcie.
2. Na RT - defaultowe wartości kontrolek z FPGA ustaw przed rozpoczęciem pracy FPGA. Chodzi mi tutaj głównie o kontrolkę Counts, która tuż po uruchomieniu programu na FPGA ma wartość 0. Jest szansa, że obecnie to może Ci zapychać bufor na FPGA.
3. Weź pod uwagę, że utworzenie TDMSa też trochę trwa, np. u mnie to ok 600ms. Otwórz TDMSa np. przed uruchomieniem FPGA, bo tutaj natomiast jest szansa, że zapychasz nawet bufor na RT :)

Zmiane 2 i 3 można by pewnie załatać zwiększeniem buforów na FPGA i RT, ale chyba lepiej od razu porządniej zakodzić, żeby nie mieć później większych problemów ;)

Daj znać czy coś się zmieniło, jak nie, to załącz poprawiony projekt i będziemy szukać dalej.

Pozdrawiam,
Rivulet

Re: FPGA zapis danych poprzez FIFO

: 14 wrz 2015 22:02
autor: tomus
Niestety nic się nie zmieniło, poprawiony projekt w załączniku

Re: FPGA zapis danych poprzez FIFO

: 15 wrz 2015 21:16
autor: Rivulet
Zapomniałeś poprawić pkt 1 i 2. Naciskam na nie, bo czasem jak FIFO na FPGA się zatka, to dzieją się różne rzeczy. Przy okazji możesz też zwiększyć bufor na FPGA np. do 10k.

Ten błąd występuje w pierwszej iteracji RT czy kolejnych?

Odpalasz program z takimi ustawieniami kontrolek jak na załączonym screenie? Bo jeżeli tak to w tym momencie Twoja pętla na FPGA kręci sie co 1,2 sekundy, więc nie zbierzesz takiej ilości elementów w 5 sekund.

Generalnie:
Warning -50400 occurred at an unidentified location
Possible reason(s):
NI Platform Services: The transfer did not complete within the timeout period or within the specified number of retries.


Pozdrawiam,
Rivulet

FPGA zapis danych poprzez FIFO

: 06 lis 2016 17:07
autor: tomus
Wracam do zagadnienia: jakie zmienne mają wpływ na częstotliwość zapisywanych danych?
Potrzebuję utworzyć plik, w którym zapisane dane będą mierzone z częstotliwością 15Hz i 30Hz (dwa różne pliki). Które wartości mają na to wpływ i jak je zmieniać?

Re: FPGA zapis danych poprzez FIFO

: 20 lis 2016 09:44
autor: spalinowy
Częstotliwością można sterować np w ten sposób, że we Flat Sequence dodajesz jedną ramkę, w której umieszczasz opóźnienie. Jak w tym linku:
LINK

FPGA zapis danych poprzez FIFO

: 23 lis 2016 08:59
autor: tomus
oki, a co jeśli teraz mam zapis danych z częstotliwością 2Hz, to jaki parametr muszę zmienić aby ją zwiększyć do właśnie 15 czy 30??