Pomiar prędkości

Tematy związane z LabVIEW FPGA oraz programowaniem układów.
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Pomiar prędkości

Post autor: spalinowy »

Witam
Mam problem z pomiarem prędkości obrotowej za pomocą układu FPGA. Do dyspozycji mam przetwornik obrotowo-impulsowy 2000 imp/obr (z zasilaniem 12V), cRIO 9022 i moduł NI 9435. Szukałem opisów i tutoriali, ale większość dotyczy pracy w Scan Interface.
Na forum był ten temat poruszany parę razy, ale zawierają one dla mnie jeszcze za mało wskazówek.
Narazie najlepszy przykład znalazłem pod tym linkiem:
http://zone.ni.com/devzone/cda/tut/p/id/3921
Jednak przykład jest dla modułu NI 9411 a nie bardzo wiem, jak go przystosować do moich potrzeb. Chodzi o to, że pod FPGA w module nie mam czterech kanałów z oddzielnymi A i B tylko poprostu 4 kanały.

Z góry dziękuję za pomoc
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Pomiar prędkości

Post autor: MicMac89 »

Jak rozumiem chodzi Ci tutaj o algorytm dla takiej funkcji? Zatem pytanie dotyczy tego co pokazują te 4 kanały podczas obrotu silnika. W stosunku do przedstawionego artykułu właśnie tu będzie tkwiła różnica.
Certified LabVIEW Associate Developer
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Re: Pomiar prędkości

Post autor: spalinowy »

Nie wiem czy teraz ja dobrze zrozumiałem, ale kanały dostępne w module pod FPGA są takie jak na ilustracji.
Obrazek
Te kanały natomiast jeszcze nic nie pokazują, bo nie umiem zrobić tego algorytmu dla FPGA. W tym wszystkim chodzi mi o to, że mam w module NI 9435 dostępne konkretne kanały DI0-DI3 a nie A, B i Z. Do modułu zaś wpina się sygnał A i B, ale jak widać na ilustracji w projekcie będzie już pojedynczy kanał.
Nie wiem po prostu w jaki sposób skorzystać z tego modułu w FPGA.
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Pomiar prędkości

Post autor: MicMac89 »

Przepraszam, że namieszałem, sądziłem, że problem jest w enkoderze. Już rozumiem, sprawdzę w domu i dam znać.
Certified LabVIEW Associate Developer
sliski
Posty: 69
Rejestracja: 15 mar 2005 00:00
Lokalizacja: Rzeszów

Pomiar prędkości

Post autor: sliski »

Jakie prędkości obrotowe Cię interesują? Bo dla modułu NI 9435 max. częstotliwość wejsciowa sygnału to tylko 333Hz, to daje dla przetwornika 2000imp/obr max. 10 obr/min. Nie za mało? Przykład który podałeś jest ok. w NI9411 tez nie ma "dedykowanych" wejsc pod kanały A,B, Index. Wejscia tam tez sa traktowane jako zwykłe cyfrowe. Cała "logika dekodująca" ciąg 0 i 1 na wartość: położenia, predkości, przyspieszenia jest pokazana na diagramie z tego przykładu.
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Pomiar prędkości

Post autor: spalinowy »

To faktycznie mało. Prędkości obrotowe jakie mnie interesują to około 2000 obr/min, więc daleko poza zasięgiem modułu.
To teraz mam pytanie, bo jestem troche zbity z tropu.
Skoro w obu modułach wejścia są traktowane jako zwykłe cyfrowe, to co właściwie realizuje ten licznik? Jak do tej pory wydawało mi się, że jak podłączę przetwornik do karty i jej odpowiednich wejść, to logika zawarta na płycie sama przeliczy impulsy na prędkość. Moduł ten poprostu ma za zadanie zliczać impulsy a reszta już musi być realizowana przez kod aplikacji?
Innym pytaniem natomiast jest to, czy można użyć do tego poprostu zwykłego moduły I/O TTL takiego jak NI 9403?
sliski
Posty: 69
Rejestracja: 15 mar 2005 00:00
Lokalizacja: Rzeszów

Re: Pomiar prędkości

Post autor: sliski »

A jaki masz enkoder, konkretnie jakiego rodzaju ma wyjścia/poziomy napięć? Ni 9403 ma dużo wejść ale obsługuje tylko sygnał TTL 5V, czy potrzeba Ci aż 32 kanały? Ni 9411 wydaje sie być lepszym rozwiazaniem, posiada szerszy zakres napięć wejściowych oraz może pracować z sygnałem względem wspólnej masy lub różnicowym. 6 kanałów to 2 enkodery z Indexem lub 3 enkodery z samym sygnałem AB. NI 9411 pracuje do 2MHz i jest prawie 2 razy tańszy od 9403. Te liczniki to kodujesz dopiero w LabVIEW (LabVIEW FPGA Module). Kod następnie jest kompilowany i programowany jest FPGA który znajduje się w tej części w której instaluje się moduły. Same zaś moduły tylko zbierają sygnał, nie posiadają funkcjonalności zamiany sygnału z enkoderów na wielkości typu położenie, prędkość itd. Dodatkowo trzeba napisać kawałek kodu na kontroler Real-Time do odczytu tego co tam FPGA zliczy i obliczy.
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Pomiar prędkości

Post autor: spalinowy »

Podumowując cały temat, jak dla mnie sprawa się już wyjaśniła.
W celu uzupełnienia tylko napiszę, że jednym z modułów jakimi dysponuję jest NI 9435 i NI 9403. Jak też pisałem wcześniej potrzebowałem przetworzyć otrzymane impulsy z enkodera (2000imp/obr) na prędkość.
Z tego co zrozumiałem, to moduły mają pewien zakres możliwości wynikający z ich wewnętrznej struktury, ale bez kodu w LV nie możemy z tych możliwości korzystać.
ODPOWIEDZ