CCNNNCCC − ddlllaaa wwssszzzyyyssstttkkkiiiccchh
Transkrypt
CCNNNCCC − ddlllaaa wwssszzzyyyssstttkkkiiiccchh
Forum Czytelników CNC − dla wszystkich wiertarki, frezarki, grawerki Garść obliczeń Cóż, na początku był ... punkt, a właściwie dwa punkty. Od jednego − A(x1, y1) do drugiego − B(x2,y2) chcemy przeprowadzić po linii pro− stej złowieszczo wirujące narzędzie. Przy tym powinna być utrzymana stała (ewentual− nie regulowana) prędkość posuwu − niezależ− nie od położenia obu tych punktów; do tego jeszcze wrócimy. Dla uproszczenia najpierw zajmijmy się przypadkiem, gdy w układzie współrzędnych X−Y punkt B jest „sporo da− lej“ i „nieco wyżej“ niż punkt A (rysunek 4). Załóżmy, że mamy już frez w punkcie A, a wartości x i y wyrażone są po prostu w kro− kach silników. Jeszcze uwaga: ilekroć dalej będzie mowa o krokach, będę miał na myśli półkroki, bo taki mamy przecież sterownik. Rys. 4 W celu pokonania odległości A−B silnik X musi wykonać (x2−x1) kroków, a silnik Y − (y2−y1) kroków. Rzecz jasna nie może to być tak, że najpierw jeden silnik wykona swoją pracę, a dopiero potem ruszy drugi. Aby to zapewnić obliczmy, ile kroków silni− ka Y musi przypadać na 1 krok silnika X. 60 Kłania się podstawówka: m=(y2−y1)/(x2−x1). Toż to przecież nic innego jak współczynnik kierunkowy prostej przechodzącej przez punkty A i B. Jeśli więc np. mielibyśmy punkt A o współrzędnych 100 i 50 oraz B(220,70), to m=20/120=1/6. Przekładając to na język naszej frezarki: na jeden krok silni− ka X przypada 1/6 kroku silnika Y. Jeszcze inaczej − silnik Y ma wykonywać jeden krok co szósty krok silnika X. I nie jest tu specjalnie ważne, czy silnik Y wykona swoje kroki w czasie np. 1, 7,13 itd. kroku silnika X, czy w czasie 2, 8, 14 itd. kroku, czy też np. w czasie 4, 10, 16 itd. kro− ku. Przy przemieszczaniu się stołu lub narzę− dzia o powiedzmy 0,01 mm na 1 krok − nie ma to w większości przypadków istotnego znaczenia. A jak w ogóle wykonywane są poszcze− gólne kroki. Program cały czas w pętli DO − LOOP kontroluje aktualną wartość x i y. Jeśli akurat mamy przypadek opisany wyżej, czyli m<1 − program dodaje do aktualnej współrzędnej x w kolejnych, równych odstępach czasu wartość d=1 krok. W każdym obiegu pętli wysyłana jest na port drukarki kolejna wyli− czona sekwencja stanów dla faz silnika X, odpowiadająca kolejnym krokom. Do współ− rzędnej y natomiast dodawana jest w każdym przejściu pętli 1/6 kroku. Kolejny swój krok silnik Y wykona zatem dopiero po przekro− czeniu wartości y równej kolejnej liczbie cał− kowitej, czyli zawsze co 6 kroków silnika X. W każdym przejściu pętli oczywiście spraw− dzany jest warunek, czy x>x2, aby w odpo− Styczeń 2002 część 2 wiednim momencie zakończyć odcinek ru− chu A−B i pobrać z pliku dane dla następne− go odcinka. Okrutna rzeczywistość znów jednak sta− wia przed nami schody − przecież frez nie za− wsze porusza się po prostej spełniającej wa− runek 0<m<1. W programie musiałem zatem wyszczególnić 8 przypadków w zależności od położenia punktu B względem punktu A. Rozpatrzmy jeszcze drugi podstawowy przy− padek, gdy m>1. Gdyby zastosować teraz po− wyższą procedurę, to na jeden krok silnika X mogłoby przypadać kilka kroków silnika Y. Wtedy silnik Y pogubiłby kroki, ponieważ dla zapewnienia dokładnej pracy wymagane jest przechodzenie kolejno przez wszystkie sąsiednie kroki − bez przeskoków. Zrobiłem więc tak, że jeśli jest m>1, to te− raz współrzędna y zwiększa się o jeden krok przy każdym przejściu pętli, a x zwiększa się w każdym przejściu o 1/m. Sytuacja jest więc analogiczna do poprzedniej z tym, że „takt“ wyznacza teraz silnik Y. Nie ma możliwości przyrostu x ani y większego niż 1 krok, za− tem wszystko gra. Żeby znów nie było zbyt łatwo, trzeba przewidzieć jeszcze 6 przypadków − po 2 w każdej ćwiartce układu współrzędnych X− Y. Jeden dla |m|<1 i drugi dla |m|> 1. Wszystko (tzn. frezowanie) odbywa się w bezwzględnym układzie współrzędnych X−Y, a dokładniej w jego pierwszej ćwiartce, natomiast dla potrzeb powyższego rozumo− wania tworzymy za każdym razem lokalny układ współrzędnych o początku w punkcie A(x1,y1). Dopiero teraz, w zależności od Elektronika dla Wszystkich Forum Czytelników tego w której jego ćwiartce znajduje się punkt B i od wartości |m| program wybiera stosowny przypadek i realizuje ruch do punk− tu B(x2,y2). Dla przykładu: mamy, powiedzmy, punk− ty A(150,20) i B(100,30), czyli B leży w II ćwiartce lokalnego układu współrzędnych i |m|=(30−20)/(150−100)=1/5. Silnik X cofa się po 1 kroku w każdym przejściu pętli, a silnik Y wykonuje 1 krok naprzód co 5 kroków silnika X. Oto wspomniane 8 przypadków: 1 x2>x1 y2>y1 |m|<1 2 x2>x1 y2>y1 |m|>1 3 x2<x1 y2>y1 |m|<1 4 x2<x1 y2>y1 |m|>1 5 x2<x1 y2<y2 |m|<1 6 x2<x1 y2<y1 |m|>1 7 x2>x1 y2<y1 |m|<1 8 x2>x1 y2<y1 |m|>1 Czas i prędkość Wróćmy jeszcze na chwilę do prędkości ru− chu. Wyobraźmy sobie wycinanie trójkąta z rysunku 5. Frez pokona odcinek A−B o długości 1000 kroków w czasie po− wiedzmy 5s, potem taki sam długi odcinek B−C również w czasie 5s i na koniec odcinek C−A, czyli odległość 1414 kroków − ale... w jakim czasie? Rys. 5 Okazuje się, że również 5s! Fatalnie. No cóż, program w każdym odcinku wykonuje po 1000 przejść pętli, traci więc na to tyle sa− mo czasu. Ale nic to. Aby zachować stałą prędkość postępową frezu należy po prostu czas dodat− kowego opóźnienia w pętli uzależnić od ab− solutnej wartości współczynnika kierunko− wego prostej czyli |m| lub od 1/|m| gdy, m > 1. Podpowiem, że trzeba to ustalić trochę do− świadczalnie, bo same obliczenia i wykony− wanie innych instrukcji w pętli zabierają tro− chę czasu, a do niego trzeba dodać pewien dodatkowy czas zależny od |m|. Rzecz jasna − w pętli należy również umieścić fragment badający klawiaturę, aby można było w dowolnej chwili wstrzymać wykonywanie programu w celu np. wymiany frezu lub w sytuacji jakiegoś zagrożenia. Łatwo zauważyć, że komputer traci o wie− le mniej czasu na badanie stanu wejść portu drukarki niż na badanie stanu klawiatury. Le− piej jest na maszynie umieścić przycisk Elektronika dla Wszystkich STOP i podłączyć go do jednego z wejść po− pozostałe silniki. Trzeci silnik ma za zadanie rtu. Komputer nie zawsze musi stać blisko opuścić frez na zadaną na wstępie głębokość maszyny, a dodatkowo mamy oszczędność podczas frezowania i podnieść go z powro− czasu, czyli możemy zastosować gorszy tem ponad materiał obrabiany po zakończe− (starszy i tańszy) „blaszak”. I przycisk STOP niu pracy lub jej fragmentu. Taką maszynką jest zawsze pod ręką. W moim programie na− można również wiercić np. płytki drukowa− ciśnięcie STOP−u powodowało natychmia− ne; wtedy oś Z nabiera może nieco więcej stowe wyłączenie silnika wrzeciona, zatrzy− prestiżu. manie posuwów X i Y oraz wyjechanie frezu W pliku PLT z Corela mamy na początku w górę ponad materiał na „z góry upatrzoną każdego wiersza ze współrzędnymi 2 literki: pozycję”. Po usunięciu przyczyny zatrzyma− PD albo PU (Pen Down, Pen Up). Program nia − teraz już z klawiatury, z odpowiednią musi reagować na nie tak, że jeśli po raz zachętą płynącą z ekranu − można było spo− pierwszy w kolejności pobierania danych wy− wodować ponowne załączenie silnika wrze− stąpi PD, to trzeba zatrzymać posuwy X−Y, ciona, automatyczny zjazd frezu z powrotem opuścić frez i dopiero jechać do punktu na poprzednią głębokość w obrabiany mate− o współrzędnych podanych za PD. Jeśli nato− riał i kontynuowanie posuwów X−Y. miast pierwsze 2 znaki zmieniają się z PD na Mając dość szybki komputer (jak na star− PU, to również zatrzymujemy posuwy, wyjeż− sze modele), czyli w granicach 100MHz, dżamy z frezem do góry i kontynuujemy jazdę można pokusić się w każdym przejściu pętli X−Y ponad obrabianym materiałem. Można o badanie klawiszy + i − żeby w ten sposób przy tych pustych przebiegach wyłączać silnik mieć możliwość zmiany prędkości posuwów wrzeciona, ale może się wtedy okazać ko− w trakcie pracy. Bardzo przydatna funkcja. nieczne odczekanie, przed ponownym jego I znowu, jeśli brakuje prędkości − wyko− opuszczeniem, na uzyskanie maksymalnej rzystujemy dodatkowe wejścia portu drukarki. prędkości obrotowej wrzeciona. Dla przeciętnego pro− gramisty to zabawa − spo− wodować, aby naciskanie „+“ powodowało stopnio− we zwiększanie opóźnie− nia w pętli, ale tak aby za− chować stosowną propor− cję zależności tego czasu od |m|. Naciskamy „−“ i prędkość posuwów się zmniejsza, a na ekranie widzimy jaka jest jej ak− tualna wartość. Pozostałe wejścia można wykorzystać na przykład do podłączenia wyłączników krańcowych Fot. 5 Widok tylnej ścianki sterownika. Gniazdo kabla w osiach X i Y. Nie jest to drukarkowego (połączenie z PC), trzy wyjścia do konieczne, ponieważ przy silników krokowych, port sieciowy z wyłączni− niezbyt przecież mocnych kiem, bezpiecznik sieciowy. silnikach krokowych po dojechaniu do końca me− Fot. 6 Widok sterownika z przodu. Gniazdo sieciowe chanicznego zakresu pra− służy do zasilania silnika wrzeciona i jest obsługi− cy danej osi nic specjalne− wane przez program lub ręcznie. go się nie stanie, poza oczywiście całkowitą utratą kontroli nad dalszą częścią pracy. Luksus, czyli oś Z Jeszcze cokolwiek o osi Z. W maszynie typu grawer− ka czy frezarka do liter z plexi, oś Z napędzana jest wprawdzie też silni− kiem krokowym, ale nie korzysta on z danych z pliku. Przynajmniej nie tak intensywnie jak 2 Styczeń 2002 61 Forum Czytelników Po opanowaniu podstawowych funkcji maszyny okazuje się, że z osią Z też można się zabawić dłużej. Na przykład można (a na− wet powinno się) zróżnicować prędkość sil− nika poruszającego narzędzie w osi Z zależ− nie od potrzeb technologicznych i optymali− zacji czasu pracy. Podczas pozycjonowania − tak jak i w osiach X i Y − powinniśmy mieć możliwość szybkiego (np. po 800 kroków czyli 2 obroty) i powolnego ale dokładnego zmieniania położenia z jednoczesnym wy− świetlaniem aktualnej pozycji w milime− trach. Podczas zjeżdżania frezu w dół pręd− kość w osi Z może być większa, gdy frez je− szcze jest ponad materiałem, ale musi być odpowiednio mała podczas zagłębiania się w materiał. Podczas podnoszenia może być cały czas duża. Widać z tego, że i tu jest spo− re pole do popisu dla „pisarzy” programów. Tak to wygląda... Cały program trzeba oczywiście ozdobić mniej lub bardziej luksusowym interfejsem użytkow− nika − na miarę potrzeb lub/i możliwości, aby korzystanie z niego nie było katorgą. Opisałem głównie zasadę współbieżnej pracy 2 silników w celu uporania się z trasą zgodną z tym co zaprojektowaliśmy sobie w Corelu. Zaznaczę jeszcze, że jest to „moja” zasada. Ja ładnych kilka lat temu taką sobie wymyśliłem, sprawdziłem i zaświadczam, że działa. Szczerze mówiąc nie wiem, jak się to dzieje w profesjonalnych „poważnych“ pro− gramach, tym niemniej przy wykorzystaniu opisanej metody wykonałem serię drewnia− nych śmigieł (na fotografii) oraz sporą liczbę styropianowych liter do reklam. Według podobnej metody działa przerobiona z moją pomocą duża frezarka górnowrzecionowa, która frezuje całkiem poważne, zoptymalizo− wane pod względem przyśpieszeń na zwrotach rowki śrubowe w stalowych wał− kach przeznaczonych do mechanizmów wo− dzących maszyn włókienniczych. Z powo− dzeniem też pracuje kilka małych frezarek do różnych materiałów, kilka grawerek, wiertar− 62 Fot. 7 Wnętrze sterownika. Płytka dru− kowana z elementami SMD. Po le− wej stronie rezystory źródeł prą− dowych silników krokowych. Rząd tranzystorów MOSFET doci− śnięty jest do podstawy − blachy Al − paskiem sprężystej blachy stalowej. W dole fotografii widać 2 uchwyty do wentylatora, który chłodzi rezystory mocy i fragment najbardziej obciążony cieplnie − w okolicy tranzystorów źródeł prądowych. ka do płytek drukowanych oraz słusznej po− stury prasa do wycinania otworów w arku− szach blachy stalowej. Jeśli temat spotka się z zainteresowa− niem, postaram się odpowiedzieć na Wasze ewentualne pytania w Poczcie EdW, w Skrzynce porad, albo w ramach kolejnego artykułu. Marek Klimczak [email protected] Od Redakcji. Osoby zainteresowane zapre− zentowanym fascynującym tematem znajdą na stronie internetowej EdW www.edw.com.pl/library/pliki/frezarki.zip garść dalszych wskazówek, przykłady i frag− Styczeń 2002 Fot. 8 W górnej części fotografii widać zasilacz impulsowy 12V/6A, który zasila część CMOS−ową i silniki krokowe. Fot. 9 Widok od spodu płytki sterownika. Widać, że nie jest to urządzenie produkowane seryjnie... menty programów. Bardzo prosimy o nadsy− łanie listów z opiniami i pytaniami dotyczą− cymi przedstawionego materiału bezpośre− dnio do Autora albo do Redakcji. W razie po− trzeby poprosimy Autora o zaprezentowanie na łamach EdW dalszych informacji. Jeśli ktoś ma doświadczenia z podobnymi maszynami, również prosimy o kontakt. Roz− ważamy też możliwość ogłoszenia konkursu na projekt sterowanej komputerem wiertarki do płytek drukowanych, wykorzystującej. Prosimy o listy w tej sprawie. Elektronika dla Wszystkich