Memorizzazione parametri nel programma

Sezione Fanuc
Rispondi
softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Memorizzazione parametri nel programma

Messaggio da softDemo » sabato 11 giugno 2022, 14:02

Buongiorno a tutti,
stavo provando a risolvere un problema per il quale non ho trovato soluzione, nello specifico ho la necessità di reperire i tempi di lavoro dei singoli utensili sul fanuc 18i. nella ricerca di una idea sono incappato nella splendida guida di "badade" a cui faccio i complimenti e dalla quale ho intravvisto una variabile, la #3001 = temporizzatore, ed ecco l'idea:
definisco un paramentro nel programma subito dopo la M6 a cui assegno il valore della variabile #3001 e a fine lavorazione utensile ricavo il valore contenuto nalla variabile #3001 e faccio la sottrazione.
pratica:
definisco variabile #501
assegno valore temporizztore #501 = #3001
alla fine lavorazione utensile faccio la sottrazione #501 = #501-#3001.
ora, problemi:
E possibile e nel caso: come faccio a scrivere sul programma il valore della variabile per poterlo leggere? Per contro dove trovo il valore della variabile #501?
Grazie a chiunque

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » sabato 11 giugno 2022, 14:14

Prova a stampare il valore con #3006
#3006=#501(tempo trascorso utensile T10)
CIAO A TUTTI !

softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Re: Memorizzazione parametri nel programma

Messaggio da softDemo » lunedì 13 giugno 2022, 7:06

Innanzi tutto ti ringrazio per risposta, cosa vuol dire stampare #3006=#501?
nel senso: io scrivo nel programma alla fine della lavorazione dell'utensile (ad esempio del T10) la stringa #3006=#501?
cosa mi aspetto? dove trovo il valore #501?
grazie in anticipo

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » lunedì 13 giugno 2022, 8:05

La variabile #3006 stampa un messaggio sullo schermo, simile alla variabile #3000 allarme, ma non blocca la macchina non c'è bisogno di resettare, il programma prosegue.

Allora io ho un valore nella variabile #501 mettiamo che ha valore 300

#3006=#501 (Tempo utensile T10 #501)

Troverai da qualche parte sullo schermo il messaggio "300 Tempo utensile T10"

Praticamente stampa il valore della variabile e il testo che è inserito nelle parentesi tonde ( )

Prova non c'è pericolo con un messaggio e vedi se funziona
CIAO A TUTTI !

softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Re: Memorizzazione parametri nel programma

Messaggio da softDemo » lunedì 13 giugno 2022, 12:02

Provato: il messaggio appare, viene riportato solo cio scritto tra parentesi e non il valore della variabile.
precisamente: se definisco #501=123 e dopo qualche riga #3006=#501 (prova T10) cio che vado ad ottenere a video la scritta:

prova T10

non viene stamapato il valore della variabile. E' vero che non c'e bisogno del reset ma per far ripartire il programma necessita intevento operatore.
Anche riuscendoci, il vederlo a video però, non risolverebbe il mio problema iniziale e cioe vorrei che il programma proseguisse riuscendo in una qualche maniera ad avere tempi di lavoro di tutti gli utensili magari scritti su delle variabili di appoggio.

Grazie

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » martedì 14 giugno 2022, 6:41

Hai provato a mettere la variabile tra parentesi tonde (#501) non so cosa succede, magari la stampa.

Il Fatto che il linguaggio macro Fanuc, ma diciamo di tutti i linguaggi macro per cnc, non è pensato molto per la comunicazione con l'operatore, ma per le lavorazioni o automazioni macchina, quindi se un linguaggio per PC è la cosa più semplice stampare a video una variabile, per i linguaggi CNC potrebbe essere impossibile.
CIAO A TUTTI !

softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Re: Memorizzazione parametri nel programma

Messaggio da softDemo » martedì 14 giugno 2022, 7:48

Grazie Torn24 ho provato anche mettendo il parametro tra parentesi, ma non viene stampato a video.

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

Re: Memorizzazione parametri nel programma

Messaggio da TIRZAN » martedì 14 giugno 2022, 21:37

Per quello che so non è possibile fare quello che chiedi a meno di una modifica sul Ladder creando una funzione apposita (da verificare)
La soluzione più semplice per me è assegnare ad una serie di variabili i valori dei tempi e poi andarle a leggerle nella pagina delle macro.
Di più con quel controllo non si riesce tant'è che sulle macchine più recenti da produzione hanno implementato delle pagine apposite per questa funzione.

softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Re: Memorizzazione parametri nel programma

Messaggio da softDemo » giovedì 16 giugno 2022, 8:01

Grazie TIRZAN, per me potrebbe essere, come da primo post, un buon compromesso scrivere su una variabile all'interno del CN e poi andarla a leggerla. Ti chiedevo due delucidazioni:
1) la variabile temporizzatore è la #3001? nel caso posso fare una semplice operazione di assegnamento quando carico utensile e una semplice operazione di differenza quando finisco lavorazione? (mi spiego: dopo M6 scrivo #501=#3001 e alla fine della lavorazione #501=#3001-#501)
2) mi postresti dire come accedo alla pagina delle macro in cui sono definite e memorizzate le variabili? ( in maniera tale, una volta finito il programma, andare a leggere i dati)

Grazie anticipatamente

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » giovedì 16 giugno 2022, 8:16

La variabile #3001 restituisce i millisecondi, se dividi per 1000 ottieni i secondi, se poi esegui un ulteriore divisione per 60 ottieni i minuti.

#501=#3001


#501= [[#3001-#501]/1000] (secondi)
#501=[ [[#3001-#501]/1000] /60] (minuti)

Per visualizzare l'elenco delle variabili prova andare sul tasto offset e guarda se trovi la lista da qualche parte
CIAO A TUTTI !

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

Re: Memorizzazione parametri nel programma

Messaggio da TIRZAN » giovedì 16 giugno 2022, 13:36

Una volta che assegni alla 501 il valore della 3001 poi fai le operazioni sempre con la 501 e con le altre a seguire in base a come ti è comodo.
Le puoi vedere nella pagina OFFSET cercando il sottomenu Macro

softDemo
Newbie
Newbie
Messaggi: 15
Iscritto il: sabato 11 giugno 2022, 12:33

Re: Memorizzazione parametri nel programma

Messaggio da softDemo » venerdì 17 giugno 2022, 16:52

Grazie a tutti. Riporto come andrò a risolvere nel caso servisse a qualcuno.
Definisco a inizio programma una variabile (ho scelto le variabile da 599 in su perche le 500-590 le uso per definire parametri origini) che usero come contatore (e alla fine la utlizzero come totale) e memorizzo nella variabile successiva il tempo.
Non sono partito da 600 ma da 599 per dare un minimo di eleganza alle variabili: cosi ho che la variabile 601 è dell'utensile 1 la 602 del 2 e cosi via.

A inizio programma scriverò le due righe seguenti:
#599=#3001 (VALORE INIZIALE)
#600= 0 (CONTATORE)

ad ogni richiamo utensile (M6) andro ad incrementare il contatore e scrivere il valore contatore attuale[ms] con le righe:
#600=#600+1 (INCREMENTO CONTATORE)
#[600+#600]=#3001 (MEMORIZZO TEMPORIZZATORE)
queste ultime ad ogni richiamo utensile (M6)

a fine programma, mi aspetto di avere impegnate tante variabili quanti sono gli utensili + 2 e ciclo i valori immessi salvando la somma sul parametro contatore (#600)

#110=#600(DEFINISCO UN INDICE PER IL CICLO WHILE)
#600=0(AZZERO IL CONTATORE)
WHILE[#110 GE 1]DO1 (CICLO LE VARIABILI IMMESSE)
#600=#600+[#[600+#110]-[#[600+#110-1]]]/1000 (SOMMO SU PARAMETRO 600)
#110=[#110-1] (DECREMENTO IL CONTATORE DEL CICLO)
END1
#110=0 (AZZERO PARAMETRO UTILIZZATO)

#600=#600+#599/1000 (INSERISCO IL TEMPO INIZIALE PRIMA DEL CARICAMENTO UTENSILE 1)

Note per utilizzatore:
1) non vi è controllo sul numero di variabili utilizzate io ho, al massimo, programmi con 40 utensili quindi mi aspetto di impegnare le variabili da 599 a 640
2) queste variabili(599-6..) non possono essere utilizzare nel programma e non devono essere utilizzate da macro richiamate in programma pena tempi sballati
3) i cambi utensili sono inseriti nel tempo lavoro utensile, si potrebbe aver qualche problema su controlli integrita non in tempo mascherato che influirebbe sul tempo utensile (fattore penso trascurabile)
4) PER QUESTIONI DI TEMPO HO SOLO BUTTATO GIU IL CODICE MA NON LO HO ANCORA PROVATO!! mi riservo di provarlo settimana entrante e farvi sapere risultato.

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » sabato 18 giugno 2022, 6:22

Non capisco tutte quelle variabili e dubito che funzioni, Per avere il tempo di una lavorazione a ogni lavorazione devi prendere il tempo di #3001 non puoi confrontarlo con un unico tempo DEVI CONFRONTARE TEMPO INIZIALE LAVORAZIONE CON TEMPO FINALE LAVORAZIONE si può fare molto piu semplice.
#[#100] mi indica una variabile a seconda del valore della variabile tra parentesi, se #100 vale 101 quella è la variabile, se 102 sara la variabile successiva. per cui possiamo usare una lista di variabili successive.

A inizio programma
#100=110 ( La prima variabile che andiamo a utilizzare è la #110, poi incrementiamo di uno per la variabile successiva)


(A ogni cambio utensile)
T1 M6
#[#100]=#3001 (Prendo il tempo iniziale)

Mia lavorazione ...

A fine lavorazione
#[#100]=[#3001-#[#100]]/1000 (Nella variabile #110 ho calcolato il tempo in secondi del primo utensile)
#100=[#100+1] (incremento la variabile, la prossima variabile utilizzata sara la #111 usata per utensile successivo)
T2 M6
(Per ogni utensili ripeto identico la macro per il primo utensile)



Andando a guardare la lista delle variabili se ho usato 10 utensili nella variabili da #110 a #120 sara inserito il tempo in secondi dei rispettivi utensili.


Se si scrive il programma su PC basta un copia e incolla del calcolo per ogni utensile.
CIAO A TUTTI !

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

Re: Memorizzazione parametri nel programma

Messaggio da torn24 » sabato 18 giugno 2022, 6:51

Ho capito che vuoi prendere il tempo di ogni cambio utensile, e confrontare i tempi dei cambi utensile con quello precedente, ma la fai più complicata. Comunque se preferisci cosi buon per te :D
CIAO A TUTTI !

Rispondi

Torna a “Fanuc”