CNC − dla wszystkich

Transkrypt

CNC − dla wszystkich
Forum Czytelników
CNC − dla wszystkich
wiertarki, frezarki, grawerki
Sterować własnoręcznie wykonaną maszy−
ną za pomocą komputera PC − oto ma−
rzenie niejednego elektronika, mechanika,
majsterkowicza, ale również ... rzemieślni−
ka. Było to swego czasu i moim marze−
niem. Chciałem doprowadzić taki projekt
do końca i wykonać go, a nie spocząć na
pobieżnych rozważaniach. Działo się to
przed ok. 9 − 10 laty, więc z tej perspekty−
wy mogę teraz opisać swoje zmagania
z tym tematem.
Na rynku (również i w Polsce) można
znaleźć sporo różnego rodzaju sterowni−
ków, elementów systemów sterowania sil−
nikami krokowymi, serwomotorów. Moż−
na się też pokusić o wyszukanie w Inter−
necie jakiegoś darmowego oprogramowa−
nia. Z moich doświadczeń i dość licznej
korespondencji z amatorami konstruo−
wania tego rodzaju maszyn wynika jed−
nak, że po pierwszej fascynacji możliwo−
ściami sterowania w płaszczyźnie X−Y,
a jeszcze lepiej również w osi Z, zaczyna−
ją się piętrzyć trudności i zapał zanika.
Nie łudźmy się − w sieci raczej nie znaj−
dziemy gotowej recepty na działającą,
uniwersalną maszynę CNC. Poza tym do−
brze jest dokładnie wiedzieć co się dzieje
w naszym programie, aby w razie potrze−
by przerobić np. frezarkę na wiertarkę,
czy odwrotnie.
Ja postanowiłem wykonać od podstaw
sterownik, napisać program, zrobić jakiś
podstawowy prototyp mechaniczny i prze−
testować całość w akcji.
Za cel obrałem sobie nie byle co, bo wy−
konanie z drewna bukowego śmigieł do
modeli latających, jako że się nimi swego
czasu zajmowałem. Gdy teraz oglądam
śmigła wykonane przed laty na tym proto−
typie − śmigła zresztą bardzo dobrej jako−
ści − muszę nieskromnie przyznać, że sam
się dziwię, że to zrobiłem od początku do
końca.
W przedstawianej historii występuje
ważna myśl przewodnia. Ująłbym ją tak:
„Chcieć − to móc”.
Kiedyś uparłem się, że nie święci garn−
ki lepią i to się potwierdziło. Wrócę jeszcze
do lat 1990 − 1993, bo gdzieś w tym okresie
się tym zajmowałem. Wtedy nie było ta−
kich możliwości jak dziś, jeśli chodzi o sil−
niki krokowe, prowadnice i nakrętki bez−
luzowe, okrągłe śruby pociągowe itd. Zre−
sztą nigdy za bardzo nie byłem „z mecha−
niką za pan brat”. Dlatego swój prototyp
frezarki wyciąłem i posklejałem ... z drew−
na! Dowodem niech będzie tych kilka fo−
tografii zrobionych dopiero teraz, gdy zo−
stał mi tylko szkielet maszyny. Na tym dzi−
wolągu zrobiłem owe osławione śmigła.
W prasie elektronicznej znajdujemy z rzadka
jakieś artykuły traktujące o sterowaniu silni−
ków krokowych, ale z reguły kończy się na
możliwości zakręcenia wałkiem w lewo lub
prawo bez większego sensu. Niestety nie
wystarcza to do wykonania skoordynowane−
go ruchu wzdłuż zaprojektowanej krzywej
na płaszczyźnie X−Y, nie wspominając już
o osi Z.
Ten artykuł niech więc będzie w miarę
wyczerpującą instrukcją − jak wyfrezować,
powiedzmy z twardej pianki PCV, litery do
szyldu reklamowego. Jest to zadanie nieco
prostsze, niż zrobienie rzeczonego śmigła,
ale od czegoś trzeba zacząć. Omówimy zada−
nia typu grawerowanie, wycinanie, frezowa−
nie, wiercenie.
z reklamą wystarcza w zupełności. Wykorzy−
stałem możliwość eksportu pliku roboczego
do formatu *.PLT, czyli pliku ploterowego.
Plik ten zawiera w jawnej postaci zbiór par
współrzędnych kolejnych punktów, przez
które powinien przejść pisak plotera, a w na−
szym przypadku − frez. Jeśli obiektem jest
powiedzmy prostokąt
(rysunek 1a), to plik
będzie zawierał tylko
kilka wierszy, bo wy−
starcza wtedy podanie
Rys. 1a
54
Zasada sterowania
Do projektowania obiektów przeznaczonych
do wycięcia (wygrawerowania) posłużył mi
Corel. Na pewno można zrobić to samo
i w innych programach typu CAD. Ja używa−
łem Corela, który do prac związanych np.
... czego i Wam życzę...
Marek Klimczak
Elektronika dla Wszystkich
Forum Czytelników
współrzędnych wierzchołków wielokąta.
Plik prostokat.PLT wygląda następująco:
Podprogram służący do transformacji pli−
ku prostokat.PLT musi ignorować jego po−
czątkowe wiersze aż do „LT;“. Dopiero na−
stępne wiersze są dla nas istotne.
Gdybyśmy narysowali
choćby fragment krzywej
(rysunek 1b) − plik robi się
już spory, zawiera bowiem
kilkadziesiąt par współrzęd−
nych punktów. Jeżeli punkty
te połączymy odcinkami li−
Rys. 1b
nii prostych, uzyskamy tę krzywą z całkiem
niezłym przybliżeniem, które w tego rodzaju
pracach jest aż nadto wystarczające. Otrzy−
many plik to krzywa.plt.
Problemy związane ze prostokat.plt
skalą rysunku, przelicze−
niem jednostek z pliku na IN;VS32,1;
VS32,2;
kroki silników pozosta− VS32,3;
wiam Wam do samodziel− VS32,4;
nego rozwiązania ponie− VS32,5;
VS32,6;
waż wszystko zależy od za− VS32,7;
stosowanych w konkretnej VS32,8;
konstrukcji układów me− WU0;
PW0.350,1;
chanicznych.
PW0.350,2;
Jasna sprawa, tylko jak PW0.350,3;
poprowadzić frez po pro− PW0.350,4;
PW0.350,5;
stych łączących te punkty? PW0.350,6;
Na razie mamy tylko gołe PW0.350,7;
silniki i zbiór liczb w pliku. PW0.350,8;
SP1;
Oczywiście na razie nie LT;
dostrzegamy też takich niu− PU−981 2604;
2604;
ansów jak poprawka na PD1353
PD1353 1217;
promień frezu, choć Corel PD−981 1217;
sobie z tym też radzi. Mo− PD−981 2604;
żemy z nim również uzgo− SP0;
dnić, że np. wycinając literę
„A“ trzeba najpierw wyciąć wewnętrzny trój−
kąt, a dopiero później obrys całej litery, bo in−
aczej − nie będzie w czym dalej wycinać.
krzywa.plt
IN;
VS32,1;
VS32,2;
VS32,3;
VS32,4;
VS32,5;
VS32,6;
VS32,7;
VS32,8;
WU0;
PW0.350,1;
PW0.350,2;
PW0.350,3;
PW0.350,4;
PW0.350,5;
PW0.350,6;
PW0.350,7;
PW0.350,8;
SP1;
LT;
PU202 2977;
PD507 3146;
PD748 3286;
PD858 3355;
PD961 3423;
PD1057 3489;
PD1146
PD1230
PD1306
PD1377
PD1442
PD1501
PD1555
PD1603
PD1646
PD1684
PD1717
PD1745
PD1769
PD1788
PD1803
PD1815
PD1822
PD1825
PD1826
PD1822
PD1816
PD1806
PD1794
PD1779
PD1762
PD1742
PD1720
PD1697
3555;
3620;
3683;
3745;
3806;
3866;
3925;
3982;
4038;
4092;
4145;
4197;
4247;
4295;
4342;
4387;
4431;
4473;
4513;
4551;
4588;
4623;
4656;
4686;
4715;
4742;
4767;
4790;
PD1671 4811;
PD1615 4846;
PD1554 4872;
PD1489 4888;
PD1422 4896;
PD1353 4893;
PD1285 4881;
PD1219 4858;
PD1156 4824;
PD1126 4803;
PD1097 4779;
PD1069 4752;
PD1044 4723;
PD1020 4691;
PD998 4655;
PD978 4617;
PD960 4576;
PD945 4531;
PD933 4484;
PD923 4433;
PD917 4379;
PD913 4322;
PD913 4262;
SP0;
Elektronika dla Wszystkich
Chciałoby się opowiedzieć o wszystkim na
raz, ale czeka Was po kolei trochę elektroniki,
mechaniki, nieco matematyki oraz logiki.
Program
Zacznijmy od samego komputera. Mamy do
bezpośredniej dyspozycji gniazdo portu rów−
noległego (drukarkowe), a w nim (pewnie nie
każdy o tym wiedział) 12 wyjść i 5 wejść.
Póki co zainteresujemy się wyjściami.
Każde z wyjść i każdy jego bit, jest dostęp−
ne z poziomu języka, w którym napisano
program.
Fot. 4 Wózek poruszający się w osi Y
wraz z wózkiem Z.
Fot. 1 śmigła z drewna bukowego do
modeli samolotów wykonane za
pomocą opisywanego urządzenia.
Największe ma średnicę 56cm.
A propos języka − mała dygresja. Zdaję so−
bie sprawę z tego, że w tym momencie nie−
którzy się może skrzywią z niesmakiem. Bę−
dzie im to wybaczone, bo nie wiedzą, co czy−
nią. Domniemanym powodem skrzywienia
jest Turbo Basic, w którym pisałem swoje pro−
gramy. Tym, którzy się skrzywili, a znają kilka
innych, nowszych, lepszych, czy może mo−
dniejszych języków powiem, że nie ma żad−
nych przeszkód, żeby napisać to w dowolnym
języku. Ja (przynajmniej wtedy) nie znałem in−
nych, pisałem więc w TBasicu. To już nie był
ten zwykły Basic z interpreterem, tylko kompi−
lator. Efektem pracy był plik *.EXE. Wierzcie
mi − jeśli tylko ma się w danym języku coś cie−
kawego do powiedzenia − „nie widzę żadnej
różnicy“. Tak jak w życiu... A teraz do pracy.
Silniki
Fot. 2 Widok frezarki w „prawie całej
okazałości“. Wzdłuż dolnych
listew poruszał się wózek X
z przymocowanym do niego
obrabianym materiałem.
Fot. 3 Widok wózka Y i Z od dołu.
Łożyska o średnicy 15 mm
spełniały tu rolę bloczków do
linek napędowych i rolek.
Aby zakręcić silnikiem krokowym trzeba wy−
słać na wyjścia PC−ta pewną sekwencję zer
i jedynek na czterech liniach wyjściowych.
Sekwencję taką, aby na każdej kolejnej linii
pojawiła się cyklicznie jedynka. Sterownik
może wtedy mieć postać jedynie wzmacnia−
cza prądu. Uzyskujemy tzw. pracę pełnokro−
kową. W zastosowanym przeze mnie silniku
potrzeba 200 takich kroków na jeden obrót
wałka. Od razu zaznaczę, że niektóre silniki
nie lubią tego rodzaju pracy, buntują się drga−
niami, a czasem i zerwaniem dokładności pra−
cy. Lepiej więc zastosować od razu pracę pół−
krokową, czyli następującą sekwencję:
krok
prąd w fazach
1
0001
2
0011
3
0010
4
0110
5
0100
6
1100
7
1000
8
1001
9
0001
itd.
55
Forum Czytelników
Obrót podzielony jest teraz na 400
półkroków. Można więc uzyskać większą
rozdzielczość, praca jest spokojniejsza, cich−
sza. Daleko jej jeszcze do płynności, jak w
innego typu silnikach, ale mamy za to
możliwość poruszać mechanizmem posuwu
prawie za darmo i bezbłędnie.
Jest i pewne ALE. Zauważamy po chwili,
że do trzech silników wykorzystać musimy
wszystkie 12 linii wyjściowych. A co na
przykład z załączaniem silnika wrzeciona
z programu, czy innymi czynnościami, które
mogą się okazać niezbędne?
Jest na to prosta rada. Zatrudniłem do te−
go 3 dekodery z kodu BCD na „jeden z dzie−
sięciu“, czyli po prostu 3 kostki 4028. Teraz
już tylko trzema liniami możemy sterować
położeniem wałka każdego silnika i pozo−
stają jeszcze 3 wolne wyjścia. Trzeba tylko
przesunąć poziom TTL do CMOS, co widać
na schemacie (rysunek 2). Ktoś zapyta, po
co tu jeszcze CMOS−y zasilane z 12V?
Otóż łatwo nimi wysterować bramki kluczy
MOSFET, załączające uzwojenia silników.
Aby wytworzyć opisaną wyżej sekwencję
załączeń zastosowałem proste bramki OR
z diod. Rezystory ściągają potencjał bramek
do masy gdy na wszystkich wyjściach 4028
podłączonych do danej bramki przez diody,
jest poziom zero.
Teraz tabelka wygląda tak:
krok
ABC
WY 4028 =„1” abcd
1
000
0
0001
2
100
1
0011
3
010
2
0010
4
110
3
0110
5
001
4
0100
6
101
5
1100
7
011
6
1000
8
111
7
1001
9
000
0
0001
itd.
Wyjść Q8 i Q9 nie wykorzystujemy.
Przy zasilaniu stałym napięciem silniki
pobierają prąd zmniejszający się w miarę
R
E
K
L
A
M
A
Rys. 2
zowe ze względu na łatwość ich sterowa−
nia. Uzyskiwane przy ich pomocy prędko−
ści są do tych celów wystarczające.
O zasilaczu właściwie nie ma co wspo−
minać; 12V/0,5A ze stabilizacją do CMOS−
ów i ok. 12 − 13V/ prąd zależny od zastoso−
wanych silników − bez stabilizacji.
Rys. 3
Separacja
zwiększania częstotliwości. W moich kon−
strukcjach stosowałem silniki średniej wiel−
kości, tzn. średnica 60−90 mm i podobna dłu−
gość, które bez specjalnych zabiegów dają
się obracać z prędkościami od zera do 3−4
obrotów na sekundę. Aby przy maksymalnej
częstotliwości uzyskać zadowalający prąd
(i moment obrotowy) należałoby zastosować
rezystor R o dość małej wartości, a to z kolei
daje zbyt duży prąd, gdy silnik stoi. Zastoso−
wanie prostego źródła prądowego rozwiązuje
ten problem (rysunek 3). Tranzystor źródła
wymaga solidnego chłodzenia.
Reasumując − mamy już prosty sterownik
umożliwiający sterowanie trzema silnikami
za pomocą 9 linii wyjściowych portu drukar−
ki, który daje prądy silników w miarę nieza−
leżne od ich aktualnych prędkości obroto−
wych. Zastosowałem silniki unipolarne, 4−fa−
Wiem, że aby zachować zasady sztuki na−
leżałoby jeszcze oddzielić galwanicznie
sterownik od komputera za pomocą trans−
optorów. Rozwiązanie takie − wprawdzie
godne polecenia − szczerze mówiąc nigdy
u mnie nie doczekało się realizacji. Łączy−
łem zawsze te dwa pudełka „miedzią“
i (odpukać!) nigdy nie udało mi się nic po−
psuć. Mało tego − w kilku(nastu) warszta−
tach produkcyjnych pracują maszyny mo−
jej konstrukcji, połączone w ten sam sposób
i jest z nimi wszystko w porządku. Radził−
bym na razie przyjąć takie uproszczenie,
zwłaszcza gdy używa się starego PC−ta, który
i tak wkrótce spocząłby na strychu. Zasadą
powinno jednak być połączenie kablem dru−
karkowym przed załączeniem obu urządzeń
do sieci i pewne połączenia masy.
To tyle na temat elektroniki, zajmijmy się
w końcu programem.
Ciąg dalszy w następnym numerze EdW.
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
Errare Humanum Est
W EdW 9/2001 zwróciliście uwagę tylko na dwie
drobne usterki (nie licząc kilku literówek):
Str. 14 rys. 1 − kondensator C11 powinien być naryso−
wany odwrotnie.
56
Str. 52 rys. 5 − dodatkowe gniazda należy podłączyć do
punktów B, E (a nie do E i A).
Nagrody otrzymują: Jan Markowski z Gdańska
i Krzysztof Adamajtis z Jaworzna.
Elektronika dla Wszystkich

Podobne dokumenty