ZMZ Radosław Misztela, Kamil Kraska s.c.

ul. Twardosławicka 101
97-300 Piotrków Trybunalski

  zmz@zmzcnc.com
  +48 606 934 054

Obróbka CNC opiera się na G-Code

Mówiąc najprościej G-Code to język programowania maszyn CNC. Używamy go, aby porozumieć się z maszyną i zlecić jej wykonanie detalu w określony sposób, który jest zapisany właśnie w formie kodu. Polecenia w formie G-Code instruują maszynę, jak ma się poruszać, jak szybko i jaką ścieżką ma podążać. W przypadku obrabiarki CNC, takiej jak tokarka czy frezarka, narzędzie skrawające jest kierowane przy pomocy tych właśnie poleceń. Dzięki nim podąża określoną ścieżką narzędzia i odcina materiał do momentu, aż uzyska pożądany kształt. Każda linia kodu mówi maszynie, aby wykonała konkretną akcję w określonej pozycji, prędkości, obrocie itp. Kształty są tworzone przez łączenie zestawów instrukcji punkt po punkcie. Nawet proste detale mogą wymagać setek lub tysięcy linii kodu, aby w efekcie bezbłędnie ze sobą współpracować i doprowadzić do zamierzonego rezultatu. Ponieważ G-Code działa jako seria punktów i instrukcji linia po linii, możliwe jest wykonanie tego samego detalu przy użyciu różnych ścieżek i instrukcji. Mogą one zależeć np. od rodzaju obrabiarki, liczby osi, rodzaju narzędzi, od materiału itp. Nazwa G-Code to skrót od „kodu geometrycznego”, który jest zapisem prostych, logicznych poleceń w formie fraz zaczynających się od litery G, po której następuje liczba. Jest ona poleceniem zmiany geometrii, czyli np. „G00” to polecenie szybkiego ruchu.

Spis treści:

  1. Najczęściej używane polecenia G-Code
  2. Przykładowe tłumaczenie poleceń w G-Code
  3. Ciekawostki dotyczące programowania G-Code
  4. Historia powstania G-Code i jego aktualna wersja

Najczęściej używane polecenia G-Code, M-Code i nie tylko…

G-Code to zbiór pojedynczych poleceń z literą początkową G, M lub inną zależną od polecenia, po której następuje liczba określająca instrukcję i wartość. Podstawowe komendy G-Code są określone w normie ISO 6983 oraz DIN 66025. Pozostałe polecenia są dowolnie definiowane przez różnych producentów obrabiarek, gdzie głównym kryterium jest przeznaczenie maszyny.

Przykładowe i podstawowe symbole G-Code, które opisują sposób wykonania bądź interpretowania poleceń wydawanych przez programistę:

  • G00 – szybki posuw,
  • G01 – ruch narzędzia wg interpolacji liniowej z posuwem,
  • G02 – ruch narzędzia wg interpolacji kołowej zgodnie z ruchem wskazówek zegara,
  • G03 – ruch narzędzia wg interpolacji kołowej przeciwnie do ruchu wskazówek zegara
  • G04 – postój czasowy w milisekundach,
  • G05 – interpolacja kołowa współrzędne kartezjańskie, bez określania kierunku obrotu,
  • G07 – blok pozycjonowania wzdłużnego,
  • G10 – zatrzymaj wstępne przetwarzanie bloku dynamicznego,
  • G14 – programowanie współrzędnych biegunowych, bezwzględne,
  • G15 – programowanie współrzędnych biegunowych, względne,
  • G17 – wybór płaszczyzny XY,
  • G18 – wybór płaszczyzny ZX,
  • G19 – wybór płaszczyzny YZ,
  • G20 – wybór dowolnie definiowanej płaszczyzny,  
  • G21 – osie równoległe „włączone”,
  • G22 – osie równoległe „wyłączone”,
  • G28 – automatyczny powrót do ustawionego punktu odniesienia,
  • G33 – nacinanie gwintu ze stałym skokiem,
  • G34 – nacinanie gwintu ze skokiem dynamicznym,
  • G38 – obraz lustrzany „włączony”,
  • G40 – koniec korekcji, kompensacje ścieżki „wyłączone”,
  • G41 – korekcja toru narzędzia lewostronna (kompensacja promienia płytki, freza)
  • G42 – korekcja toru narzędzia prawostronna (kompensacja promienia płytki, freza)
  • G53 – wybranie układu współrzędnych maszynowych
  • G54 – G59 – wybranie układu współrzędnych przedmiotu (przesunięcie punktu zerowego)
  • G66 – aktywna korekcja posuwu / wrzeciona,
  • G74 – przejście do pozycji wyjściowej,
  • G83 – stały cykl wiercenia głębokich otworów,
  • G84 – gwintowanie lub gwintowanie z cyklem stałym uchwytu zrównoważonego,
  • G85 – stały cykl rozwiercania,
  • G88 – wytaczanie z zatrzymaniem wrzeciona w stałym cyklu,
  • G92 – ustawienie wstępne pozycji,
  • G99 – przesunięcie osi.

M-Code to kody odpowiadające za konkretne działania mechaniczne, które informują maszynę, jak wykonać daną akcję. W odróżnieniu od G-Code, te polecenia nie są uniwersalne dla wszystkich maszyn i zależą od producenta danej obrabiarki. W celu ich poznania należy dokładnie zapoznać się z instrukcją obsługi maszyny.

Przykładowe najbardziej standardowe kody M:

  • M00 – zatrzymanie programu,
  • M01 – opcjonalne zatrzymanie programu,
  • M02 – koniec programu,
  • M03 – włączenie prawych obrotów wrzeciona,
  • M04 – włączenie lewych obrotów wrzeciona,
  • M05 – zatrzymanie wrzeciona,
  • M06 – zmiana narzędzia,
  • M08 – zalanie chłodziwa włączone,
  • M09 – zalanie chłodziwa wyłączone,
  • M30 – koniec programu i powrót do startu,
  • M41 – niski zakres przełożeń wrzeciona,
  • M42 – wysoki zakres przełożeń wrzeciona.

Dodatkowo występują jeszcze kody, definiujące inne parametry systemu:

  • F – kody definiujące prędkość posuwu, czyli z jaką prędkością narzędzie będzie się przemieszczać do kolejnych współrzędnych,
  • T – kody określające numer danego narzędzia, w przypadku gdy maszyna jest wyposażona w automatyczny zmieniacz narzędzi,
  • S – prędkość obrotowa wrzeciona wymagana w procesie obróbki CNC,
  • N – oznaczenie numeru bloku, kody te ułatwiają programowanie i nie wpływają na proces obróbki. Ta liczba działa jak numer linii i pomaga programiście śledzić ciąg poleceń w kodzie.

Przykładowe tłumaczenie polecenia w G-Code

Na pierwszy rzut oka plik G-Code może wydawać się dość skomplikowany, ale w rzeczywistości nie jest aż tak trudny do zrozumienia. Jeśli przyjrzymy się bliżej kodowi, zauważymy, że większość linii ma taką samą strukturę. Wydaje się, że „skomplikowaną” częścią G-Code są wszystkie liczby, które widzimy, a które są po prostu współrzędnymi kartezjańskimi (prostoliniowy układ współrzędnych, mający dwie prostopadłe osie).

G-Code

Przyjrzyjmy się pojedynczej linii i wyjaśnijmy jak to działa:

G01  X247.951560  Y11.817060  Z-1.000000  F400.000000

Linia ma następującą strukturę:

G## X## Y## Z## F##

Pierwszy symbol to polecenie G-Code, w tym przypadku G01. Oznacza on komendę „przesuń w linii prostej do określonej pozycji”. Następnie określamy pozycję lub współrzędne z wartościami X, Y i Z. Na koniec wartością F ustalamy tzw. posuw, czyli prędkość, z jaką będzie wykonywany ruch. Podsumowując – linia G01 X247.951560 Y11.817060 Z1.000000 F400 mówi maszynie CNC, aby poruszała się po linii prostej od aktualnej pozycji do współrzędnych X247.951560, Y11.817060 i Z1.000000 z prędkością 400mm/min. Jednostką jest mm/min, gdyż na początku kodu użyliśmy polecenia G21, które określa jednostki właśnie w mm.

Każda linia G-Code nazywana jest blokiem, a każdy blok ma swoją określoną funkcję. Na przykład jeden blok może nakazać maszynie przejście do określonej współrzędnej, podczas gdy inny może nakazać maszynie rozpoczęcie lub zatrzymanie cięcia. Bloki kodu muszą być starannie napisane, aby w efekcie stworzyć działający model. Program często zaczyna się od kodu inicjującego (%), po którym następuje numer programu. Następnie pojawia się linia kodów bezpieczeństwa. Kolejna zostanie zapisana linia do wymiany narzędzi, dzięki której zostaje umieszczone w maszynie odpowiednie narzędzie z określoną prędkością. Większość programu obejmuje więc ruchy i pozycjonowanie maszyny. Po zakończeniu programowania G-Code program zostaje zakończony serią funkcji, które zatrzymują i resetują maszynę, aby przygotować ją do kolejnej pracy.

Ciekawostki dotyczące programowania G-Code

W zależności od maszyny, której używamy do konkretnego zlecenia, programowanie G-Code może nie raz nas zaskoczyć np.:

  • funkcje G-Code pozostaną aktywne, dopóki nie zostaną dezaktywowane innym kodem, co oznacza że w danym momencie może być aktywna tylko jedna funkcja, aby ją dezaktywować wystarczy wybrać nową funkcję,
  • niektóre maszyny ignorują spację np. zapis G01 X1 Y1 Z1 może oznaczać to samo, co G01 X1Y1Z1,
  • oś Z jest dodatnia w kierunku do góry, czyli Z1 podniesie narzędzie, ale Z-1 je obniży,
  • dialekt G-Code danej maszyny określi, czy konieczne jest wprowadzenie zera na początku czy nie (G01 czy G1),  
  • dialekt G-Code określi też czy kropki dziesiętne są zawsze konieczne np. G01 X1. Y1. Z0.5,
  • jeśli używana jest numeracja wierszy, to warto nazwać każdy wiersz w odstępach co najmniej pięciu, co umożliwi zachowanie kolejności numeracji nawet po dodaniu dodatkowych wierszy.

Dobrym pomysłem będzie uruchomienie przykładowych programów, które znajdują się w instrukcji obsługi maszyny, zanim operator uruchomi docelowy program. Często testowe programy nie działają i będzie konieczne określenie problemów, wprowadzenie korekt oraz ustawienie testowania. Inaczej można doprowadzić do błędnego wyprodukowania detalu i narazić się na straty. Warto na początku prac przejrzeć również unikalny schemat kodowania maszyny, aby wiedzieć jakiego typu kodów używa do realizacji zadania.

Historia powstania G-Code i jego aktualna wersja

Najstarszym językiem programowania i co zaskakujące nadal używanym jest Fortran. Zaprojektował go w 1957r. amerykański informatyk John Backus w celu wykonywania obliczeń statystycznych i matematycznych. Był to przełomowy krok, gdyż już rok później w 1958r. napisano pierwszą wersję G-Code (RS-274). Można więc powiedzieć, że G-Code jest jednym z pierwszych języków programowania, a do tego nadal używanym. Szczególnie, że w obecnym czasie korzystają z niego maszyny CNC oraz drukarki 3D, a nie wiemy w jakim kierunku pójdzie rozwój maszyn w przyszłości.

Początkowo G-Code w branży CNC był przeznaczony do 2-osiowych maszyn. Aktualnie na jego bazie działają 12-osiowe centra obróbcze.

G-Code

Można więc zauważyć jak z biegiem czasu rozwijał się zakres jego działania. Programiści mogą wykorzystywać różne zmienne, jak i instrukcje logiczne i nie tylko. Dzięki temu G-Code staje się coraz bardziej podobny do tradycyjnego języka programowania z możliwością zapisywania matematycznych danych wyjściowych i równań oraz przywoływania ich w dowolnej części programu. Dzięki temu umożliwia pisanie własnych niestandardowych cykli i znacznie przyspiesza ręczne kodowanie. Wykwalifikowany programista jest w stanie znacznie szybciej napisać program w G-Code niż zbudować model i skonstruować ścieżki narzędziowe w pakiecie CAD/CAM. Szczególnie w przypadku podstawowych części i prac tokarskich.

Obecna standardowa wersja G-Code to RS-274D określona normą ISO 6983. Korzystają z niej producenci maszyn CNC przy konstruowaniu elementów sterujących. Używają jej jako podstawy i dodają swoje własne unikalne kody, określające niestandardowe funkcje ich maszyn. Na przykład nowa maszyna może mieć więcej typów systemów dostarczania chłodziwa niż jest to określone w RS-274D. Producent maszyny dodaje więc do oprogramowania dodatkowe kody M, które służą do sterowania dodatkowymi systemami. Warto z tego powodu przed rozpoczęciem prac z daną maszyną zapoznać się dokładnie z jej instrukcją i sprawdzić, o jakie funkcje jest rozszerzona w porównaniu do standardowego G-Code.

ZMZ Radosław Misztela, Kamil Kraska s.c. - obróbka CNC, usługi frezowania CNC

© 2023 All rights Reserved. Designed and powered by ZMZ Radosław Misztela, Kamil Kraska s.c.

Projekt graficzny: Magdalena Mirowska, Zdjęcia: Agnieszka Seklecka

This site is registered on wpml.org as a development site.