Grazie
Inserimento data e ora sul particolare tramite macro
-
- Newbie
- Messaggi: 4
- Iscritto il: lunedì 2 ottobre 2023, 22:13
Inserimento data e ora sul particolare tramite macro
Grazie
-
- God
- Messaggi: 5096
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Inserimento data e ora sul particolare tramite macro
Come puoi creare una macro? Non è una cosa basilare e dipende da quello che sai fare.
I passi che devi fare sono questi "una specie di algoritmo un po astratto ossia un procedimento per risolvere il problema"
1)Prelevo il valore data e ora dalle variabili di sistema.
2)Sono numeri e scompongo il numero data e il numero ora, nelle sue cifre, esiste un algoritmo per farlo divido per 10 e prendo il resto.
3)Avendo le cifre unita decine ecc.., con una serie-successione di condizioni IF, se uguale a determinata cifra salda a una riga di programma.
4)In questa riga di programma c'è un codice ISO per la fresatura della cifra in Incrementale G91 magari fatto al CAM, a fine fresatura un GOTO per tornare alle condizioni IF
5)Pima del salto bisogna prevedere una variabili per salto di ritorno per salvare la riga di destinazione.
Questi sono la linee guida per realizzare la macro che chiedi, se non sei capace, allora dovrai aspettare di diventare esperto nelle macro Fanuc e qualche concetto di informatica.
Come in ogni disciplina esistono cose elementari, semplici, medie e difficili. Adesso secondo me quello che vuoi fare non è ne elementare ne semplice, almeno io ci ho impiagato anni per risolvere problemi simili, anche perché a me non cera nessuno che ha detto il procedimento come io ho fatto con te
I passi che devi fare sono questi "una specie di algoritmo un po astratto ossia un procedimento per risolvere il problema"
1)Prelevo il valore data e ora dalle variabili di sistema.
2)Sono numeri e scompongo il numero data e il numero ora, nelle sue cifre, esiste un algoritmo per farlo divido per 10 e prendo il resto.
3)Avendo le cifre unita decine ecc.., con una serie-successione di condizioni IF, se uguale a determinata cifra salda a una riga di programma.
4)In questa riga di programma c'è un codice ISO per la fresatura della cifra in Incrementale G91 magari fatto al CAM, a fine fresatura un GOTO per tornare alle condizioni IF
5)Pima del salto bisogna prevedere una variabili per salto di ritorno per salvare la riga di destinazione.
Questi sono la linee guida per realizzare la macro che chiedi, se non sei capace, allora dovrai aspettare di diventare esperto nelle macro Fanuc e qualche concetto di informatica.
Come in ogni disciplina esistono cose elementari, semplici, medie e difficili. Adesso secondo me quello che vuoi fare non è ne elementare ne semplice, almeno io ci ho impiagato anni per risolvere problemi simili, anche perché a me non cera nessuno che ha detto il procedimento come io ho fatto con te
CIAO A TUTTI !
-
- Newbie
- Messaggi: 4
- Iscritto il: lunedì 2 ottobre 2023, 22:13
Re: Inserimento data e ora sul particolare tramite macro
Sono già a conoscenza di questo concetto base per la creazione di una macro , la mia era solo na richiesta per come riuscire a estrapolare ora e data
Grazie
- hellfire39
- God
- Messaggi: 3426
- Iscritto il: domenica 16 dicembre 2012, 9:04
- Località: AN
Re: Inserimento data e ora sul particolare tramite macro
Se non sbaglio, la variabile #3012 memorizza il tempo come variabile decimale.
Ad esempio, le ore 12:45 e 34 secondi vengono memorizzate come 124534
Sapendo questo, puoi estrarre le singole cifre con le operazioni resto e divisione intera.
resto di 124534 / 10 = 4 <-- cifra unità secondi
divisione intera di 124534 / 10 = 12453
resto di 12453 / 10 = 3 <-- cifra decine secondi
divisione intera di 12453 / 10 = 1245
resto di 1245 / 10 = 5 <-- cifra unità minuti
e così via
Siccome ignoro la sintassi Fanuc, ti faccio un esempio in pseudocodice.
Sta a te convertirlo in codice funzionante
In pratica, con l'operazione resto estrai la cifra di interesse.
Poi dividi il numero per 10 e ripeti l'operazione.
Nota che, per funzionare, la divisione deve restituire un numero intero, penso si debba utilizzare la funzione FIX[]
Nota2: se il linguaggio Fanuc non avesse la funzione modulo, puoi calcolare il resto come differenza
[/b]
Ad esempio, le ore 12:45 e 34 secondi vengono memorizzate come 124534
Sapendo questo, puoi estrarre le singole cifre con le operazioni resto e divisione intera.
resto di 124534 / 10 = 4 <-- cifra unità secondi
divisione intera di 124534 / 10 = 12453
resto di 12453 / 10 = 3 <-- cifra decine secondi
divisione intera di 12453 / 10 = 1245
resto di 1245 / 10 = 5 <-- cifra unità minuti
e così via
Siccome ignoro la sintassi Fanuc, ti faccio un esempio in pseudocodice.
Sta a te convertirlo in codice funzionante
Codice: Seleziona tutto
secondi = #3012 mod 10
appoggio = #3012 / 10
cifra_decine_secondi = appoggio mod 10
appoggio = appoggio / 10
cifra_unità_minuti = appoggio mod 10
appoggio = appoggio / 10
cifra_decine_minuti = appoggio mod 10
appoggio = appoggio / 10
cifra_unità_ore = appoggio mod 10
appoggio = appoggio / 10
cifra_decine_ore = appoggio mod 10
Poi dividi il numero per 10 e ripeti l'operazione.
Nota che, per funzionare, la divisione deve restituire un numero intero, penso si debba utilizzare la funzione FIX[]
Nota2: se il linguaggio Fanuc non avesse la funzione modulo, puoi calcolare il resto come differenza
Codice: Seleziona tutto
temp=appoggio - FIX[appoggio/10]*10
-
- God
- Messaggi: 5096
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Inserimento data e ora sul particolare tramite macro
Mi viene da pensare che non servono condizioni IF, le cifre le dovrai fresare comunque tutte anche se fossero zero, per cui basta una successione sequenza di GOTO.
GOTO#120 (120 Variabile contente la cifra)
Ci sarebbero un certo numero di dettagli trascurati, ma considerarli tutti e spiegarli sarebbe meglio scrivere il codice
GOTO#120 (120 Variabile contente la cifra)
Ci sarebbero un certo numero di dettagli trascurati, ma considerarli tutti e spiegarli sarebbe meglio scrivere il codice
CIAO A TUTTI !
-
- Newbie
- Messaggi: 4
- Iscritto il: lunedì 2 ottobre 2023, 22:13