home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Robotica, CNC, 3D
Finalmente un posto dove poter discutere di robotica di CNC e stampanti 3D, scambiarsi idee, progetti ed opinioni. Partecipa anche tu...


variabili e macro
     
Autore Messaggio opzioni
rcc.roberto



[pagine pubblicate]

postato il:
06.03.2021, alle ore 21:54
variabili e macro 

Tornando al programmino che vi ho illustrato,

si può renderlo un po' più professionale.

Avevo scritto che le misure vanno adattate alla propria macchina, però in un programma più lungo potrebbero esserci delle ripetizioni e dimenticarne qualcuna. Ecco allora che vengono in aiuto le variabili (parametri in LinuxCNC).

I parametri possono essere definiti numericamente o con caratteri alfabetici ed iniziano con cancelletto.

Ad esempio, definisco 4 parametri numerici e gli assegno un valore:

#100 = 400 ; posizione max asse X sinistra
#101 = 300 ; posizione max asse Y profondità
#102 = -10 ; posizione max asse Z bassa
#103 = 5 ; posizione max asse Z sicurezza


poi le utilizzo nel programma, in caso di modifica è sufficiente cambiare valore nella definizione iniziale per avere i nuovi valori in tutto il programma, esempio:

G38.2 Z#102 ;scende al max #102
...
X #100 ;***** angolo basso dx


I numeri di libero utilizzo sono limitati in quanto da un certo punto ci sono i parametri di sistema, alcuni utilizzabili anche in scrittura altri solo in lettura, ci sono disponibili le tabelle.

E ancora, abbiamo visto nel programmino che ci sono delle righe ripetute più volte:

Perchè non fare un bella macro (sub)?
Anche la sub è definita con un numero, preceduto da o e seguito da sub all'inizio e endsub alla fine, esempio con le righe ripetute:
o105 sub
G1 F30
G38.2 z#102 ;scende al max #102
G4 P5 ;pausa per leggere la posizione
G0 Z#103
o105 endsub


Richiamerò poi la sub con l'istruzione:
o105 call 


In linuxCNC c'è la possibilità di mostrare a video dei messaggi e dei parametri, allora lo sfrutto per mostrarmi quelle misure rilevate dal probe, a questo punto posso eliminare la pausa (P5), tanto posso leggere le misure in un secondo tempo. La sub modificata:
o105 sub
G1 F30
G38.2 z#102 ;scende al max #102
(DEBUG, asse X=#5061 Y=#5062 Z=#5063)
G0 Z#103
o105 endsub


Nell'esempio precedente ho utilizzato dei parametri di sistema
#5061 è la posizione attuale dell'asse X
#5062 è la posizione attuale dell'asse Y
#5063 è la posizione attuale dell'asse Z
Le posizioni X e Y sono logicamente quelle comandate e le faccio scrivere solo per riferimento
La posizione Z è quella che ha trovato al momento che il probe ha incontrato la massa.

Ed ecco il programma modificato completo:
; Controllo parallelismo piano
G21 G17 G64 G90

#100 = 400 ; posizione max asse X sinistra
#101 = 300 ; posizione max asse Y profondità
#102 = -10 ; posizione max asse Z bassa
#103 = 3 ; posizione max asse Z sicurezza

o105 sub
G1 F30
G38.2 z#102 ;scende al max #102
(DEBUG, asse X=#5061 Y=#5062 Z=#5063)
G0 Z#103
o105 endsub

;azzeramento con spessore da 1,5mm
; partire da angolo basso sx
; azzerare X Y
G0  Z#103 ; prima posizione
X0 Y0
G1 F30
G38.2 Z#102 ;scende al max #102
G92 z0 ;azzera
(DEBUG, asse X=#5061 Y=#5062 Z=#5063)
G0 Z#103

X #100 ;***** angolo basso dx
o105 call

Y #101 ;***** angolo dietro dx
o105 call

X 0 ;***** angolo dietro sx
o105 call

X0 Y0
M2
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 

 
 
indietro | homepage | torna su copyright © 2004/2022 GRIX.IT - La community dell'elettronica Amatoriale