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
FPGA zapis danych poprzez FIFO
- Załączniki
-
- Rez_pomiar.vi
- (69.81 KiB) Pobrany 562 razy
-
- Zapis_rez.vi
- (209.78 KiB) Pobrany 599 razy
-
- Rezystancja.lvproj
- (43.92 KiB) Pobrany 641 razy
FPGA zapis danych poprzez FIFO
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
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
Re: FPGA zapis danych poprzez FIFO
Niestety nic się nie zmieniło, poprawiony projekt w załączniku
- Załączniki
-
- Rezystancja.lvproj
- (43.92 KiB) Pobrany 687 razy
-
- Rez_pomiar.vi
- (69.91 KiB) Pobrany 552 razy
-
- Zapis_rez.vi
- (206.18 KiB) Pobrany 563 razy
Re: FPGA zapis danych poprzez FIFO
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
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
FPGA zapis danych poprzez FIFO
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ć?
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ć?
-
- Posty: 188
- Rejestracja: 03 lut 2012 15:09
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Warszawa
- Kontakt:
Re: FPGA zapis danych poprzez FIFO
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
LINK
FPGA zapis danych poprzez FIFO
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??