Frezowanie rowka przy użyciu "makra"

Dyskusje na temat systemu Faunc

Autor tematu
cosmonet
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 278
Rejestracja: 01 sty 1970, 01:00
Lokalizacja: Mazowsze

Frezowanie rowka przy użyciu "makra"

#1

Post napisał: cosmonet » 29 paź 2015, 16:58

Witam,

Przyznam się, że nigdy nie używałem makroprogramu do wykonywania określonej operacji skrawania. W tym temacie jestem nowicjuszem. Moja obecna wiedza (z dzisiejszego dnia) ogranicza się do: G65 P9201.

Mam do wykonania kanałek (fasolę) na maszynie Doosan Lynx 220 LS / LMS z osią Y, sterowanie Fanuc 0i-TD. Poniżej przykładowy rysunek:

Obrazek

Powyższy kanałek chciałbym wykonywać frezem fi10 powoli zagłębiając się. Jak widzimy na rysunku są podane odchyłki. Myślę, że wykorzystując makro w prosty sposób mógłbym zmieniać jego szerokość, długość, głębokość.
Jakbym poznał zależności makra to mógłbym wykorzystać kolegów pomoc do innych wykonywania innych kanałów.

Może ktoś się zapyta czemu nie wykonam kanałka bezpośrednio frezem fi12 (jak na rysunku). Nasz odbiorca dużą wagę przywiązuje do jego szerokości (+ 0,02mm). Powstaje już "krzyk" jak jest setka poza tolerancją.

Pozdro ...


Kiedyś Haas SL10, Haas SL20, Haas SL30, Doosan LYNX220. Obecnie Haas SL20.


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 5
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#2

Post napisał: PiRo_man » 29 paź 2015, 17:42

Kluczowe pytanie:
Chcesz się nauczyć programować za pomocą makrodefinicji, czy dostać 'gotowca' i mieć to z głowy?

inż. Mateusz


Autor tematu
cosmonet
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 278
Rejestracja: 01 sty 1970, 01:00
Lokalizacja: Mazowsze

#3

Post napisał: cosmonet » 29 paź 2015, 18:37

Witam,

Pierwsze rozwiązanie mnie interesuje :) - wolę się nauczyć i wykorzystać zdobytą wiedzę. Pewnie z mojej strony pojawią się "banalne" co dla niektórych pytania, ale co tam!?

Pozdro ...
Kiedyś Haas SL10, Haas SL20, Haas SL30, Doosan LYNX220. Obecnie Haas SL20.


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 5
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#4

Post napisał: PiRo_man » 29 paź 2015, 19:53

Podeślij maila na PW to Ci podeślę instrukcję programowania makrodefinicji. Jakbyś czegoś nie rozumiał albo miał jakieś pytania to pisz.

inż. Mateusz


mariusz123a
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 201
Rejestracja: 14 cze 2011, 22:05
Lokalizacja: ...

#5

Post napisał: mariusz123a » 29 paź 2015, 20:42

Na moim jakimś tam symulatorze wygląda to w porządku, aczkolwiek według mnie mogą być małe problemy. Sprawdź sobie program w symulacji manual guide, pamiętaj że kierunek kompensacji ostrza narzędzia to 0 lub 9.
Problem może być z G02 według mnie powinno być G03 ale może w mojej głowie nieświadomie zamieniłem sobie zwrot osi Y, symulator po zmianie na G02 pokazał prawidłowy kształt.

Musisz poniższy program zapisać na maszynie, może być pod innym numerem niż 100, to będzie Twój podprogram, który będziesz wywoływał funkcją G65 z określeniem odpowiednich parametrów wejściowych

Linijka wywołania podprogramu musi wyglądać w ten sposób:
G65P100X40.Z-35.D42.01S12.01H6.Q1.F100.

Opisy poszczególnych parametrów wejściowych masz w podprogramie
Przeanalizuj sobie cały ten podprogram i zrozum o co tam chodzi i dostosuj według swoich potrzeb.


Tutaj masz podprogram:
%
O0100
(#26 WSPOLRZEDNA SRODKA FASOLKI Z)
(#24 SREDNICA POCZATKA FASOLKI X)
(#7 DLUGOSC FASOLKI D)
(#19 SZEROKOSC FASOLKI S)
(#11 WYSOKOSC FASOLKI H)
(#17 GLEBOKOSC ZABLEBIENIA Q)
(#9 POSUW OBROBKI F)



G00G19Y0.X[#24+5]Z[#26]
#10=#24-[#17*2]
N1
G01X#10F#9
G01G42Y-#19
G01W-[#7/2-#19/2]
G03Y#19R[#19/2]
G01W[#7-#19]
G03Y-#19R[#19/2]
G01Z#26
G40Y0.
#10=#10-#17*2
IF[#10GE#24-#11*2+#17*2]GOTO1
G01X[#24-#11*2]F#9
G01G42Y-#19
G01W-[#7/2-#19/2]
G03Y#19R[#19/2]
G01W[#7-#19]
G03Y-#19R[#19/2]
G01Z#26
G40Y0.
G00X[#24+5]
G18
M99
%


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 5
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#6

Post napisał: PiRo_man » 30 paź 2015, 06:44

cosmonet pisze:(...) Przyznam się, że nigdy nie używałem makroprogramu do wykonywania określonej operacji skrawania. W tym temacie jestem nowicjuszem. Moja obecna wiedza (z dzisiejszego dnia) ogranicza się do: G65 P9201. (...)
mariusz123a pisze:(...) Przeanalizuj sobie cały ten podprogram i zrozum o co tam chodzi i dostosuj według swoich potrzeb. (...)
Hahaha!

inż. Mateusz


Autor tematu
cosmonet
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 278
Rejestracja: 01 sty 1970, 01:00
Lokalizacja: Mazowsze

#7

Post napisał: cosmonet » 30 paź 2015, 13:10

Witam,

Dzisiaj już moja wiedza jest o wiele większa :) Ale nasuwają się pytania:
1. Linię wywołania rozumiem
G65P100X40.Z-35.D42.01S12.01H6.Q1.F100.
P100 - nr podprogramu,
X40. - średnica zewnętrzna wałka,
Z-35. - wsp. środka fasolki,
D42.01 - długość fasolki w Z,
itd. z tym niema problemu.

W instrukcji Fanuc'a znalazłem tabelkę ustalającą argument I co odnosi się do zmiennych zawartych na początku podprogramu, np:
(#26 WSPOLRZEDNA SRODKA FASOLKI Z)
(#24 SREDNICA POCZATKA FASOLKI X)
i tak dla przykładu dane z tabeli:

Kod: Zaznacz cały

Adres A --> nr zmiennej #1
Adres B --> nr zmiennej #2
Adres C --> nr zmiennej #3
Adres D --> nr zmiennej #7
Adres E --> nr zmiennej #8
...
Adres X --> nr zmiennej #24
...
Adres Z --> nr zmiennej #26
Tutaj mam pierwsze pytanie czy mogę przypisywać dowolne nr zmiennych, czyli zamiast - #24 SREDNICA POCZATKA FASOLKI X na #1 srednica poczatkowa fasoli X?
Pytanie drugie. Jako zmienne zdeklarowane (czyli stałe) używa się tylko tych zawartych w tabeli?
Pytanie trzecie odnosi się do zapisu podprogramu
#10=#24-[#17*2]
Czy zmienna #10 zawiera się w przedziale zmiennych lokalnych - od #1 - #33 i tych nie występujących w ustaleniach argumentu I? Jeśli tak to mogę zamiast zmiennej #10 wykorzystać zmienną, np. #27?

Co do podprogramu to zapis zawierający się w przedziale rozumiem bardzo dobrze:
%
O0100
(#26 WSPOLRZEDNA SRODKA FASOLKI Z)
(#24 SREDNICA POCZATKA FASOLKI X)
(#7 DLUGOSC FASOLKI D)
(#19 SZEROKOSC FASOLKI S)
(#11 WYSOKOSC FASOLKI H)
(#17 GLEBOKOSC ZABLEBIENIA Q)
(#9 POSUW OBROBKI F)

G00G19Y0.X[#24+5]Z[#26]
#10=#24-[#17*2]
N1
G01X#10F#9
G01G42Y-#19
G01W-[#7/2-#19/2]
G03Y#19R[#19/2]
G01W[#7-#19]
G03Y-#19R[#19/2]
G01Z#26
G40Y0.
#10=#10-#17*2
IF[#10GE#24-#11*2+#17*2]GOTO1
Jeżeli jest spełniony warunek to powrót do bloku N1, jeśli nie to jest wykonywany kod poniżej IF.

Dalej nie analizowałem z braku czasu w pracy w domku luknę.

I ostatnie pytanie. Średnica frezu tzn. jego promień jest zawarty w ustawieniach Kompensacja narzędzia - korekcja geometrii? Jeśli frez będzie miał średnicę np. 4mm to już poprawnie nie wykona fasoli?
Kiedyś Haas SL10, Haas SL20, Haas SL30, Doosan LYNX220. Obecnie Haas SL20.


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 5
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#8

Post napisał: PiRo_man » 30 paź 2015, 18:24

cosmonet pisze:(...) Tutaj mam pierwsze pytanie czy mogę przypisywać dowolne nr zmiennych, czyli zamiast - #24 SREDNICA POCZATKA FASOLKI X na #1 srednica poczatkowa fasoli X? (...)
Tak. Ogólnie masz dwie możliwości. Pierwsza to przepisanie wartości z #24 do #1 - stosuje się ją w przypadku kiedy chcesz mieć parametry wejściowe do makra pozostawione bez zmian z jakichś tam powodów - np. jak są intuicyjne (F - posuw, Q- dosuw, K - ilość powtórzeń, itd...). Drugi sposób to zmiana litery parametru wejściowego - zamiast parametru 'X', 'Z', 'D', (...) możesz użyć 'A', 'B', 'C', itd... Możesz wykorzystać dowolne parametry, i w dowolnej kolejności (z tego co pamiętam poza parametrami 'I', 'J', 'K', które muszą być wpisane w kolejności alfabetycznej). Nie chciałem właśnie tego wcześniej komentować zanim nie poznasz podstaw, ale stwierdzenie:
mariusz123a pisze:(...) Linijka wywołania podprogramu musi wyglądać w ten sposób:
G65P100X40.Z-35.D42.01S12.01H6.Q1.F100. (...)
jest jak najbardziej błędne. Nie "musi" tylko "może", bo jak sam autor Ci sugeruje korekty, to siłą rzeczy możesz zmienić sobie adresy parametrów, więc i same oznaczenia parametrów będą inne.
cosmonet pisze:(...) Pytanie drugie. Jako zmienne zdeklarowane (czyli stałe) używa się tylko tych zawartych w tabeli? (...)
Te które są zapisane w pamięci ROM, tak. Ale zawsze możesz sobie zdefiniować własne stałe. Pewnie wiesz już czym się różnią poszczególne grupy adresacji zmiennych, także nie muszę tłumaczyć gdzie umieścić wartości, aby były zawsze dostępne.
cosmonet pisze:(...) Pytanie trzecie odnosi się do zapisu podprogramu
#10=#24-[#17*2]
Czy zmienna #10 zawiera się w przedziale zmiennych lokalnych - od #1 - #33 i tych nie występujących w ustaleniach argumentu I? Jeśli tak to mogę zamiast zmiennej #10 wykorzystać zmienną, np. #27? (...)
Jest to dobra praktyka, aby zmienne lokalne zawsze używać spoza zakresu adresów parametrów wejściowych. Wtedy przy dopisaniu jakiegokolwiek parametru nie trzeba analizować kodu czy czasem nie użyło się już gdzieś jakiegoś adresu odpowiadającemu danemu parametrowi, a w przypadku jego wystąpienia korekty makra. Może dojść do sytuacji, w której zmiennych lokalnych będziesz potrzebował na tyle dużo, że będziesz zmuszony wykorzystać adresy zmiennych które mogą być wprowadzone za pomocą parametrów, wtedy już będziesz musiał to kontrolować. Jednak z początku programowania makr na pewno nie będziesz miał takich sytuacji, a jak już, to bardzo rzadko.
cosmonet pisze:(...) Jeżeli jest spełniony warunek to powrót do bloku N1, jeśli nie to jest wykonywany kod poniżej IF. (...)
Dokładnie. Warto pamiętać również o pętli "WHILE" oraz o różnicy między nimi (głównie chodzi mi tu o czas przeskoku do określonego miejsca pętli).
cosmonet pisze:(...) I ostatnie pytanie. Średnica frezu tzn. jego promień jest zawarty w ustawieniach Kompensacja narzędzia - korekcja geometrii? Jeśli frez będzie miał średnicę np. 4mm to już poprawnie nie wykona fasoli?
Frez idzie z kompensacją promienia narzędzia. Więc jeśli promień freza będzie mniejszy niż promień łuku rowka, to siłą rzeczy musisz mieć możliwość go wyfrezować, jeśli będzie większy - będzie to fizycznie nie możliwe. Dobrą praktyką jest rozpisanie wstępnej kontroli obrabianego konturu zaraz na początku makra. Czyli w Twoim przypadku na przykład od razu na początku makra możesz sprawdzić średnicę freza, czy zmieści się w frezowanym rowku (najlepiej od razu z jakimś określonym naddatkiem skoro rowki masz tolerowane) - warto zapoznać się z parametrami makrodefinicji które są zaimplementowane w pamięci maszyny, dzięki nim możemy na przykład pobrać średnicę freza którego chcemy wykorzystać do obróbki. Warto jest wykonać tą operację od razu na początku makra, ponieważ oszczędzasz czas (maszyna nie musi tracić czasu na przeliczenia parametrów, tylko najpierw wyłapuje czy narzędzie się zmieści - jeśli nie, przerywa wykonywanie makra), oszczędza materiał (w przypadku większego narzędzia istnieje możliwość, że bezbłędnie dojdzie z korekcją promienia do krawędzi rowka, wykona interpolację liniową, ale na łuku wywali błąd, że promień narzędzia jest za duży aby wykonać łuk - niestety w tym momencie narzędzie może się już znajdować w materiale, i rowek może zostać rozfrezowany na zbyt dużą szerokość).

inż. Mateusz


mariusz123a
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 201
Rejestracja: 14 cze 2011, 22:05
Lokalizacja: ...

#9

Post napisał: mariusz123a » 30 paź 2015, 22:22

PiRo_man pisze:Nie "musi" tylko "może"
Ty jesteś za przeproszeniem "może", dla mojego programu i jego detalu musi tak wyglądać, a jeżeli nie rozumiesz mojego przesłania to zapytaj, z chęcią wyjaśnię.
PiRo_man pisze:Hahaha!
Teraz ja się pośmieje, bo mam dziwne wrażenie, że on szybciej to ogarnął od Ciebie.
Smutne jest to, że wszystkich traktujesz w ten sam sposób. Masz wysokie mniemanie tylko o sobie, szczycisz się swoim tytułem inżyniera, a innych uważasz za "głąbów" którzy mają mózgi wielkości tic-taca.
Najgorsze jest to, że pisząc to wszystko zniżam się do Twojego poziomu, bo wdaję się w bezsensowną dyskusję, ale muszę zareagować. Mnie możesz obrażać i mieć za nieuka, ale jak innych też masz za nieuków to sorry ktoś musi zwrócić uwagę, bo coś jest nie tak z Tobą.


Psikus
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 115
Rejestracja: 21 mar 2011, 11:46
Lokalizacja: TST

#10

Post napisał: Psikus » 02 lis 2015, 10:20

Witam

Czy jest możliwość programowania fanuca w taki sposób aby używać Makra i G kodów w jednym programie ?

Czy zaprogramowanie wykonania tego kanałka nie byłoby prostsze w G kodach właśnie ?
Chodzi tu o zasadę programowania aby uczyć się od prostych operacji ?

Czy programowanie przy pomocy makra nie powinno się stosować tam gdzie występuje duża liczba powtórzeń danego cyklu ?

Bo dla mnie prostego człowieka :mrgreen: to bardzo dużo trzeba definiować aby zrobić prostą operację.

ps. programować przy pomocy Makra nie potrafię

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Fanuc”