Pomoc przy resamplingu w EPS Toolkit

Tematy związane z LabVIEW FPGA oraz programowaniem układów.
jitter
Posty: 1
Rejestracja: 06 kwie 2017 01:17
Wersja środowiska: LabVIEW 2011

Pomoc przy resamplingu w EPS Toolkit

Post autor: jitter »

Witam wszystkich bardzo serdecznie!
Potrzebuję pomocy we fragmencie kodu pisanego na FPGA który odpowiedzialny jest za pobieranie próbek, ich resampling za pomocą funkcji z Electric Power Suite Tollkit oraz wsadzenie wszystkiego w DMA FIFO i wysłaniem do RT HOSTa. Korzystam z modułów pomiarowych NI 9225 oraz NI 9239 które na wyjściu dają zmienne typu FXP ale o różnych długościach części całkowitej: NI9225<+/-,24,10> natomiast NI9239<+/-,24,5>. Help do FPGA Resampling VI z którego korzystam i który udostępniony jest przez EPS toolkit podpowiada że do wejścia należy dołączyć typ FXP <+/-,24,1> czyli znormalizować pomiary: http://www.ni.com/white-paper/app/large ... n_Loop.PNG . Tutaj pętla z resamplingiem: http://www.ni.com/white-paper/app/large ... g_Loop.PNG nie mogę jednak zrozumieć co dzieje się w ostatniej pętli http://www.ni.com/white-paper/app/large ... n_Loop.PNG co się dzieje w kodzie z feedback node, po co aż tyle konwersji typów z fxp na fxp itd. oraz po co są dwa węzły z zapisem do DMA FIFO? Tutaj link do pełnego artykułu: http://www.ni.com/white-paper/52519/en/
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Pomoc przy resamplingu w EPS Toolkit

Post autor: PiDi »

Tutaj jest przydatny do zrozumienia post: https://forums.ni.com/t5/LabVIEW-Electr ... -p/3028881

Tak z grubsza:
1. W Data Acquisition Loop robisz przeskalowanie FXP z Twojej karty pomiarowej do <+/-,24,1>. Użycie bloczków Fixed-Point To Integer Cast oraz Integer to Fixed-Point Cast nie powoduje utraty żadnych danych (bitów) z pierwotnej wartości.
2. Resampling Loop wykonuje jakieś operacje, których dokładnego interpretowania się nie podejmę bez zagłębiania w tajniki pomiarów jakości energii elektrycznej. Natomiast z tego, co rozumiem, to operacje są wykonywane w taki sposób, żeby nadal nigdzie nie starcić żadnych bitów z pierwotnej wartości (czyli zabezpieczone są przepełnienia, itp).
3. W Data Communication Loop następuje rzutowanie do pierwotnego zakresu Twojej karty, z tym, że już po operacjach z Resampling Loop. I tu wracamy do linka z początku:
- jeśli masz kartę NI9255 z wyjściem <+-,24,10>, to musisz w Data Communication Loop zrobić rzutowanie do <+-32,12> (bo w Data Acquisition zrzuciłeś 9 miejsc całkowitych, więc teraz musisz te 9 miejsc dorzucić do wyniku).
- analogicznie z karty 9239 <+-24,5> do <+-32,7>.

Natomiast dwa wpisy do DMA to... po prostu dwie wartości ;) Pierwszy wpis do częstotliwość, drugi to wartość próbki.


Na marginesie, komentarze w tym VIju w przykładowym projekcie są wręcz wzorcowo bezużyteczne...
ObrazekObrazekObrazekObrazek
ODPOWIEDZ