FPGA zapis danych poprzez FIFO

Tematy związane z LabVIEW FPGA oraz programowaniem układów.
tomus
Posty: 21
Rejestracja: 15 mar 2015 12:51
Wersja środowiska: LabVIEW 2014

FPGA zapis danych poprzez FIFO

Post 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??
Załączniki
Zapis.jpg
Rez_pomiar.vi
(69.81 KiB) Pobrany 514 razy
Zapis_rez.vi
(209.78 KiB) Pobrany 550 razy
Rezystancja.lvproj
(43.92 KiB) Pobrany 621 razy
Rivulet
Posty: 2
Rejestracja: 14 wrz 2015 10:52
Wersja środowiska: LabVIEW 2014

FPGA zapis danych poprzez FIFO

Post 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
Kraków, CLA
tomus
Posty: 21
Rejestracja: 15 mar 2015 12:51
Wersja środowiska: LabVIEW 2014

Re: FPGA zapis danych poprzez FIFO

Post autor: tomus »

Niestety nic się nie zmieniło, poprawiony projekt w załączniku
Załączniki
zapis.jpg
Rezystancja.lvproj
(43.92 KiB) Pobrany 629 razy
Rez_pomiar.vi
(69.91 KiB) Pobrany 529 razy
Zapis_rez.vi
(206.18 KiB) Pobrany 514 razy
Rivulet
Posty: 2
Rejestracja: 14 wrz 2015 10:52
Wersja środowiska: LabVIEW 2014

Re: FPGA zapis danych poprzez FIFO

Post 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
Kraków, CLA
tomus
Posty: 21
Rejestracja: 15 mar 2015 12:51
Wersja środowiska: LabVIEW 2014

FPGA zapis danych poprzez FIFO

Post 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ć?
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Re: FPGA zapis danych poprzez FIFO

Post 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
tomus
Posty: 21
Rejestracja: 15 mar 2015 12:51
Wersja środowiska: LabVIEW 2014

FPGA zapis danych poprzez FIFO

Post 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??
ODPOWIEDZ