Projekt programu do sterowania urządzeniami CNC

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych

Autor tematu
mariuszlorenc
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 31
Rejestracja: 22 kwie 2008, 10:43
Lokalizacja: Katowice

Projekt programu do sterowania urządzeniami CNC

#1

Post napisał: mariuszlorenc » 22 kwie 2008, 11:03

Witam, jestem nowy na forum, więc jeżeli nie ten dział to bardzo przepraszam. Cel jest szczytny i wydaje mi się, że zostanie mi to wybaczone ;)

Kończę właśnie technikum elektroniczne i od roku konstruuje własną frezarkę CNC. Jak pewnie większość użytkowników forum posiadam laptopa bez LPT.

Do rzeczy... piszę program dla WIN32 do obsługi min. mojej frezarki, ale pragnę zaimplementować obsługę praktycznie dowolnej. Protokół przesyłania danych to RS232, a w przyszłości USB(narazie umiem tylko obsłużyć HID, który jest za wolny). Działa poruszanie wszystkimi posuwami i powrót do pozycji początkowej.

W planach jest oczywiście frezowanie z plików BMP(kolory) oraz innych graficznych; plików z programów CAD jak AutoCAD oraz innych(dowolnych) programów i plików.

Cel tego postu: prosił bym was o parę informacji oraz sugestii odnośnie programu. Program zostanie udostępniony w sieci za Free wraz z opisem protokołu transmisji oraz schematem i przykładem hardware'u. W przyszłości gdy niezbędne będzie zastosowanie USB będę sprzedawał hardware po bardzo okazyjnych cenach. Udostępniony hardware będzie między innymi pozwalał na podłączenie programu do frezarki ze sterownikiem opartym o złącze LPT.

Informacje: prosił bym o informację odnośnie plików CAD'owskich, a konkretnie DXF. Przydał by się też krótki opis jak np. wykryć, że ma być wyfrezowana wewnętrzna lub zewnętrzna strona kwadratu z pliku DXF. Nie wiem czy jest to możliwe, ale wydaje mi się, że można zrobić obliczenia frezowania dla gotowego projektu przedmiotu do wyfrezowania.

Podsumowanie: proszę o wszelkie uwagi, porady oraz niezbędne informacje. Na poważnie wezmę się za to od Lipca(teraz matura i egzamin zaawodowy). Jak już pisałem program będzie za darmo do czasu uruchomienia w nim USB - co nie będzie oznaczało, że wcześniejsze wersje będą licencjonowane. Chcę udostępnić porządne narzędzie do pracy osiągalne za darmo amatorom, a pozwalające na profesjonalną pracę.

Pozdrawiam,
Marenc
Mariusz Lorenc
[email protected]



Tagi:


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#2

Post napisał: jarekk » 22 kwie 2008, 12:17

Nie jestes pierwszy :-)

https://www.cnc.info.pl/topics81/step2c ... .htm#66932

Parę uwag:
- zginiesz próbując interpretować DXF'y - lepiej zrobić urządzenie obsługijące G - kody
- moje urządzenie będzie obsługiwać Step2Cnc, później będzie dostępny plugin do Mach'a - tak jest prosciej, inaczej sam musisz budować program typu CAM (!!)
- pojedynczy procek ( typu ARM, zegar < 70MHz, USB ) pociągnie czestotliwsc generowania impulsów do poziomu 50-100kHz ( u mnie program ląduje na karcie pamięci, potem współbierznie obsługują go 4 proceosry ARM7 ( na każdą o) plus jeszcze jeden główny rozdzielający zadania)

Zadawaj konkretne pytania, to chętnie pomogę.


korinsj
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 2
Posty: 80
Rejestracja: 08 wrz 2004, 18:20
Lokalizacja: Miłoszyce
Kontakt:

#3

Post napisał: korinsj » 22 kwie 2008, 12:46

Ja również właśnie nad czymś takim siedzę. Całość elektroniki podzieliłem na kilka płytek: mostek na power-mosach, czoper do obsługi silników krokowych/DC/BLDC itp (na ARM7 analoga), płytka we/wy (krańcówki, klawiatura, parę dodatkowych we/wy), oraz płyta główna - ARM7 atmela, 16MB 32bit SDRAM na bufor i tablice, transmisja z PC po USB.

Do tego soft pod Windowsa - program sterujący i CAD z użyciem typowo dla CNC.

SM


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#4

Post napisał: jarekk » 22 kwie 2008, 13:04

Każdy sposób jest dobry :-)

Ja mam dwie płytki - jedna to sterownik główny ( LPC2378 + 4x LPC2103 ). Nie robię do tego sterowników silników - sterownik tylko generuje sygnały STEP/DIR dla 4 osi.
Drugą płytką jest płytka manipulatora - podłączana po CANie. Zawiera małego procka do klawiatury, potencjometrów cyfrowych i analogowych ( generalnie niekrytyczne sygnały I/0).

Zamiast SDRAM wybrałem NAND'a, bo jego szybkosć dostępu wystarcza, a można składować program i docelowo włączać wszystko bez komputera ( mam jeszcze wyprowadzenia na czytnik SD/MMC ).

Kolega ambitnie chce zrobć wszystko :-] - cały sprzęt wraz z oprogramowaniem.
Ja wybrałem wersję "lżejszą" - istniejący CAM ( Step2Cnc, potem Mach), nie robię też sterownika napędów ( przynajmniej na razie).

Odebrałem już pierwszą płytkę ( 2 warstwowa do maniuplatora), w piątek będzie gotowa płytka główna ( 4 warstwy ) - wtedy zrobię zdjęcia.
Mam kolega może co do pokazania ? Jaką częstotliwosc pracy chce kolega osiągnąć ( czy też będzie to rozwiązanie z dedykowanymi kontrolerami silników - bez generacji sygnałów STEP/DIR )?


korinsj
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 2
Posty: 80
Rejestracja: 08 wrz 2004, 18:20
Lokalizacja: Miłoszyce
Kontakt:

#5

Post napisał: korinsj » 22 kwie 2008, 13:40

Do "jarekk" - napisałem emaila na priva. Nie mam jeszcze projektu skończonego, więc nie będę się bez sensu chwalił. Odpisz mi na priva, to nie będziemy grupy zaśmiecać.

Pozdrawiam,
SM


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#6

Post napisał: jarekk » 22 kwie 2008, 21:35

Ok


Autor tematu
mariuszlorenc
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 31
Rejestracja: 22 kwie 2008, 10:43
Lokalizacja: Katowice

#7

Post napisał: mariuszlorenc » 23 kwie 2008, 11:16

Co do USB na ARM i tej "tragicznej" wg. Ciebie prędkości. Jest możliwość uruchamiania procesów na uC i raportowania o ich zgodności z danymi na PC ... taka mała sztuczka, a działa.

Co do procesów CAM to chcę napisać własny i niezależny software. Za DXF'y pewnie i tak się zabiorę, ponieważ znajomy tworzy nietypową frezarkę na zarobek i będzie mu taki program niezbędny.

Mając na myśli hardware ... chodziło mi nie o cały układ wykonawczy, ale tylko sterownik I/O podłączany do sterowników silników(STEP/DIR lub fazowych MOS-FET'ów).

Chodzi o zredukowanie kosztów software'owych oraz hardware'owych. Z waszych wypowiedzi widzę, że raczej nikt mi nie pomoże ... no ale cóż ... ja się tak łatwo nie poddaję. Jedynie co to chyba zacznę od HPGL'ów, a nie DXF'ów jak planowałem. Co do G-CODE'ów to nie znalazłem porządnego opisu w internecie, albo są w nich nieścisłości.
Z poważaniem,
Marenc
Mariusz Lorenc
[email protected]


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#8

Post napisał: jarekk » 23 kwie 2008, 11:35

mariuszlorenc pisze:Co do USB na ARM i tej "tragicznej" wg. Ciebie prędkości. Jest możliwość uruchamiania procesów na uC i raportowania o ich zgodności z danymi na PC ... taka mała sztuczka, a działa.
Nie za bardzo rozumiem - "możliwość uruchamiania procesów na uC i raportowania o ich zgodności z danymi na PC" można prosić o więcej szczegółów ?
mariuszlorenc pisze: Co do procesów CAM to chcę napisać własny i niezależny software. Za DXF'y pewnie i tak się zabiorę, ponieważ znajomy tworzy nietypową frezarkę na zarobek i będzie mu taki program niezbędny.
Wudaje mi się że Piotr Rakowski ( proponuję poszukać na forum) narzekał że jest aż 9 różnych formatów DXF'a ( w sensie różnych wersji) i że jest problem z dokumentacją do nich ( alboi ciężko dostępna albo płatna). Są też komercyjne pakiety które dają ich obsługę.

Program CAM to bardzo wielkie wyzwanie. IMHO prociej na początku jedna korzystać z gotowego pakietu CAM ( nie musi to być od razu za kilo$, są też tanie).
mariuszlorenc pisze:Mając na myśli hardware ... chodziło mi nie o cały układ wykonawczy, ale tylko sterownik I/O podłączany do sterowników silników(STEP/DIR lub fazowych MOS-FET'ów).
To akurat jest najprostsze - wystarczy kupić "kit" do procesora LPC2418, lub innego - np:
http://www.shop.kristech.eu/product_inf ... cts_id=146

Sugeruję zbudowanie chociaż szkieletu aplikacji oraz pierwszego działającego prototypu przed docelowym projektem elektroniki.

mariuszlorenc pisze:Chodzi o zredukowanie kosztów software'owych oraz hardware'owych. Z waszych wypowiedzi widzę, że raczej nikt mi nie pomoże ... no ale cóż ... ja się tak łatwo nie poddaję. Jedynie co to chyba zacznę od HPGL'ów, a nie DXF'ów jak planowałem. Co do G-CODE'ów to nie znalazłem porządnego opisu w internecie, albo są w nich nieścisłości.
Proponuję jednak poszukać opis G-Code ( dużo jest nawet u nas na forum). Niech kolega znajdzie jakis CAM, wygeneruje z niego G-kody ( może to być nawet Mach lub Step2Cnc) i obejrzy. G-kodów jest dużo, ale naprawdę wiele można zrobić już na kilku pojedynczych. HPGL nadaje się w zasadzie do 2D.

Pomożemy - prosimy tylko o szczegółowe pytania. Możemy też ocenić pewne pomysły ( co też teraz robię).

Proponuję też obejrzenie projektu open-source ( do inspiracji - zrobili poniekąd to co kolega planuje)
http://fabathome.org/wiki/index.php?title=Main_Page


Autor tematu
mariuszlorenc
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 31
Rejestracja: 22 kwie 2008, 10:43
Lokalizacja: Katowice

#9

Post napisał: mariuszlorenc » 23 kwie 2008, 11:55

Co do uruchamiania procesów. Z PC wysyłasz informację o całym posuwie, a pracę frezarki kontroluje sam uC. Co pewien czas uC komunikuje się z PC(w obie strony), aby wyświetlać prawidłowe dane i wykonywać operacje typu zatrzymania krytycznego(takie dane kontrolne). Dzięki takiemu rozwiązaniu możliwe jest uzyskanie praktycznie dowolnej prędkości taktowania sterowników silników.

Co do DXF'ów to właśnie się tego spodziewałem ... ten sam AutoCAD potrafił wygenerować różne pliki z tego samego rysunku. Istnieję pliki ze starszych wersji AutoCAD'a, które posiadały prostszy format ... nie pamiętam rozszerzenia, ale to były pliki w ASCI, więc wchodziło by w grę tylko ich odpowiednie interpretowanie.

Co do CAM ... to mam kiepskie doświadczenie i jeszcze nie analizowałem plików wynikowych z tego typ procesów. Wychodzą G-CODE? Sporo firm produkujących PCB pracuje na plikach Gerber'a ... są dosyć popularne w różnych programach, więc może przystosować program do pracy do nich?

Swój Hardware mam zmontowany na BreadBoard. RS232->I/O na ATtiny2313. Sterowniki silników przerabiam z ULN'ów na MOS-FET'y BUZ11 sterowane fazowo. Zawsze składam prototyp przed opublikowaniem czegokolwiek. Aby program był uniwersalny i dla każdego ... wiele sterowników pracuje na złączu LPT, więc chciałbym zbudować hardware, który przez RS232(mój program) będzie sterował taką MainBoard z gniazdem LPT.

Co do HPGL to już sterowałem tymi plikami w 2D+1(chyba Wy to nazywacie 2,5D ... czyli 2D i nad/w materiale). Chyba rzeczywiście będę musiał się zabrać za te G-CODE ... tylko trzeba by było znormalizować ten kod skoro są rożne wersje :???:
Z poważaniem,
Marenc
Mariusz Lorenc
[email protected]


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#10

Post napisał: jarekk » 23 kwie 2008, 12:33

mariuszlorenc pisze:Co do uruchamiania procesów. Z PC wysyłasz informację o całym posuwie, a pracę frezarki kontroluje sam uC. Co pewien czas uC komunikuje się z PC(w obie strony), aby wyświetlać prawidłowe dane i wykonywać operacje typu zatrzymania krytycznego(takie dane kontrolne). Dzięki takiemu rozwiązaniu możliwe jest uzyskanie praktycznie dowolnej prędkości taktowania sterowników silników.
Ja też o tym mówiłem - pojedynczy ARM7 dla 70Mhz i 4 osi wyciaga 50--100kHz ( kod w C ). 100kHz a nawet 200kHz to jeszcze nie dowolna prędkosc. Proponuje spróbować samemu na prototypie.
mariuszlorenc pisze:Co do CAM ... to mam kiepskie doświadczenie i jeszcze nie analizowałem plików wynikowych z tego typ procesów. Wychodzą G-CODE? Sporo firm produkujących PCB pracuje na plikach Gerber'a ... są dosyć popularne w różnych programach, więc może przystosować program do pracy do nich?
Gerbery to też tylko 2D ( nawet nie 2.5D). Są używane do płytek PCB które są płaskie :-)

mariuszlorenc pisze: Swój Hardware mam zmontowany na BreadBoard. RS232->I/O na ATtiny2313. Sterowniki silników przerabiam z ULN'ów na MOS-FET'y BUZ11 sterowane fazowo. Zawsze składam prototyp przed opublikowaniem czegokolwiek. Aby program był uniwersalny i dla każdego ... wiele sterowników pracuje na złączu LPT, więc chciałbym zbudować hardware, który przez RS232(mój program) będzie sterował taką MainBoard z gniazdem LPT.
Proponuję znaleźć program w sieci który przerobi BMP na jakikolwiek standard CAM ( można tu poszukać na forum). Niech kolega policzy ile wyszło wektorów i jak długo będzie to szło przez RS232 przy 115200kb.

mariuszlorenc pisze:o do HPGL to już sterowałem tymi plikami w 2D+1(chyba Wy to nazywacie 2,5D ... czyli 2D i nad/w materiale). Chyba rzeczywiście będę musiał się zabrać za te G-CODE ... tylko trzeba by było znormalizować ten kod skoro są rożne wersje :???:
No nie do końca - HPGL daje 2D plus pisaki którym mozna przypisać pewną wyskosc. Nie da się tym zrobic np. powirzchni sfery ( a to tez jeszcze 2.5D )

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”