49) G76 Wytaczanie wykańczające

Cykl niezbędny przy wykonywaniu precyzyjnych otworów za pomocą wytaczadeł. Wytaczadło po osiągnięciu dna zatrzymuje się, następnie odsuwa od powierzchni obrabianej o zadaną wartość i wyjeżdża z otworu. Ustawianie wytaczadła na konkretny wymiar opiszę innym razem.

Wzór na G76

G76 Z... R... Q... P... F... K...

G76- Wywołanie cyklu

Z– Głębokość otworu

R– Wartość wycofania ponad pozycję początkową.

Q– Odsunięcie na dnie otworu od powierzchni obrabianej

P– Czas postoju na dnie obrabianego otworu (jednostka milisekunda)

F– Posuw

K– Liczba powtórzeń

Przy parametrze Q staraj się używać małych wartości, rzędu 0.1mm. Z doświadczenia wiem, że w otworach jest zazwyczaj bardzo ciasno i każda dyszka robi różnicę. Dodatkowo należy zwrócić szczególną uwagę na pozycję ostrza przy ładowaniu narzędzia do magazynu. Zawsze przed załadunkiem włącz pozycjonowanie wrzeciona. Pamiętaj, że domyślny odjazd wytaczadła w cyklu to -X.

Przykład 1:

Do wykonania otwór wg rysunku. Oczywiście jest on już wywiercony na mniejszy wymiar.

  • Pozycja bezpieczna 5mm
  • Głębokość otworu 45mm
  • Odjazd od powierzchni obrobionej 0.1mm
  • Czas postoju na dnie otworu pól sekundy
  • Posuw 120 mm/min
(PRZYKLAD 1)
(PRZEMOCNC)
T06 M6 (WYTACZADLO)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N40   M03 S2000 ;
N50   M08 ;
N60   G76 Z-45 P500 Q0.1 R5 F120 ;
N70   G80 
N80 G00 Z100 ;
N90  M30 ;

Przykład 2:

Do wykonania otwory wg rysunku

  • Pozycja bezpieczna 2mm
  • Głębokość otworu 45mm
  • Odjazd od powierzchni obrobionej 0.2mm
  • Czas postoju na dnie otworu sekunda
  • Posuw 100 mm/min
(PRZYKLAD 2)
(PRZEMOCNC)
T06 M6 (WYTACZADLO)
N20   G90 G80 G17 G00 G54 X-50 Y-50 ;
N30   G43 Z5 H06 ;
N40   M03 S2000 ;
N50   M08 ;
N60   G76 Z-45 P1000 Q0.2 R2 F100 ;
N70 Y50
N80 X50
N90 Y-50
N100   G80 
N110 G00 Z100 ;
N120  M30 ;

To by było tyle na dzisiaj. Zapraszam do subskrybowania za pomocą zakładki newsletter.

Jeśli masz jakieś uwagi, nie wahaj się. Skomentuj. Na pewno odpowiem.

Pozdrawiam PrzemoCNC

48) G84, G74 Cykle Gwintowania.

Gwintowanie jest jedną z najczęściej używanych operacji na frezarkach. Głupio by było nie znać cyklu tak bardzo ułatwiającego życie.

G84 bo to o nim mowa, można stosować na kilka sposobów. A to jakiego Ty użyjesz zależy tylko od Ciebie. A raczej od Ciebie i twojej maszyny. Zaraz wyjaśnię Ci dlaczego.

Zacznę od najprostszej formy. To powinna czytać każda maszyna

Wzór na G84

G84 Z... P... R... F... K...

G84– Włączenie cyklu gwintowania. Gwint prawy

Z– Pozycja dna gwintu

P-Przerwa na dnie otworu ( Jednostka milisekundy)

R-Pozycja wycofania narzędzia, ponad pozycję początkową.

F-Posuw

K– Liczba powtórzeń cyklu (opcjonalnie)

Dla gwintu lewego kod G84 zastąp G74.

Minimum informacji, wystarcza aby prawidłowo zaprogramować gwintowanie.

Ale nie Ciesz się tak bardzo. Może się okazać, że twoja maszyna, mimo tego, że przeczyta cykl i będzie go wykonywać i tak będzie rwała gwint.

Powody mogą być dwa:

  • Twoja maszyna ma funkcję gwintowania sztywnego ale trzeba ją dodatkowo aktywować kodem M29 wpisanym w tym samym bloku co określenie obrotów.
  • Twoja maszyna nie ma funkcji gwintowania sztywnego. Jedynym wyjściem jest zastosowanie oprawki kompensacyjnej.

Przykład 1:

Mam do nagwintowania otwór:

  • Zakładam głębokość gwintu 45mm
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm

Na rysunku jest otwór ⌀ 12. No to ja nagwintuje go gwintownikiem M14, bo tak się składa, że otwór pod gwint M14 to właśnie ⌀ 12.

(PRZYKLAD 1)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N40   M03 S300 ;
N50   M08 ;
N60   G84 Z-45 P500 R1 F600 ;
N70   G80 
N80 G00 Z100 ;
N90  M30 ;

Na pewno zauważyłeś, że wpisałem posuw 600. Dlaczego taki a nie inny?

Skok gwintu M14 wynosi 2. Wzór na posuw przy gwintowaniu wygląda następująco:

F=P*S

F-Posuw

P-Skok gwintu

S-Obroty wrzeciona

Za każdym razem gdy zmienisz obroty, jesteś zmuszony przeliczyć od nowa posuw.

A gdyby był łatwiejszy sposób? Bez konieczności przeliczania.

Tym sposobem są dwa Gkody:

G94– Posuw milimetry na minutę (domyślny dla frezarek)

G95- Posuw milimetry na obrót

Gdy przed cyklem gwintowania ustawimy posuw w milimetrach na obrót, jedyne co będziemy musieli zrobić to wpisać wartość skoku w miejsce posuwu. Oczywiście po skończonym gwintowaniu należy powrócić do posuwu wyrażonego w milimetrach na minutę za pomocą G94. Przykład 2 pokaże Ci jak będzie taki program wyglądał.

Przykład 2:

  • Zakładam głębokość gwintu 45mm
  • Gwint M14
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm

Czyli taki sam gwint jak w przykładzie nr1. Z tą różnicą że teraz użyję G95.

(PRZYKLAD 2)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N35   G95
N40   M03 S300 ;
N50   M08 ;
N60   G84 Z-45 P500 R1 F2 ;
N70   G80 G94
N80 G00 Z100 ;
N90  M30 ;

Funkcja M29

Tak jak pisałem wcześniej, niektóre maszyny nie obsługują gwintowania na sztywno bezpośrednio. Należy się wspomóc funkcją M29. Wtedy program będzie wyglądał tak:

Przykład 3:

  • Zakładam głębokość gwintu 45mm
  • Gwint M14
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm
(PRZYKLAD 3)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N35   G95
N40   M03 S300 M29 ;
N50   M08 ;
N60   G84 Z-45 P500 R1 F2 ;
N70   G80 G94
N80 G00 Z100 ;
N90  M30 ;

Gwintowanie stopniowe

Na wcześniejszych przykładach pokazałem Ci jak gwintować „na raz”. Ale co jeśli pracujemy w „trudnym” materiale lub gdy dostał się nam głęboki gwint do wykonania?

Zaprezentuję Ci jak wykonać gwint w sposób pokazany powyżej .

Jeśli masz szczęście twoja maszyna obsługuje tą funkcję. Wtedy wzór na gwintowanie wygląda następująco:

G84 Z... P... Q... R... F...

G84– Włączenie cyklu gwintowania. Gwint prawy

Z– Pozycja dna gwintu

P-Przerwa na dnie otworu ( Jednostka milisekundy)

Q– Głębokość gwintowania do momentu wycofania

R-Pozycja wycofania narzędzia, ponad pozycję początkową.

F-Posuw

Doszedł jeden parametr odpowiedzialny za stopniowe gwintowanie.

Przykład 4:

  • Zakładam głębokość gwintu 45mm
  • Gwint M14
  • Chcę gwintować stopniowo co 20mm
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm
(PRZYKLAD 4)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N35   G95
N40   M03 S300 M29 ;
N50   M08 ;
N60   G84 Z-45 P500 Q20 R1 F2 ;
N70   G80 G94
N80 G00 Z100 ;
N90  M30 ;

Oczywiście nie żyjemy w świecie idealnym. Może się zdarzyć, że Twoja maszyna nie będzie obsługiwała gwintowania stopniowego. Co wtedy? Nic straconego. Jest pewien sposób. Przykład 5 pokaże Ci jak tego dokonać.

Przykład 5:

  • Zakładam głębokość gwintu 45mm
  • Gwint M14
  • Chcę gwintować stopniowo co 20mm
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm
(PRZYKLAD 5)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N35   G95
N40   M03 S300 M29 ;
N50   M08 ;
N60   G84 Z-20 P500  R1 F2 ;
N63 Z-40
N66 Z-45
N70   G80 G94
N80 G00 Z100 ;
N90  M30 ;

Jak widzisz narzędzie pracuje tak samo, zmienił się sposób zapisu.

Gwintowanie kilku otworów

Rzadko się zdarza, że do wykonania mamy tylko jeden gwint. Zazwyczaj jest ich kilka, kilkanaście, kilkadziesiąt. Nie ma konieczności wpisywania cyklu przy każdym z nich. Wystarczy to zrobić tylko przy pierwszym, a potem już tylko podawać pozycję otworów. Przykład 6 Ci to wyjaśni.

Przykład 6:

  • Zakładam głębokość gwintu 50mm
  • Gwinty M14
  • Chcę gwintować stopniowo co 20mm
  • Postój na dnie pół sekundy
  • Pozycja bezpieczna 1mm
(PRZYKLAD 6)
(PRZEMOCNC)
T06 M6 (GWINTOWNIK M14)
N20   G90 G80 G17 G00 G54 X-50 Y-50 ;
N30   G43 Z5 H06 ;
N35   G95
N40   M03 S300 M29 ;
N50   M08 ;
N60   G84 Z-50 P500 Q20 R1 F2 ;
N80 Y50
N90 X50
N100 Y-50
N110   G80 
N120 G00 Z100 ;
N130  M30 ;

Gwintowanie lewego gwintu wygląda tak samo. Jest tylko jedna różnica Zamiast G84 należy zastosować G74.

Trochę długo, ale chciałem jak najwięcej zawrzeć w dzisiejszym wpisie. I tak pewnie o czymś zapomniałem. Gdybyś zauważył jakieś niedociągnięcia, nie zapomnij mi o tym powiedzieć.

Nie zapomnij zasubskrybować za pomocą zakładki Newsletter.

Pozdrawiam PrzemoCNC.

47) G68 Rotacja współrzędnych

W poprzednim wpisie dotyczącym cyklu wiercenia G73, opisałem jak wykonać otwory rozmieszczone po kwadracie lub nieregularnie.

Ale załóżmy, że układ otworów wygląda w ten sposób:

Oczywiście można by zaprogramować ich tak, że dla każdego otworu z osobna wpisywałbym współrzędne. Tylko po co sobie życie utrudniać. Jest dużo łatwiejszy sposób. A mianowicie funkcja G68, czyli rotacja współrzędnych. Poniższy przykład pokaże Ci jak ona działa.

Przykład 1:

Siatka otworów wygląda w ten sposób:

Parametry dobrałem losowo. Ponieważ teraz najbardziej interesuje nas funkcja G68.

(PRZYKLAD 1)
(PRZEMOCNC)
N10 T06 M6 (WIERTLO FI 12)
N20   G90 G80 G17 G00 G54 X20 Y0 ;
N30   G43 Z5 H06 ;
N40   M03 S1500 ;
N50   M08 ;
N60   G73 Z-50 R1 Q10 F200 ;
N70 X40
N80 X60
N90 G68 X0 Y0 R120
N100 X20 Y0
N110 X40
N120 X60
N130 G68 X0 Y0 R240
N140 X20 Y0
N150 X40
N160 X60
N170 G69 G80
N180   G80 
N190 G00 Z100 ;
N200  M30 ;

W naszym przykładzie otwory są rozmieszczone co 120st. Ale kąt może być dowolny.

Jak zauważyłeś na końcu wpisałem G69. Ten G kod odwołuje funkcję G68.

Krótki wpis ale mam nadzieję , że wyczerpujący.

W razie jakichś wątpliwości zapraszam do komentowania.

No i oczywiście zachęcam do subskrybowania za pomocą zakładki Newsletter.

Pozdrawiam PrzemoCNC

46) G73 Cykl wiercenia z łamaniem wióra. Frezarka

W twojej przygodzie z maszynami na pewno przyjdzie taki dzień, że będziesz musiał wiercić w miękkich materiałach, takich jak aluminium. Wtedy pojawi się problem z wiórem, które nie chce się złamać. Cykl G73 działa tak samo jak cykl G74 na tokarkach. Wyjaśniłem go tutaj. Zasada działania jest bardzo podobna.

Wzór na cykl G73

G73 Z... R... Q... F...

G73– Wywołanie cyklu

Z– Głębokość na jaką masz zamiar wiercić

Q-Głębokość wiercenia, do momentu wycofania o parametr R

R- Wartość wycofania wiertła po każdym wwierceniu się o wartość Q

F– Posuw

Po każdym wykonanym otworze wystarczy, że wpiszesz położenie następnego otworu i cykl będzie się powtarzał do momentu odwołania go funkcją G80.

Pokażę ci na kilku przykładach jak to wygląda.

Przykład 1:

Masz do wykonania taki otwór jak na rysunku.

  • Głębokość otworu to 50mm.
  • Chcę żeby po każdych 10mm wwiercenia się w materiał, narzędzie wycofało się o 1mm do tyłu.
  • Zakładam posuw 200mm/min

Program wygląda tak:

(PRZYKLAD 1)
(PRZEMOCNC)
T06 M6 (WIERTLO FI 12)
N20   G90 G80 G17 G00 G54 X0 Y0 ;
N30   G43 Z5 H06 ;
N40   M03 S1500 ;
N50   M08 ;
N60   G73 Z-50 R1 Q10 F200 ;
N70   G80 
N80 G00 Z100 ;
N90  M30 ;

Przykład 2:

Układ otworów taki jak na rysunku.

  • Głębokość otworów to 50mm.
  • Chcę żeby po każdych 10mm wwiercenia się w materiał, narzędzie wycofało się o 1mm do tyłu.
  • Zakładam posuw 200mm/min

Jak widzisz parametry zastosowałem te same co w poprzednio. Ten przykład ma Ci pokazać jak wykonać kilka takich samych otworów.

Program wygląda tak:

(PRZYKLAD 2)
(PRZEMOCNC)
T06 M6 (WIERTLO FI 12)
N20   G90 G80 G17 G00 G54 X-50 Y-50 ;
N30   G43 Z5 H06 ;
N40   M03 S1500 ;
N50   M08 ;
N60   G73 Z-50 R1 Q10 F200 ;
N80 Y50
N90 X50
N100 Y-50
N110   G80 
N120 G00 Z100 ;
N130  M30 ;

Przykład 3:

Układ otworów taki sam jak poprzednio

  • Głębokość otworów to 100mm.
  • Chcę żeby po każdych 5mm wwiercenia się w materiał, narzędzie wycofało się o 0.5mm do tyłu.
  • Zakładam posuw 500mm/min
(PRZYKLAD 3)
(PRZEMOCNC)
T06 M6 (WIERTLO FI 12)
N20   G90 G80 G17 G00 G54 X-50 Y-50 ;
N30   G43 Z5 H06 ;
N40   M03 S1500 ;
N50   M08 ;
N60   G73 Z-100 R0.5 Q5 F500 ;
N80 Y50
N90 X50
N100 Y-50
N110   G80 
N120 G00 Z100 ;
N130  M30 ;

Myślę, że w miarę łatwo to wyjaśniłem.

W razie wątpliwości zapraszam do komentowania. No i oczywiście nie zapomnij zapisać się do newslettera. Dzięki temu, nie ominie Cie żaden nowy wpis.

Pozdrawiam PrzemoCNC

45) G83 Cykl wiercenia z odwiórowaniem, Tokarka

Jakiś czas temu zrobiłem wpis dotyczący cyklu wiercenia G74. W komentarzach odezwał się Pan Krzysztof, że zapomniałem w tabeli wpisać G83. A ja po prostu nie znałem tego cyklu. Tzn znałem, ale nie na tokarkach. Całe życie uważałem, że działa on wyłącznie na frezarkach. Jak bardzo się zdziwiłem, gdy po wpisaniu cyklu na mojej Pumie wszystko działało jak należy.

Dlatego ciągle powtarzam żebyście komentowali moje wpisy. Czasami znajdujecie błędy, a czasami jak w tym przypadku pozwalacie mi nauczyć się czegoś nowego.

Wzór na cykl G83

G83 Z... R... P... Q... F...

G83– Wywołanie cyklu wiercenia z odwiórowaniem

Z– Głębokość wierconego otworu (jednostka mm)

R– Odległość na jaką ma wyjechać wiertło aby odprowadzić wióra ( jednostka mm)

P– Czas postoju narzędzia na dnie otworu przy każdym wjeździe ( jednostka milisekunda )

Q– Głębokość wiercenia do momentu odwiórowania (jednostka mikrometr μm)

F– Posuw

Przykład 1:

  • Potrzebny jest otwór głęboki na 40mm
  • Po 10mm wiertło ma się wycofać na 1mm przed czoło.
  • Na dnie otworu wiertło ma się zatrzymać na pół sekundy w celu odprowadzenia wióra
(PRZYKLAD CYKL G83)
(PRZEMOCNC)
(WIERCENIE)
 
N10 G54 T0101           (wybór bazy i wiertła)
N30 G97 S150 M3         (określenie obrotów)
 
N40 G0 X0 Z1              (najazd przed czoło półfabrykatu )

N50 G83 Z-40 R1 P500 Q10000 F0,15 

N60 G28 U0 W0 
N70 M30

Przykład 2:

  • Potrzebny jest otwór głęboki na 100mm
  • Po 50mm wiertło ma się wycofać o 5mm przed czoło.
  • Na dnie otworu wiertło ma się zatrzymać na sekundę w celu odprowadzenia wióra
(PRZYKLAD 2 CYKL G83)
(PRZEMOCNC)
(WIERCENIE)
 
N10 G54 T0101           (wybór bazy i wiertła)
N30 G97 S150 M3         (określenie obrotów)
 
N40 G0 X0 Z1              (najazd przed czoło półfabrykatu )

N50 G83 Z-100 R5 P1000 Q50000 F0,15 

N60 G28 U0 W0 
N70 M30

Pozdrawiam i zapraszam do subskrybowania za pomocą newslettera.

Jeszcze raz bardzo gorąco dziękuję koledze Krzyśkowi. Zapraszam do komentowania.

44) Warunki, zapętlenia Makro WHILE, IF, GOTO.

To jest już siódmy wpis na temat programowania Makro. Dzisiaj wyjaśnię na czym polega ta ogromna moc, o której mówię praktycznie od samego początku.

Wszystkie poprzednie wpisy są bardzo ważnie i wiedza o nich jest niezbędna. Ale nie będą zbyt przydatne jeśli będziesz chciał ich użyć pojedynczo. Potrzebują one czegoś jeszcze. Taki final touch. Niezbędne są jakieś formy manipulacji, żeby nasze działania stały się decyzyjne.

Proces decyzyjny w Fanucu jest oparty na najstarszym, a zarazem najprostszym języku komputerowym: BASIC. Był on najpotężniejszym językiem w swoich czasach. Do dzisiaj ewoluował już tak wiele razy, że mało co przypomina swojego pradziadka. Ale zasady działania i struktury programu do tej pory istnieją.

Weźmy na przykład nasze tytułowe funkcje zapętlania (WHILE, IF, GOTO) . To cały czas jest język Basic

  • WHILE– Dopóki
  • IF– Jeśli
  • IF_THEN ; Jeśli_Wtedy
  • GOTO– Idź do

Zasadę działania pokażę Ci na przykładzie.

If I will have a money, I will buy a car. ( Jeśli będę miał pieniądze, kupie sobie samochód)

Teraz nasze zdanie podzielę na 2 części. Warunek: If I will have a money(Jeśli będę miał pieniądze) . Rozwiązanie warunku Jeśli masz pieniądze kupisz sobie samochód, natomiast jeśli nie masz tych pieniędzy, samochodu nie będzie. Tak albo tak. Warunek prosty sam w sobie, ale bardzo potężny jeśli zastosujesz go w programowaniu makro.

IF

Funkcja decyzyjna lub Funkcja warunkowa. Jak kto woli

W programie zapisuje się ją w ten sposób:

IF [warunek zapętlenia] GOTOn

Tłumacząc to po ludzku. Dopóki warunek zapisany w nawiasach będzie spełniany, TRUE program będzie przeskakiwał do bloku n. Natomiast jeśli warunek nie będzie spełniony, FALSE maszyna przejdzie do następnego bloku.

#1=10      (naddatek w osi Z)

N10 G0 X300 Z=[0+#1] 
N20 G1 X100 F0.3
N30 G0 Z=[1+#1]
N40 X300

#1=[#1-2] 
IF [#1 GE 0] GOTO10

N50 G28 U0 W0
N60 M30

Jest to prosty program na planowanie czoła. Ale bardzo dobrze obrazuje zasadę działania funkcji IF.

W pierwszym przejściu naddatek wynosi 10mm. Program dochodzi do odejmowania od #1 są odejmowane 2mm. W tym momencie Nasz #1 wynosi 8. Następnie dochodzimy do naszego warunku. Czytając mój poprzedni wpis odczytasz, że GE znaczy większy lub równy.

Czyli tłumacząc na nasz język warunek wygląda tak:

Jeśli #1 jest większy lub równy 0 idź do bloku N10 .

Tak więc biorąc wynik z działania widzimy, że warunek jest spełniony i program przeskakuje do bloku N10.

Schemat działania funkcji IF

Po kolejnym przejściu znowu program dochodzi do działania #1= [#1-2]. Tym razem zamiast od 10 maszyna odejmuje od 8. Przechodzimy blok dalej, nasz warunek znowu jest spełniony, czyli przeskakujemy do bloku N10.

Po sześciu przejściach, gdy już maszyna splanuje na Z0, dochodzimy do działania. Wynik nie może być inny niż -2. Po przejściu do następnego bloku okazuje się, że warunek nie jest spełniony, bo -2 jest mniejsze niż 0. W tym momęcie maszyna automatycznie przeskakuje do bloku następnego czyli N50.

To tylko jeden przykład ale myślę, że zasada działania jest jasna.

Można za pomocą zmiennej określić nr bloku, do którego ma nastąpić skok.

#40=60
......
IF [#1 LT 0] GOTO#40
......
......
......
N60 M30

GOTO

Funkcja GOTO może być używana bez dodawania innych takich jak IF . Jest to bezwarunkowy skok. Czyli jeśli zapiszesz w programie:

.........
GOTO 100
N50 .........
N60..........
N70..........
N80..........
N90..........
N100 G28 U0 W0
N110 M30

Maszyna przeskoczy wszystkie bloki pośrednie i przejdzie do N100.

Starajcie się utrzymać porządek w programach. Numerujcie bloki po kolei. Najlepiej co 5 lub 10, żeby w razie czego można było dopisać bloki pomiędzy. Jeśli będziesz miał bałagan w programie to maszyna nie będzie wiedziała, do którego bloku ma przeskoczyć, bo na przykład ma dwa lub 3 bloki ponumerowane jako N100. To, że teraz wiesz co chcesz zrobić nie znaczy, że za tydzień będziesz wiedział co miałeś na myśli.

IF-THEN

Ta funkcja nie działa we wszystkich wersjach oprogramowania.

Fanuc 10/11/15/21 działa

Fanuc 0/16/18 Nie działa

Głównym celem polecenia IF-THEN jest prostota. Gdy do wyboru są tylko dwie opcje, ta funkcja jest idealnym rozwiązaniem. Zastępuje połączenie dwóch poprzednich, czyli IF i GOTO .

Po spodem dwie wersje. Obie mają takie same znaczenie.

N10 #100=30

N30 IF [#100 EQ 30] GOTO50
N40 IF [#100 EQ 40] GOTO60
N50 #102=50
GOTO100
N60 #102=10

N70..........
N80..........
N90 M30

Ten sam program można zapisać w ten sposób

N10 #100=30

N30 IF [#100 EQ 30] THEN #102=50
N40 IF [#100 EQ 40] THEN #102=10
N50..........
N60 M30

Prościej łatwiej szybciej. A przecież o to nam chodzi.

AND OR

Przy bardziej złożonych kalkulacjach nie wystarczy wynik zero jedynkowy. Czasami trzeba porównać jedną lub więcej wartości.

I znowu angielski się przydaje. If I will have a money and time I will take a vacation. ( Jeśli będę miał pieniądze i czas pojadę na wakacje). Dwa warunki muszą być spełnione. Co z tego jak będziesz miał pieniądze, ale czasu brak. Nie pojedziesz na wakacje.

W drugim przypadku jest trochę inaczej. If I earn money or borrow from my frend I will take a vacation. ( Jeśli zarobie pieniądze lub pożyczę je od przyjaciela, pojadę na wakacje). Wystarczy, że spełnisz jeden warunek z dwóch. Nie musisz pożyczać pieniędzy jeśli je zarobisz i na odwrót. Podsumowując

  • AND– oba warunki muszą się zgadzać żeby całe wyrażenie było prawdą
  • OR– wystarczy że jeden warunek się zgadza żeby całe wyrażenie było prawdą

Jest jeszcze funkcja XOR, ale jest ona tak rzadko stosowana że nie będą Ci zawracał nią głowy.

WHILE

Funkcja zapętlenia.

WHILE [WARUNEK] DO1

W prostym tłumaczeniu:

Dopóki będzie spełniany warunek w nawiasach wykonuj część programu zakończoną słowem END1.

Zasada działania funkcji WHILE

Pokażę to na takim samym przykładzie co funkcja IF.

WHILE [#1 GE 0] DO1
#1=10      (naddatek w osi Z)

N10 G0 X300 Z=[0+#1] 
N20 G1 X100 F0.3
N30 G0 Z=[1+#1]
N40 X300

#1=[#1-2] 
END1

N50 G28 U0 W0
N60 M30

Dopóki zmienna #1 będzie większa lub równa 0, wykonuj część programu zakończoną wyrazem END1.

Numery przy słowach DO i END są ze sobą ściśle powiązane. Służą utrzymaniu porządku w programie gdybyśmy chcieli programować pętle do kilku poziomów. Sterowanie Fanuc pozwala zagnieździć pętle do trzech poziomów. Gdzie DO1 będzie odwoływać się do END1 a DO3 do END3.

Poniższe schematy pokazują zasadę działania zagnieżdżania.

Jeden poziom pętli
Dwa poziomy pętli
Trzy poziomy pętli

Jeden i dwa poziomy pętli są najczęściej spotykane. Pierwszy jest łatwy do zrozumienia. Drugi jest już trochę trudniejszy.

Trzy poziomy są rzadziej używane i zrozumienie ich może przysporzyć trochę kłopotu. Powtórzę to jeszcze raz: Musisz utrzymać porządek w programie, bez tego nawet podwójne zagnieżdżanie będzie skutkowało alarmami.

To by było tyle na dzisiaj. Nie pozostaje nic innego tylko siadać i pisać programy Makro. Masz wszystko wyłożone na tacy. Wydaje mi się, że prościej się wyjaśnić tego nie da. Ale Gdybyś miał jakieś wątpliwości zapraszam do komentowania lub do bezpośredniego kontaktu. Nie zapomnij o subskrybowaniu. Po prawej stronie jest zakładka Newsletter. Pozdrawiam PrzemoCNC

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