Variabili globali da usare nelle una macro ... quali?

Sezione dedicata a Mach3
Rispondi
lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » lunedì 6 marzo 2023, 10:24

Avrei bisogno di due variabili globali da usare in una macro che vorrei scivere.
La necessità è di salvare il valore ottenuto con la chiamata della macro per poi riprendere il valorr alla suggessiva chiamata della macro per riutilizzarlo e risalvarlo.
Il valore può essere perso quando mach3 viene chiuso.
Vorrei evitare di dover modificare l'interfaccia per aggiungere dei DRO da usare come variabili di appoggio per salvare questi valori.
Guardando il file di seguito mi sembra di capire che Mach3 renda disponibili delle variabili per poter essere utilizzate a questo scopo.

https://www.machsupport.com/forum/index ... tach=49885

Nel file viene indicato:
VARIABLES
-1 to 33 are local variables, there value can only be used within the current g-code file,
-100 to 149 and 500 to 531 are global and can be used over any number of files.
-In the later versions of Mach variables 500 to 600 are global variables.

Mi sembra di capire che potrei ulizzare ad esempio due indici nel range 100-149
Ma come si fa ad essere certi che questi indirizzi non siano usati da altre macro o da plugini o altro?
Grazie
Ciao

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » lunedì 6 marzo 2023, 11:17

Quelle variabili che iniziano # sono variabili stile FANUC che si usano nel linguaggio ISO, programma pezzo. Una macro in mach3 è in vbscript e usa altre tipi di variabile.
Potresti scrivere su file il valore che vuoi salvare, e poi all'esecuzione della macro leggi il file.

Per scrivere su file a fine macro vbscript
dim variabile1
dim variabile2
variabile1=3000
variabile2=5
Open "TESTFILE.txt" For Output As #1 ' Open file.
print #1, variabile1 'distaccare con uno spazio #1
print #1,variabile2
Close #1 ' Close file.

per leggere le variabili
dim testo1
dim testo2
Open "testfile.txt" for Input as #1
Line input #1, testo1
Line input #1, testo2
close #1

variabile1=CDBL(testo1) 'converto il testo in numero decimale
varibile2=cint(testo2) ' converto il testo in un intero
CIAO A TUTTI !

lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » lunedì 6 marzo 2023, 12:22

Quelle variabili che iniziano # sono variabili stile FANUC che si usano nel linguaggio ISO, programma pezzo. Una macro in mach3 è in vbscript e usa altre tipi di variabile.
Potresti scrivere su file il valore che vuoi salvare, e poi all'esecuzione della macro leggi il file.

Per scrivere su file a fine macro vbscript
dim variabile1
dim variabile2
variabile1=3000
variabile2=5
Open "TESTFILE.txt" For Output As #1 ' Open file.
print #1, variabile1 'distaccare con uno spazio #1
print #1,variabile2
Close #1 ' Close file.

per leggere le variabili
dim testo1
dim testo2
Open "testfile.txt" for Input as #1
Line input #1, testo1
Line input #1, testo2
close #1

variabile1=CDBL(testo1) 'converto il testo in numero decimale
varibile2=cint(testo2) ' converto il testo in un intero
Cosi facendo salva i valori in un file e lo ritira su la volta successiva parsandone i valori giusto?

lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » lunedì 6 marzo 2023, 12:43

Siccome la macro è chiamata molto di frequente (ogni 100ms) volevo fare un pezzo di codice piu leggero possibile.

io avevo provaro una soluzione cosi :

dim var1
var1 = Getvar(500)
var1 = var1 + 1
Setvar(500,var1)

E effettivamente ad ogni chiamata della macro mi aumenta di 1 ma il dubbio è:
posso usare questa variabile non andando a dare fastidio a plugin o altro ?
Non è consigliabile usare questa tecnoca?

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » lunedì 6 marzo 2023, 16:55

Va bene usarla,non dovrebbe portare problemi con plugin o altre macro perché normalmente quelle variabili non vengono usate. Il fatto che la macro venga eseguita ogni 100 ms potrebbe darti problemi qualunque cosa tu faccia, anche una macro ha un tempo di esecuzione e consuma risorse.
CIAO A TUTTI !

lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » martedì 7 marzo 2023, 22:46

Io non mi rendo conto quanto impegni risorse le macro.
Pensando come se fosse un linguaggio di programmazione da pc pensavo non fosse cosi invadente.
Quel che volevo fare è implementare un piccolo multiplexer per poter incrementare gli ingressi della porta c della axbb-e per poterci connettere un mpg di quelli cabllati . Volevo utilizzare due uscite e due dei cinque ingressi per pilotarci un integrato multiplexer 74hc4052 che mi permetterebbe di ottenere altri 8 ingressi arrivando ad un totale di 11 permettendomi cosi di connetterci un mpg. La macro sarebbe solo lettura e scrittura di pin di ingresso e uscite e un po di matematica sulle variabili.
Ho provato a muovere le uscite con la cadenza dei 100ms e controllati i segnali con oscilloscopio sembrano coerenti.
Rimarrebbe cosi pesante per mach3?

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » mercoledì 8 marzo 2023, 6:19

Vbscript mach3 è un linguaggio interpretato come tanti linguaggi per PC. Non so se hai mai usato le schede arduino 100 ms sono pochi, un programma-script potrebbe metterci più tempo per essere eseguito.
Non so come è fatto esattamente mach3 se l'esecuzione di uno script potrebbe rallentare ad esempio l'esecuzione di un programma pezzo o altre funzioni.
Non ti resta che provare e vedere cosa avviene, però se riscontri qualcosa "di strano", considera anche che lo script è eseguito ogni 100 ms. IO AL TUO POSTO PROVEREI e vedo cosa succede :D :D
CIAO A TUTTI !

Avatar utente
hellfire39
God
God
Messaggi: 3414
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da hellfire39 » mercoledì 8 marzo 2023, 7:44

Non so se hai mai usato le schede arduino 100 ms sono pochi
Affermazione priva di senso

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » mercoledì 8 marzo 2023, 8:27

Non so se può essere soggettivo ?, se lo è per me sono pochi 100 ms :D
CIAO A TUTTI !

lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » mercoledì 8 marzo 2023, 8:29

torn24 ha scritto:
mercoledì 8 marzo 2023, 6:19
Vbscript mach3 è un linguaggio interpretato come tanti linguaggi per PC. Non so se hai mai usato le schede arduino 100 ms sono pochi, un programma-script potrebbe metterci più tempo per essere eseguito.
Non so come è fatto esattamente mach3 se l'esecuzione di uno script potrebbe rallentare ad esempio l'esecuzione di un programma pezzo o altre funzioni.
Non ti resta che provare e vedere cosa avviene, però se riscontri qualcosa "di strano", considera anche che lo script è eseguito ogni 100 ms. IO AL TUO POSTO PROVEREI e vedo cosa succede :D :D
si infatti l'intenzione e di scriverlo e provarlo.
una domanda che puo sembrare stupida ma come ti dicevo non ho mai scritto macro per mach3, che cosa dovrei aspettarmi come difetti o malfimzionamenti dovuti alla macro "troppo pesanete"?
nel senso mi dovrei apettare crash, rallentamenti degli assi o altro?
che dovrei monitarare in particolare per appurare se aporta un degrado di mach3?
grazie

Avatar utente
hellfire39
God
God
Messaggi: 3414
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da hellfire39 » mercoledì 8 marzo 2023, 8:44

@torn24
100ms sono una eternità per un micro, non è soggettivo, è oggettivo.
Prima di sparare numeri a caso, devi considerare quante operazioni può fare un micro in quel periodo.

Pensa al "poro" Arduino Uno, micro a 8 bit, su cui gira grbl. In frazioni di ms deve riuscire a pilotare tre assi, facendo tutti i calcoli in virgola mobile relativi a posizioni, velocità e accelerazione dei tre assi.

Senza considerare poi i micro a 32 bit che girano a centinaia di MHz


-----------------------------------
Anni fa, feci un progettino per pilotare le luci del presepio con un PIC16F84 che girava a 4MHz. Erano 8 canali a 220V. Ogni canale poteva essere pilotato con una percentuale da 1 a 100.Questo significa che dovevo controllare i 50Hz della tensione di rete (20ms) con una risoluzione di 1/100 (pari a 200 microsecondi). In quei 200 microsecondi dovevo fare i calcoli per gli 8 canali, avendo circa 25 us per i calcoli di ogni canale.
Quindi tutte le istruzioni di ogni canale dovevano stare in meno di 25 istruzioni assembler!
Quello può essere considerato "poco" tempo.

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » mercoledì 8 marzo 2023, 9:06

Non saprei neanche io cosa aspettarmi con mach3, per questo ho detto prova, forse non ti accorgi di niente :D . E' una preoccupazione di tipo ansioso " e se succede qualcosa" :D
Da una parte un programma è comune che esegua più cose contemporaneamente con diversi thread, dall'altra una macro che venisse eseguita di continuo non ho nessuna esperienza, è una novità.
Ultima modifica di torn24 il mercoledì 8 marzo 2023, 9:07, modificato 1 volta in totale.
CIAO A TUTTI !

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

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da torn24 » mercoledì 8 marzo 2023, 9:06

doppio post rimosso.
CIAO A TUTTI !

lor3n7o
Junior
Junior
Messaggi: 132
Iscritto il: venerdì 22 maggio 2009, 20:58
Località: Fabriano (AN)

Re: Variabili globali da usare nelle una macro ... quali?

Messaggio da lor3n7o » mercoledì 8 marzo 2023, 9:51

credo sia lecito..... anche a me è la prima preoccupazione che è venuta in mente......... :D
come ci riesco provo e vediamo......
grazie per le opinioni....

Rispondi

Torna a “Mach3”