Programowanie CNC polega na tworzeniu instrukcji sterujących ruchami narzędzia i funkcjami maszyny za pomocą kodów G i M. Kody G kontrolują przemieszczenia osi, a kody M zarządzają funkcjami pomocniczymi, takimi jak chłodziwo czy zmiana narzędzia. Oprogramowanie CAM automatyzuje ten proces, generując gotowy kod na podstawie modeli 3D. Każdy program CNC opiera się na zdefiniowanym punkcie zerowym i dwóch metodach określania pozycji: trybie bezwzględnym i przyrostowym. Znajomość tych podstaw pozwala tworzyć, analizować i optymalizować programy obróbcze na każdej maszynie CNC.
Czym jest G-kod i jak działa język programowania maszyn CNC?
G-kod to podstawowy język programowania maszyn CNC, służący do precyzyjnego określania ruchu i parametrów pracy narzędzia. Każda linia programu składa się ze słów adresowych, czyli liter z przypisanymi wartościami liczbowymi, które sterownik interpretuje jako konkretne polecenia. W tym formacie litera definiuje typ informacji (np. współrzędne osi X, Y, Z), a liczba podaje jej dokładną wartość – przykładowo zapis X50.0 Y30.0 oznacza przemieszczenie narzędzia do punktu oddalonego o 50 mm w osi X oraz 30 mm w osi Y.
Struktura programu CNC jest ściśle sformalizowana: rozpoczyna się znakiem procentu lub numerem porządkowym, składa z kolejnych bloków instrukcji i kończy kodem zamykającym, takim jak M30 lub M2. Poszczególne bloki są zazwyczaj numerowane (np. N10, N20), co znacząco ułatwia nawigację po kodzie oraz szybką diagnostykę ewentualnych błędów. Taka budowa zapewnia pełną kontrolę nad procesem obróbki 3 osiowej i wieloosiowej, gwarantując powtarzalność wytwarzanych detali.
Struktura bloku programu CNC
Pojedynczy blok programu może zawierać kilka słów adresowych jednocześnie. Sterownik wykonuje je jako jedną operację. Przykładowy blok wygląda tak:
N10 G01 X100.0 Y50.0 F200
Oznacza to: blok nr 10, ruch liniowy z interpolacją (G01), do punktu X=100 mm, Y=50 mm, z posuwem 200 mm/min. Taki zapis jest czytelny, zwięzły i jednoznaczny dla sterownika.
Kody G w CNC – przegląd najważniejszych poleceń
Kody G sterują ruchami narzędzia i geometrią obróbki. Litera G pochodzi od angielskiego słowa „geometry” i to właśnie kody G definiują trajektorię, którą narzędzie pokonuje podczas skrawania materiału.
Najważniejsze kody G, które pojawiają się w niemal każdym programie CNC:
- G00 – szybki bieg – przemieszczenie narzędzia z maksymalną prędkością bez obróbki materiału,
- G01 – interpolacja liniowa – ruch prostoliniowy z zadanym posuwem, używany podczas skrawania,
- G02 – interpolacja kołowa zgodnie z ruchem wskazówek zegara (CW),
- G03 – interpolacja kołowa przeciwnie do ruchu wskazówek zegara (CCW),
- G17 – wybór płaszczyzny roboczej XY,
- G18 – wybór płaszczyzny roboczej XZ,
- G19 – wybór płaszczyzny roboczej YZ,
- G54–G59 – przesunięcia układu współrzędnych (punkty zerowe programu),
- G90 – tryb bezwzględny (absolute mode),
- G91 – tryb przyrostowy (incremental mode),
- G94 – posuw w mm/min,
- G95 – posuw w mm/obrót.
Kody G dzielą się na modalne i niemodalne. Kody modalne pozostają aktywne do momentu, gdy zostają zastąpione innym kodem z tej samej grupy. Kody niemodalne działają tylko w bloku, w którym zostały wpisane. Na przykład G01 jest modalny – raz wpisany pozostaje aktywny w kolejnych blokach, dopóki nie pojawi się G00 lub inny kod ruchu.
Cykle obróbcze w kodach G
Cykle obróbcze (np. G81, G83, G84) to gotowe procedury wykonujące złożone operacje za pomocą jednej komendy. Zamiast programować każdy ruch wiertła osobno, programista CNC wywołuje cykl wiercenia, podając głębokość, posuw i inne parametry. Sterownik samodzielnie oblicza i wykonuje niezbędne ruchy. To znacząco skraca czas tworzenia programu i zmniejsza ryzyko błędów.
Kody M w CNC – sterowanie funkcjami pomocniczymi maszyny
Kody M kontrolują funkcje pomocnicze maszyny, które nie są bezpośrednio związane z ruchem narzędzia. Litera M pochodzi od słowa „miscellaneous” (różne) i obejmuje wszystko, co maszyna robi poza przemieszczaniem osi.
Najczęściej stosowane kody M:
- M00 – zatrzymanie programu (opcjonalny stop wymaga potwierdzenia operatora)
- M01 – opcjonalne zatrzymanie programu
- M02 – koniec programu
- M03 – uruchomienie wrzeciona w prawo (CW) – wymagane przed każdą obróbką
- M04 – uruchomienie wrzeciona w lewo (CCW)
- M05 – zatrzymanie wrzeciona
- M06 – zmiana narzędzia (tool change)
- M08 – włączenie chłodziwa
- M09 – wyłączenie chłodziwa
- M30 – koniec programu z powrotem do początku
Przykład: przed przystąpieniem do frezowania program zawsze zawiera sekwencję uruchamiającą wrzeciono i chłodziwo – M03 S3000 M08 (wrzeciono prawo, 3000 obr/min, chłodziwo włączone). Po zakończeniu obróbki pojawia się M05 M09, a na końcu programu M30.
Warto wiedzieć, że dokładna lista kodów M różni się między sterownikami. System Sinumerik firmy Siemens czy sterowniki Fanuc mogą używać nieco innych kodów lub rozszerzać standardową listę o własne funkcje. Przed pracą z nową maszyną zawsze należy zapoznać się z dokumentacją konkretnego sterownika.
Punkt zerowy programu CNC i układ współrzędnych
Punkt zerowy programu to fundament każdego procesu CNC – stanowi on punkt odniesienia, od którego liczone są wszystkie współrzędne zawarte w kodzie. Bez jego prawidłowego zdefiniowania maszyna nie jest w stanie określić położenia detalu w przestrzeni roboczej. W praktyce operator fizycznie wyznacza ten punkt w narożniku lub na środku przedmiotu za pomocą próbnika, a następnie wprowadza uzyskane współrzędne do sterownika jako przesunięcie bazowe (np. G54). Dzięki temu sterownik potrafi precyzyjnie przeliczyć wszystkie zaprogramowane ruchy względem rzeczywistego umiejscowienia materiału na stole maszyny.
Większość maszyn CNC pracuje w prostokątnym układzie współrzędnych, w którym oś Z odpowiada osi wrzeciona, a osie X i Y to osie poziome stołu. W przypadku tokarek CNC układ jest uproszczony do dwóch osi: Z, biegnącej wzdłuż osi wrzeciona, oraz X, odpowiadającej za ruch poprzeczny. Prawidłowe zorientowanie tych osi jest kluczowe zarówno w prostej obróbce 3 osiowej, jak i w bardziej złożonych systemach wieloosiowych, gdzie precyzyjne bazowanie decyduje o dokładności wymiarowej gotowego elementu.
Tryb bezwzględny i tryb przyrostowy CNC
Tryb bezwzględny (G90) oraz tryb przyrostowy (G91) to dwie fundamentalne metody podawania współrzędnych, które różnią się punktem odniesienia dla planowanego ruchu. W trybie bezwzględnym każda wartość mierzona jest bezpośrednio od stałego punktu zerowego programu, co oznacza, że polecenie takie jak X100.0 Y50.0 zawsze kieruje narzędzie w to samo, konkretne miejsce w przestrzeni roboczej. Jest to rozwiązanie niezwykle czytelne i bezpieczne, dlatego stanowi standard zalecany szczególnie dla początkujących programistów CNC.
Z kolei w trybie przyrostowym każda współrzędna określa dystans mierzony od aktualnej pozycji narzędzia. W tym przypadku komenda X20.0 nie oznacza punktu oddalonego o 20 mm od bazy, lecz nakazuje przesunięcie o 20 mm od miejsca, w którym narzędzie aktualnie się znajduje. Tryb G91 okazuje się niezwykle przydatny przy programowaniu powtarzalnych wzorców, takich jak seria otworów w równych odstępach, gdzie łatwiej jest opisać dystans między nimi niż wyliczać ich bezwzględne współrzędne.
W profesjonalnej praktyce programiści często łączą obie te metody w ramach jednego kodu, płynnie przełączając się między G90 a G91 w zależności od specyfiki konkretnego etapu obróbki. Takie podejście pozwala na optymalizację zapisu przy zachowaniu pełnej kontroli nad procesem, zarówno w prostym frezowaniu 3 osiowym, jak i przy bardziej złożonych operacjach.
Oprogramowanie CAM – automatyczne tworzenie programów CNC
Oprogramowanie CAM (Computer-Aided Manufacturing) generuje programy CNC automatycznie na podstawie modeli 3D lub rysunków 2D. Programista definiuje strategię obróbki, parametry skrawania i kolejność operacji, a system CAM przelicza to na gotowy G-kod.
Proces pracy z oprogramowaniem CAM wygląda następująco:
- Import modelu 3D z systemu CAD (np. plik STEP lub IGES)
- Zdefiniowanie materiału i narzędzi skrawających
- Wybór strategii obróbki (np. frezowanie zgrubne, wykańczające, wiercenie)
- Ustawienie parametrów: posuwu, prędkości obrotowej, głębokości skrawania
- Generowanie ścieżki narzędzia i symulacja obróbki
- Post-processing – konwersja ścieżki na G-kod dla konkretnego sterownika
Ostatni krok wykonuje postprocesor, który tłumaczy uniwersalne ścieżki narzędzia na format zrozumiały dla konkretnego sterownika maszyny. Szczegółowo ten temat opisuje artykuł o tym, co to jest postprocesor CNC.
Mastercam i inne popularne systemy CAM
Mastercam to jedno z najszerzej stosowanych systemów CAM w przemyśle obróbki skrawaniem. Obsługuje zarówno proste operacje 2D i 2,5D, jak i zaawansowane frezowanie 5-osiowe. Inne popularne systemy to Fusion 360 (Autodesk), Hypermill, Edgecam, Siemens NX oraz SolidCAM.
Wybór oprogramowania CAM zależy od kilku czynników: rodzaju maszyny, złożoności obrabianych detali, budżetu firmy i dostępności postprocesorów dla posiadanych sterowników. Do prostych detali wystarczy tańsze lub darmowe oprogramowanie. Przy skomplikowanych formach i obróbce 5-osiowej na centrach obróbczych CNC warto inwestować w zaawansowane systemy z bogatą biblioteką strategii.
Więcej na temat dostępnych narzędzi programistycznych znajdziesz w artykule o oprogramowaniu CAD/CAM do maszyn CNC.
Tworzenie programów CNC – jak wygląda ten proces w praktyce?
Tworzenie programu CNC zaczyna się od analizy rysunku technicznego lub modelu 3D detalu. Programista musi zrozumieć geometrię przedmiotu, tolerancje wymiarowe i wymagania dotyczące jakości powierzchni, zanim wybierze strategię obróbki i napisze pierwszą linię kodu.
Kolejne etapy tworzenia programu:
- Analiza dokumentacji – rysunek techniczny, model 3D, specyfikacje materiałowe
- Planowanie obróbki – ustalenie kolejności operacji, wybór narzędzi, punktu zerowego
- Dobór parametrów skrawania – prędkość obrotowa (S), posuw (F), głębokość skrawania
- Napisanie lub wygenerowanie programu – ręcznie lub przez CAM
- Symulacja i weryfikacja – sprawdzenie programu w symulatorze sterownika lub oprogramowaniu CAM
- Uruchomienie testowe – pierwsze cięcie w materiale próbnym lub ze zmniejszonymi parametrami
- Pomiar i korekta – kontrola wymiarów i ewentualne poprawki w programie
Testowanie programu przed pełną produkcją to kluczowa zasada bezpieczeństwa i jakości. Nawet doświadczeni programiści zawsze weryfikują nowy program – błąd w kodzie może uszkodzić narzędzie, maszynę lub detal.
Diagnostyka i rozwiązywanie problemów w programach CNC
Znajomość kodów G i M pozwala programiście samodzielnie analizować i naprawiać błędy w programach CNC. Gdy maszyna zatrzymuje się z komunikatem błędu lub detal wychodzi poza tolerancją, programista czyta kod i identyfikuje przyczynę problemu.
Najczęstsze problemy wynikające z błędów programistycznych:
- Nieprawidłowy punkt zerowy lub brak wywołania przesunięcia bazowego (G54–G59)
- Pomylony tryb bezwzględny i przyrostowy – narzędzie jedzie w złe miejsce
- Brak korekcji długości narzędzia (G43/G44) – kolizja lub obróbka na złej głębokości
- Zbyt agresywne parametry skrawania – złamanie narzędzia
- Brak M05/M09 przed zmianą narzędzia – uszkodzenie wrzeciona lub głowicy
Systematyczne podejście do diagnostyki – analiza błędu, lokalizacja problematycznego bloku, sprawdzenie logiki programu – to kompetencja, którą programiści CNC rozwijają z doświadczeniem. Pomocne są też narzędzia do serwisu maszyn CNC, które pozwalają odczytywać logi błędów ze sterowników.
Najczęściej zadawane pytania
Jakie są najczęstsze błędy w programowaniu CNC popełniane przez początkujących?
Najczęstszy błąd to pomylenie trybu bezwzględnego (G90) z przyrostowym (G91) – powoduje to przemieszczenie narzędzia w zupełnie inne miejsce niż zamierzono. Kolejny częsty problem to brak zdefiniowania lub nieprawidłowe wywołanie punktu zerowego programu (G54–G59). Początkujący programiści często też pomijają korekcję długości narzędzia (G43) i zapominają o wywołaniu M06 przed zmianą narzędzia. Zbyt agresywne parametry skrawania przy pierwszym uruchomieniu programu prowadzą natomiast do złamania narzędzia lub uszkodzenia detalu.
Czy można używać tego samego programu CNC na różnych maszynach z różnymi sterownikami?
Tego samego programu zazwyczaj nie można przenosić bezpośrednio między maszynami z różnymi sterownikami bez modyfikacji. Podstawowe kody G i M są standardowe (ISO 6983), ale każdy producent sterowników (Fanuc, Siemens, Mitsubishi, Heidenhain) dodaje własne rozszerzenia i może stosować nieco inną składnię. Przy pracy z oprogramowaniem CAM problem rozwiązuje postprocesor – generuje on oddzielny G-kod dla każdego sterownika na podstawie tej samej ścieżki narzędzia. Przy programowaniu ręcznym konieczna jest adaptacja programu do docelowego sterownika.
Jak długo trwa nauka programowania CNC od podstaw do poziomu zaawansowanego?
Opanowanie podstaw programowania CNC – kodów G i M, struktury programu i tworzenia prostych operacji – zajmuje przeciętnie od kilku tygodni do 3 miesięcy regularnej nauki. Osiągnięcie biegłości w programowaniu złożonych detali, pracy z oprogramowaniem CAM i obsłudze zaawansowanych cykli obróbczych wymaga od 1 do 2 lat praktyki. Poziom zaawansowany, obejmujący programowanie 5-osiowe i optymalizację procesów produkcyjnych, to efekt kilkuletniego doświadczenia na różnych maszynach i projektach.
Czy oprogramowanie CAM całkowicie zastępuje ręczne programowanie kodami G?
Oprogramowanie CAM nie zastępuje całkowicie znajomości kodów G – uzupełnia ją i przyspiesza pracę przy skomplikowanych detalach. CAM generuje kod automatycznie, ale programista musi rozumieć wynikowy G-kod, by go zweryfikować, zmodyfikować i diagnostykować ewentualne błędy. Przy prostych operacjach – wierceniu, prostym frezowaniu konturowym – ręczne programowanie w G-kodzie jest szybsze niż praca z CAM-em. Przy złożonych formach 3D i obróbce wieloosiowej CAM jest niezastąpiony, bo ręczne obliczanie takich ścieżek byłoby praktycznie niemożliwe.
Jakie są różnice między programowaniem w trybie absolutnym a przyrostowym w praktyce?
W trybie absolutnym (G90) każda współrzędna odnosi się do punktu zerowego programu – niezależnie od historii ruchów maszyny. To czyni program przewidywalnym i łatwym do analizy. W trybie przyrostowym (G91) każda współrzędna to przesunięcie od aktualnej pozycji narzędzia. Tryb przyrostowy jest wygodny przy powtarzających się wzorcach, np. serii otworów co 20 mm – zamiast liczyć bezwzględne pozycje każdego otworu, wystarczy wpisać X20.0 w każdym kolejnym bloku. Błąd popełniony w jednym bloku trybu przyrostowego przekłada się jednak na wszystkie kolejne pozycje – to główne ryzyko tego trybu.

