Czyli tak jak napisałem? Wysyła sie tylko impulsy bez czytania enkodera. Elektronika serwa martwi się o to, żeby zatrzymać się po iluś tam obrotach w tej samej pozycji? (teoretycznie)? A tak jaśniej - wysyłam 800 impulsów i nie sprawdzam czy faktycznie serwo zrobiło te 800 kroków i zakładam że je zrobiło? nie mieszam już w to dodatkowego enkodera?
A czy ktoś ma przykład samej obsługi enkodera w C? Chodzi mi o to czy jest zrealizowana tylko na przerwaniach, czy w trybie licznika (np CTC), czy też licznika który liczy góra/dół (tego akurat nie wiem jak zrealizować - jeszcze)
Znaleziono 6 wyników
Wróć do „Enkoder kwadraturowy - szybki "algorytm odczytu"”
- 18 wrz 2011, 16:35
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
- 18 wrz 2011, 08:40
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
W granicach 1 do 7obr/s - a może nawet ok 20obr/s.
Przy formowaniu impulsów używałem 74LS14 z jakaś małą pojemnością i na oscyloskopie przebiegi były ok, bez szpilek itp.
Czy przy zastosowaniu zwykłego serwa do programu sterującego (np. Mach) zwracana jest ilość impulsów z enkodera i na tej podstawie ustalana pozycja, czy wysyłane są impulsy o konkretnej ilości a serwo i jego elektronika martwi się o resztę?
Tak jak mówiłem jestem kompletnym laikiem i dopiero zaczynam w temacie napędów do CNC, a czytając taką ilość materiałów jaka jest w necie, mam pożar mózgu...
Przy formowaniu impulsów używałem 74LS14 z jakaś małą pojemnością i na oscyloskopie przebiegi były ok, bez szpilek itp.
Czy przy zastosowaniu zwykłego serwa do programu sterującego (np. Mach) zwracana jest ilość impulsów z enkodera i na tej podstawie ustalana pozycja, czy wysyłane są impulsy o konkretnej ilości a serwo i jego elektronika martwi się o resztę?
Tak jak mówiłem jestem kompletnym laikiem i dopiero zaczynam w temacie napędów do CNC, a czytając taką ilość materiałów jaka jest w necie, mam pożar mózgu...
- 17 wrz 2011, 20:29
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
zgadza się, ale w przykładzie, w linku, enkoder obracany jest ręcznie. Sprawdziłem i wtedy nie ma pomyłki, natomiast przy silniku myly się bardzo. 2500imp/obr ponieważ w eziservo enkoder ustawiony jest na sztywno i nie można tego zmienić (mówię oczywiście o sprzętowym bo programowy ma taką możliwość, ale nie zmienia na wyjściu podglądu enkodera, ilości impulsów.
- 17 wrz 2011, 00:53
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
qqaz - sprawdziłem, ala albo ja jestem zbyt "cienki w bascomie" albo to kiepsko działa` (mimo wszystko sprawdziłem i coś jest nie tak - tu gubi i tak - mimo wszystko b. dziękuję bo podsunęło mi pomysła)
Chwilowo poległem z tym tematem, ale z tego co się doczytałem to na wyjściu enkodera eziservo jest rs422 i tego tematu nie znam, więc muszę dokładnie doczytać bo najpewniej tu poległem (dodałem 74hct14 do wyjścia "+" itd - standard przy formowaniu sygnału ale chyba mnie poniosła wyobraźnia...).
Pytanie - czy przy zastosowaniu klasycznego serva (silnik dc +enkoder wbudowany +sterownik PID) też - przy klasycznych rozwiązaniach cnc - stosuje się enkoder dodatkowy, czy wystarczy podawanie samych impulsów w określonej ilości?
Przepraszam, że zadaję laickie pytania, ale to pierwsza próba ogólnie z serwami.
Chwilowo poległem z tym tematem, ale z tego co się doczytałem to na wyjściu enkodera eziservo jest rs422 i tego tematu nie znam, więc muszę dokładnie doczytać bo najpewniej tu poległem (dodałem 74hct14 do wyjścia "+" itd - standard przy formowaniu sygnału ale chyba mnie poniosła wyobraźnia...).
Pytanie - czy przy zastosowaniu klasycznego serva (silnik dc +enkoder wbudowany +sterownik PID) też - przy klasycznych rozwiązaniach cnc - stosuje się enkoder dodatkowy, czy wystarczy podawanie samych impulsów w określonej ilości?
Przepraszam, że zadaję laickie pytania, ale to pierwsza próba ogólnie z serwami.
- 16 wrz 2011, 09:26
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
Dziękuję za zainteresowanie.
Pytanie do Ezbig - w nieskończonej pętli. I dane były odczytywane z licznika, czy w inny sposób? ja robię to obecnie (w bascomie) w przerwaniu tak:
gdzie:
imp to zmienna typu integer - zliczane impulsy
1mm to droga do pokonania.
odl to droga zadana
clk to zewnętrzny generator (włączany 0)
To jest to, co robi w przerwaniu. W głównej pętli jest obsługa wyświetlacza, ale działa tylko wtedy gdy zakończy się przerwanie i tylko raz. Procek to Atmega 16 z kwarcem 14745600Hz
wzorowałem się na tym linku:
http://www.mcselec.com/index.php?option ... &Itemid=57
Pytanie do Ezbig - w nieskończonej pętli. I dane były odczytywane z licznika, czy w inny sposób? ja robię to obecnie (w bascomie) w przerwaniu tak:
Kod: Zaznacz cały
Obroty:
If 1mm <> Odl Then
If Phase_b <> Phase_a Then
Incr Imp
If Imp >= 2500 Then
Imp = 0
Incr 1mm
End If
Else
Decr Imp
If Imp =< -2500 Then
Imp = 0
Decr 1mm
End If
End If
Else
Set Clk
Disable Int2
Imp = 0
End If
Return
imp to zmienna typu integer - zliczane impulsy
1mm to droga do pokonania.
odl to droga zadana
clk to zewnętrzny generator (włączany 0)
To jest to, co robi w przerwaniu. W głównej pętli jest obsługa wyświetlacza, ale działa tylko wtedy gdy zakończy się przerwanie i tylko raz. Procek to Atmega 16 z kwarcem 14745600Hz
wzorowałem się na tym linku:
http://www.mcselec.com/index.php?option ... &Itemid=57
- 15 wrz 2011, 17:56
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6366
Enkoder kwadraturowy - szybki "algorytm odczytu"
Mam pytanie odnośnie prawidłowego (powiedzmy "profesjonalnego") algorytmu obsługi enkodera (zasadę działania znam,ale...), lub wytłumaczenia jak chłopu na miedzy jak powinno się to prawidłowo zrealizowac w programie ( w przerwaniach, liczniku czy inaczej?).
Posiadam enkoder o rozdzielczości 2500imp/obr zintegrowany z silnikiem krokowym (ezi-servo). Wszelkie wcześniejsze próby na Atmega16 i bascomie (wiem, wiem ale dopiero zaczynam z programowaniem...), przy częstotliwości z jednego kanału ok 12khz i jednym przerwaniu jako tako wychodziły - w najlepszym przypadku mylił się o 10imp. Czy jest jakiś "standardowy" algorytm i sposób odczytu?
Przeczytałem naprawdę sporo materiałów i naprawdę do tego się przyłożyłem ale dokładność jaką uzyskuję jest jak dla mnie b. mała... Kanały z których odczytuję to A i B (bez negacji)
Z góry dziękuję za pomoc.
Jeżeli napisałem w złym dziale, to przepraszam i proszę o przeniesienie do właściwego.
Posiadam enkoder o rozdzielczości 2500imp/obr zintegrowany z silnikiem krokowym (ezi-servo). Wszelkie wcześniejsze próby na Atmega16 i bascomie (wiem, wiem ale dopiero zaczynam z programowaniem...), przy częstotliwości z jednego kanału ok 12khz i jednym przerwaniu jako tako wychodziły - w najlepszym przypadku mylił się o 10imp. Czy jest jakiś "standardowy" algorytm i sposób odczytu?
Przeczytałem naprawdę sporo materiałów i naprawdę do tego się przyłożyłem ale dokładność jaką uzyskuję jest jak dla mnie b. mała... Kanały z których odczytuję to A i B (bez negacji)
Z góry dziękuję za pomoc.
Jeżeli napisałem w złym dziale, to przepraszam i proszę o przeniesienie do właściwego.