LabVIEW + karta USB6216 + enkoder
LabVIEW + karta USB6216 + enkoder
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.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
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
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.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
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
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?
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
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
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?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ę.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
Wejścia cyfrowe ustalają się szybko, problem jest tylko w dostępie do ich wartości.
bogdani
Re: LabVIEW + karta USB6216 + enkoder
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?
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
Witaj
Zaczął bym od tego co właśnie znalazłem na stronach NI
bogdani
Zaczął bym od tego co właśnie znalazłem na stronach NI
Pętlę jesteś w stanie wykręcić znacznie szybszą niż pod Windowsem, ale co z tego.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.
bogdani
Re: LabVIEW + karta USB6216 + enkoder
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 ?
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
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
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.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
LabVIEW + karta USB6216 + enkoder
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
bogdani
Re: LabVIEW + karta USB6216 + enkoder
A czy jest możliwość zastosowania innej karty pomiarowej do PXI która dała by radę sprostać tym wymaganiom które opisałem?