Podstawy programowania: wprowadzenie do G-code i M-code

Podstawy programowania CNC: czym są G-code i M-code

G-code i M-code to podstawowe języki sterowania numerycznego wykorzystywane w maszynach CNC (Computer Numerical Control). To dzięki nim frezarki, tokarki, wycinarki plazmowe czy lasery wykonują ruchy, dobierają obroty, włączają chłodziwo oraz realizują cykle obróbkowe. Zrozumienie, jak działają kody G i kody M, to pierwszy krok do samodzielnego programowania i bezpiecznej pracy na obrabiarce.

Standard programowania G/M wywodzi się ze specyfikacji ISO 6983 (znanej też jako RS-274). W praktyce występują różnice pomiędzy sterowaniami (np. FANUC, Siemens Sinumerik, Heidenhain), jednak logika pozostaje podobna: kody G definiują tryb i ruch, a kody M obsługują funkcje pomocnicze, takie jak wrzeciono, chłodziwo czy koniec programu.

Składnia bloku programu: adresy, kolejność i komentarze

Program CNC składa się z bloków (linijek), w których występują adresy: N (numer bloku), G (funkcja ruchu/trybu), M (funkcja pomocnicza), X/Y/Z (pozycje), F (posuw), S (obroty wrzeciona), T (narzędzie), H/D (korekcje), a także dodatkowe jak I/J/K (wektory łuków) czy R (promień). Typowy blok może wyglądać tak: N10 G01 X50. Y10. F600.

Ważna jest czytelność i przewidywalność. Komentarze w nawiasach, np. (Kieszeń 50×30), pomagają zrozumieć zamiar programisty. W wielu zakładach przyjmuje się wspólną konwencję: najpierw linia bezpieczeństwa (np. G90 G21 G17 G40 G49 G80), potem wybór bazy G54–G59, zmiana narzędzia T z M6, ustawienie obrotów S z M3/M4 i na końcu dojazdy oraz obróbka.

Najważniejsze kody G: ruchy, płaszczyzny, jednostki i układ współrzędnych

Ruchy podstawowe to: G00 (szybki przejazd), G01 (interpolacja liniowa), G02/G03 (interpolacja kołowa zgodnie/przeciwnie do ruchu wskazówek zegara). Dla łuków podajemy promień R lub wektory I/J/K. Poprawne użycie tych trybów to fundament efektywnego i bezpiecznego frezowania czy toczenia.

Ustawienia kontekstu obróbki obejmują: wybór płaszczyzny G17/G18/G19, jednostki G21 (mm) lub G20 (cale), tryb wymiarowania G90 (współrzędne bezwzględne) lub G91 (przyrostowe), posuw G94 (mm/min) lub G95 (mm/obr). W toczeniu dochodzi jeszcze G96 (stała prędkość skrawania, CSS) oraz G97 (obroty stałe).

Najważniejsze kody M: wrzeciono, chłodziwo, wymiana narzędzia i zakończenie programu

Funkcje pomocnicze sterują elementami maszyny: M3 (wrzeciono w prawo), M4 (wrzeciono w lewo), M5 (stop wrzeciona). Chłodziwo uruchamiamy przez M7/M8, a wyłączamy M9. Zmiana narzędzia to zwykle T1 M6, gdzie numer T wskazuje narzędzie z magazynu.

Zakończenie programu realizuje się poleceniem M30 (koniec i przewinięcie) lub M02 (koniec bez przewinięcia). W trakcie weryfikacji przydaje się też M0 (zatrzymanie bezwarunkowe) i M1 (zatrzymanie opcjonalne), aby bezpiecznie skontrolować kluczowe etapy obróbki.

Bazy, narzędzia i korekcje: G54–G59, G43/G49, G41/G42

Układ odniesienia detalu wybieramy przez G54–G59 lub rozszerzone offsety (np. G54.1 Px). Te bazy mapują się na wartości zmierzone na sondzie lub ustawione ręcznie. Prawidłowe wskazanie bazy eliminuje błędy pozycjonowania i jest niezbędne dla powtarzalności.

W osi Z korzystamy z korekcji długości narzędzia: G43 Hxx włącza, a G49 wyłącza kompensację. Korekcję promienia ostrza w płaszczyźnie XY ustawia się przez G41/G42 (lewa/prawa) z adresem D. Dzięki temu możemy programować torem geometrycznym części, a sterowanie samo odsunie ścieżkę o promień narzędzia.

Linia bezpieczeństwa i dobre praktyki programowania

Na początku każdej operacji warto podać linię bezpieczeństwa, np. G90 G21 G17 G40 G49 G80, aby zresetować tryby: wymiarowanie absolutne, milimetry, płaszczyzna XY, brak korekcji promienia i długości, anulowanie cykli. Taki nagłówek minimalizuje ryzyko odziedziczenia niepożądanego stanu po poprzednim programie.

Stosuj logiczną kolejność: najpierw bezpieczny odjazd w Z, potem szybkie przejazdy G00, a dopiero na końcu wejście w materiał G01 z zadanym F. Dokumentuj założenia w komentarzach, a każdy nowy program uruchamiaj z symulacją i dry run (bez materiału) przy obniżonych posuwach i obrotach.

Przykładowy mini-program frezarski i omówienie

Poniżej uproszczony przykład pokazujący sekwencję typową dla frezowania kieszeni. Uwaga: składnia i kody mogą różnić się w zależności od sterowania.

%
O1001 (Kieszen 40×30, H7)
G90 G21 G17 G40 G49 G80
G54
T1 M6 (Frez 10 HM)
S8000 M3
G00 X0 Y0
G43 H01 Z50.
M8
G00 Z5.
G01 Z-2. F200.
G01 X40. F800.
Y30.
X0
Y0
G00 Z50.
M9
M5
G53 Z0.
M30
%

Program zaczyna się od ustawienia trybów, wyboru bazy i narzędzia. Po włączeniu wrzeciona i chłodziwa maszynę doprowadza się szybkim ruchem nad detal, a następnie wchodzi w materiał posuwem roboczym. Po zakończeniu ruchów obróbkowych następuje wyjazd na bezpieczną wysokość, wyłączenie funkcji pomocniczych i zakończenie programu M30.

Różnice między sterowaniami i rola postprocesora

Choć G-code/M-code są standardem, poszczególne sterowania mają niuanse: odmienne cykle stałe (np. wiercenia, gwintowania), różne adresy parametrów łuku, inne słowa dla korekcji. Dlatego zawsze warto znać dokumentację konkretnej maszyny i sterowania.

Jeśli tworzysz ścieżki w CAM, kluczowy jest postprocesor. To on tłumaczy ruchy z systemu CAM na syntaktycznie poprawny kod dla danego sterowania (np. FANUC vs Heidenhain). Dobrze skonfigurowany postprocesor redukuje ręczne poprawki i minimalizuje ryzyko błędów na produkcji.

Najczęstsze błędy początkujących i jak ich uniknąć

Typowe błędy to pomylenie trybów G90/G91, nieprawidłowy dobór płaszczyzny G17/G18/G19, brak resetu korekcji (G40/G49) oraz nieuwzględnienie aktualnej bazy G54–G59. Poważne skutki może mieć też wpisanie obrotów lub posuwu bez weryfikacji dla danego materiału i narzędzia.

Aby uniknąć problemów, twórz checklisty startowe, używaj M0/M1 w krytycznych momentach, uruchamiaj programy z ograniczeniem posuwu oraz stosuj wizualizację w symulatorze. Pamiętaj też o poprawnym pomiarze długości narzędzia i zatwierdzeniu korekcji H/D przed pierwszym zejściem w materiał.

G-code i M-code w toczeniu: krótkie uzupełnienie

W toczeniu dochodzą specyficzne tryby: G96 (CSS – stała prędkość skrawania) utrzymuje stałą prędkość liniową na średnicy, podczas gdy G97 przełącza na obroty stałe. Oś Z zwykle biegnie równolegle do osi wrzeciona, a geometria narzędzia wymaga uważnego mapowania korekcji promienia naroża.

Popularne cykle toczenia (zależne od sterowania) upraszczają zgrubne i wykańczające profilowanie, wiercenie czołowe czy gwintowanie. Mimo to obowiązują te same podstawy: bezpieczne dojazdy G00, logiczne włączenie wrzeciona i chłodziwa oraz konsekwentne użycie baz i korekcji.

Dalsza nauka i praktyka na realnych projektach

Najlepszą drogą do opanowania G-code i M-code jest łączenie teorii z praktyką: ćwiczenia w symulatorach, drobne projekty na maszynie oraz analiza kodu generowanego przez CAM. Warto też poszukać lokalnych partnerów technologicznych, szkoleń i usługobiorców, aby zdobywać doświadczenie na realnych detalach.

Jeśli działasz na Śląsku i szukasz wsparcia produkcyjnego lub inspiracji technologicznych, sprawdź zasoby i ofertę dostępne pod adresem https://cncgroup.pl/cnc-slask/. Kontakt z praktykami pozwala szybciej przekształcić wiedzę o G-code/M-code w realne przewagi produkcyjne.