PROBLEMA PROGRAMMAZIONE FANUC

Sezione Fanuc
Rispondi
Thomas_B
Newbie
Newbie
Messaggi: 20
Iscritto il: mercoledì 3 marzo 2021, 17:07

PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da Thomas_B » martedì 6 luglio 2021, 9:18

Salve, ho riscontrato un problema in un programma semplice e non riesco ad arrivarne a capo da giorni. Il problema è che quando eseguo il programma selezionando una ripetizione funziona tutto alla perfezione mentre invece se provo a selezionare più ripetizione esegue dei movimenti strani non da programma. Qualcuno potrebbe aiutarmi?

Questo è il pezzo di programma che mi crea problemi:

%
O0099

G10L2P0X0Y0Z0

G10L20P1X[-735.47]Y[-66.27]Z[-607.4+47+13](G54P1 FASE1 PZ1)
G10L20P2X[-442.97]Y[-66.27]Z[-607.4+47+13](G54P2 FASE1 PZ2)
G10L20P3X[-224.4]Y[-66.27]Z[-607.4+47+13](G54P3 FASE1 PZ3)

T15M6(FR. 40i)
S4000M3F2000H15G54P1T10
G0G54P1X-30Y-14G43
#500=1
WHILE[#500LE3]DO1
G54.1P[#500](FORMO ORIGINE)

#506=4.2
G0X-30Y-14Z10M114
N50X-30Y-14
G1Z[#506+1]
X60
Z#502
X-30
G0

#506=#506-2
IF[#506GE-0]GOTO50
G0Z10

#507=-1.95(SGROSSO SCARICO)
G0X60Y-50Z10
N60X60Y-50
G1Z#507
G1G41Y-6D115
X-50
G0Y-50

#507=#507-1.95
IF[#507GE-7.8]GOTO60
G0Z10

#500=#500+1
END1
M115

M30
%

Ringrazio in anticipo.

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

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da torn24 » martedì 6 luglio 2021, 10:29

Il programma non ha errori nel senso le istruzioni sono scritte in modo sbagliato, ma il programma è pensato male e non può fare quello che ti aspetti.

Tu assegni valori alle variabili all'interno del ciclo while[], ogni ripetizione viene ripetuta l'assegnazione alla variabile, esempio #506=2, anche se ripeti
100 volte, la variabile a ogni ripetizione varrà 2 facendo la stessa cosa.
Poi metti delle condizioni IF[] se guardi, proprio perchè assegni alla variabile lo stesso valore dentro al ciclo, queste condizioni sono sempre vere, o sempre false, poi il salto alle righe N50 N60, Queste righe non ci sono nel programma.

1) Le assegnazioni alle variabili falle fuori dal ciclo while[] esempio #506=2, nel ciclo le incrementi, aumenti, o diminuisci soltanto, esempio #506=#506+1

2) Metti numero riga dove vuoi che il salto goto arrivi, N50 N60 nelle righe giuste.


Per farti capire con una analogia, il tuo programma è come, una frase con le parole scritte bene ma che il significato non ha senso...
CIAO A TUTTI !

Thomas_B
Newbie
Newbie
Messaggi: 20
Iscritto il: mercoledì 3 marzo 2021, 17:07

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da Thomas_B » martedì 6 luglio 2021, 11:12

torn24 ha scritto:
martedì 6 luglio 2021, 10:29
Il programma non ha errori nel senso le istruzioni sono scritte in modo sbagliato, ma il programma è pensato male e non può fare quello che ti aspetti.

Tu assegni valori alle variabili all'interno del ciclo while[], ogni ripetizione viene ripetuta l'assegnazione alla variabile, esempio #506=2, anche se ripeti
100 volte, la variabile a ogni ripetizione varrà 2 facendo la stessa cosa.
Poi metti delle condizioni IF[] se guardi, proprio perchè assegni alla variabile lo stesso valore dentro al ciclo, queste condizioni sono sempre vere, o sempre false, poi il salto alle righe N50 N60, Queste righe non ci sono nel programma.

1) Le assegnazioni alle variabili falle fuori dal ciclo while[] esempio #506=2, nel ciclo le incrementi, aumenti, o diminuisci soltanto, esempio #506=#506+1

2) Metti numero riga dove vuoi che il salto goto arrivi, N50 N60 nelle righe giuste.


Per farti capire con una analogia, il tuo programma è come, una frase con le parole scritte bene ma che il significato non ha senso...
Io ho sempre programmato in questo modo senza riscontrare mai problemi, questa è la prima volta che mi capita una cosa simile, potrebbe farmi un esempio di programma su come dovrebbe essere con le stesse lavorazioni? Grazie

Thomas_B ha scritto:
martedì 6 luglio 2021, 9:18

T15M6(FR. 40i)
S4000M3F2000H15G54P1T10
G0G54P1X-30Y-14G43
#500=1
WHILE[#500LE3]DO1
G54.1P[#500](FORMO ORIGINE)

#506=4.2
G0X-30Y-14Z10M114
N50X-30Y-14
G1Z[#506+1]
X60
Z#502
X-30
G0

#506=#506-2
IF[#506GE-0]GOTO50
G0Z10

Ho provato a fare anche un programma senza variabili IF e GE ma continua a darmi problemi. presumo che il problema sia su

G0G54P1X-30Y-14G43
#500=1
WHILE[#500LE3]DO1
G54.1P[#500](FORMO ORIGINE)

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

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da torn24 » martedì 6 luglio 2021, 11:33

Non so cosa vuoi fare, descrivi cosa vuoi ottenere a parole, cosa deve fare il programma, e ti posso mostrare come lo farei io. Le misure non sono importanti, descrivi cosa vuoi ottenere.
CIAO A TUTTI !

Thomas_B
Newbie
Newbie
Messaggi: 20
Iscritto il: mercoledì 3 marzo 2021, 17:07

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da Thomas_B » martedì 6 luglio 2021, 11:45

Vorrei eseguire una spianatura con incremento in z automatico,idem la sgrossatura dello scarico il tutto ripetuto per ogni singola origine.

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

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da torn24 » martedì 6 luglio 2021, 13:02

Ti faccio un esempio di come lo farei io.
Un ciclo oltre che con while[] si può creare con IF[] GOTO.

Codice: Seleziona tutto


%
O0099
(Do per scontato che il modo di impostare le origini sia giusto, ma io non ho mai utilizzato G10 L20 per cui non so se è sbagliato o giusto)
G10L2P0X0Y0Z0

G10L20P1X[-735.47]Y[-66.27]Z[-607.4+47+13](G54P1 FASE1 PZ1)
G10L20P2X[-442.97]Y[-66.27]Z[-607.4+47+13](G54P2 FASE1 PZ2)
G10L20P3X[-224.4]Y[-66.27]Z[-607.4+47+13](G54P3 FASE1 PZ3)

T15M6(FR. 40i)
S4000M3
F2000H15G54P1T10
G43 H15 G0G54P1X-30Y-14
#500=1
N10 (RIGA PER CICLO CAMBIO ORIGINE)

G54.1P[#500](FORMO ORIGINE)

#506=4.2
(PER ESEGUIRE UNA MISURA PRECISA DELL'AUMENTO PASSATA IN ZETA, BISOGNA CALCOLARE QUANTE PASSARE, E CHE VALORE SOTTRARRE
ALLA VARIABILE, IN MONDO CHE VALORE PER NUMERO PASSATE SIA QUELLO VOLUTO)

WHILE[#506GE...]DO1 (CICLO SPIANATURA CHE RIPETE IN ZETA DA 4 A MENO DI ZERO)
(CODICE PER ESEGUIRE LA SPIANATURA)
.....
.....
.....
#506=#506-1 (AUMENTO PASSATA IN ZETA)
END1






#507=-1.95(SGROSSO SCARICO)
WHILE[#507GE...]DO1
(CODICE PER ESEGUIRE LO SCARICO)

#507=#507-1.95

END1
#500=#500+1 (CONTATORE PER CAMBIO ORIGINE)
IF[#500LE3)GOTO10 (FINO A TRE RIPETE E CAMBIA ORIGINE CON LA VARIABILE #500)

M30

%




CIAO A TUTTI !

Thomas_B
Newbie
Newbie
Messaggi: 20
Iscritto il: mercoledì 3 marzo 2021, 17:07

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da Thomas_B » mercoledì 7 luglio 2021, 9:31

ok grazie proverò in questo modo

le origini come le fai di solito?

Thomas_B
Newbie
Newbie
Messaggi: 20
Iscritto il: mercoledì 3 marzo 2021, 17:07

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da Thomas_B » mercoledì 7 luglio 2021, 10:09

...

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

Re: PROBLEMA PROGRAMMAZIONE FANUC

Messaggio da torn24 » mercoledì 7 luglio 2021, 14:10

Le origini di solito uso da G54 a G59, non uso G54.1. Se ho bisogno di più origini per più pezzi, spesso uso G52 per traslare l' origine.Non dico che è meglio dico cosa uso :)
CIAO A TUTTI !

Rispondi

Torna a “Fanuc”