Znaleziono 6 wyników

autor: tengu
18 wrz 2011, 16:35
Forum: Automatyka przemysłowa
Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
Odpowiedzi: 18
Odsłony: 6366

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)
autor: tengu
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...
autor: tengu
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.
autor: tengu
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.
autor: tengu
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:

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
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
autor: tengu
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.

Wróć do „Enkoder kwadraturowy - szybki "algorytm odczytu"”