Cykle obróbkowe: wiercenie, frezowanie, toczenie na przykładach SINUMERIK, HAAS, HEIDENHAIN, FANUC

Cykle obróbkowe: wiercenie, frezowanie, toczenie na przykładach SINUMERIK, HAAS, HEIDENHAIN, FANUC

21/07/2020

Każde sterowanie maszyn CNC posiada mniej lub bardziej rozbudowaną bazę cykli obróbkowych. Stanowią one istotny składnik programów sterujących pracą maszyny.

Co do zasady, są to stałe, sparametryzowane podprogramy zapisanie bezpośrednio w układzie sterowania. Często możemy je definiować za pomocą łatwego w interpretacji modułu programowania dialogowego, prezentującego graficznie znaczenie poszczególnych parametrów. W znacznym stopniu ułatwia to poprawne zdefiniowanie odpowiednich wartości w konkretnej sytuacji. Cykle obróbkowe sprawiają, że życie programisty staje się nie tylko łatwiejsze, ale też pozwalają lepiej wykorzystać potencjał maszyny.

Głównymi korzyściami wynikającymi ze stosowania cykli są:
• przejrzystość programu
• znaczne zmniejszenie liczby bloków
• skrócenie czasu tworzenia programu w przypadku programowania na maszynie
• ułatwia późniejszą edycję i optymalizację programu
• pozwalają na zastosowanie wydajniejszych strategii obróbkowych

Rys. 1. Porównanie programu standardowego (po lewej) i z wykorzystaniem cyklu G71 (po prawej)

Rys. 1. Porównanie programu standardowego (po lewej) i z wykorzystaniem cyklu G71 (po prawej)

Cykle w zależności od wersji sterowania, czy producenta maszyny potrafią się od siebie znacznie różnić. To może nastręczać spore problemy z interpretacją takiego kodu osobom, które nie znają danego sterowania. FANUC, SINUMERIK, czy HEIDENHAIN mają całkiem odmienne podejście do definicji cykli. Różnią się nie tylko samym kodem, który je wywołuje, ale też parametrami, które możemy zdefiniować przy jego wywołaniu.

Z uwagi na charakter obróbki, możemy je podzielić na trzy grupy:

  • cykle wiercenia
  • cykle frezowania
  • cykle toczenia

Cykle wiercenia
Cykle wiercenia obejmują zabiegi obróbki otworów przy użyciu różnych narzędzi np. wierteł, pogłębiaczy, rozwiertaków, gwintowników. Oprócz możliwości wykorzystania tych cykli tworząc program przy pulpicie maszyny, w większości wypadków programy typu CAM również potrafią generować kody operacji punktowych jako cykle dostosowane pod konkretną maszynę.

Poniżej zamieszczono przykłady cykli gwintowania w różnych sterowaniach.

W układzie Sinumerik 810D/840D cykle obróbkowe są zdefiniowane w postaci procedur, których parametry są podawane razem z nazwą cyklu.
CYCLE84(RTP, RFP, SDIS, DP, DPR, DTB, SDAC, MPIT, PIT, POSS, SST, SST1,
_AXN)

RTP – Płaszczyzna wycofania (absolutnie)
RFP – Płaszczyzna odniesienia (absolutnie)
SDIS – Odstęp bezpieczeństwa (przyrostowo, bez znaku)
DP* – Ostateczna głębokość gwintowania (absolutnie)
DPR* – Ostateczna głębokość gwintowania (przyrostowo, bez znaku)
DTB* – Czas oczekiwania na głębokości ostatecznej (łamanie wiórów)
SDAC – Kierunek obrotów po zakończeniu cyklu : 3, 4 albo 5
MPIT* – Skok gwintu jako wielkość gwintu ze znakiem.
Zakres wartości: 3 (dla M3) … 48 (dla M48)
Znak określa kierunek zwoju gwintu („+” prawy, „-” lewy)
PIT* – Skok gwintu jako wartość (ze znakiem)
Zakres wartości: 0,001 … 2000,000 mm
Znak określa kierunek zwoju gwintu („+” prawy, „-” lewy)
POSS – Pozycja wrzeciona dla zorientowanego zatrzymania (w stopniach)
SST – Prędkość obrotowa dla gwintowania
SST1 – Prędkość obrotowa dla wycofania
_AXN* – Oś narzędzia: 1, 2 lub 3 (definiowana przez G17/G18/G19)

Gdzie CYCLE84 jest nazwą cyklu. W tym wypadku jest to gwintowanie bez użycia uchwytu kompensacyjnego, natomiast w nawiasach podano kolejne wartości parametrów tego cyklu. Mogą być one podawane jako stałe, bądź jako zmienne (R-parametry). Programując przy pulpicie maszyny moduł graficzny sterowania, będzie nam podpowiadał co znaczą kolejne parametry, dzięki temu w łatwy sposób będziemy mogli zdefiniować cały cykl.

Dodatkowo wywołanie cykli obróbkowych może mieć charakter niemodalny, wtedy odnosi się tylko do jednego bloku, lub modalny, czyli w każdym bloku z ruchem narzędzia do odwołania. Aby modalnie wywołać taki cykl należy wpisać w danym bloku MCALL, dzięki czemu w następnych linijkach z instrukcjami ruchu narzędzia, po wykonaniu tych ruchów, automatycznie wywołany zostanie cykl modalny.

Odwołanie cyklu modalnego następuje po zaprogramowaniu adresu MCALL bez wywołania cyklu.
N10 MCALL CYCLE100(34,67,2) ; modalne przywołanie cyklu
N15 G0 X20 Y30 ; pierwsze uruchomienie cyklu
N20 Y50 ; drugie uruchomienie cyklu
N25 Y100 ; trzecie uruchomienie cyklu
N30 MCALL ; odwołanie cyklu modalnego

W Heidenhain 530/640 dla odmiany definicja podobnego cyklu wygląda następująco:

CYCL DEF 207 GWINTOWANIE GS NOWE
Q200=2 ;BEZPIECZNA WYSOKOŚĆ – odstęp bezpieczeństwa
Q201=-20 ;GŁĘBOKOŚĆ – głębokość gwintu
Q239=1 ;SKOK GWINTU – Znak określa kierunek zwoju gwintu („+” prawy, „- ” lewy)

Q203=-10 ;WSPŁ.POWIERZ. – Współrzędne powierzchni przedmiotu

Q204=20 ;2. BEZ. ODSTĘP – Odstęp bezpieczeństwa

Każdy parametr jest definiowany w osobnej linijce, natomiast w komentarzu jest zawsze opis danego parametru. Programista piszący program na maszynie, też może skorzystać z graficznej podpowiedzi. Podobnie jak w Simumeriku, tak samo w Heidenhainie to sterowanie oblicza odpowiedni posuw dla konkretnego gwintu w oparciu o zdefiniowane wcześniej obroty. W samym cyklu jesteśmy też w stanie zdefiniować czy to ma być lewy, czy prawy gwint. Wszystkie cykle w Heidenhain działają po wywołaniu odpowiedniej komendy.

Może to być:
CYCL CALL: działa wierszami
CYCL CALL PAT: działa wierszami w połączeniu z tabelami punktów
Wywołanie operacji dla kolejnych punktów następuje po dopisaniu do bloku M99. Dla każdego wiersza, w którym ma być wywołany ten cykl należy dodać tę komendę. Dla odmiany M98 działa modalnie, w zależności od parametrów samej maszyny.

W FANUCU z kolei, jak również innych sterowaniach z niego się wywodzących cykle są konkretnymi G-kodami. W momencie kiedy jest aktywny, będzie wywoływany z każdym ruchem X lub Y do odwołania kodem G80.

Cykl gwintowania w sterowaniu Haas wygląda następująco:
G84 F J L R X Y Z S ;
F – Prędkość posuwu
J – Wycofanie wielokrotne (przykład: J2 wycofa się z szybkością dwukrotnie większą niż
szybkość skrawania)
L – Liczba otworów w razie użycia G91 (tryb inkrementalny)
R – Położenie płaszczyzny R (nad obrabianą częścią)
X – Lokalizacja otworu na osi X
Y – Lokalizacja otworu na osi Y
Z – Pozycja osi Z u dołu otworu
S – Opcjonalna prędkość wrzeciona

W porównaniu do sterowań SINUMERIK i HEIDENHAIN, cykl Haasa jest dużo prostszy. Podstawową różnicą jest to, że sami musimy obliczyć odpowiednią wartość posuwu. Co więcej ten cykl służy do wykonywania tylko gwintów prawych. Gdybyśmy chcieli wykonać gwint lewy, musielibyśmy się posłużyć zupełnie innym kodem, w tym wypadku byłoby to G74.

Cykle frezowania
Cykle frezowania stanowią zbiór charakterystycznych dla danego układu sterowania podprogramów obróbki powierzchni płaskich, rowków, kieszeni itp. wykonywanych na frezarkach. Różnorodność kształtów, mnogość parametrów do ustawienia, a także ograniczone strategie wpływają na to, że w praktyce wykorzystywane są tylko przy programowaniu z ręki.

Mając do dyspozycji nowoczesne oprogramowanie CAM jesteśmy w stanie dużo szybciej stworzyć program dla obróbki konkretnego kształtu. Co więcej, na maszynie mamy bardzo ograniczone możliwości wpływania na kształt ścieżki. W programach typu CAM mamy przeważnie do dyspozycji szeroki wachlarz dużo wydajniejszych strategii, niż to co mamy dostępne na maszynie.

Najczęściej stosowanym cyklem frezowania jest cykl frezowania kieszeni prostokątnej.
W SINUMERIC wygląda on następująco.

POCKET1(RTP, RFP, SDIS, DP, DPR, LENG, WID, CRAD, CPA, CPD, STA1, FFD,
FFP1, MID, CDIR, FAL, VARI, MIDF, FFP2, SSF)
RTP – Płaszczyzna wycofania (absolutnie)
RFP – Płaszczyzna odniesienia (absolutnie)
SDIS – Odstęp bezpieczeństwa (przyrostowo, bez znaku)
DP* – Ostateczna głębokość kieszeni (absolutnie)
DPR* – Ostateczna głębokość kieszeni (przyrostowo, bez znaku)
LENG – Długość kieszeni (bez znaku lub ze znakiem)
WID – Szerokość kieszeni (bez znaku lub ze znakiem)
CRAD – Promień narożnika (bez znaku)
CPA – Odcięta punktu środkowego (absolutnie)
CPO – Odcięta punktu środkowego (absolutnie)
STA1 – Kąt między osią wzdłużną i odciętą: 0° ≤ STA1 < 180°
FFD – Posuw dla dosuwu
FFP1 – Posuw dla obróbki bocznej
MID – Maksymalna głębokość dosuwu (bez znaku)
CDIR – Kierunek obróbki: 2 (G2), 3 (G3)
FAL – Naddatek na obróbkę wykańczającą na powierzchni bocznej
VARI – Rodzaj obróbki:
0 – obróbka kompletna (zgrubna i wykańczająca)
1 – obróbka zgrubna z pozostawieniem naddatku
2 – tylko obróbka wykańczająca
MIDF – Maksymalna głębokość dosuwu dla obróbki wykańczającej
FFP2 – Posuw dla obróbki wykańczającej
SSF – Prędkość obrotowa przy obróbce wykańczającej
Definicja cyklu dla takiej samej geometrii w HEIDENHAIN prezentowałaby się tak jak zapisano poniżej:
12 CYCL DEF 4.0 FREZOWANIE KIESZENI
13 CYCL DEF 4.1 ODSTEP 2 – Odstęp bezpieczeństwa
14 CYCL DEF 4.2 GLEBOKOSC -10 – Głębokość kieszeni
15 CYCL DEF 4.3 DOSUW 4 F80 – Głębokość dosuwu i posuw przy zagłębianiu
16 CYCL DEF 4.4 X80 – Długość kieszeni
17 CYCL DEF 4.5 Y40 – Szerokość kieszeni
18 CYCL DEF 4.6 F100 DR+ PROMIEN 10 – Posuw, kierunek ruchu:
frezowanie współbieżne przy M3: DR+
frezowanie przeciwbieżne przy M3: DR–
promień zaokrąglenia: promień dla naroży kieszeni
19 L Z+100 R0 FMAX M6
20 L X+60 Y+35 FMAX M3
21 L Z+2 FMAX M99

Rys. 2. Deklaracja kierunku ruchu w sterowaniu Heidenhain

Rys. 2. Deklaracja kierunku ruchu w sterowaniu Heidenhain

Dla odmiany w sterowaniu HAAS obróbkę kieszeni definiujemy kodem
G150 D F I J K P Q R S X Y Z
D – Wybór korekcji promienia/średnicy narzędzia
F – Prędkość posuwu
I – Inkrementalne cięcia osi X (wartość dodatnia)
J – Inkrementalne cięcia osi Y (wartość dodatnia)
K – Wartość przejścia wykańczającego (wartość dodatnia)
P – Numer podprogramu, który definiuje geometrię kieszeni
Q – Inkrementalna głębokość cięcia w osi Z na przejście (wartość dodatnia)
R – Położenie płaszczyzny R ruchu szybkiego
S – Opcjonalna prędkość wrzeciona
X – Położenie początkowe X
Y – Położenie początkowe Y
Z – Głębokość końcowa kieszeni

Podstawowa różnica między tymi sterowaniami jest taka, iż w Haasie nawet dla prostej kieszeni będziemy musieli stworzyć podprogram P###, który definiuje geometrię kieszeni zamkniętego obszaru za pomocą ruchów G01, G02 i G03 w osiach X i Y. Komenda G150 skutkuje wyszukiwaniem wewnętrznego podprogramu o numerze N, określonym przez kod P.

W porównaniu do HAAS, definicja cykli SINUMERIK i HEIDENHAIN jest bardziej opisowa. Z pulpitu maszyny będziemy mieli graficzne podpowiedzi co oznacza dany parametr. W zależności od geometrii, którą chcemy obrobić, mamy do dyspozycji wiele, różnych cykli, inaczej niż ma to miejsce w Haasie. Parametry wykorzystywane w tych sterowaniach różnią się od siebie oznaczeniem, natomiast ich funkcje są podobne.

Najistotniejsze w procesie definiowania cykli frezowania na maszynie będzie w każdym przypadku czas jego zdefiniowania i możliwości stosowania różnych strategii. W tym zakresie niemal każde oprogramowanie CAM będzie lepsze od pisania takiego programu na maszynie. Nie mówiąc już o definiowaniu cykli dla bardziej złożonych kształtów.

Cykle toczenia
Nieco inaczej ma się sprawa z cyklami toczenia, które w większości układów sterowań obejmują najczęściej stosowane zabiegi: toczenia, wytaczania, toczenia rowków, toczenia gwintów czy podcięć obróbkowych. Dodatkowo występują tu cykle obróbki otworów, które często pochodzą z opisanych wyżej cykli wiercenia. W toczeniu mamy do czynienia z dużo prostszymi geometriami, dlatego, tak zwane, pisanie programów z palca jest ciągle bardzo popularne. Zasada działania jest ciągle ta sama. Mamy kilka parametrów do zdefiniowania i kontur do opisania. Warto nadmienić, że niektóre programy CAM są w stanie wygenerować kod jako odpowiedni cykl maszynowy, dzięki temu program staje się przejrzystszy i krótszy.

Jednym z bardziej złożonych cykli toczenia w Sinumeriku jest CYCLE95. Jego zadaniem jest toczenie zgrubne i/lub wykańczające powierzchni zewnętrznych lub wewnętrznych. Dzięki niemu jesteśmy w stanie programować nawet złożone kształty zdefiniowane przez właściwy kontur w postaci podprogramu.

CYCLE95(NPP, MID, FALZ, FALX, FAL, FF1, FF2, FF3, VARI, DT, DAM)

NPP – Nazwa podprogramu definicji konturu
MID – Głębokość dosuwu (bez znaku)
FALZ* – Naddatek na obróbkę wykańczającą w osi wzdłużnej
FALX* – Naddatek na obróbkę wykańczającą w osi poprzecznej
FAL* – Naddatek na obróbkę wykańczającą
FF1 – Posuw dla obróbki zgrubnej bez podcięcia
FF2 – Posuw dla zagłębiania się w elementy podcięcia
FF3 – Posuw dla obróbki wykańczającej
VARI – Rodzaj obróbki, zakres wartości 1¸12
DT – Czas postoju przy łamaniu wióra
DAM – Długość drogi skrawania do łamania wióra

Obróbka jest realizowana za pomocą szeregu równoległych przejść (promieniowych lub osiowych. Istotny jest dobór parametru VARI, który definiuje rodzaj obróbki: zewnętrzną, wewnętrzną, współosiową, promieniową, zgrubną, czy wykańczającą. W sumie dostępnych jest 12 różnych strategii. Bardzo ważne jest zdefiniowanie odpowiedniego podprogramu, zawierającego obrabiany kontur. Definiujemy go za pomocą standardowych G-kodów (G1, G2, G3).

W FANUCU mamy kilka cykli do toczenia z uwzględnieniem kształtu gotowej części.
Cykl G71 jest przykładem toczenia zgrubnego z posuwem wzdłużnym.

G71 U R
G71 P Q V W F S T
N

N

U – Głębokość skrawania
R – Wielkość odjazdu
P – Numer pierwszego bloku programu
Q – Numer ostatniego bloku programu
U – Wielkość naddatku dla obróbki wykańczającej w kierunku osi X
W – Wielkość naddatku dla obróbki wykańczającej w kierunku osi Z
F – Posuw
S – Prędkość wrzeciona do stosowania w całym bloku G71
T – Narzędzie i korekcja do stosowania w całym bloku G71

Jak już wielokrotnie się przekonaliśmy w sterowaniu FANUC mamy większą liczbę cykli, natomiast w porównaniu do SINUMERIK, pojedyncze cykle są dużo prostsze. Tak samo sprawa ma się w toczeniu. Mamy cykle do obróbki zgrubnej, wykańczającej, kopiowania i wiele innych.

Kiedy cykle maszynowe to za mało
Zdarza się również tak, że sterowanie które mamy w maszynie ogranicza nas poprzez możliwość zastosowania tylko takich cykli, które są akurat dostępne. W większości wypadków, do standardowej obróbki wystarczy nam to co daje nam samo sterowanie.

Jeżeli jednak mamy jakąś niestandardową operację, lub to co mamy dostępne na maszynie jest niewystarczające, możemy sami napisać własny cykl. Mam tu na myśli zastosowanie makra. Zwiększają one możliwości i elastyczność układu sterowania poza zakres dostępny ze standardowym kodem G. Potencjalne zastosowania to: rodziny części, zindywidualizowane cykle standardowe, ruchy złożone i sterowanie urządzeniami opcjonalnymi. Daje nam to nieograniczone możliwości.

Makro jest zewnętrznym programem, lub podprogramem, który może być wykonywany wielokrotnie. Makroinstrukcja może przydzielić wartość zmiennej lub odczytać wartość ze zmiennej, ocenić wyrażenie, warunkowo lub bezwarunkowo przejść do innego punktu w programie, bądź warunkowo powtórzyć określoną część programu. Taki program możemy potem wywołać w innym miejscu za pomocą specjalnego kodu jak np. G65 Pxx (FANUC), gdzie Pxx będzie odwołaniem do naszego makra. Tak samo jak w innych cyklach, też mamy możliwość definiowania odpowiednich parametrów np. głębokości, posuwu itp. Sterowanie umożliwia przechodzenie zmiennych między programami, więc makro może zaczytywać te parametry.

Krótko mówiąc, cykle są po to, aby w prosty sposób można było stworzyć dużo bardziej skomplikowany g-kod. Niektóre cykle pozwalają nam zaprogramować maszynę dla takiej obróbki, która nie byłaby możliwa nawet z użyciem oprogramowania typu CAM. Dla bardziej zaawansowanych technologów-programistów istnieje możliwość definiowania własnych makr. Jednak tutaj wiedza o samym sterowaniu jak i znajomość programowania w jakimś języku jest niezbędna. Istnieją też na rynku firmy, które mogą coś takiego dla Państwa dostosować.

Takie rozwiązanie jest za każdym razem bardzo zindywidualizowane pod konkretną maszynę, sterowanie, czy zadanie, które ma realizować, ale możliwości daje nieograniczone.