Strona 1 z 3

Fanuc OiMC

: 30 maja 2007, 16:25
autor: hoses

Kod: Zaznacz cały

%00001(FREZOWANIE ROWKÓW 1) 
G90; 
G54; 
T1 M6; 
S350 M14; 
#10=0; 
#11=48; (ilość POJEDYNCZYCH powtórzeń) 
G0 X41 Y20; 
G43 H1 Z200; 
G0 Z-25; 
N10 W-1.5; 
G1 X38 F20; 
Y-20; 
G0 X41; 
Y20; 
#10=#10+1; 
IF [#10 GE #11] GOTO 30; 
N20 GOTO 10; 
N30 G0 Z200; 
M5; 
M30; 
Co jest nie tak w tym programie. Wyskakuje błąd 114-Błąd formatu w makro. Może mi ktoś pomóc.

: 30 maja 2007, 18:05
autor: doniu
spróbuj może z G66 wywołanie makra (G67 odwołanie)
do tego G98 lub G94 wywołanie posuwu i G17 płaszczyzna :wink:

: 30 maja 2007, 18:23
autor: Leoo
Czy kolega hoses może umieścić więcej komentarzy przy kolejnych liniach kodu?

IF [#10 GE #11] GOTO 30; - rozumiem, że GE to warunek równości?

N20 GOTO 10; - czy to jest skok bezwarunkowy?

N10 W-1.5; - co maszyna robi w tym momencie?

Jak ma wyglądać obrobiony detal?

: 30 maja 2007, 19:58
autor: irbal
IF [#10 GE #11] GOTO 30;
N20 GOTO 10;

Zapis jest OK , jedynie zmienił bym kolejnośc dwóch cytowanych lini,
Czyli najpierw wykonanie 48 powtórzenia , o po wykonaniu
sprawdzenie warunku zakończenia pętli:

IF [#10 GE #11] GOTO 30;
#10=#10+1;
Przy obecnym zapisie wyjdzie 47 powtórzeń

Błąd musi być w tych samych cytowanych liniach, chyba za duzo spacji
u mnie jest ... GOTO30
Lub w innym miejscu instrukcji skoku warunkowego IF...
Powinno zadziałac ,

: 30 maja 2007, 21:09
autor: hoses
Dzięki za zainteresowanie. Otóż błędów w zapisie nie ma na bank bo program jest wpisywany z klawiatury maszyny.
GE oznacza >=.
Zapis W-1.5 oznacza przyrostowe zagłębianie się w osi Z co 1.5mm po każdym przejściu. Program wysypuje się w pierwszej pętli w momencie N20 GOTO 10. Wtedy właśnie wyskakuje alarm.
Zamiast W-1.5 pisałem

Kod: Zaznacz cały

.
N10 G91 Z-1.5; 
G90
G1 X38 F20; 
.
i to samo.
PS
Pewnie wszyscy wiedzą, ale napiszę . Sam program wykonuje pewien ruch w płaszczyżnie XY z tym że robi to za każdym razem o 1.5 mm niżej. Idea jest taka żeby nie pisać czterdzieści osiem razy to samo zmieniajac tylko Z-ta.
Z programu wynika to że jeżeli parametr #10 osiągnie wartość większą lub równą parametrowi #11 czyli 48 to następuje skok do bloku N30 i koniec programu. Za każdym razem kiedy parametr #10 jest mniejszy od #11 jest skok do bloku N10 czyli powtórzenie ruchu w płaszczyżnie XY z tym że o 1.5 mm niżej. Ot i cały program tyle, że nie idzie.
Czy kolega doniu, mógłby bardziej sprecyzować gdzie te komendy makra miały by się znajdować w moim programie ?

: 30 maja 2007, 21:21
autor: Leoo
hoses pisze:Program wysypuje się w pierwszej pętli w momencie N20 GOTO 10. Wtedy właśnie wyskakuje alarm.
Próbujesz "wyskoczyć" z wnętrza pętli.

Spróbuj tak:
%00001(FREZOWANIE ROWKÓW 1)
G90;
G54;
T1 M6;
S350 M14;
#10=0;
#11=48; (ilość POJEDYNCZYCH powtórzeń)
G0 X41 Y20;
G43 H1 Z200;
G0 Z-25;
N10 W-1.5;
G1 X38 F20;
Y-20;
G0 X41;
Y20;
#10=#10+1;
IF [#10 GE #11] GOTO 10;
N30 G0 Z200;
M5;
M30;


Tak na "oko" nie podoba mi się zapis:
N10 W-1.5; - czegoś brakuje.

: 30 maja 2007, 21:23
autor: hoses
Leoo pisze:N10 W-1.5; - czegoś brakuje.
Tak jak pisze powyżej. Zamieniłem ten zapis na inny i też lipa. Jutro spróbuje twojej propozycji ale nie wiem czy to coś da.

: 30 maja 2007, 21:32
autor: Leoo
Oczywiście linię w poprzednim poście
IF [#10 GE #11] GOTO 10;
należy zmodyfikować tak by skok wykonywany był przy nierównych zmiennych #10 i #11.

: 30 maja 2007, 21:33
autor: hoses
Leoo pisze:Próbujesz "wyskoczyć" z wnętrza pętli.

Spróbuj tak:


Tak na "oko" nie podoba mi się zapis:
N10 W-1.5; - czegoś brakuje.
Coś tu brakuje po słowie "Spróbuj tak:"

: 30 maja 2007, 21:38
autor: Leoo
Zobacz teraz - poprawiłem się.

Linia
N30 G0 Z200;
powinna być zmodyfikowana do
G0 Z200;