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