Znaleziono 4 wyniki

autor: PiRo_man
04 wrz 2013, 10:03
Forum: G-CODE - programowanie
Temat: Nie działająca kompensacja promienia freza
Odpowiedzi: 12
Odsłony: 3645

LABEL odnośnie tego fragmentu z instrukcją WHILE (którego nie rozumiesz), ja to nazwałem pętla, ty rozkaz skoku, ale jest to jedno i to samo. Skrót LT oznacza "Less Than", czyli z ang. "Mniej niż". While zresztą też z ang. można przetłumaczyć, i od razu będzie łatwiej to zrozumieć:
"WHILE[#10 LT #11] DO1"
"Dopuki[#10 jest mniejsze od #11] Wykonaj1" wykonuje pętlę o numerze 1 (na FANUCu mogą być zagnieżdżone pętle do trzeciego stopnia).

Kolego GumiRobot wysunął Pan kiepską propozycję, z tego względu, że to ja chcę pomóc komuś, a nie ktoś mi, dlatego nie uważam, żebym musiał się uczyć innego języka programowania (którego nie używam i na chwilę obecną w najbliższej przyszłości raczej nie będę), tylko po to, żeby komuś pomóc. Powinno to wyglądać wprost przeciwnie, to kolega LABEL powinien przestudiować instrukcję makrodefinicji FANUCa, żeby zrozumieć kod który ja napisałem. Ja już jakieś doświadczenie w pisaniu programów parametrycznych mam, i moim zdaniem nie "biję piany", tylko zadaję pytania starając się znaleźć błąd. Ale skoro szanowny Panie GumiRobot uważa Pan, że "biję pianę", to w porządku, już kończę i proszę niech teraz Pan pomoże koledze.
autor: PiRo_man
03 wrz 2013, 23:04
Forum: G-CODE - programowanie
Temat: Nie działająca kompensacja promienia freza
Odpowiedzi: 12
Odsłony: 3645

Dobra, zacznijmy może od podstawy, bo odnoszę wrażenie, że nie za bardzo ogarniasz programy parametryczne, i rzucamy się wszyscy z motyką na słońce, a nie wiadomo w ogóle czy Twoja maszyna uwzględnia (jak sam wcześniej zauważyłeś) parametry podane jako punkty ruchu w poszczególnych osiach. Dla sprawdzenia napisz sobie jakiś prosty (BARDZO PROSTY!) kod, z parametrem, w tablicy narzędzi ustaw promień freza na pełną miarę (np. 10 mm) żeby się łatwiej liczyło, i sprawdź czy maszyna poprawnie wykona kod.

Przykład programu na podstawie tego co napisałeś:

Kod: Zaznacz cały

%MPF16 
(SAMPLE) 
N1 G54 D200
N2 T1 D01 
N3 M4 
N4 F100 
N5 R1=20
N12 G0 G90 X0 Y0
N14 G1 G41 D01 XR1 Y0 F120
N15 G1 XR1 YR1
N16 G1 X-R1 YR1
N17 G1 X-R1 Y-R1
N18 G1 XR1 Y-R1
N19 G1 XR1 Y0
N42 G1G40 X0 Y0 
N50 M30
W powyższym przykładzie narzędzie powinno (na współrzędnych absolutnych) znajdować się podczas tego objazdu profilu wewnętrznego odpowiednia na punktach (zaczynając od punktu dojazdy z korekcją - dla freza o promieniu 10 mm):

Kod: Zaznacz cały

N14 X10 Y0
N15 X10 Y10
N16 X-10 Y10
N17 X-10 Y-10
N18 X10 Y-10
N19 X10 Y0
N42 X0 Y0

Dwie uwagi, pierwsza, to co robi D200 w linii N1, skoro w linii N2 zmieniasz go na D01 (pomijam, że przy dojeździe z kompensacją (N14) ponownie ustawiasz parametr D...) Nie potrzebnie mieszasz sobie w programie.

Druga, to nie wiem jak pronum, ale mi to nie pasuje, że komentarze w programie są w okrągłych nawiasach, i w takiego samego typu nawiasach są podane parametry wg. których maszyna ma liczyć wartości sinusa i cosinusa.

Sprawdź i daj znać czy przeszło.
autor: PiRo_man
02 wrz 2013, 17:04
Forum: G-CODE - programowanie
Temat: Nie działająca kompensacja promienia freza
Odpowiedzi: 12
Odsłony: 3645

No, mam teraz trochę więcej czasu, i na spokojnie prześledziłem jeszcze raz Twój kod, i muszę stwierdzić, że nie ma prawa Ci to działać.
LABEL pisze:N11 G0 X130 Y 0
W tej linii ustawiasz się na określony punkt.
LABEL pisze:N12 G1 G42 G90 X120 Y0 F120 (DOJAZD)
Dojeżdżasz z korekcją promienia do X120, czyli o 10 mniej niż pozycja początkowa (zakładam, że frezujesz to frezem o średnicy mniejszej niż 20).
LABEL pisze:N20 G1XR2*COS(R1)+R5YR2*SIN(R1)+R6
Tu zaś, z moich obliczeń wynika, że narzędziem przesuwasz się w tym samym kierunku co poprzednio (X wynosi w tym wypadku 86.45*1+0 czyli 86.45, Y natomiast 86.45*0+0, czyli 0.

Biorąc pod uwagę fakt, że narzędzie cały czas (podwójnie) porusza się w osi X, nie zmieniając przy tym współrzędnej Y, maszyna wywala błąd, bo gubi w tym momencie kontur po którym ma się poruszać, w tym przypadku staje się nie jasne czy jest to kontur zewnętrzny czy wewnętrzny.
LABEL pisze:N32G17G90G2XR2*COS(R1)+R5YR2*SIN(R1)+R6U100
Co to jest to U100 na końcu tej linii? Promień okręgu? Bo jeśli tak, to chyba nie powinien się różnić od R2, jeśli nie, to brakuje Ci tu przy interpolacji kołowej właśnie promienia łuku jaki chcesz wykonać, lub punktów środka okręgu.
LABEL pisze:N40 H3-32=R4=0
Tego też za cholerę nie potrafię zrozumieć.

Tak w ogóle to programy parametryczne powinny wyglądać trochę inaczej, ich budowa powinna wyglądać mniej więcej tak:

Kod: Zaznacz cały

G00 X#1 Y#2 (NAJAZD NA JAKIES PUNKTY POCZATKOWE) 
G01 Z-#3 F#5 (ZEJSCIE W OSI Z NA ZADANA WYSOKOSC) 
G42 Dxx X#1 Y#2 F#5 (PO OBLICZENIACH PRZESUNIECIE NARZEDZIA NA PUNKTY POCZATKOWE OKREGU) 
WHILE [#10 LT #11] DO1 (WYKONANIE PETLI FREZOWANIA PO OKREGU #10 - AKTUALNY KAT, #11 - KAT KONCOWY) 
(BTW: TA PETLE MOZNA WYKONAC NA DWA SPOSOBY) 
(...)(TU ZWIEKSZYC KAT I WYKONAC STOSOWNE OBLICZENIA PUNKTU KONCOWEGO LUKU) 
G02 X#1 Y#2 R#4 F#5 (PRZESUNIECIE NARZEDZIA NA PUNKTY KONCOWE LUKU) 
END1 (ZAKONCZYC PETLE ZE SPRAWDZENIEM WARUNKU WYKONANIA, CZYLI CZY AKTUALNY KAT JEST ROWNY KATOWI KONCOWEMU WYKONYWANEGO LUKU) 
G01 Z#3 F#5 (ODJAZD OD MATERIALU NA BEZPIECZNA WYSOKOSC) 
(...)(POZOSTALA CZESC KODU - OPCJONALNIE)
Zamiast Twoich zmiennych R(...) skorzystałem z oznaczenia zmiennych za pomocą #, moim zdaniem są trochę bardziej widoczne w kodzie, ale idea pozostała ta sama.
autor: PiRo_man
02 wrz 2013, 11:13
Forum: G-CODE - programowanie
Temat: Nie działająca kompensacja promienia freza
Odpowiedzi: 12
Odsłony: 3645

Na początek jedna uwaga:

Kod: Zaznacz cały

N5 R1=PI/180*0 (KAT POCZATKOWY) 
Równie dobrze możesz pod R1 od razu wpisać 0, bo i tak niezależnie od tego co jest wcześniej, jeśli przemnożysz przez 0, i tak wyjdzie 0.

Druga rzecz to jak wywołujesz tą makrodefinicję? Jako podprogram jakiegoś głównego programu?

W linii 12 wywala Ci błąd, ale to nie znaczy, że tej linii on dotyczy, może to być kolejna, lub któraś po niej. Moją uwagę zwróciły obliczenia, czy aby na pewno po określeniu osi stawia się znak "="? Na FANUCu wszelkie obliczenia zawiera się w nawiasach kwadratowych"[" i "]".

Ponownie nawiążę do FANUCa na którym korzystam z makrodefinicji. Da się wykonywać programy parametryczne z użyciem kompensacji narzędzia. U siebie napisałem już wiele makrodefinicji korzystających ze zmiennych, z użyciem kompensacji, i wszystko działa. Poza tym piszesz, że jeśli wpiszesz współrzędne na stałe, to kompensacja działa. To jest maszyna, robi to, co jej napiszesz (nie myśli tylko robi). Dla maszyny to bez znaczenia czy dostaje stałą współrzędną, czy wynik jakichś obliczeń.

Na razie jadę do Gliwic, także na razie nie mam czasu, jak przyjadę to napiszę Ci jakiś przykładowy program parametryczny.

Pozdrawiam

Wróć do „Nie działająca kompensacja promienia freza”