While do Fanuc 18i

Sezione Fanuc
Rispondi
DaveT
Junior
Junior
Messaggi: 113
Iscritto il: mercoledì 13 maggio 2020, 17:58

While do Fanuc 18i

Messaggio da DaveT » martedì 10 maggio 2022, 22:32

Salve a tutti, qualche buon anima mi spiega come funziona il while do una volta per tutte? Mi spiego meglio; devo fare una fresatura ad elica su di un Puma 2500 XT con asse B. In pratica
G19
G3Y…Z…R…U-2
Devo ripeterlo 57 volte perché devo andare giù in X 57 mm.

Non vorrei ripeterlo 57 volte anche se con il PC posso fare copia/incolla, perché le fresate sono 4 e mi viene un programma lungo come la divina commedia. Per non parlare del fatto che se devo allargare o stringere il foro devo riprenderli tutti.

Oppure se qualcuno sa come fare una condizione per far sì che quando l’asse x arriva a misura si ferma e anche meglio.

Grazie a tutti!!!

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: While do Fanuc 18i

Messaggio da torn24 » mercoledì 11 maggio 2022, 6:22

Ciao! Intanto premettiamo che il linguaggio macro Fanuc deve essere abilitato sulla macchina, non è sempre vero e in alcuni controlli non esegue le istruzioni del linguaggio Macro B.
Il While ripete finché la condizione tra parentesi quadre è vera, allora bisogna solo saper fare le condizioni.
Le condizioni possibili sono tante e non posso spiegartele tutte, minore di , maggiore di, minore o uguale, uguale, diverso ecc..

Il concetto è finché la condizione tra parentesi risulta vera, continuo a ripetere.
Ti mostro come ripetere con un while e una variabile contatore per un numero di volte.

Codice: Seleziona tutto

#100=1 (variabile che conta le ripetizioni e gli do valore iniziale uno, parte da uno)
WHILE[#100 LE 57] DO1 (Finché il valore della variabile è minore o uguale a 57, la condizione risulta vera e ripete)


(tuo codice iso da ripetere)


#100=#100+1 (modifico il valore della variabile #100, gli dico che il valore è uguale a quello che aveva piu uno, cioè aggiungo uno)


(ogni volta che esegue il codice la variabile #100 aumenta di 1, fino a valore 57, minore o uguale LE, esegue, quando diventa 58 si ferma
perche la condizione nel while non è più vera, 58 non è minore o uguale a 57, la condizione risulta falsa e finisce il ciclo while.)
CIAO A TUTTI !

DaveT
Junior
Junior
Messaggi: 113
Iscritto il: mercoledì 13 maggio 2020, 17:58

Re: While do Fanuc 18i

Messaggio da DaveT » mercoledì 11 maggio 2022, 12:56

Grazie. Sei stato prezioso. Mi spieghi solo perché si mette 1 dopo do? C’è un motivo oppure è sempre così?

Matrixreload
Newbie
Newbie
Messaggi: 23
Iscritto il: sabato 5 marzo 2022, 11:31

Re: While do Fanuc 18i

Messaggio da Matrixreload » mercoledì 11 maggio 2022, 13:12

dopo la variabile #100=#100+1 devi inserire
END1...

DO1 salta a END1 ...

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: While do Fanuc 18i

Messaggio da torn24 » mercoledì 11 maggio 2022, 15:20

Si dopo do ci va end :D
Si mette un numero do e end, per una regola del linguaggio, in fanuc possiamo mettere tre cicli annidati uno dentro l'altro, e il numero serve per distinguere i vari while.

Esempio:

Codice: Seleziona tutto


WHILE[] DO1
    WHILE[] DO2
        WHILE[] DO3


        END3

    END2

END1


Ovviamente è una regola del linguaggio Macro fanuc, in altri linguaggi il WHILE non ha bisogno di un numero.
CIAO A TUTTI !

DaveT
Junior
Junior
Messaggi: 113
Iscritto il: mercoledì 13 maggio 2020, 17:58

Re: While do Fanuc 18i

Messaggio da DaveT » mercoledì 11 maggio 2022, 22:37

Grazie oggi sono andato con filo di gas finalmente. Approfitto ancora un po’ della tua esperienza e competenza. Ho capito come funziona la logica, volevo chiederti: se volessi mettere semplicemente la quota del asse posso farlo. Mi spiego meglio, io devo arrivare a che so.. X-42. Senza dover fare tutti i conti di quante passate mi servono in incrementale posso dire al cn quando sei arrivato a X-42 fermati. C’è un parametro per l’asse oppure basta che lo scrivo all’interno della condizione?
Grazie grazie!!!

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: While do Fanuc 18i

Messaggio da torn24 » giovedì 12 maggio 2022, 8:32

Forse c'è una variabile di sistema ma non la conosco.
Il fatto che gli devi indicare sempre la passata, ti spiego ...

Se tu hai la posizione dell asse x, devi comunque incrementare la passata di un valore, con un IF controllare che sia maggiore o uguale al valore finale.
In pratica complichi le cose per evitare di fare con la calcolatrice questo conto, Diametro finale meno diametro iniziale / numero passate
CIAO A TUTTI !

TIRZAN
God
God
Messaggi: 3083
Iscritto il: sabato 27 luglio 2013, 16:54
Località: AQ

Re: While do Fanuc 18i

Messaggio da TIRZAN » giovedì 12 maggio 2022, 20:38

Per fare quello che dici puoi aggiungere delle operazioni con le macro

Ad es
#100=100 (quota X di partenza)
#101=57 (quota X di arrivo)
#102=1 (incremento di passata)

WHILE[#100GE#101] DO1
Qua scrivi il programma
G3..........U-#102
#100=#100-#102
END1

In questo modo come contatore usi il valore di partenza della X e si ferma quando il valore diventa quello di arrivo.
Ovviamente prima del ciclo WHILE ti posizioni alla quota X indicata nella #100.
E tieni poi conto del fatto che sono quote diametrali.

DaveT
Junior
Junior
Messaggi: 113
Iscritto il: mercoledì 13 maggio 2020, 17:58

Re: While do Fanuc 18i

Messaggio da DaveT » giovedì 12 maggio 2022, 22:21

Ciao! Grazie intanto. Solo un chiarimento quando dici #100=100 intendi dire che il 100 è la quota di partenza assoluta di X?

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: While do Fanuc 18i

Messaggio da torn24 » venerdì 13 maggio 2022, 6:59

Per me conviene si farsi una macro che deve essere separata dal programma pezzo, ma farsi il calcolo delle profondita di passate e numero passate.

Se conto 1 a passata e devo ottenere un diametro in mm, ottengo sempre quello che voglio, ma se la passata fosse 2, o il diametro finale fosse non un intero ma con decimali, la condizione non funziona. Esempio passata da 2 e diametro 43, o passata da 1 e diametro 1,50, capisci che la condizione maggiore o uguale porta a un diametro sbagliato, si arriverebbe nel primo caso a 42.


Andando ad apportare modiche al programma di Tirzan

#100=100 (quota X di partenza)
#101=57 (quota X di arrivo)
#102=2 (incremento di passata teorico di qualunque valore)
#103=FUP[[#100-#101]/#102] (Calcolo il materiale lo divido per la passata teorica, e trovo numero passate, arrotondo per eccesso se decimale 1.4 diventa 2)
#102=[#100-#101]/#103 (divido il materiale per le passate e trovo incremento passata reale)
WHILE[#100GE#101] DO1
Qua scrivi il programma
G3..........U-#102
#100=#100-#102
END1
CIAO A TUTTI !

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: While do Fanuc 18i

Messaggio da torn24 » venerdì 13 maggio 2022, 7:37

Cambierei la condizione del while, perché non deve essere uguale, ma potrebbe essere maggiore di 1 centesimo e in questo caso non deve fare la passata.

Programma definitivo FORSE :lol:

#100=100 (quota X di partenza)
#101=57 (quota X di arrivo)
#102=2 (incremento di passata teorico di qualunque valore)
#103=FUP[[#100-#101]/#102] (Calcolo il materiale lo divido per la passata teorica, e trovo numero passate, arrotondo per eccesso se decimale 1.4 diventa 2)
#102=[#100-#101]/#103 (divido il materiale per le passate e trovo incremento passata reale)
WHILE[[#100GT#101] AND [[#101-#100]GE#102] DO1
(Esegue se maggiore di #101 e se il materiale rimasto è maggiore o uguale alla passata, perché potrebbe essere maggiore di un centesimo)
Qua scrivi il programma
G3..........U-#102
#100=#100-#102
END1
CIAO A TUTTI !

DaveT
Junior
Junior
Messaggi: 113
Iscritto il: mercoledì 13 maggio 2020, 17:58

Re: While do Fanuc 18i

Messaggio da DaveT » venerdì 13 maggio 2022, 12:04

Capito. Credo continuerò a calcolarmi le passate lasciando un ultima passata fuori dalla l’avrò dove posso eventualmente regolare la profondità.

Siete stati entrambi molto gentili e sono potuto crescere anche se di poco.

Grazie ancora.

Saluti.

TIRZAN
God
God
Messaggi: 3083
Iscritto il: sabato 27 luglio 2013, 16:54
Località: AQ

Re: While do Fanuc 18i

Messaggio da TIRZAN » venerdì 13 maggio 2022, 13:44

Alla fine si puoi fare come più ti pare con la programmazione parametrica (il bello è proprio quello) :wink:

Rispondi

Torna a “Fanuc”