Strona 1 z 2

LabVIEW + karta USB6216 + enkoder

: 02 mar 2010 21:11
autor: arczi
Witam. Czy da sie w LabVIEW obsłużyć działanie enkodera absolutnego? Mam kartę USB6216 z odpowiednią ilością wejśc cyfrowych. Na wejścia cyfrowe podane są sygnały z enkodera absolutnego o rozdzielczości 256imp/obrót (8 bitów). Sygnały zmieniają się z czestotlwością ok 2-5kHz. Chciałbym zczytywać precyzyjnie położenie z enkodera gdyż jest on w petli sterowania napędu. Czy da się ten problem rozwiązać programowo w LabVIEW? Czekam na ciekawe uwagi i propozycje. Pozdrawiam.

LabVIEW + karta USB6216 + enkoder

: 03 mar 2010 11:34
autor: bogdani
Sprawa wygląda prosto.

Nie napisałeś jak często chcesz odczytywać pozycję.
Z informacji przez ciebie podanych wynika iż trzeba odczytać wejścia cyfrowe (podłączone do enkodera) (przykłady są dostarczone razem z LabVIEW) i zdekodować pozycję.

Potem możesz już sobie wysterować napęd - nie wiem czym sterujesz, zakładam że prędkością.

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 03 mar 2010 13:00
autor: arczi
Sygnały z enkodera zmienają się z częstotliwością do 5 kHz więc tak często bym chciał odczytywać pozycję. Nie bardzo wiem jak to programowo zrealizować odczytywanie takich sygnałów.

LabVIEW + karta USB6216 + enkoder

: 03 mar 2010 22:00
autor: bogdani
To już ci mogę powiedzieć, że nie odczytasz tak często tego sygnału za pomocą tego modułu - nie przez USB.

Jak się postarasz i masz dobrego kompa to może 100-150 razy na sekundę odczytasz stan wejść cyfrowych.

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 03 mar 2010 23:12
autor: arczi
A jestem wtedy ciekawy dlaczego tylko 100-150 razy da sie odczytac stan wejść cyfrowych? Czy problem leży tytaj po stronie LabVIEW czy raczej po stronie modułu USB? Jeśli po stronie modułu to w jaki sposób można sobie poradzić z tym problemem? Ten moduł USB posiada jeszcze 2 wejścia szybkich liczników. Może by tak zastosować enkoder inkrementalny i podłączyć go do tych kanałów?

LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 01:43
autor: bogdani
Podana przeze mnie wartość 100-150 to liczba odczytu stanu modułu na sekundę.
Kiedyś miałem inny moduł USB i chyba tyle wyciągnąłem, ale pewności nie mam.

Jeśli dobrze rozumiem, to masz enkoder absolutny, 8-bitowy który dla dane pozycji podaje 8-bitową wartość. Mniemam więc że musisz podłączyć go do 8 linii cyfrowych. Nie wiem tylko jak jest kodowany (kod Gray'a, BCD lub binarny), ale to już musisz sam odkodować.
Używany przez ciebie moduł zdaje się (100% pewności nie mam) nie umożliwia próbkowania np. 5 kHz wejść cyfrowych, więc musisz sam odczytywać wartości odpowiednich wejść cyfrowych, aby otrzymać jego aktualną pozycję.

Szybkość odczytu ograniczana jest przez USB, Windows oraz moduł (chyba nawet w tej kolejności :-) ).

Jeśli użyjesz enkoder inkrementalny i podłączysz go do liczników, to masz podobną sytuację. Musisz odczytywać aktualną pozycję z liczników i tyle.

Jeśli chcesz szybszy układ to proponuję coś z FPGA (cRIO lub jakieś karty z FPGA).

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 08:35
autor: arczi
bogdani pisze:Podana przeze mnie wartość 100-150 to liczba odczytu stanu modułu na sekundę.
Jeśli dobrze rozumiem, to masz enkoder absolutny, 8-bitowy który dla dane pozycji podaje 8-bitową wartość. Mniemam więc że musisz podłączyć go do 8 linii cyfrowych. Nie wiem tylko jak jest kodowany (kod Gray'a, BCD lub binarny), ale to już musisz sam odkodować.
Używany przez ciebie moduł zdaje się (100% pewności nie mam) nie umożliwia próbkowania np. 5 kHz wejść cyfrowych, więc musisz sam odczytywać wartości odpowiednich wejść cyfrowych, aby otrzymać jego aktualną pozycję.
Dobrze zrozumiałeś istotę problemu ;) Pozycję z enkodera odczytuje w kodzie binarnym. Mam zrobiony prosty VI do zczytywania pozycji z enkodera i własnie pojawiły sie problemy na zbyt wolnym zczytywaniu stanu wejść cyfrowych z karty USB6216. Z tego tez powodu nie mogłem właściwie rozpoznawać kolejnych obrotów enkodera. Nie znalazłem w dokumentacji do USB6216 informacji jaka jest częstotliwość odświeżania wejść cyfrowych. Jeszcze jedno mnie zastanawia - moduł 6216 charakteryzuje się częstotliwościa próbkowania sygnałów analogowych na poziomie 400kS/s - jest to duża wartość - więc jak jest przesyłana z modułu USB do komputera - buforuje te dane czy jak?

LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 14:57
autor: bogdani
Wejścia analogowe odczytujesz zwykle w paczkach z bufora karty, ze względu na to że nie jesteś w stanie na tyle często odpytać kartę.

Wejścia cyfrowe ustalają się szybko, problem jest tylko w dostępie do ich wartości.

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 16:38
autor: arczi
Ok rozumiem. Trochę mnie zastanawia taka wolna transmisja z modułu USB do komputera przez USB, wychodzi na to że sygnał odczytuwany z nich jest na poziomie 10 mikrosekund. A jak by wyglądała sytuacja jakbym spróbował uruchomić aplikację pod systemem czasu rzeczywistego LabVIEW RT?

LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 21:46
autor: bogdani
Witaj

Zaczął bym od tego co właśnie znalazłem na stronach NI
Can I use my USB DAQ device with LabVIEW Real-Time?
As of NI-DAQmx 9.0.2 and LabVIEW Real-Time 2009 (and prior versions), USB DAQ devices are not supported for real-time targets.
Pętlę jesteś w stanie wykręcić znacznie szybszą niż pod Windowsem, ale co z tego.

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 04 mar 2010 23:24
autor: arczi
Ehhhh no to niezaciekawie to wszystko wygląda ;) Dysponuję kontrolerem PXI-8106, więc może zapytam - co należałoby do niego dołożyć aby sprzęt dał radę obsłużyć enkoder i dodatkowo wysterować pracę napędu sygnałem analogowym -10..10V ?

LabVIEW + karta USB6216 + enkoder

: 05 mar 2010 09:03
autor: bogdani
Witaj

Niestety tak sprawa wygląda, jak kupuje się sprzęt przed zdefiniowaniem zadań dla niego, czasem mam takie właśnie sytuacje. Nie wiem jak sprawa wygląda u ciebie, więc nie będę się rozczulał :-).

Co do PXI, no to przede wszystkim trzeba obudowy do kontrolera :-)

Druga sprawa. Jeśli interesują ciebie parametry, które już poruszyłeś, czyli odczyt na poziomie 5 kHz i pętla sterująca działająca podobnie no to proponuję do tego taką konfigurację:
- jakaś karta serii R - która to nie wiem, bo nie wiem co dokładnie chcesz robić i jaki duży układ FPGA będzie potrzebny
- obudowa 9151
- co najmniej dwa moduły do cRIO - we/wy cyfrowe oraz wyjście analogowe

Dzięki temu będziesz mógł rejestrować cyfrowe sygnały bezpośrednio na FPGA, zaimplementowana na FPGA logika podejmnie decyzję i wysteruje silnik poprzez ustawienie odpowiedniego sygnału na wyjściu analogowym.

Dla lepszego dobrania sprzętu najlepiej skontaktować się z biurem NI.
Jeśli potrzebujesz napisać soft to daj znać.
Tyle

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 05 mar 2010 10:20
autor: arczi
No ja dysponuję sprzetem takim jaki mam na uczelni. Sprzet ten służy też do innych celów niż tylko moje zastosowanie, stąd pytam o możliwość wykorzystania tego do zadania jakie chciałbym wykonać. Jeśli chodzi o pełna konfigurację PXI to składa on sie z: kontrolera 8106, obudowy PXI-1042Q, karty do transmisji szeregowej PXI-8431 no i wynika z tego że w takiej konfiguracji niestety nic nie zdziałam.

LabVIEW + karta USB6216 + enkoder

: 05 mar 2010 13:23
autor: bogdani
Program jak najbardziej jest do napisania na to USB, tylko niektóre parametry musisz zweryfikować i zmienić założenia do aplikacji - pętla sterująca będzie po prostu wolniejsza. Nie wiem co to za napęd i jaką ma bezwładność ten cały układ, ale czasem nie ma potrzeby tak szybko sterować, bo układ i tak wolno reaguje.

bogdani

Re: LabVIEW + karta USB6216 + enkoder

: 09 mar 2010 19:40
autor: arczi
A czy jest możliwość zastosowania innej karty pomiarowej do PXI która dała by radę sprostać tym wymaganiom które opisałem?