Program ISO CNC nie jest ciągiem przypadkowych liter i liczb. Sterowanie czyta go blok po bloku, a każdy adres przekazuje maszynie konkretną informację: dokąd ma pojechać oś, którego narzędzia użyć, z jaką prędkością ma obracać się wrzeciono, jaki ustawić posuw i kiedy uruchomić funkcję pomocniczą. Problem zaczyna się wtedy, gdy operator zna znaczenie pojedynczego kodu, ale nie rozumie zależności między nimi. Samo S2500 nie uruchomi wrzeciona, T01 nie na każdej maszynie oznacza natychmiastową wymianę narzędzia, a F200 bez informacji o aktywnym trybie posuwu może oznaczać coś zupełnie innego, niż oczekuje programista.
Pod pojęciem programu ISO CNC najczęściej rozumie się program zapisany zgodnie z koncepcją słów adresowych, kojarzoną z normą ISO 6983. W praktyce warsztatowej mówi się po prostu o G-code, kodzie ISO albo programowaniu DIN/ISO. Trzeba jednak od razu postawić ważną granicę: zgodność ze składnią ISO nie oznacza, że ten sam program można bez sprawdzenia przenieść między dowolnymi maszynami. FANUC, Siemens SINUMERIK, Haas, Mitsubishi czy Heidenhain pracujący w trybie DIN/ISO mają wiele wspólnych poleceń, ale różnią się obsługą narzędzi, cykli, korekcji, funkcji M i rozszerzeń producenta maszyny.
Dlatego dobry operator nie pyta tylko: „co oznacza ten kod?”. Pyta również: w jakim sterowaniu, na jakiej maszynie i przy jakim aktywnym trybie działa ten kod?
Z czego składa się blok programu ISO CNC i jak sterowanie go interpretuje
Program składa się z kolejnych bloków, czyli wierszy wykonywanych przez sterowanie. Klasyczny fragment programu frezarskiego może wyglądać tak:
N10 G21 G17 G90 G54N20 T01 M06N30 S2500 M03N40 G00 X20 Y15N50 G43 H01 Z5N60 G01 Z-3 F180N70 X80 F350N80 G00 Z50N90 M05N100 M30
Każdy fragment ma swoje zadanie.
N10 jest numerem bloku. Adres N ułatwia orientację w programie, wyszukiwanie miejsc zatrzymania i diagnostykę. W wielu współczesnych sterowaniach numerowanie każdego wiersza nie jest konieczne, dlatego programy generowane z CAM mogą mieć numery tylko w wybranych miejscach albo nie mieć ich wcale.
W tym samym bloku pojawiają się funkcje przygotowawcze:
-
G21 – programowanie w milimetrach,
-
G17 – wybór płaszczyzny XY,
-
G90 – programowanie absolutne,
-
G54 – wybór układu współrzędnych przedmiotu.
Dopiero kolejne bloki określają narzędzie, parametry skrawania i ruch.
W N20 T01 M06 adres T01 wskazuje narzędzie nr 1, natomiast M06 wydaje polecenie wykonania wymiany narzędzia. Jest to typowy zapis dla centrum frezarskiego, ale nie należy przenosić go automatycznie na tokarkę. Na tokarce rewolwerowej wywołanie narzędzia odbywa się zwykle inaczej i jest ściśle związane ze sposobem zapisu korekcji.
N30 S2500 M03 przygotowuje wrzeciono: S2500 ustala zadaną prędkość, a M03 uruchamia obrót w określonym kierunku. Samo zaprogramowanie S nie musi więc oznaczać fizycznego uruchomienia wrzeciona.
W bloku G00 X20 Y15 maszyna wykonuje szybki ruch pozycjonujący. X i Y są adresami osi. Następnie G01 Z-3 F180 uruchamia interpolację liniową z posuwem określonym przez F.
Tu ujawnia się jedna z najważniejszych cech programowania ISO: część funkcji działa modalnie. Po zaprogramowaniu G01 sterowanie może utrzymywać ten tryb w kolejnych blokach, dopóki nie zostanie wybrana inna funkcja z tej samej grupy, na przykład G00, G02 albo G03. Podobnie zaprogramowany posuw lub prędkość wrzeciona często pozostają aktywne do czasu ich zmiany.
To właśnie funkcje modalne odpowiadają za sporą część błędów przy ręcznych poprawkach. Operator dopisuje współrzędną X i patrzy tylko na aktualną linię, choć sposób wykonania ruchu wynika z funkcji G ustawionej kilka albo kilkadziesiąt bloków wcześniej.
Przy uruchamianiu obcego programu nie warto więc zaczynać od szukania błędów w geometrii. Najpierw trzeba sprawdzić stan początkowy programu:
-
jednostki G20/G21,
-
programowanie absolutne lub przyrostowe G90/G91,
-
aktywną płaszczyznę G17/G18/G19,
-
układ zerowy przedmiotu,
-
tryb posuwu,
-
sposób interpretacji prędkości wrzeciona,
-
kompensacje narzędzia,
-
funkcje pozostawione po poprzednim programie.
Program, który geometrycznie wygląda poprawnie, może wykonać bardzo zły ruch, jeżeli maszyna zaczyna go z innym stanem modalnym niż zakładał autor.
T, D, S, M i F – pięć adresów, których nie wolno interpretować w oderwaniu od sterowania
Adres T oznacza narzędzie, ale sposób jego użycia zależy od rodzaju maszyny.
Na centrum frezarskim często spotyka się:
T05 M06
Czyli wybór narzędzia nr 5 i wykonanie jego wymiany. W zależności od sterowania oraz konfiguracji magazynu samo T05 może jedynie przygotować narzędzie do kolejnej wymiany, natomiast dopiero M06 uruchamia mechanizm wymiany.
Na tokarce sprawa wygląda inaczej. W sterowaniach wykorzystujących klasyczną konwencję FANUC można spotkać zapis:
T0101
Pierwsza część wskazuje pozycję narzędzia w głowicy, a druga – numer korekcji. Spotyka się więc przykładowo T0303, gdzie wywoływane jest narzędzie z pozycji 3 wraz z odpowiadającą mu korekcją. Konkretna liczba cyfr i sposób interpretacji zależą jednak od konfiguracji sterowania.
To nie jest detal. Błędna korekcja narzędzia może przesunąć tor o kilka dziesiątych, kilka milimetrów, a przy źle przygotowanej tabeli nawet więcej. Przy pierwszym uruchomieniu programu T należy zawsze porównać z rzeczywistym numerem narzędzia, jego pozycją w magazynie lub rewolwerze oraz przypisaną korekcją.
Adres D dotyczy korekcji narzędzia, lecz właśnie tutaj występują jedne z największych różnic między sterowaniami.
Na wielu frezarkach pracujących w konwencji zbliżonej do FANUC adres D jest kojarzony przede wszystkim z rejestrem kompensacji promienia freza, na przykład:
G41 D05
Sterowanie włącza wtedy kompensację toru narzędzia i pobiera odpowiednią wartość z rejestru D05.
W SINUMERIK znaczenie D może być szersze i wiązać się z wyborem zestawu danych korekcyjnych lub krawędzi skrawającej wybranego narzędzia. Można więc spotkać zapis typu:
T3 D1
Dlatego stwierdzenie „D zawsze oznacza promień freza” jest po prostu błędne. Znaczenie D trzeba sprawdzić w dokumentacji konkretnego sterowania i konfiguracji maszyny.
Dodatkowo na wielu frezarkach długość narzędzia obsługuje adres H, na przykład:
G43 H05
Dobrą praktyką jest takie skonfigurowanie tabeli, aby numer narzędzia i odpowiadające mu numery korekcji były logicznie powiązane – przykładowo T05, H05 i D05. Nie zawsze jest to wymagane technicznie, ale znacząco ogranicza liczbę pomyłek podczas ustawiania maszyny.
Adres S określa parametr prędkości wrzeciona.
Przy standardowym trybie stałej prędkości obrotowej:
S2500 M03
oznacza zwykle zadanie 2500 obr./min i uruchomienie wrzeciona funkcją M03.
Na tokarkach często pracuje się jednak ze stałą prędkością skrawania. Po aktywacji G96 wartość S może oznaczać prędkość skrawania w m/min, a sterowanie samo zmienia obroty wraz ze zmianą średnicy.
Jeżeli zaprogramowano przykładowo:
G96 S180
to przy średnicy 100 mm wymagane obroty wynoszą w przybliżeniu:
n = 1000 × 180 / (π × 100) ≈ 573 obr./min
Przy zejściu do średnicy 20 mm sterowanie potrzebowałoby już około:
2865 obr./min
To pokazuje, dlaczego przy toczeniu z G96 tak ważne jest ograniczenie maksymalnych obrotów. W zależności od sterowania stosuje się odpowiednią funkcję ograniczającą, na przykład rozwiązania oparte na G50 lub G92. Bez prawidłowego limitu wrzeciono podczas planowania czoła może wejść na bardzo wysokie obroty, gdy narzędzie zbliża się do osi detalu.
Adres M uruchamia funkcje pomocnicze maszyny. Do najczęściej spotykanych należą:
-
M03 – obroty wrzeciona w jednym kierunku,
-
M04 – obroty w kierunku przeciwnym,
-
M05 – zatrzymanie wrzeciona,
-
M06 – wymiana narzędzia na wielu frezarkach,
-
M08 – włączenie chłodziwa,
-
M09 – wyłączenie chłodziwa,
-
M00 – bezwarunkowe zatrzymanie programu,
-
M01 – zatrzymanie opcjonalne,
-
M30 – zakończenie programu i jego reset/przewinięcie zgodnie z logiką sterowania.
Największa pułapka? Kody M nie są całkowicie uniwersalne. Producent obrabiarki może poprzez PLC przypisać dodatkowe funkcje do konkretnych numerów M. Na jednej maszynie M10 może zaciskać uchwyt, na innej obsługiwać zupełnie inny mechanizm. Szczególnie niebezpieczne jest kopiowanie kodów M sterujących szczękami, podtrzymką, osią C, konikiem, sondą czy automatyką podawania materiału.
Adres F określa posuw. Sama liczba nie mówi jednak wszystkiego.
Przy:
G94 F300
F300 oznacza zwykle posuw 300 mm/min.
Przy:
G95 F0.20
wartość oznacza zwykle 0,20 mm/obr.
Różnica jest ogromna. Przy wrzecionie pracującym z prędkością 2000 obr./min posuw 0,20 mm/obr. odpowiada prędkości liniowej około:
0,20 × 2000 = 400 mm/min
Zmiana obrotów przy aktywnym G95 automatycznie zmienia rzeczywistą prędkość posuwu osi.
Na frezarkach często stosuje się G94, natomiast podczas toczenia bardzo użyteczny jest G95, ponieważ posuw na obrót bezpośrednio wiąże ruch narzędzia z obrotem detalu. To ułatwia kontrolowanie obciążenia ostrza i jakości powierzchni.
Najgorszy nawyk początkującego operatora to patrzenie wyłącznie na liczbę po F. Najpierw trzeba ustalić aktywny tryb posuwu, dopiero później oceniać wartość F.
Jak czytać program CNC przed pierwszym uruchomieniem i gdzie najczęściej pojawiają się kosztowne błędy
Dobry program sprawdza się od góry, ale nie linijka po linijce w jednakowy sposób. Najpierw trzeba znaleźć polecenia, które mogą zmienić położenie maszyny albo sposób interpretacji wszystkich następnych bloków.
Pierwszy priorytet to układ współrzędnych i korekcje. Jeżeli program korzysta z G54, trzeba sprawdzić rzeczywiste wartości tego układu na maszynie. Błąd 20 mm w G54 jest znacznie poważniejszy niż błąd 20 mm w pojedynczym ruchu, ponieważ przesuwa praktycznie całą obróbkę.
Drugi priorytet to narzędzia. Dla każdego T należy porównać:
-
rzeczywiste narzędzie w magazynie lub rewolwerze,
-
średnicę lub promień,
-
długość,
-
orientację płytki na tokarce,
-
numer korekcji,
-
maksymalne dopuszczalne obroty,
-
wysięg narzędzia,
-
możliwość kolizji oprawki z detalem albo uchwytem.
Dopiero później przychodzi czas na parametry S i F.
Przykład: frez pełnowęglikowy Ø10 mm obrabiający stal nie powinien być oceniany wyłącznie na podstawie S4000 F500. Trzeba znać materiał narzędzia, liczbę ostrzy, gatunek obrabianej stali, szerokość i głębokość skrawania oraz sposób chłodzenia. Ten sam posuw może być spokojny przy lekkim frezowaniu bocznym i zdecydowanie za duży przy wejściu pełną średnicą w materiał.
Na tokarce podobny problem występuje przy G96. S200 wygląda niepozornie, dopóki operator nie zauważy, że oznacza 200 m/min, a nie 200 obr./min.
Przed uruchomieniem obcego programu dobrze wykonać go w Single Block, z ograniczonym rapid override i możliwością natychmiastowego zatrzymania ruchu. Symulacja jest pomocna, lecz nie wolno traktować jej jako gwarancji bezpieczeństwa. Symulator może znać zaprogramowany tor narzędzia, ale niekoniecznie odwzorowuje rzeczywisty detal pozostawiony w uchwycie, nietypowe szczęki, długą oprawkę, źle zmierzone narzędzie albo fizyczne położenie wyposażenia maszyny.
To samo dotyczy programu z CAM. Postprocesor generuje kod dla określonego sterowania i konkretnej konfiguracji obrabiarki. Kod przygotowany dla „Fanuca” nie powinien automatycznie trafiać na każdą maszynę z logo FANUC. Producent obrabiarki może zmienić sekwencję wymiany narzędzia, funkcje M, obsługę dodatkowych osi czy sposób wywoływania sondy.
W praktyce szczególnie często wychodzą cztery problemy:
-
pomylony numer narzędzia lub korekcji,
-
niewłaściwy układ G54–G59,
-
pozostawiona aktywna kompensacja G41/G42 albo korekcja długości,
-
niewłaściwa interpretacja S lub F po zmianie trybu G94/G95 albo G96/G97.
Osoba ucząca się programowania powinna ćwiczyć nie tylko pisanie kolejnych bloków, ale przede wszystkim przewidywanie, jaki stan sterowania pozostaje aktywny po wykonaniu każdej linii. Tę umiejętność można rozwijać zarówno przy maszynie, jak i podczas szkolenia obejmującego praktyczne kurs CNC, szczególnie jeżeli ćwiczenia obejmują analizę programu przed jego uruchomieniem, korekcje narzędzi oraz dobór S i F.
Nie warto natomiast uczyć się programów na pamięć. Zapamiętanie, że M08 oznacza chłodziwo, a M03 wrzeciono, jest łatwe. Znacznie ważniejsze jest rozumienie konsekwencji. Jeżeli M08 zostanie wykonane przed prawidłowym zamknięciem osłony albo specjalna funkcja M uruchomi automatykę dodatkowego urządzenia, o zachowaniu maszyny decyduje konfiguracja PLC, a nie ogólna tabela G-code znaleziona w internecie.
Podobnie z adresami D i T. Tutaj skróty myślowe są szczególnie niebezpieczne. Program ISO nie jest uniwersalnym plikiem wykonawczym dla każdej obrabiarki CNC. Jest wspólnym sposobem opisywania poleceń, na który producenci sterowań i obrabiarek nakładają własne zasady.
FAQ – program ISO CNC w praktyce
Czy program ISO CNC i G-code oznaczają dokładnie to samo?
W codziennej pracy określenia te są często używane zamiennie. Technicznie G-code jest częścią języka programowania wykorzystującego słowa adresowe, natomiast program zawiera również m.in. współrzędne, T, D, S, F oraz funkcje M.
Czy program z jednej maszyny CNC można wgrać bez zmian do drugiej?
Nie należy tego robić bez weryfikacji. Nawet przy tym samym sterowaniu trzeba sprawdzić funkcje M, numery narzędzi, korekcje, układy zerowe, cykle, limity osi oraz sekwencję wymiany narzędzia. Przy programie z CAM właściwym rozwiązaniem jest postprocesor przygotowany dla konkretnej konfiguracji maszyny.
Czy T zawsze oznacza numer narzędzia?
T wskazuje narzędzie lub dane związane z jego wyborem, ale format zależy od sterowania. Na frezarce można spotkać T05 M06, a na tokarce np. T0101, gdzie zapis może jednocześnie określać pozycję narzędzia i numer korekcji.
Czy D oznacza średnicę narzędzia?
Nie. W wielu sterowaniach frezarskich D wskazuje rejestr korekcji promienia używany m.in. przy G41/G42. W SINUMERIK D może odnosić się do zestawu korekcji lub krawędzi narzędzia. Znaczenie należy sprawdzić dla konkretnego sterowania.
Co oznacza S1000?
To zależy od aktywnego trybu. W typowym trybie stałych obrotów będzie to zadana prędkość 1000 obr./min. Przy toczeniu z G96 adres S określa zwykle prędkość skrawania, np. w m/min, a obroty wrzeciona są obliczane na podstawie aktualnej średnicy.
Czy M03 zawsze oznacza obroty zgodne z ruchem wskazówek zegara?
M03 i M04 definiują kierunki wrzeciona zgodnie z konwencją sterowania i maszyny, ale operator powinien patrzeć na rzeczywisty kierunek pracy narzędzia oraz dokumentację maszyny. Jest to szczególnie istotne przy wrzecionach przechwytujących, napędzanych narzędziach i bardziej rozbudowanych tokarkach.
Czym różni się F200 przy G94 od F0.20 przy G95?
Przy G94 wartość F jest typowo podawana jako posuw liniowy, np. 200 mm/min. Przy G95 posuw jest odnoszony do obrotu wrzeciona, np. 0,20 mm/obr. To dwa różne sposoby sterowania ruchem narzędzia.
Czy funkcja M06 jest potrzebna na każdej maszynie?
Nie. Jest typowa dla automatycznej wymiany narzędzia na wielu frezarkach i centrach obróbczych, ale tokarki oraz maszyny specjalne mogą realizować zmianę narzędzia zupełnie inaczej.
Co sprawdzić jako pierwsze przed uruchomieniem nieznanego programu?
Nie zaczynaj od korekty posuwu. Najpierw sprawdź jednostki, G90/G91, aktywny układ G54–G59, narzędzie T oraz przypisane mu korekcje. Następnie zweryfikuj sposób interpretacji S i F oraz nietypowe funkcje M. Jeśli masz wybrać tylko jeden obszar do kontroli w pierwszej kolejności, sprawdź zero przedmiotu i korekcję aktualnego narzędzia – ich błąd przesuwa cały tor i daje największe ryzyko natychmiastowej kolizji.