41) G65, G66, G66.1, G67 Wywołanie Makra

Żeby zrozumieć do czego służą tytułowe kody, musisz najpierw dowiedzieć się czym są zmienne lokalne oraz czym jest program Makro. Poniżej linki do wszystkich powiązanych artykułów.

Program makro to podprogram, ale nie taki zwykły jest on level wyżej . Ale najpierw wymienię cechy wspólne, a dopiero potem różnice i sam będziesz mógł je porównać.

Cechy wspólne

  • Zawsze są zaangażowane przynajmniej dwa programy. Program główny i podprogram/Program Makro.
  • W obydwóch przypadkach program główny wywołuje podprogram/Program Makro
  • Oba mają swoje numery i są za ich pomocą wywoływane
  • Po wywołaniu stają się środowiskiem podrzędnym dla środowiska nadrzędnego, którym jest program główny.
  • Podprogramy tak samo jak programy makro mogą być wywołane nie tylko przez program główny ale również za pomocą innego podprogramu/Programu Mackro.
  • W obu przypadkach, podprogram tak samo jak program Makro zawiera specjalne, powtarzające się dane takie jak np. ścieżka narzędzia lub określony wzór otworów.
  • Oba kończą się kodem M99

No dobra skoro jest tyle podobieństw to jaka jest różnica?

Główną różnicą jest elastyczność.

  • Podprogramy używają stałych danych, których nie da się zmienić.
  • Programując programy Makro używamy elastycznych danych. Robi się to za pomocą zmiennych. Z ich pomocą można bardzo szybko określić wartości przejazdów, ale również bardzo łatwo można je zmieniać

Kolejną różnicą jest sposób wywołania.

  • Podprogramy wywołuje się za pomocą funkcji M98 P…. Gdzie P to numer podprogramu.
  • Programy Makro wywołuje się naszą funkcją tytułową G65 P…. Gdzie P to numer programu Makro.
  • Wywołując podprogramy nie trzeba wpisywać dodatkowych danych
  • Wywołując programy Makro trzeba dopisać dodatkowe dane po numerze programu.
Kanałek Detal 1

Tak wygląda podprogram na nasz kanałek

O100
(KANALEK CZOLOWY FI60, L10)
G0 X59
Z1
G1 Z-6 F0.1
G0 Z1
X53
G1 Z-7.8
G0 Z1
X49
G1 Z-6
G0 Z1
X44
G1 Z0 F0.2
G3 X48 Z-2 R2
G1 Z-6
G2 X52 Z-8 R2
G1 X55
G0 Z1
X64
G1 Z0
G2 X60 Z-2 R2
G1 Z-6
G3 X56 Z-8 R2
G1 X54
G0 Z10
M99

A to jest wywołanie tego podprogramu z poziomu programu głównego

O300
(NOZ DO KANALKOW CZOLOWY 4MM)
T0303 G55
G96 S40 M3
M98 P100            (wywołanie podprogramu O100)
G28 U0 W0
M30

Teraz taki sam kształt określę w programie Makro za pomocą zmiennych

O9000
(KANALEK CZOLOWY  L10)
G0 X=[59+#24]
Z1
G1 Z=[-6-#26] F=[#9]
G0 Z1
X=[53+#24]
G1 Z[-7.8-#26]
G0 Z1
X=[49+#24]
G1 Z[-6-#26]
G0 Z1
X=[44+#24]
G1 Z0 F=[[#9*2]
G3 X=[48+#24] Z-2 R2
G1 Z=[-6-#26]
G2 X=[52+#24] Z=[-8-#26] R2
G1 X=[55+#24]
G0 Z1
X=[64+#24]
G1 Z0
G2 X=[60+#24] Z-2 R2
G1 Z=[-6-#26]
G3 X=[56+#24] Z=[-8-#26] R2
G1 X=[54+#24]
G0 Z10
M99

Tak się wywołuje program Makro z poziomu programu głównego

O300
(NOZ DO KANALKOW CZOLOWY 4MM)
T0303 G55
G96 S40 M3
G65 P9000 L1 X0 Z0 F0,1            (wywołanie makra O9000)
G28 U0 W0
M30

Dzięki naszemu programowi Makro możemy wykonać taki kanałek jak na rysunku. Mało tego, możemy wykonać taki kanałek na dowolnej średnicy, mający dowolną głębokość. Niezły bajer co nie?

Jak to działa?

Załóżmy, że zamiast głębokości 8mm kanałek będzie miał 13mm, a średnica to 160mm zamiast 60mm.

Nie trzeba pisać całego programu od nowa. Przecież kształt jest ten sam. Wystarczy zmienić 2 parametry w programie głównym.

O300
(NOZ DO KANALKOW CZOLOWY 4MM)
T0303 G55
G96 S40 M3
G65 P9000 L1 X100 Z5 F0,1            (wywołanie makra O9000)
G28 U0 W0
M30

I tym prostym sposobem w 2 sekundy zrobiliśmy program na nowy element.

Ja podaje przykłady z tokarki, ale z powodzeniem możesz to stosować na frezarce przy obróbce dowolnych kanałków stempli, czy otworów itd.

Skąd wiadomo która litera odpowiada której zmiennej? Specjalnie w tym celu wklejam tu tabelkę z przyporządkowanymi literami.

Lista 1

Argument dla Listy 1Zmienna lokalna
A#1
B#2
C#3
D#7
E#8
F#9
H#11
I#4
J#5
K#6
M#13
Q#17
R#18
S#19
T#20
U#21
V#22
W#23
X#24
Y#25
Z#26

Lista 2

Argument dla Listy 2Zmienna lokalna
A#1
B#2
C#3
I1#4
J1#5
K1#6
I2#7
J2#8
K2#9
I3#10
J3#11
K3#12
I4#13
J4#14
K4#15
I5#16
J5#17
K5#18
I6#19
J6#20
K6#21
I7#22
J7#23
K7#24
I8#25
J8#26
K8#27
I9#28
J9#29
K9#30
I10#31
J10#32
K10#33

Jak widzisz wrzuciłem dwie listy. Większość maszyn pracuje na liście nr1. Ale oczywiście nie jest to regułą.

Chyba trochę naświetliłem sprawę co nie? A może dalej masz więcej pytań niż odpowiedzi?

G65 P... L... ARGUMENTY

Gdzie

  • G65 – Wywołanie programu Makro
  • P – Numer programu Makro
  • L – Liczba powtórzeń programu Makro
  • Argumenty – Zmienne lokalne wysłane do Makra

Przykład

G65 P9000 L2 A300 B200 F50 S200

W tym przykładzie

  • wywołałem program nr 9000 (P9000
  • będzie on powtórzony 2 razy (L2)
  • Przypisałem wartość 300 do zmiennej lokalnej A (#1) i wysłałem do programu 9000
  • Przypisałem wartość 200 do zmiennej lokalnej B (#2) i wysłałem do programu 9000
  • Przypisałem wartość 50 do zmiennej lokalnej F (#9) i wysłałem do programu 9000
  • Przypisałem wartość 200 do zmiennej lokalnej S (#19) i wysłałem do programu 9000

Teraz pewnie się zastanawiasz po co jest funkcja G66 i G67.

Nie jest łatwo wyjaśnić G66 w 1 zdaniu.

Ponownie posłużę się przykładem. W ten sposób myślę, że najlepiej wchodzi do głowy.

Przykład:

Zakładam że otwory są już wykonane. Pozostało wykonanie gwintów. Nie wykonam ich za pomocą standardowej funkcji gwintowania G84. Zastosuję technikę stosowaną przy drobnych gwintach w miękkich materiałach. Czyli wolniejszy posuw na wejściu i szybszy na wyjściu. Dzięki temu unika się zacięć podczas operacji.

Tak wygląda mój program makro

O8000
(GWINTOWANIE 4 OTWORY)
G0 G90 Z2 S#19 M3
G1 Z-[ABS[#26]] F[#9*0,8] M5
S#19 M4
G1Z2 F[#9*1,2]
M5
M99

Na pierwszy strzał idzie G65

T01 M6 G54
G0 X10 Y10           Najazd nad 1 otwór
G43 H07 G0 Z10
G65 P8000 Z10 F425 S850   Otwór 1
G0 X20 Y20               Najazd na otwór nr 2
G65 P8000 Z10 F425 S850   Otwór 2
G0 X40 Y40               Najazd na otwór nr 3
G65 P8000 Z10 F425 S850   Otwór 3
G0 X60 Y60               Najazd na otwór na 4
G65 P8000 Z10 F425 S850   Otwór 4
Z50                  Koniec gwintowania
M1
 

A teraz to samo tylko z wykorzystaniem G66

T01 M6 G54
G0 X10 Y10           Najazd nad 1 otwór
G43 H07 G0 Z10
G66 P8000 Z10 F425 S850   Otwór 1
G0 X20 Y20               Najazd i wykonanie otworu nr 2
G0 X40 Y40               Najazd i wykonanie otworu nr 3
G0 X60 Y60               Najazd i wykonanie otworu nr 4
G67                      Odwołanie funkcji G66
G0 Z50                   Koniec gwintowania
M1

Wygląda podobnie ale jest jedna zasadnicza różnica: G65 jest funkcją niemodalną . G66 Jest funkcją modalną.

Każdy blok w którym jest zapisany ruch osi po G66 będzie wywoływał program makro do momentu wpisania G67.

G67– Odwołanie funkcji G66

Dlatego G65 raczej stosuje się przy pojedynczych elementach, a G66 przy szeregu. W moim przykładzie był to ciąg gwintów.

Na dokładkę mam jeszcze jedną funkcję G66.1 (niedostępna w niektórych maszynach).

Działa ona podobnie jak G66 z tą różnicą, że makro jest wywoływane po dowolnej komendzie, w każdym następnym bloku po G66.1 do momentu odwołania za pomocą G67.

No dobra tyle na dzisiaj mam nadzieję przedstawiłem wszystko w sposób łatwy do przyswojenia. Jeśli chcesz się podzielić spostrzeżeniami, zapraszam do komentowania. No i oczywiście nie zapomnij zapisać się do newslettera.

Pozdrawiam PrzemoCNC

39) Zmienne systemowe

No dobra wprowadzenie mamy już za sobą. W tym wpisie wprowadziłem Cie w świat zmiennych Macro. Opisałem wstępnie czym one są i jakie ogromne korzyści daje używanie ich w programowaniu. Dodatkowo wyjaśnione tam jest jaka jest różnica między zmiennymi, a parametrami.

Jako, temat jest naprawdę obszerny rozłożyłem go na kilka wpisów.

Zmienne systemowe

To o nich jest dzisiejszy wpis.

  • Zaczynają się od #1000 w górę. ( liczba może być czterocyfrowa lub pięciocyfrowa)
  • Zmienne systemowe nie są wyświetlane na ekranie wyświetlacza

To bardzo dużo zmiennych, a co za tym idzie bardzo dużo do zapamiętania. Ale nie martw się. Po to jest ta strona żebyś nie musiał wszystkiego pamiętać. Wystarczy, że wejdziesz na przemoncnc.pl i dzięki spisowi treści lub za pomocą wyszukiwarki łatwo znajdziesz to co w danym momencie cię interesuje .

Numery są zdefiniowanie przez Fanuca. Nie da się ich zmienić. W zależności od wersji oprogramowania lub od modelu maszyny numery mogą się zmieniać. Dlatego podstawą jest posiadanie książki obsługi maszyny. Dla każdej z osobna.

Zmienne systemowe nie mogą być pokazane bezpośrednio na wyświetlaczu (w większości maszyn ma zastosowanie ta zasada). Ale musi być jakiś sposób sprawdzenia ich obecnej wartości. Ta metoda to „transfer wartości”

W programie lub w MDI niektóre zmienne systemowe muszą być przeniesione do zmiennych lokalnych lub wspólnych. W zależności od źródła metoda może się różnie nazywać: zastępowanie zmiennych, redefinicja zmiennych, transfer wartości.

Przykład 1: (Fanuc 15M)

#105=#5221    

Wartość X z bazy G54 zostanie przetransferowana ze zmiennej systemowej #5221 do zmiennej wspólnej #105

Przykład 2: (Fanuc 15M)

#106=#5222

Wartość Y z bazy G54 zostanie przetransferowana ze zmiennej systemowej #5222 do zmiennej wspólnej #106

Zmienne lokalne i wspólne mogą być wyświetlone na monitorze.

Grupy zmiennych systemowych

Jak już pisałem wcześniej w zależności o wersji oprogramowania numery zmiennych mogą się różnić, a co za tym idzie znaczenie danego parametru będzie miało inne znaczenie w innej wersji oprogramowania. Ty jako programista musisz wiedzieć jakiego oprogramowania używa dana maszyna i jakie skutki będzie miało wywołanie konkretnej zmiennej. Program który będziesz pisał będzie mógł być używany wyłącznie na danej wersji oprogramowania, a nawet tylko na konkretnej maszynie.

Przez te wszystkie lata Fanuc wprowadził sporo wersji swojego systemu. Omawiam tylko te najnowsze i najczęściej używane. FS (Fanuc Series)

  • FS-0
  • FS-10
  • FS-11
  • FS-15
  • FS-16
  • FS-18
  • FS-21
  • Wyższe wersje

Oczywiście są inne wersja takie jak Fanuc 3, który jest właściwie podobny do Fanuc-a 0. Fanuc 6 jest dziadkiem wersji 10/11. Wszystkie te sterowania mają zastosowanie we frezarkach FS-xxM np. FS-16M, jak i w tokarkach FS-xxT np. FS-15T. Działają na nim elektrodrążarki, szlifierki i kilka innych rodzajów maszyn. Ja zajmę się toczeniem i frezowaniem.

Zmienne systemowe dzielą sie na dwie grupy:

  • Zmienne do odczytu i do zapisania
  • Zmienne tylko do odczytu

Te pierwsze można zmienić za pomocą programu lub w trybie MDI. Oczywiście jest również możliwość ich odczytania , a zapisane wartości będą przetworzone przez system.

Druga grupa może być wyświetlana za pomocą zmiennych lokalnych lub wspólnych. Nie ma możliwości ich zmiany przez użytkownika. Stąd ich nazwa i to ich najczęściej będziesz używał.

Fanuc Model 0 vs inne wersje

Fanuc Fs-0 w porównaniu do innych wersji jest najuboższy. Oferuje najmniejszą liczbę zmiennych. Jest to szczególnie zauważalne przy parametrach odpowiedzialnych za offset narzędzia. Mimo to rozpocznę od tej wersji. Pod spodem będę podawał zakresy parametrów za co one są odpowiedzialne i jak ich używać

Upewnij się, że znasz znaczenie konkretnego parametru zanim zaczniesz cokolwiek programować. W razie wątpliwości sprawdź instrukcję obsługi dołączoną do maszyny.

Sygnały interfejsu (#1000-#1135)

Gdy parametr 6001 MIF, bit 0 ustawiony jest na 0.

Numer zmiennejFunkcja
#1000 do #1015Zmienne są używane do przesyłania szesnastobitowego sygnału z PMC do zwykłego macro jeden po drugim.
#1032Ta zmienna jest używana do przeczytania całego szesnastobitowego sygnału na raz
#1100 do #1115Zmienne służą do wysłania sygnału szesnastobitowego ze zwykłego macro do PMC jeden po drugim
#1132Ta zmienna służy do wysłania całego szesnastobitowego sygnału na raz
#1133Ta zmienna jest używana do wysłania całego 32 bitowego sygnału ze zwykłego macro do PMC. Wartości od -99999999 do +9999999 mogą być użyte dla tej zmiennej.

Gdy parametr 6001 MIF, bit 0 ustawiony jest na 1.

Numer zmiennejFunkcja
#1000 do #1031Zmienne są używane do przesyłania 32-bitowego sygnału z PMC do zwykłego macro jeden bit po drugim.
#1100 do #1131Zmienne służą do zapisania 32-bitowego sygnału ze zwykłego macro do PMC jeden bit po drugim
#1032 do #1035Te zmienne są używane do przeczytania całego 32-bitowego sygnału z PMC do Macro na raz. Można użyć cyfry od -99999999 do +99999999
#1132 do #1135Te zmienne są używane do zapisania całego 32-bitowego sygnału z Macro do PMC na raz. Można użyć cyfry od -99999999 do +99999999

Wartości kompensacyjne narzędzi (#10000-#13400)

Zapisuj i czytaj wartości kompensacyjne narzędzi. Jak to robić pokazuje poniższa tabela.

Numer korektoraKompensacja długości narzędzi HKompensacja promienia narzędzia D
Geometria Zużycie Geometria Zużycie
1
#11001 lub #2201
#10001 lub #2001
#13001
#12001
:::::
200#11200 lub #2400#10200 lub #2200#13200#12200
:::::
400 #11400#10400#13400#12400

Generowanie własnych alarmów(#3000 i #3006)

#3000 to bardzo fajna opcja. Pozwala Ci stworzyć do 201 swoich własnych alarmów. To, że napisałem alarm nie znaczy, że musi pojawić się jakiś problem. Może chcesz dosadnie przekazać coś operatorowi, ta zmienna jest dla Ciebie wybawieniem.

#3006 poza tym, że robi to samo co #3000 dodatkowo zatrzymuje program.

Numer zmiennejFunkcja
#3000Po przypisaniu wartości od 0 do 200 dla zmiennej #3000 na wyświetlaczu wyświetli się alarm (maksymalnie 26 znaków). Numer alarmu to suma 3000 i wartości przypisanej do zmiennej.
#3006Po przypisaniu wartości od 0 do 200 dla zmiennej #3006 maszyna zatrzyma program a na wyświetlaczu wyświetli się alarm (maksymalnie 26 znaków).

Przykład 3:

#3000=4(USIADZ SOBIE)

Po wczytaniu tego bloku wyświetli się komunikat zapisany w nawiasach, o numerze 3004.

Zmienne czasowe (#3001, #3002, #3011, #3012)

Chcesz sprawdzić ile czasu maszyna pracuje? A może jaki dzisiaj jest dzień, lub która godzina. Nie ma sprawy.

Numer zmiennej Funkcja
#3001Po każdy włączeniu maszyny sterownik liczy czas od 0 do ‭2 547 483 648‬ w milisekundach
#3002Maszyna liczy całkowity czas gdy była w cyklu. Jednostka do godziny. Nie zeruje się po wyłączeniu lecz gdy osiągnie wartość ‭9 544.371767‬.
#3011Ta zmienna wyświetla datę (rok/miesiąc/dzień)
Data jest wyświetlona jako nieprzerwany numer, Np. 02 stycznia 2020r będzie wyświetlała jako 20200102
#3012Ta zmienna wyświetla godzinę (godz/min/sek). Godzina jest wyświetlona jako nieprzerwany numer. Np. 14:35 i 15 sekund wyświetli jako 143515.

Ilość wykonanych detali (#3901, #3902)

Numer zmiennej Funkcja
#3901Detale wykonane do tej pory
#3902Liczba detali do wykonania

Informacja modalna (#4001-#4130)

Co to są funkcje modalne pisałem już w tym miejscu. Dzięki zmiennym możesz się dowiedzieć, która funkcja jest aktywna w danej grupie.

Numer zmiennej FunkcjaNr. grupy
#4001G00, G01, G02, G03, G33, G75, G77,G78,G791
#4002G17, G18, G192
#4003G90, G913
#4004G22, G234
#4005G94, G955
#4006G20, G216
#4007G40, G41, G427
#4008G43, G44, G498
#4009G73, G74, G76, G80-G899
#4010G98, G9910
#4011G50, G5111
#4012G66, G6712
#4013G96, G9713
#4014G54-G5914
#4015G61-G6415
#4016G68, G6916
::
#4022G50.1, G51.120
#4102B
#4107D
#4109F
#4111H
#4113M
#4114Numer bloku
#4115Numer programu
#4119S
#4120T
#4130P (numer aktualnie wybranego dodatkowego punktu zerowego przedmiotu)

Pozycja narzędzia (#5001#5067)

Dzięki tym zmiennym przeczytasz różne pozycje w zależności op potrzeb. Tych zmiennych nie da się wpisać, można ich tylko przeczytać.

Numer zmiennej Dane polożenia
Układ współrzędnych
Kompensacja położenia długości/promienia narzędziaOperacja odczytu w czasie ruchu
#5001-#5007Pozycja punktu końcowego bloku osi nr 1 - Pozycja punktu końcowego bloku osi nr 7Układ współrzędnych przedmiotuNieuwzględnioneZałączone
#5021-#5027Pozycja bieżąca osi nr 1 - Pozycja bieżąca osi nr 7 Układ współrzędnych maszynyUwzględnioneWyłączone
#5041-#5047Pozycja bieżąca osi nr 1 - Pozycja bieżąca osi nr 7 Układ współrzędnych przedmiotuUwzględnioneWyłączone
#5061-#5067Pozycja pominięcia osi nr 1 - Pozycja pominięcia osi nr 7 Układ współrzędnych przedmiotuUwzględnioneZałączone

No dobra trochę się rozpisałem. Najlepsze, że te wszystkie tabelki to tylko namiastka tego wszystkiego co znajdziesz w Podręczniku Operatora dołączonym do twojej maszyny. Ja chciałem dać ci tylko zarys a bez tych tabelek nie było by to możliwe.

Sporo tego wyszło, a to dopiero druga część. Następny wpis będzie o podprogramach.

Tych co chcą śledzić moje kolejne wpisy zapraszam do subskrybowania za pomocą Newslettera.

W razie pytań zapraszam do komentowania.

Pozdrawiam PrzemoCNC

37) G40, G41, G42 Kompensacja promienia narzędzia Frezowanie

Po co jest kompensacja promienia narzędzia pisałem już w tym miejscu, przy okazji wyjaśniania G kodów dla tokarek. Dzisiaj opiszę jak wygląda kompensacja na frezarkach.

Zastosowanie kompensacji frezu pozwala programiście pisać program dokładnie tak jak na rysunku. Bez niej pisząc program należy znać rozmiary narzędzi i ich korekty, normalnie wpisywanie w offsecie.

Używając G41/G42 można stosować różne średnice narzędzi bez zmiany programu. Jedyne co, to trzeba prawidłowo określić promień narzędzia w offsecie. Dzięki tym G kodom można bardzo łatwo korygować wymiary detalu poprzez zmiany w zużyciu narzędzia.

Jak to wygląda w praktyce?

G41 profil zewnętrzny
G41 profil wewnętrzny
G42 profil zewnętrzny
G42 profil wewnętrzny

G40 odwołuje korekcje

G40 wpisz po skończonej obróbce danego profilu, przy wyjeździe z materiału.

Adres H czy D?

Podobnie jak przy kompensacji długości narzędzia G43/G44 należy podać adres korektora. I tu pojawia się pytanie z nagłówka.

Wszystko zależy, którą wersję oprogramowania posiada twoja maszyna A, B, C.

Jak widać na załączonym obrazku każda wersja ma inny rodzaj tabeli w offsecie.

Jeśli twoja maszyna pracuje na typie A i B zauważysz, że tabela jest współdzielona. Jedna kolumna odpowiadająca za geometrię zarówno długości jak i promienia narzędzia. W tym wypadku obok G41/G42 należy wpisać adres H.

Jest sporo narzędzi, które nie wymagają uwzględnienia promienia narzędzia w programie, ale za to wszystkie narzędzia wymagają korekcji długości. Co zrobić jeśli potrzebujemy podać i to i to?

Należy jednemu narzędziu przypisać dwa korektory. Jeden odpowiedzialny za długość drugi za promień. Dlatego ten typ nazywa się współdzielony.

Dla przykładu narzędzie T05 wymaga uwzględnienia długości i promienia narzędzia w programie. Oczywiste jest, że nie można użyć tego samego korektora.

Rozwiązanie jest bardzo proste: za długość będzie odpowiadał taki sam korektor jak nr narzędzia, a teraz powiększ tą wartość o 30, 100, 200. Ta wartość będzie odpowiadała za promień.

Typ A

Typ B ma jedną dodatkową kolumnę odpowiadającą za korekcję zużycia, ale ciągle działa na zasadzie współdzielenia.

Typ B

Typ C posiada już osobną tabelę dla długości i dla promienia. W tym wypadku używając polecenia G43 użyj adresu H, a dla G41/G42 użyj adresu D.

Typ C

Myślę, że tyle na dzisiaj. W razie jakichkolwiek pytań zapraszam do komentowania. A i zapraszam do subskrybowania za pomocą zakładki newsletter

Pozdrawiam PrzemoCNC

36) G76 cykl gwintowania (one line format)

Jakiś czas temu robiłem serie wpisów o gwintowaniu na tokarce, między innymi wyjaśniałem cykl G76. Wydawało mi się, że temat wyczerpany. Nic bardziej mylnego.

Dostałem kilka maili od was, z zapytaniem o cykl G76, tylko że w wersji jedno-liniowej tzw. One Line Format.

Wielu z was interesuje wykonanie cyklu gwintowania w ten sposób:

I wcale się wam nie dziwie bo to jest najlepszy sposób na wykonanie gwintu.

Co mam na myśli mówiąc najlepszy?

Przy głębszych gwintach płytka pracując tak jak na obrazkach poniżej jest narażona na spore opory, co wpływa na jakość wykonania oraz na trwałość samej płytki.

Tak się składa, że cykl G76 w wersji One Line. Posiada opcję wyboru strategii obróbki. Ale wszystko po kolei.

Cykl G76 w prostej formie

G76 X...Z...I...K...D...A...P...F...

X– Średnica końcowa gwintu

Z-Pozycja końca gwintu

I– Wartość pochylenia gwintu

K– Głębokość gwintu (podajemy w milimetrach)

D– Głębokość pierwszego przejścia

A– Kąt gwintu (jest 6 rodzai)

A0Proste wejścieISO
A29Gwint trapezowy ACMEANSI
A30Gwint trapezowyDIN 103
A55Gwint rurowy WhitworthaBSW, BSP
A60Standardowy gwint 60°Angielski Metryczny
A80Niemiecki gwint pancernyPG

P– Strategia obróbki

F– Posuw

Zaznaczam, że ten rodzaj gwintowania działa na wersjach Fanuc 10T/11T/15T. Na nowszych też podobno działa. Ale osobiście nie sprawdzałem .

Chyba tyle na dzisiaj.

Zapraszam do subskrybowania i komentowania.

Pozdrawiam PrzemoCNC

35) G43, G44, G49 kompensacja długości narzędzia

Fanuc podobnie jak i inne sterowania CNC posiadają 3 G kody odpowiedzialne za kompensację długości narzędzia. Są to kody przygotowawcze.

G43 G44 G49

Odpowiadają one wyłącznie za oś Z. Ale nie wystarczy samo wpisanie G43. Dodatkowo w tym samym bloku musi być uwzględniony adres korektora. Określa się go za pomocą litery H. Dla przykładu H05 wywołuje korekcję długości narzędzia z offsetu dla pozycji nr. 5. Jest to różnica długości pomiędzy sondą, a obecnie wybranym narzędziem.

Dzięki funkcji G43 jest ona uwzględniana w programie podczas obróbki.

Tutaj masz przykład zapisu

N10 G43 Z1 H05

Czyli uwzględniając długość narzędzia nr. 5 maszyna najedzie 1mm nad materiałem w osi Z.

Teoretycznie powinno wyglądać to w ten sposób, że jeśli narzędzie jest dłuższe niż sonda używamy G43, natomiast jeśli jest krótsze powinno się używać polecenia G44. „Teoretycznie”. (To tylko jedna z kilku metod pomiaru narzędzi na frezarce. Opiszę je szerzej za jakiś czas).

W praktyce używa się wyłącznie G43. Nie ma chyba rzadziej używanego G kodu niż G44. Narzędzia jeśli są krótsze od sondy, w offsecie zapisuje się ich z wartością ujemną, tak jak na powyższym zdjęciu.

Dlaczego?

Chodzi o czas i prostotę. Programista nie będzie się zastanawiał jakie będą długości narzędzi podczas pisania programu.

Dodając wartości ujemne są one odejmowane. Natomiast dodając do siebie wartości dodatnie będą ona zsumowane. Prosta matematyka.

Tak więc jeśli coś jest proste to po co to komplikować

Wracając do naszego przykładu

N10 G43 Z1 H05

Podczas pomiaru wartość wynikająca z różnicy pomiarów jest ładowana do parametru H. W naszym przypadku jest to H05.

W tabeli jest -12,332. Nasze narzędzie jest o 12,332mm krótsze niż sonda.

Piszę maszynie, że ma najechać 1mm nad materiałem. I to właśnie ona zrobi. Przynajmniej tak się wydaje. To co na prawdę ona zrobi, to najazd na Z-11,332, bez potrzeby modyfikowania programu. W ten sposób unikamy możliwych kolizji, a program jest dużo łatwiejszy do napisania.

G49 służy do odwołania kompensacji danego narzędzia. Gdy skończy ono już swoją pracę i będziesz chciał wybrać inne.

Dziękuję za uwagę 🙂

Tradycyjnie zapraszam do subskrybowania za pomocą newslettera i komentowania.

Pozdrawiam PrzemoCNC

34) Wybór płaszczyzny głównej G17, G18, G19

Programując frezowanie po okręgu ( G2/ G3 ) należy wskazać płaszczyznę główną, określającą dwie główne osie ruchu.

Służą do tego kody:

G17– Ustala płaszczyznę roboczą dla łuków X/Y. Kierunek dosuwu Z .

G18– Ustala płaszczyznę roboczą dla łuków X/Z. Kierunek dosuwu Y .

G19– Ustala płaszczyznę roboczą dla łuków Y/Z. Kierunek dosuwu X .

Są to kody modalne tak więc po wpisaniu są aktywne do odwołania. Zaleca się ustalenie płaszczyzny roboczej na początku programu. Przy czym dla frezarek po uruchomieniu maszyny automatycznie aktywny jest kod G17.

Dla tokarek automatycznie aktywne jest G18.

Wywołując korekcję toru narzędzia G41/G42, płaszczyzna robocza musi być podana aby ,maszyna wiedziała w jakich osiach korygować długość i promień narzędzia.

Ale jak to zapisać?

G17

W tej płaszczyźnie łuk jest równoległy do płaszczyzny X/Y, a ruch kołowy G02 jest zdefiniowany jako zgodny z ruchem wskazówek zegara dla operatora patrzącego z góry na stół

G17 G02 X...Y...I...J...

Lub

G17 G02 X...Y...R...

G18

W G18 łuk jest równoległy do płaszczyzny X Z. Należy patrzeć na kierunek kołowy tak jakbyś stał z tyłu maszyny i patrzył w stronę wrzeciona. G02 ruch zgodny z ruchem wskazówek zegra.

G18 G02 X...Z...I...K...

Lub

G18 G02 X...Z...R...

G19

W G19 łuk jest równoległy do osi Y/Z. Na kierunek kołowy musisz patrzeć tak jakbyś stał z prawej strony stołu . G02 ruch kołowy zgodny z ruchem wskazówek zegara.

G19 G02 Y...Z...J...K...

Lub

G19 G02 Y...Z...R...

Kolejne trzy kody uzupełniające tabelę G kodów za nami .

Po prawej stronie jest zakładka pozwalająca zapisać się do newslettera. Już żaden nowy wpis cię nie ominie.

Pozdrawiam PrzemoCNC

33) G07.1 Interpolacja cylindryczna

Powyższy kod jest opcjonalny a co za tym idzie nie wszystkie maszyny go czytają.

Najczęściej będzie Ci on potrzebny na tokarce wyposażonej w żywe narzędzie, ale nie tylko. Na frezarkach z czwartą osią obrotową również jest bardzo przydatną funkcją.

Więc do czego on służy?

Jakby to napisać najprościej? G07.1 spłaszcza oś obrotową.

Załóżmy, że mamy taki detal:

Programowanie takiego kształtu może być kłopotliwe, zwłaszcza w przypadku ruchów kołowych osią obrotową. I zapewne już się domyślasz, że interpolacja cylindryczna znacznie upraszcza pisanie. G07.1 pozwala programiście spłaszczyć ruchy osi obrotowej, traktując je jak ruchy osi liniowej.

Pierwszy obrazek pokazuje detal. Drugi pokazuje ten sam detal tylko kształt jest tak jakby rozwinięty.

Najlepiej zobrazuje to poprawnie zapisany program i symulacja tego programu:

Przykład 1:

Detal pokazany na wcześniejszym rysunku będzie wykonany na tokarce z żywym narzędziem i sterowaną osią C.

O0002 (PRZYKLAD 1 INTERPOLACJA CYLINDRYCZNA)
N15 T0505 (Frez palcowy fi 5mm)
N25 M13 (Włączenie obrotów na żywym narzędziu CW)
N30 G97 S2000
N32 M52 (Pozycjonowanie osi C włączone )
N35 G07.1 C19.1 (Uruchamiam interpolację cylindryczną / podaję promień detalu )
N37 G94 F200
N40 G0 X45 Z-5
N45 G1 X35 C0 Z-5
N50 G1 Z-15 C22.5
N55 Z-5 C45
N60 Z-15 C67.5
N65 Z-5 C90
N70 Z-15 C112.5
N75 Z-5 C135
N80 Z-15 C157.5
N85 Z-5 C180
N90 Z-15 C202.5
N95 Z-5 C225
N100 Z-15 C247.5
N105 Z-5 C270
N110 Z-15 C292.5
N115 Z-5 C315
N120 Z-15 C337.5
N125 Z-5 C360
N130 X45
N135 G07.1 C0 (Odwołuję interpolację)
N140 M53 (Wyłączam pozycjonowanie osi C)
N145 G0 X80 Z100 M15
N150 M30

I tym sposobem mamy kolejny G kod za sobą. Do następnego

Pozdrawiam Przemocnc

32) Gwintowanie Higbee

Gwint Higbee to modyfikacja istniejącego gwintu. Sprawia ona że gwint jest znacznie gładszy na wejściu i nie ma możliwości zacięcia przy wkręcaniu. Można go spotkać pod nazwami “Quick Start Threads” albo“Blunt Start Threads”.

Tak wyglądają prawidłowo wykonany gwint Higbee:

Higbee najczęściej jest wykorzystywany w przemyśle Oil/Gas i w pożarnictwie. I to właśnie z myślą o strażakach ten rodzaj gwintu został wymyślony. Węże miały się łączyć szybko i bez zacięć. W strażackim Higbee pierwszy zwój jest całkowicie usunięty, dopiero na drugim jest wykonane gładkie wejście.

Ale jak to się robi?

Naszym celem jest usunięcie początkowej części nitki, która jest zwykle małą płetwą na ok 1/8 obwodu, stopniowo rozszerzająca się do prawidłowego zarysu gwintu. Aby ją usunąć należy użyć noża do rowkowania, po skończonym gwintowaniu.

W pierwszej kolejności musimy skalibrować nóż do gwintowania z naszym przecinakiem.

Jeśli zgrałeś te dwa noże ze sobą, musisz to jakoś rozpisać.

Załóżmy, że masz do wykonania gwint ze skokiem 3mm. Na 30mm wychodzi 10 zwoi minus jeden. Ten jeden to jest właśnie ta niepełna nitka, którą chcesz usunąć.

Zaprogramuj przecinak tym samym cyklem (np. G76) co nóż do gwintowania, tylko zamiast Z-30 wpisz Z-3, czyli długość jednej nitki. Wykonaj kilka przejazdów gratujących i dograj gładkie dno zmieniając X początkowy.

Prędkość obrotowa wrzeciona i szybkie przejazdy.

Te dwie wartości odpowiadają za kąt wyjścia rampy gradującej. Prędkość szybkich przejazdów jest stała ( a ich właśnie maszyna używa przy wyjeździe z materiału). Dla prostego wyjścia należy użyć mniejszych obrotów. Jeśli chcesz uzyskać bardziej gładkie wyjście należy zaprogramować większe obroty.

Jeśli twoja maszyna maszyna przyjmuje kod G32/G33 sprawa jest jeszcze prostsza. Wystarczy zaprogramować wyjście z gwintu dobierając odpowiedni posuw do głębokości gwintu.

Mam nadzieję, że pomogłem.

Pozdrawiam PrzemoCNC

31) Poprawa gwintów na tokarce CNC

Co jakiś czas piszecie do mnie z pomysłami na wpisy. Jest kilka, które się powtarzają. Jednym z nich jest poprawa gwintów na tokarce CNC.

Sprawa jest prosta jeśli gwint jest zbyt ciasny, ale detal jeszcze nie ściągnięty z maszyny. Przybieramy powiedzmy 0,05mm puszczamy gwintowanie od nowa. Sztuka poprawiona, a jak nie to do skutku przybieramy.

Temat się trochę komplikuje gdy detal już ściągniemy z maszyny . Przecież nikt nie zaznacza na wałku, w którym miejscu trzymała, która szczęka. Jest jeszcze ciekawiej gdy gwint był wykonany na innej maszynie na drugim końcu świata.

Na manualnych tokarkach na przekładni ustawia się skok i za pomocą tzw szufladki

ustawia się nóż po środku gwintu. Teraz wystarczy przybierać w X i gwint poprawiany.

Przypadku tokarek CNC jest podobnie, tylko zamiast ustawiać nóż po środku zwoju za pomocą szufladki, należy zmieniać wartość Z początkową. Oczywiście przed tymi próbami należy odbić w X o taką wartość żeby nóż był na bezpiecznej wysokości, czyli nad materiałem i z góry trzeba obserwować w którym miejscu zwoju się on znajduje.

Załóżmy że Z początkowy to 5. Puściłeś gwintowanie i widzisz że nóż trzyma się za bardzo prawej strony nitki. W tym momencie należy zmniejszyć wartość początkową Z. Powiedzmy zmieniłeś z 5 na 3. Po puszczeniu programu widać że teraz nóż przesunął się za bardzo w stronę lewej ścianki. No to zmieniasz Z trochę na plus czyli Z3.5. Na pierwszy rzut oka wydaje się, że jest OK.Ale nie przybierasz w X na wymiar. Stopniowo zmniejszasz, powiedzmy połowę wartości i puszczasz jeszcze raz.

Tak to powinno wyglądać

Jeśli wydaje Ci się, że jest źle, korygujesz w odpowiednią stronę. Jak jest Ok to przybierasz dla bezpieczeństwa jeszcze połowę tego co zostało . I tak aż do 0.

Oczywiście są maszyny z opcją naprawiania gwintu. Niestety nie każdy ma do nich dostęp. Zostaje nam wtedy mój sposób. Chyba że masz jakiś lepszy. Podziel się nim w komentarzu.

Pozdrawiam i zapraszam do śledzenia moich wpisów. Jeśli chcesz być na bieżąco, po prawej stronie możesz się zapisać do Newslettera.

30) G05.1 Q1. Precyzyjna kontrola konturu

Żeby wyjaśnić znaczenie tego kodu muszę zacząć od samego początku, czyli końcówki lat 90-tych. To wtedy powstała koncepcja HSM (High Speed Machining).

Zwiększenie wydajności usuwania materiału jest głównym celem. Ponieważ zwiększona szybkość usuwania przekłada się na skrócenie czasu cyklu maszyny. Z czasem HSM zaczęło zyskiwać na popularności i stało się jasne, że trzeba będzie wprowadzić zmiany w budowie maszyn i oprogramowaniu.

Do tej pory większość maszyn oparta była budowie skrzyniowej. Maszyny były sztywne ale było to powiązane ze sporą masą i objętością maszyny.

I tu pojawia się fizyka

Są dwa prawa Newtona interesujące nas w tym momencie:

  • Pierwsze prawo ruchu Newtona dotyczy siły bezwładności.
    Nie będę zanudzał Cię regułkami, ale w skrócie: Im cięższy przedmiot tym ma większą bezwładność. Co za tym idzie : potrzeba więcej energii do zatrzymania takiego przedmiotu
  • Drugie prawo ruchu Newtona dotyczy przyspieszenia.
    siła = masa x przyspieszenie (F = ma). Większa masa wymaga również więcej energii, aby osiągnąć przyspieszenie wymagane dla HSM.

Ponieważ nie możemy zmienić praw fizyki,musiała się zmienić konstrukcja maszyn. Zmniejszono masę aby umożliwić wyższe prędkości przyspieszenia. Prowadnice liniowe są obecnie preferowane w maszynach , które będą wykonywać obróbkę z dużą prędkością.

Wyższe szybkości przyspieszania powodują również inny problem. Jest nim siła bezwładności podczas szybkich zmian kierunku. Są one nieodłącznie związane z HSM, więc każdy system sterowania CNC zdolny do obsługi HSM musi być w stanie dostosować przyspieszenie i opóźnienie, aby osiągnąć płynny, najbardziej dokładny i ciągły ruch na maszynie.

Aby rozwiązać ten problem ulepszono również systemy sterowania CNC. Od teraz zapewniają one użytkownikom możliwość zrównoważenia prędkości i dokładności w razie potrzeby.

Oryginalny tryb wysokiej prędkości FANUC nazywał się HPCC,
(High Precision Contour Control). Został zbudowany na podstawie architektury chipowej RISC (Reduced Instruction Set Computing). Dzięki znacznym postępom w technologii mikroprocesorowej oryginalny HPCC stał się przestarzały. Nowsze mikroprocesory pozwoliły na znacznie bardziej złożone przetwarzanie przy znacznie większych prędkościach.

Najnowsze tryby High Speed ​​FANUC to AICC i AIAPC-AI Contour Control i AI Advanced Preview Control. AI nie odnosi się do „Sztucznej inteligencji”. AI reprezentuje system serwo Alpha I serii FANUC. Istnieją różnice między dwoma trybami AI. Jednak składnia ich używania jest dokładnie taka sama.

Tu pojawia się nasza formułka

G05.1 Q1 Rxx

Rxx zapewnia użytkownikowi opcję wyboru spośród 10 stałych ustawień (R1-R10), które kontrolują prędkość ścieżki narzędzia (prędkość posuwu) z dokładnością pozycjonowania.

G05.1 Q1 R1 – Prędkość ścieżki narzędzia ma pierwszeństwo przed dokładnością
G05.1 Q1 R2
G05.1 Q1 R3
G05.1 Q1 R4
G05.1 Q1 R5 – Prędkość i dokładność pozycjonowania mają równy priorytet
G05.1 Q1 R6
G05.1 Q1 R7
G05.1 Q1 R8
G05.1 Q1 R9
G05.1 Q1 R10 – Dokładność pozycjonowania ma pierwszeństwo przed prędkością

W celu wyłączenia precyzyjnej kontroli należy wpisać:

G05.1 Q0

G05.1 Q2 FANUC Smooth Interpolation.
G05.1 Q3 to funkcja wygładzania FANUC Nano Smoothing
FANUC Smooth Interpolation i NANO Smoothing to funkcje opcjonalne.

Stosując G05.1 Q1 podczas obróbki 2D, AICC / AIAPC rozwiązuje typowe problemy z zaokrąglaniami narożników lub wypaczeniami.

Po włączeniu naszej funkcji podczas obróbki 3D, AICC / AIAPC utrzyma dokładniejszy profil konturowania.

Zastosowanie precyzyjnej kontroli może skrócić czas obróbki rdzenia nawet o kilka godzin.

Wystarczy trzymać sie 4 prostych zasad:

  1. Upewnij się, że G49 jest zapisane przed G05.1 Q1 Rx
  2. G05.1 Q1 Rx należy włączyć przed G43
  3. AICC i AIAPC należy włączyć i wyłączyć dla każdego narzędzia
  4. AICC i AIAPC nie nie działa w cyklach wiercenia

Przykład 1:

Obróbka zgrubna

(PRZYKLAD 1)
(PRZEMOCNC)

G00 G17 G40 G49 G80 G94

T01 M6 (FREZ PALCOWY FI 5)
G05.1 Q1 R1  (HSM WŁĄCZONE OBRÓBKA ZGRUBNA)
G0 G90 G54 X1 Y-1 
S8000 M3
M8
G43 H01
Z1
G1 Z0 F150
X0 Y0 Z-0.2
.....
.....
.....
.....
G0 Z1
G05.1 Q0   (HSM WYŁĄCZONE)
M5
M9
G91 G28 Z0
G49
M30

W miejsce kropek wstawiasz swoją ścieżkę wygenerowaną z programu CAM lub napisaną ręcznie.

Przykład 2:

Obróbka wykańczająca

(PRZYKLAD 2)
(PRZEMOCNC)

G00 G17 G40 G49 G80 G94

T01 M6 (FREZ PALCOWY FI 5)
G05.1 Q1 R8  (HSM WŁĄCZONE OBRÓBKA wykańczająca)
G0 G90 G54 X1 Y-1 
S8000 M3
M8
G43 H01
Z1
G1 Z0 F120
X0 Y0 Z-0.2
.....
.....
.....
.....
G0 Z1
G05.1 Q0   (HSM WYŁĄCZONE)
M5
M9
G91 G28 Z0
G49
M30

Jeśli masz dostęp do frezarki i chcesz zobaczyć różnicę w czasie obróbki przygotowałem dla Ciebie dwa programy 1 2 . Przepuść program bez HSM (wystarczy włączyć / BLOK SKIP) następnie zmieniając parametr R zobaczysz jak zmieniają się czasy obróbcze.

Pozdrawiam i życzę powodzenia w optymalizacji 🙂