correzione parametri spostamento sui tre assi

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
menniti
Newbie
Newbie
Messaggi: 41
Iscritto il: martedì 12 giugno 2018, 11:03

correzione parametri spostamento sui tre assi

Messaggio da menniti » venerdì 20 luglio 2018, 16:16

Buonasera, ho di nuovo bisogno di aiuto. Questa volta sono alla prese con la CNC distribuita da Futura SHOP, ho eliminato tutta l'elettronica che forniscono in dotazione per adottare un controller basato sul solito Arduino-Like; la macchina è operativa, ma gli assi si spostano molto meno rispetto al comando; per l'esattezza tutti e tre, a fronte di un comando da 100mm fanno uno spostamento di soli 15mm.
Rispetto alla macchina cinese sulla quale questa scheda lavora correttamente, l'unica differenza sono le viti senza fine, nella cinese diametro 8mm e passo circa 3mm, nella Futura stesso diametro (circa) e passo circa 1.6mm, quindi immagino derivi da questo.
Poiché non dispongo del firmware sorgente (che appartiene comunque alla serie grbl 0.9j ma non so con quali modifiche), la mia speranza è di poter risolvere inviando dei comandi manuali gcode via Candle, come ho fatto poco tempo fa per risolvere l'altro problema.
Sapreste dirmi se l'idea è valida e potreste indicarmi questi comandi e come usarli

Avatar utente
Pedro
God
God
Messaggi: 7021
Iscritto il: domenica 6 aprile 2008, 18:44
Località: Roma

Re: correzione parametri spostamento sui tre assi

Messaggio da Pedro » venerdì 20 luglio 2018, 16:37

"Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda."

menniti
Newbie
Newbie
Messaggi: 41
Iscritto il: martedì 12 giugno 2018, 11:03

Re: correzione parametri spostamento sui tre assi

Messaggio da menniti » venerdì 20 luglio 2018, 16:49

Grazie Pedro, sempre molto gentile e disponibile :D
Intanto Futura mi ha fornito i parametri estrapolati dal loro firmware:
#ifdef DEFAULTS_FuturaElettronica
// Description: CNC2018 NEMA 17 stepper motors.
// www.futurashop.it/cnc
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // rpm
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
#define DEFAULT_STATUS_REPORT_MASK 1 // MPos enabled
#define DEFAULT_INVERT_PROBE_PIN 0 // false
#define DEFAULT_LASER_MODE 0 // false
#define MICROSTEPS 8
#define STEPS_PER_REV 200.0
#define MM_PER_REV 1.25 // 1,25 mm/rev leadscrew
#define DEFAULT_X_STEPS_PER_MM (STEPS_PER_REV*MICROSTEPS/MM_PER_REV)
#define DEFAULT_Y_STEPS_PER_MM (STEPS_PER_REV*MICROSTEPS/MM_PER_REV)
#define DEFAULT_Z_STEPS_PER_MM (STEPS_PER_REV*MICROSTEPS/MM_PER_REV)
#define DEFAULT_X_MAX_RATE 500.0 // mm/min
#define DEFAULT_Y_MAX_RATE 500.0 // mm/min
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min
#define DEFAULT_X_ACCELERATION (100.0*60*60) // 100*60*60 mm/min^2 = 600 mm/sec^2
#define DEFAULT_Y_ACCELERATION (100.0*60*60) // 100*60*60 mm/min^2 = 600 mm/sec^2
#define DEFAULT_Z_ACCELERATION (100.0*60*60) // 100*60*60 mm/min^2 = 600 mm/sec^2
#define DEFAULT_X_MAX_TRAVEL 185.0 // mm
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm
#define DEFAULT_Z_MAX_TRAVEL 60.0 // mm
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
#define DEFAULT_STEPPING_INVERT_MASK 0
#define DEFAULT_DIRECTION_INVERT_MASK 224 //((1<<Z_DIRECTION_BIT))
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
#define DEFAULT_JUNCTION_DEVIATION 0.02 // mm
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
#define DEFAULT_REPORT_INCHES 0 // false
#define DEFAULT_INVERT_ST_ENABLE 1 // true
#define DEFAULT_INVERT_LIMIT_PINS 0 // false
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
#define DEFAULT_HOMING_ENABLE 0 // false
#define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
#define DEFAULT_HOMING_SEEK_RATE 250.0 // mm/min
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
#define DEFAULT_HOMING_PULLOFF 1.0 // mm
#endif
quindi penso di dover fare una tabella comparativa con quelli che ho estrapolato dalla scheda mediante il comando $$
$$ < $0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=5 (dir port invert mask:00000101)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=400.000 (x, step/mm)
$101=400.000 (y, step/mm)
$102=400.000 (z, step/mm)
$110=1500.000 (x max rate, mm/min)
$111=1500.000 (y max rate, mm/min)
$112=1500.000 (z max rate, mm/min)
$120=1000.000 (x accel, mm/sec^2)
$121=1000.000 (y accel, mm/sec^2)
$122=1000.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
e poi caricare tutti i nuovi valori sulla board.
Provo a mettermi al lavoro. Grazie, ma se vi vengono in mente facilitazioni non esitate, il tempo manca sempre

menniti
Newbie
Newbie
Messaggi: 41
Iscritto il: martedì 12 giugno 2018, 11:03

Re: correzione parametri spostamento sui tre assi

Messaggio da menniti » venerdì 20 luglio 2018, 22:48

Aggiornamento: ho realizzato una tabella comparativa e poi ho caricato nella scheda tutti i parametri di Futura, ma così il movimento non partiva proprio. Ho dovuto lavorare su due gruppi di parametri: step/mm (x-y-z) e max rate mm/min (x-y-z). Mentre nei parametri Futura il primo risulta essere 1280 (è la moltiplicazione di tre valori, chiaramente visibile nel codice che ho riportato) ed il secondo 500 (uguali per i tre assi), per arrivare ad un movimento preciso ho dovuto portare il 1280 a 2580 e il 500 a 250. Ora rileggendo forse il 2580 dovrebbe essere 2560, visto che noto che uno raddoppia e l'altro dimezza, ma ho tutto nel laboratorio e quindi non posso fare verifiche.
In pratica ho notato che per aumentare il valore 1280 dovevo necessariamente diminuire il 500, altrimenti i motori non partivano, e così ho dovuto fare fino ad arrivare al risultato desiderato.
Mi farebbe piacere se qualcuno mi spiegasse perché ho dovuto fare queste modifiche e perché non sono andati bene i valori originali (che comunque erano per (l'elettronica originale). L'unica cosa che non ho controllato sono i settaggi MS1-2-£ relativi ai microstep dei tre driver A4988, potrebbe dipendere da questi?
Inoltre vorrei capire cosa cambia nel comportamento dei motori tra la configurazione 1280/500 e quella 2560/250? La seconda la vedo, la prima manda i motori in blocco e quindi non so se è potenzialmente migliore o meno.
Grazie.

menniti
Newbie
Newbie
Messaggi: 41
Iscritto il: martedì 12 giugno 2018, 11:03

Re: correzione parametri spostamento sui tre assi

Messaggio da menniti » domenica 22 luglio 2018, 19:59

Ultimo aggiornamento: il valore da assegnare come step/mm è proprio 2580, ho fatto misure di spostamento con il calibro digitale e sono perfette. inoltre ho effettuato svariate incisioni e sono tutte andate a buon fine, quindi i valori che ho caricato vanno tutti bene.
Grazie al link che mi ha postato Pedro ho avuto modo di imparare qualcosa sul gcode e sul signifricato di alcuni valori, e la cosa mi ha permesso anche di fare alcune piccole personalizzazioni, che fino a due girni fa sarebbero state impensabili per me.
Grazie Pedro! =D> =D> =D>

Rispondi

Torna a “Elettronica CNC”