Creare riga di comando per vita utensile

Sezione Fanuc
Rispondi
CNCm103
Newbie
Newbie
Messaggi: 13
Iscritto il: giovedì 24 novembre 2011, 11:16
Località: Lombardia

Creare riga di comando per vita utensile

Messaggio da CNCm103 » sabato 14 luglio 2012, 10:01

Ciao ragazzi!

Vorrei creare una riga di comando per il mio CNC con FANUC30i per creare le vite utensili, cioè dopo il numero di ripetizioni desiderate la macchina si ferma a fine ciclo per sostituire utensile.

Ho fatto dei tentativi senza successo.

Ho creato la seguente variabile:

#539= 1 (0=OFF VITA UTENSILE 1=ON VITA UTENSILE)
#540= 100
----
---
----
---
--
#540= #540-1
IF [[#539EQ1]AND[#540EQ0]] THEN #3000=1 (SOSTITUIRE UTENSILE)

Ho provato ma non si ferma la macchina e prosegue sempre

Come posso risolvere il problema??

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

Re: Creare riga di comando per vita utensile

Messaggio da torn24 » sabato 14 luglio 2012, 11:04

Ciao , immagino che tutto sia all'interno di un ciclo :badgrin:
e che le variabili #500 + siano utilizzabili nel tuo cnc :wink:
prova a sostituire la variabile 3000 con un M00 , cosi puoi stabilire se è un errore dato da detta variabile
di sistema ,o da altre parti del codice


IF [[#539EQ1]AND[#540EQ0]] THEN M00
CIAO A TUTTI !

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

Re: Creare riga di comando per vita utensile

Messaggio da torn24 » sabato 14 luglio 2012, 11:29

ciao un M00 pensandoci ti da errore cnc

prova cosi


IF [[#539EQ1]AND[#540EQ0]] GOTO 20000


GOTO 20001
N20000 M00
N20001 M30
CIAO A TUTTI !

CNCm103
Newbie
Newbie
Messaggi: 13
Iscritto il: giovedì 24 novembre 2011, 11:16
Località: Lombardia

Re: Creare riga di comando per vita utensile

Messaggio da CNCm103 » sabato 14 luglio 2012, 11:39

Ciao,

ti ringrazio per l'aiuto!!

la variabile #3000 il fanuc la interpreta come un allarme e mettendo a fine ciclo se l'espressione è soddisfatta mi compare l'allarme

IL mio problema è creare un contatore che faccia un countdown del numero di pezzi che imposto.

con un utensile voglio fare 10.000 pezzi. Il ciclo ogni volta che riavvolge il programma l'utensile lavora una volta. Al 10.001 pezzo deve fermarsi a fine ciclo con l'allarme.

Il mio problema è creare un espressione di sottrazione

grazie mille!!!

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

Re: Creare riga di comando per vita utensile

Messaggio da torn24 » sabato 14 luglio 2012, 11:48

Non ho capito bene ma se la variabile 3000 funziona e se fai un ciclo cosi non va bene ???


#539= 1 (0=OFF VITA UTENSILE 1=ON VITA UTENSILE)
#540= 100

WHILE[#540GT 0]DO 1 (esegue il ciclo da 100 a 1 --> 100 pezzi )
---
----
---
--
#540= #540-1
IF [[#539EQ1]AND[#540EQ0]] THEN #3000=1 (SOSTITUIRE UTENSILE)

END 1
CIAO A TUTTI !

CNCm103
Newbie
Newbie
Messaggi: 13
Iscritto il: giovedì 24 novembre 2011, 11:16
Località: Lombardia

Re: Creare riga di comando per vita utensile

Messaggio da CNCm103 » sabato 14 luglio 2012, 12:04

Ciao,

ottimo direi, Lunedì provo in macchina se funziona. Sono alle prime armi con le espressioni, spero di capirle velocemente perchè sono utili in certe situazioni.


Ti ringrazio per la disponibilità 

Ciao

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Creare riga di comando per vita utensile

Messaggio da badade » domenica 15 luglio 2012, 13:33

Ciao,
ricordo che ogni controllo Fanuc possiede la gestione della vita utensili.
Tramite il codice T si specifica un codice di tipo utensile che è liberamente personalizzabile dall'utilizzatore.
Quindi in base a determinate condizioni è possibile creare gruppi di utensili che agiranno secondo le nostre impostazioni:
condizioni di taglio, vita utensile, lunghezze, compensazioni....
La gestione vita utensili comprende una grande quantità  di dati capace di soddisfare le più ampie esigenze:
tipo di utensile, la vita utensile, la vita residua, lo stato utensile, tutte le caratterisctivhe dell'utensile (H D G W)...
Ora la gestione vita utensile, che non è solo la durata ma comprende tutte le inforamzioni utensile, è concettualmente uguale
su ogni cnc, ma dipendendo dal tipo di macchina (età ) si presenterà  con specifiche differenti. Non entrerò nei dettagli dato
che il problema posto viene affrontato conn l'utilizzo di variabili, ma è utile sapere che queste situazioni possono essere
affrontate utilizzando prorpio la gestione utensili.
(Da esperienza personale ho notato che l'utilizzo della gestione utensili generalmete non viene affrontata o applicata e questo
sembra normale dato che viene associata a fattori quali grande produzione, numero elevato di macchine ed utensili, cosa che
generalmente una piccola officina non possiede)

#539= 1 (0=OFF VITA UTENSILE 1=ON VITA UTENSILE)
#540= 100
----
--
#540= #540-1
IF [[#539EQ1]AND[#540EQ0]] THEN #3000=1 (SOSTITUIRE UTENSILE)

Si vuole creare un contattore per tenere sotto controllo il numero di pezzi da lavorare.
Nell'esempio la #540 funge da contattore mentre la #539 dovrebbe rappresentare la vita dell'utensile.
Noto che quest'ultima non subisce variazioni e quindi non assume un significato nel contesto del programma,
viene utilizzata nell'espressione finale ma è ininfluente. Lo stesso programma sarebbe

#540= 100
----
--
#540= #540-1
IF[#540EQ0]THEN #3000=1 (SOSTITUIRE UTENSILE)

Questo perché si vuole controllare il contattore numero di pezzi impostati e #539 non ha relazione con questa variabile.

In definitiva per controllare se siamo giunti alla fine usiamo solo il contattore pezzi, se vogliamo utilizzare la #539
per effettuare un controllo di sicurezza dobbiamo variare il suo valore e considerarlo all'inizio del programma per esempio

O1000
IF[#539EQ0]THEN#3006=1(SOSTITUIRE UTENSILE)--questo è un messaggio non un allarme
#539=1
-----
PROGRAMMA
------
#540= 100
--
#540= #540-1
IF[#540EQ0]THEN #539=0
M30

E' solo un esempio, ma lo ritengo poco soddisfaciente!
Ci sono diversi metodi per una soluzione più economica del tuo problema, per esempio:

#3901 numero totale di pezzi
#3902 numero di pezzi richiesti

queste variabili ti forniscono la capacità  di impostare il numero di pezzi da lavorare e di intervenire sul numero di pezzi lavorati!

Devo realizzare un lotto da 1000000 di pezzi e controllare l'utensile ogni 10000; imposto la #3901 a 1000000 mentre la # 3902 a 10000
in modo che posso intervenire per un controllo o per la sostituzione.
Queste variabili decrementano in modo automatico e quindi forniscono un metodo economico per la soluzione del problema.
Il nostro ciclo di lavoro sarà  di 10000 pezzi alla volta fino a raggiungere il valore di 1000000 di pezzi.
Credo sia quello che tu cercavi!

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

Re: Creare riga di comando per vita utensile

Messaggio da torn24 » domenica 15 luglio 2012, 18:40

Ciao badade , ho proposto un ciclo ,perche se inserisci #540= 100
nel programma , ad ogni esecuzione la variabile tornerebbe a 100 , e la condizione non si verificherebbe mai ,
quindi o impostare il valore della variabile in MDI se possibile non scrivendola nel programma , o altrimenti mi sa che non funziona senza un ciclo :(
CIAO A TUTTI !

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Creare riga di comando per vita utensile

Messaggio da badade » domenica 15 luglio 2012, 20:05

Certo torn24, capisco,
io non ho espresso dubbi sulla variabile 540 o sulla scrittura del programma (non ho voluto entrare in merito), quanto all'uso di #539.
Possiamo scrivere il programma come desideriamo, usando la logica che più ci soddisfa, certo è che se utilizziamo una variabile, questa deve
assumere un significato ed un uso. Negli esempi postati la #540 aveva un suo perché mentre la #539 pur impostata non veniva usata creando
quindi una inutile espressione AND che si riduce ad un IF.
Sono d'accordo con il fatto che bisogna incontrare un modo sicuro di non leggere le impostazioni iniziali di certe variabili,
il che non è un grosso problema, e come tu hai scritto


#539= 1 (0=OFF VITA UTENSILE 1=ON VITA UTENSILE)
#540= 100
WHILE[#540GT 0]DO 1 (esegue il ciclo da 100 a 1 --> 100 pezzi )
---
---
#540= #540-1
IF [[#539EQ1]AND[#540EQ0]] THEN #3000=1 (SOSTITUIRE UTENSILE)
END 1

il programma va bene.
Ma la domanda è: la #539 cosa ci sta a fare li? Io potrei scrivere #539= 1 (LUNGHEZZA UTENSILE 38), senza peraltro pregiudicare il programma o la sua comprensione (capisci che questa variabile non è usata e quindi potrebbe essere qualsiasi cosa)
Forse inizialmente era stata creata con altro scopo che poi si è perso, quindi non mi sembra essenziale il suo uso cosi come scritto.

La mia riflessione non voleva mettere in dubbio le tue idee e proposte ma considerare l'aspetto sopra menzionato.

Dato che siamo in tema vorrei approfondire l'uso e lo scopo delle variabili di sistema (#3901/2).
L'uso di queste variabili oppure di variabili comuni dipende, oltre che da una nostra scelta, anche dal tipo di programma in uso.
Il conteggio di queste variabili, automatico, dipende da impostazioni di machhina. Se siamo in un ciclo continuo, per esempio M99,
non è detto che il conteggio avvenga, poiché normalmente è M30 il codice usato perr il conteggio. Il codice è personalizzabile ma non con M98/M99.
Naturalmente nessuno vieta di usare lo stesso principio con variabili comuni: una variabile per il conteggio dei pezzi totali ed una per il
numero di pezzi da lavorare prima del controllo utensile. Usare una o tutte e due queste variabili è scelta personale.
Direi quindi che il Fanuc ci mette a disposizione determinate variabili che utilizzeremo se le condizioni di lavoro sono soddisfacienti altrimenti
possiamo sempre creare noi la procedura più semplice o utilizzare la gestione utensile.
Da quello che intendo il programma necessita di un esemplice contattore che emetta un messaggio: "sostituire utensile", quindi una semplice variabile
è più che sufficiente.

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

Re: Creare riga di comando per vita utensile

Messaggio da torn24 » domenica 15 luglio 2012, 21:07

Ciao badade , sempre completo nelle spiegazioni =D>

per completezza preciso , che io personalmente non uso e non conosco le variabili di sistema , e non so neache se siano uguali per tutti i controlli Fanuc ,quindi mi limito ad usare variabili comuni ,dove sono certo di non far danni :wink:
da li , il fatto di aver il dubbio e chiesto se la variabile #3000 funzionasse !
CIAO A TUTTI !

Rispondi

Torna a “Fanuc”