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

Podobne dokumenty