G-code w CNC - jak czytać program i uniknąć błędów

Gabriel Jakubowski .

17 września 2026

Kod SVG z efektami graficznymi, w tym liniowymi gradientami i filtrami. Widoczny jest fragment kodu, który definiuje kształty i ich wygląd.

Gdy frezarka lub tokarka CNC wykonuje ruch, za każdym przejazdem narzędzia stoi zapisany program. G-code określa położenie osi, kierunek ruchu, prędkość posuwu i sposób obróbki, dlatego jego znajomość przydaje się zarówno operatorowi, jak i osobie przygotowującej program w CAM. Poniżej pokazuję, jak czytać poszczególne bloki, które polecenia są najważniejsze, jak bezpiecznie uruchomić program i gdzie najczęściej pojawiają się kosztowne błędy.

Najważniejsze informacje o programowaniu CNC

  • G-code steruje ruchem narzędzia, układem współrzędnych i sposobem interpolacji.
  • G00, G01, G02 i G03 odpowiadają za podstawowe ruchy liniowe i kołowe.
  • M-code obsługuje funkcje pomocnicze, między innymi wrzeciono, chłodzenie i zakończenie programu.
  • G90 i G91 określają, czy współrzędne są absolutne, czy przyrostowe.
  • Symulacja, przejazd próbny i kontrola bazy są niezbędne przed rozpoczęciem skrawania.

Przykład G-code: G1 (typ komendy) z parametrem X23 i szybkością posuwu F1000.

Co naprawdę oznacza G-code w CNC

G-code to zestaw poleceń, za pomocą których sterowanie CNC przekłada program na ruchy maszyny. Nie jest to język ogólnego przeznaczenia, taki jak Python czy C++, lecz język instrukcji dla obrabiarek. Program mówi między innymi, gdzie ma znaleźć się narzędzie, z jaką prędkością ma się poruszać i w jakiej płaszczyźnie ma pracować.

Litera G zwykle oznacza funkcję przygotowawczą, czyli sposób wykonania ruchu lub ustawienia trybu pracy. Litera M odnosi się do funkcji pomocniczych. W praktyce oba rodzaje kodów występują razem, ale ich zadania są różne. G01 steruje ruchem osi, natomiast na przykład M03 uruchamia wrzeciono w określonym kierunku.

Trzeba pamiętać, że nie istnieje jedna, identyczna lista poleceń działająca na każdej maszynie. Sterowania Haas, Fanuc, Siemens, Heidenhain czy LinuxCNC mają wspólny fundament, lecz mogą różnić się składnią, cyklami i znaczeniem wybranych kodów. Dlatego przed użyciem programu zawsze sprawdzam instrukcję konkretnego sterowania, a nie tylko ogólną tabelę kodów znalezioną w internecie.

Przeczytaj również: Szlifowanie płaszczyzn - Precyzja, błędy i optymalizacja procesu

Kody modalne i niemodalne

Część poleceń pozostaje aktywna do chwili zastąpienia ich innym kodem z tej samej grupy. Są to kody modalne. Jeżeli program zawiera G01, kolejne wiersze mogą wykonywać ruch roboczy bez ponownego wpisywania G01. To wygodne, ale również niebezpieczne, gdy operator błędnie założy, jaki tryb jest aktualnie aktywny.

Dlatego w programach, które mają być łatwe do kontroli, zapisuję jawnie najważniejsze ustawienia, takie jak G90, G21, G17 i G54. Kilka dodatkowych znaków w nagłówku programu może uchronić przed ruchem w złym układzie współrzędnych albo pracą w calach zamiast w milimetrach.

Jak czytać pojedynczy blok programu

Program CNC składa się z bloków, czyli wierszy zawierających polecenia i wartości. Jeden blok może ustawić sposób ruchu, współrzędne, posuw oraz numer narzędzia. Przykładowy fragment frezowania może wyglądać tak:

G21 G90 G17
G54
T01 M06
S8000 M03
G00 X10 Y10 Z5
G01 Z-2 F150
G01 X60 F300
G02 X80 Y30 I0 J20
G00 Z20
M05
M30

Pierwszy wiersz ustawia milimetry, współrzędne absolutne i płaszczyznę XY. G54 wybiera bazę przedmiotu, T01 wskazuje narzędzie numer 1, a M06 wywołuje jego zmianę. Wartość S8000 ustawia prędkość obrotową wrzeciona na 8000 obr./min, zaś M03 uruchamia je zgodnie z kierunkiem wymaganym przez daną maszynę.

Element Znaczenie Praktyczna uwaga
G00 X10 Y10 Z5 Szybki przejazd do pozycji Narzędzie powinno znajdować się nad materiałem
G01 Z-2 F150 Ruch liniowy na głębokość 2 mm F150 oznacza posuw, zwykle w mm/min
G01 X60 F300 Frezowanie po linii prostej Posuw może zależeć od materiału i narzędzia
G02 X80 Y30 I0 J20 Interpolacja kołowa zgodna z ruchem wskazówek zegara I i J określają położenie środka łuku w wielu sterowaniach

Najwięcej pomyłek wynika z mylenia pozycji docelowej z punktem startowym łuku. Przy G02 i G03 wartości X oraz Y wskazują zwykle koniec ruchu, a I, J lub K opisują środek okręgu względem punktu początkowego. Zawsze sprawdzam ten fragment w symulatorze, bo jedna pomylona wartość może skierować narzędzie w materiał albo poza obrys detalu.

Najważniejsze polecenia używane przy obróbce

Nie ma potrzeby zapamiętywania całej tabeli kodów. Na początku wystarczy dobrze rozumieć grupę poleceń odpowiedzialnych za ruch, jednostki, układ współrzędnych, korekcję narzędzia i zakończenie programu.

Kod Funkcja Gdzie ma znaczenie
G00 Przejazd szybki bez skrawania Zmiana pozycji nad detalem
G01 Ruch liniowy z zadanym posuwem Frezowanie, toczenie i zagłębianie
G02 Interpolacja kołowa zgodna z ruchem wskazówek zegara Łuki, promienie i okręgi
G03 Interpolacja kołowa przeciwna do ruchu wskazówek zegara Łuki, promienie i okręgi
G17, G18, G19 Wybór płaszczyzny pracy Odpowiednio XY, ZX lub YZ
G20, G21 Wybór cali lub milimetrów Podstawowe ustawienie jednostek
G40, G41, G42 Wyłączenie lub wybór korekcji promienia narzędzia Kontrola rzeczywistego wymiaru konturu
G43 Korekcja długości narzędzia Najczęściej przy obróbce na frezarce
G54-G59 Układy współrzędnych przedmiotu Ustawienie bazy detalu
G90, G91 Współrzędne absolutne lub przyrostowe Określenie sposobu interpretacji pozycji
G94 Posuw w jednostkach na minutę Częsty tryb pracy frezarek

Warto też znać podstawowe kody M. M03 uruchamia wrzeciono, M05 je zatrzymuje, M08 włącza chłodziwo, M09 wyłącza chłodziwo, M06 wywołuje zmianę narzędzia, a M30 kończy i resetuje program. Konkretne funkcje mogą się różnić, dlatego kod M zawsze traktuję jako polecenie zależne od producenta maszyny.

G00 nie służy do skrawania. To szybki przejazd, podczas którego sterowanie może poruszać osiami z maksymalną prędkością. Jeśli Z znajduje się zbyt nisko, a program przejdzie w G00 przed odsunięciem narzędzia, skutkiem może być kolizja uchwytu, oprawki lub wrzeciona.

Jak przygotować i bezpiecznie uruchomić program

Program można napisać ręcznie, wygenerować w systemie CAM albo połączyć oba podejścia. Ręczne programowanie dobrze sprawdza się przy prostych otworach, kieszeniach i korektach, natomiast przy złożonych powierzchniach CAM ogranicza liczbę obliczeń i skraca przygotowanie obróbki. Sam kod z CAM nie jest jednak automatycznie bezpieczny.

  1. Ustal bazę detalu i sprawdź, gdzie znajduje się punkt zerowy programu.
  2. Dobierz narzędzie, jego średnicę, długość, prędkość obrotową oraz posuw.
  3. Zweryfikuj jednostki i tryb współrzędnych, przede wszystkim G21 lub G20 oraz G90 lub G91.
  4. Przeprowadź symulację z kontrolą kolizji, jeśli sterowanie lub system CAM ją obsługuje.
  5. Wykonaj przejazd próbny nad materiałem albo uruchom program w trybie blokowym.
  6. Rozpocznij obróbkę z ograniczonym posuwem i obserwuj pierwsze ruchy.

Przy pierwszym uruchomieniu nie zakładam, że program jest poprawny tylko dlatego, że wygenerował go popularny system CAM. Sprawdzam kolejność zmiany narzędzia, wysokość bezpieczną, korekcje oraz zgodność bazy G54 z rzeczywistym zamocowaniem. Najważniejsza kontrola odbywa się przed włączeniem wrzeciona, a nie dopiero po usłyszeniu niepokojącego dźwięku.

Posuw F i prędkość wrzeciona S powinny wynikać z materiału, średnicy narzędzia, liczby ostrzy i głębokości skrawania. Nie ma jednej bezpiecznej wartości dla aluminium, stali, tworzywa i drewna. Zbyt mały posuw może powodować tarcie i przegrzewanie, a zbyt duży może złamać frez lub wyrwać detal z mocowania.

Typowe błędy w programach CNC

Najczęstsze problemy nie wynikają z trudnych cykli, lecz z pominięcia podstawowych ustawień. Poniżej zebrałem sytuacje, które szczególnie często prowadzą do błędnego wymiaru albo kolizji.

Błąd Możliwy skutek Jak go ograniczyć
Brak jawnego G90 lub G91 Ruch w nieoczekiwane miejsce Ustaw tryb na początku programu
Pomylenie G20 z G21 Wielokrotnie zły wymiar detalu Sprawdź jednostki w kodzie i sterowaniu
Błędna baza G54 Przesunięcie całej obróbki Zmierz punkt zerowy i wykonaj przejazd próbny
Za niska płaszczyzna bezpieczna Kolizja z uchwytem lub mocowaniem Uwzględnij wysokość imadła, łap i wystającego materiału
Nieprawidłowe I, J lub K przy łuku Błąd interpolacji albo zły promień Sprawdź kierunek G02/G03 i środek łuku
Brak korekcji długości narzędzia Nieprawidłowa głębokość pracy Zweryfikuj G43 i numer tabeli narzędzi
Wysoki posuw lub obroty bez obliczeń Drgania, przegrzanie i zużycie narzędzia Dobierz parametry do materiału i geometrii ostrza

Osobną pułapką są kody modalne pozostawione po poprzednim fragmencie programu. Sterowanie może nadal pamiętać G01, korekcję promienia albo nietypowy tryb posuwu. Z tego powodu czytelny program powinien mieć jednoznaczny nagłówek i bezpieczne zakończenie, zamiast polegać na ustawieniach odziedziczonych po wcześniejszej pracy.

Nie należy też kopiować kodu między frezarką a tokarką bez weryfikacji. Ta sama numeracja może oznaczać inną funkcję, a dodatkowo zmieniają się osie, płaszczyzny oraz sposób definiowania korekcji. W przypadku nieznanego sterowania zaczynam od dokumentacji producenta i krótkiego programu testowego, a nie od obróbki właściwego detalu.

Ręczne programowanie czy system CAM

Ręczne pisanie kodu daje dużą kontrolę i pozwala szybko poprawić prosty ruch. Przydaje się również do nauki, diagnostyki oraz tworzenia krótkich programów testowych. Jego ograniczeniem jest czasochłonność i ryzyko pomyłki przy większej liczbie punktów.

System CAM automatyzuje obliczanie ścieżki narzędzia i lepiej radzi sobie z kieszeniami, konturami 3D oraz obróbką wieloosiową. Nie zastępuje jednak wiedzy operatora. Jeśli źle ustawimy bazę, średnicę narzędzia lub wysokość bezpieczną, program CAM wygeneruje dokładnie taki błąd, jaki mu zadaliśmy.

Metoda Najlepsze zastosowanie Główne ograniczenie
Programowanie ręczne Proste kontury, otwory, testy i korekty Większe ryzyko błędu przy skomplikowanej geometrii
Programowanie CAM Złożone kształty i produkcja seryjna Konieczność poprawnej konfiguracji postprocesora
Połączenie obu metod Praktyczna produkcja i szybkie poprawki Wymaga rozumienia wygenerowanego kodu

Najrozsądniejsze podejście polega na tym, aby używać CAM do tworzenia głównej ścieżki, ale umieć przeczytać jej najważniejsze fragmenty. Dzięki temu można zauważyć nieprawidłowy kierunek obrotów, zbyt niski przejazd, brak korekcji albo niepasujący postprocesor. Operator, który rozumie kod, szybciej wykrywa problem i nie jest całkowicie zależny od automatycznych ustawień.

Jak podejść do nauki bez ryzykowania maszyny

Najlepiej zacząć od symulatora lub sterowania testowego i ćwiczyć pojedyncze polecenia. Najpierw warto opanować G00, G01, G02, G03, G90, G91, G20, G21 oraz wybór bazy. Dopiero później sens ma nauka cykli wiercenia, korekcji promienia i bardziej rozbudowanych makr.

Dobrym ćwiczeniem jest napisanie programu, który przejedzie po prostokącie nad materiałem, bez zagłębiania narzędzia. Następny etap to wykonanie płytkiej kieszeni w miękkim tworzywie, z zatrzymaniem po pierwszym przejściu i kontrolą wymiaru. Taki sposób nauki pokazuje, jak zmiana jednego parametru wpływa na rzeczywisty ruch, a jednocześnie ogranicza koszt błędu.

Przed każdą pracą sprawdzam trzy rzeczy: gdzie jest zero detalu, jaka długość narzędzia znajduje się w tabeli i czy program rozpoczyna się od bezpiecznej pozycji. Te proste czynności zajmują chwilę, lecz w praktyce mają większe znaczenie niż znajomość dziesiątek rzadko używanych kodów.

Od pierwszego bloku do pewnej obróbki

G-code warto traktować jak instrukcję ruchu maszyny, a nie zbiór przypadkowych liter i cyfr. Najpierw trzeba rozumieć układ współrzędnych, jednostki, tryby modalne i funkcję podstawowych poleceń, a dopiero potem przechodzić do bardziej złożonych cykli.

Jeżeli program jest wygenerowany w CAM, nadal należy sprawdzić postprocesor, bazę, korekcje i przejazdy bezpieczne. Symulacja, przejazd próbny i spokojna kontrola pierwszego detalu dają znacznie większą pewność niż samo zaufanie do gotowego pliku.

W obróbce CNC nie wygrywa osoba, która zna najdłuższą listę kodów, lecz ta, która potrafi przewidzieć ruch narzędzia i rozumie, co sterowanie zrobi w każdej kolejnej linii programu.

Artykuł ma charakter wyłącznie informacyjny i edukacyjny. Materiał został opracowany przy wsparciu nowoczesnych narzędzi analitycznych i językowych (AI). Przed podjęciem decyzji skonsultuj się z ekspertem.

FAQ - Najczęstsze pytania

Najpierw ustal bazę detalu, sprawdź narzędzie, jednostki G20 lub G21 oraz tryb G90 lub G91. Następnie wykonaj symulację, przejazd próbny nad materiałem albo uruchomienie blokowe. Pierwszą obróbkę rozpocznij z ograniczonym posuwem i obserwuj ruchy maszyny.
W trybie G90 pozycje odnoszą się do ustalonego punktu zerowego detalu. W trybie G91 każda współrzędna określa przesunięcie względem bieżącej pozycji narzędzia. Brak jawnego ustawienia tego trybu może spowodować ruch w nieoczekiwane miejsce.
G02 oznacza interpolację kołową zgodną z ruchem wskazówek zegara, a G03 przeciwną do tego kierunku. X i Y zwykle wskazują punkt końcowy ruchu, natomiast I, J lub K opisują położenie środka łuku względem punktu początkowego. Ten fragment warto sprawdzić w symulatorze.
Programowanie ręczne sprawdza się przy prostych konturach, otworach, testach i szybkich korektach. CAM jest wygodniejszy przy kieszeniach, powierzchniach 3D, złożonych kształtach i produkcji seryjnej. W obu przypadkach trzeba zweryfikować bazę, narzędzia, wysokość bezpieczną i postprocesor.
Oceń artykuł

Średnia: 4.9 / 5 · 7 ocen

Tagi

g-code kody m interpolacja postprocesory symulacja
Autor Gabriel Jakubowski
Gabriel Jakubowski
Nazywam się Gabriel Jakubowski i mam 8-letnie doświadczenie w dziedzinie techniki warsztatowej, elektryki oraz automatyki. Moja fascynacja tymi obszarami zaczęła się już w młodości, kiedy to z ciekawością obserwowałem, jak działają różne urządzenia i systemy. Z czasem postanowiłem zgłębić tę wiedzę, co pozwoliło mi nie tylko zrozumieć złożoność technologii, ale także podzielić się nią z innymi. Piszę na temat najnowszych trendów w technice warsztatowej oraz elektryce, starając się uprościć skomplikowane zagadnienia i dostarczyć czytelnikom zrozumiałe oraz rzetelne informacje. Dokładam wszelkich starań, aby moje artykuły były aktualne i oparte na sprawdzonych źródłach, co pozwala mi skutecznie pomagać w rozwiązywaniu problemów, z którymi borykają się zarówno amatorzy, jak i profesjonaliści w tej dziedzinie.
Komentarze (0)
Dodaj komentarz