DefineCoordSystem(0, 1, 3, -1);
Aìna: pantografo 500x500 a ponte basso, due viti Y, KFlop
- walgri
- God
- Messaggi: 4735
- Iscritto il: giovedì 13 gennaio 2011, 18:37
- Località: Cagliari
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
DefineCoordSystem(0, 1, 3, -1);
...stop chasing shadows, just enjoy the ride.
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
- walgri
- God
- Messaggi: 4735
- Iscritto il: giovedì 13 gennaio 2011, 18:37
- Località: Cagliari
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
Caso mai servisse altro. È una delle versioni prima delle prove Cl:
Codice: Seleziona tutto
#include "KMotionDef.h"
int main()
{
FPGA(STEP_PULSE_LENGTH_ADD)=63; // Imposta la durata dello step a ~4us (driver Z lento)
int j;
float dist_to_move=10.0f;
// Asse X
// _____________________________________________________________
ch0->InputMode=NO_INPUT_MODE;
ch0->OutputMode=STEP_DIR_MODE;
ch0->Vel=5000;
ch0->Accel=500000;
ch0->Jerk=500000;
ch0->P=0;
ch0->I=0.01;
ch0->D=0;
ch0->FFAccel=0;
ch0->FFVel=0;
ch0->MaxI=200;
ch0->MaxErr=1e+006;
ch0->MaxOutput=200;
ch0->DeadBandGain=1;
ch0->DeadBandRange=0;
ch0->InputChan0=0;
ch0->InputChan1=0;
ch0->OutputChan0=12;
ch0->OutputChan1=0;
ch0->MasterAxis=-1;
ch0->LimitSwitchOptions=0x11f;
ch0->LimitSwitchNegBit=136;
ch0->LimitSwitchPosBit=137;
ch0->SoftLimitPos=1e+009;
ch0->SoftLimitNeg=-1e+009;
ch0->InputGain0=1;
ch0->InputGain1=1;
ch0->InputOffset0=0;
ch0->InputOffset1=0;
ch0->OutputGain=1;
ch0->OutputOffset=0;
ch0->SlaveGain=1;
ch0->BacklashMode=BACKLASH_OFF;
ch0->BacklashAmount=0;
ch0->BacklashRate=0;
ch0->invDistPerCycle=1;
ch0->Lead=0;
ch0->MaxFollowingError=1000000000;
ch0->StepperAmplitude=20;
ch0->iir[0].B0=1;
ch0->iir[0].B1=0;
ch0->iir[0].B2=0;
ch0->iir[0].A1=0;
ch0->iir[0].A2=0;
ch0->iir[1].B0=1;
ch0->iir[1].B1=0;
ch0->iir[1].B2=0;
ch0->iir[1].A1=0;
ch0->iir[1].A2=0;
ch0->iir[2].B0=0.000769;
ch0->iir[2].B1=0.001538;
ch0->iir[2].B2=0.000769;
ch0->iir[2].A1=1.92076;
ch0->iir[2].A2=-0.923833;
EnableAxisDest(0,0.0);
// Assi Y1 e Y2 master slave
// _____________________________________________________________
ch1->InputMode=NO_INPUT_MODE;
ch1->OutputMode=STEP_DIR_MODE;
ch1->Vel=5000;
ch1->Accel=500000;
ch1->Jerk=500000;
ch1->P=0;
ch1->I=0.01;
ch1->D=0;
ch1->FFAccel=0;
ch1->FFVel=0;
ch1->MaxI=200;
ch1->MaxErr=1e+006;
ch1->MaxOutput=200;
ch1->DeadBandGain=1;
ch1->DeadBandRange=0;
ch1->InputChan0=0;
ch1->InputChan1=0;
ch1->OutputChan0=13;
ch1->OutputChan1=0;
ch1->MasterAxis=-1;
ch1->LimitSwitchOptions=0x11f;
ch1->LimitSwitchNegBit=136;
ch1->LimitSwitchPosBit=137;
ch1->SoftLimitPos=1e+009;
ch1->SoftLimitNeg=-1e+009;
ch1->InputGain0=1;
ch1->InputGain1=1;
ch1->InputOffset0=0;
ch1->InputOffset1=0;
ch1->OutputGain=-1;
ch1->OutputOffset=0;
ch1->SlaveGain=1;
ch1->BacklashMode=BACKLASH_OFF;
ch1->BacklashAmount=0;
ch1->BacklashRate=0;
ch1->invDistPerCycle=1;
ch1->Lead=0;
ch1->MaxFollowingError=1000000000;
ch1->StepperAmplitude=20;
ch1->iir[0].B0=1;
ch1->iir[0].B1=0;
ch1->iir[0].B2=0;
ch1->iir[0].A1=0;
ch1->iir[0].A2=0;
ch1->iir[1].B0=1;
ch1->iir[1].B1=0;
ch1->iir[1].B2=0;
ch1->iir[1].A1=0;
ch1->iir[1].A2=0;
ch1->iir[2].B0=0.000769;
ch1->iir[2].B1=0.001538;
ch1->iir[2].B2=0.000769;
ch1->iir[2].A1=1.92076;
ch1->iir[2].A2=-0.923833;
//------------------------------------------
ch2->InputMode=NO_INPUT_MODE;
ch2->OutputMode=STEP_DIR_MODE;
ch2->Vel=5000;
ch2->Accel=500000;
ch2->Jerk=500000;
ch2->P=0;
ch2->I=0.01;
ch2->D=0;
ch2->FFAccel=0;
ch2->FFVel=0;
ch2->MaxI=200;
ch2->MaxErr=1e+006;
ch2->MaxOutput=200;
ch2->DeadBandGain=1;
ch2->DeadBandRange=0;
ch2->InputChan0=0;
ch2->InputChan1=0;
ch2->OutputChan0=14;
ch2->OutputChan1=0;
ch2->MasterAxis=1;
ch2->LimitSwitchOptions=0x11f;
ch2->LimitSwitchNegBit=136;
ch2->LimitSwitchPosBit=137;
ch2->SoftLimitPos=1e+009;
ch2->SoftLimitNeg=-1e+009;
ch2->InputGain0=1;
ch2->InputGain1=1;
ch2->InputOffset0=0;
ch2->InputOffset1=0;
ch2->OutputGain=-1;
ch2->OutputOffset=0;
ch2->SlaveGain=1;
ch2->BacklashMode=BACKLASH_OFF;
ch2->BacklashAmount=0;
ch2->BacklashRate=0;
ch2->invDistPerCycle=1;
ch2->Lead=0;
ch2->MaxFollowingError=1000000000;
ch2->StepperAmplitude=20;
ch2->iir[0].B0=1;
ch2->iir[0].B1=0;
ch2->iir[0].B2=0;
ch2->iir[0].A1=0;
ch2->iir[0].A2=0;
ch2->iir[1].B0=1;
ch2->iir[1].B1=0;
ch2->iir[1].B2=0;
ch2->iir[1].A1=0;
ch2->iir[1].A2=0;
ch2->iir[2].B0=0.000769;
ch2->iir[2].B1=0.001538;
ch2->iir[2].B2=0.000769;
ch2->iir[2].A1=1.92076;
ch2->iir[2].A2=-0.923833;
EnableAxisDest(1,0.0);
EnableAxisDest(2,0.0);
// Asse Z
// _____________________________________________________________
ch3->InputMode=NO_INPUT_MODE;
ch3->OutputMode=STEP_DIR_MODE;
ch3->Vel=2500;
ch3->Accel=30000;
ch3->Jerk=5e+006;
ch3->P=0;
ch3->I=0.01;
ch3->D=0;
ch3->FFAccel=0;
ch3->FFVel=0;
ch3->MaxI=200;
ch3->MaxErr=1e+006;
ch3->MaxOutput=200;
ch3->DeadBandGain=1;
ch3->DeadBandRange=0;
ch3->InputChan0=3;
ch3->InputChan1=0;
ch3->OutputChan0=15;
ch3->OutputChan1=0;
ch3->MasterAxis=-1;
ch3->LimitSwitchOptions=0x11f;
ch3->LimitSwitchNegBit=136;
ch3->LimitSwitchPosBit=137;
ch3->SoftLimitPos=1e+009;
ch3->SoftLimitNeg=-1e+009;
ch3->InputGain0=1;
ch3->InputGain1=1;
ch3->InputOffset0=0;
ch3->InputOffset1=0;
ch3->OutputGain=-1;
ch3->OutputOffset=0;
ch3->SlaveGain=1;
ch3->BacklashMode=BACKLASH_OFF;
ch3->BacklashAmount=0;
ch3->BacklashRate=0;
ch3->invDistPerCycle=1;
ch3->Lead=0;
ch3->MaxFollowingError=1000000000;
ch3->StepperAmplitude=20;
ch3->iir[0].B0=1;
ch3->iir[0].B1=0;
ch3->iir[0].B2=0;
ch3->iir[0].A1=0;
ch3->iir[0].A2=0;
ch3->iir[1].B0=1;
ch3->iir[1].B1=0;
ch3->iir[1].B2=0;
ch3->iir[1].A1=0;
ch3->iir[1].A2=0;
ch3->iir[2].B0=0.000769;
ch3->iir[2].B1=0.001538;
ch3->iir[2].B2=0.000769;
ch3->iir[2].A1=1.92081;
ch3->iir[2].A2=-0.923885;
EnableAxisDest(3,0.0);
DefineCoordSystem(0, 1, 3, -1);
...stop chasing shadows, just enjoy the ride.
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
- Pedro
- God
- Messaggi: 7084
- Iscritto il: domenica 6 aprile 2008, 18:44
- Località: Roma
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
allora:
- innanzi tutto non voglio che mi si accusi di averti dato la famosa pillola rossa facendoti usare mach3, zebrauno non me lo perdonerebbe mai
vediamo se riesco a spiegarmi e non incasinarti più di un tot.
Intanto devi modificare sul file init
DefineCoordSystem(0, 1, 3, -1);
in
DefineCoordSystem(0, 1, 3, 2);
questo perchè se non lo facciamo non potremmo leggere l'encoder dell'Y2, occhio però che così diventa associato all'asse A quindi mai scrivere qualcosa in mdi come G0A100, muoveresti solo lo slave e la cosa non è bella
- sorvolo sull'installazione del plugin e delle configurazione dei file ne plugin, in effetti per queste cose ti basta solo il file init
- ti ho fatto uno screenset dedicato, si chiama walgri.set, che sta in allegato. Per caricare in mach3 uno screenset vai sul menu->view->load screen e carichi il file che ti ho fatto, di solito gli screenset si salvano nella directory di mach3 screens. Tengo a precisare che visto che è una prova non ho badato per nulla all'aspetto estetico, niente fronzoli insomma. Caricato lo screenset hai una pagina che si chiama walgri, in mach3 si cambiano gli screen con i bottoni in alto. Ma prima...
- devi andare su mach3 menu->config->motor tuning e mettere per ogni asse il numero delle divisioni dell'encoder, abbiamo già detto che gli step sono conseguenza del CL quindi sorvolo. Accelerazione e velocità max per ogni asse, è la velocità che raggiunge nei rapidi, ovvo che se crivi in MDI f30 e poi vai con il G01 andrà a 30 mm/min, scontato ok?
- poi sempre sul menu->port e pin e scegli la finestra di configurazione degli encoder e MPG. Devi mettere quante divisioni hai per mm, per tutti i 4 visto che vogliamo leggere x y1 y2 e z e metti velocità 1 (serve solo per gli mpg) per calibrare la lettura dei dro su mach3, il movimento tanto lo fa kflop ma comunque se vuoi leggere giusto i dro devi fare così.
mi sembra semplice, forse per me lo è..comunque se hai problemi scrivi e vedrò di aiutare, se posso
- innanzi tutto non voglio che mi si accusi di averti dato la famosa pillola rossa facendoti usare mach3, zebrauno non me lo perdonerebbe mai

vediamo se riesco a spiegarmi e non incasinarti più di un tot.
Intanto devi modificare sul file init
DefineCoordSystem(0, 1, 3, -1);
in
DefineCoordSystem(0, 1, 3, 2);
questo perchè se non lo facciamo non potremmo leggere l'encoder dell'Y2, occhio però che così diventa associato all'asse A quindi mai scrivere qualcosa in mdi come G0A100, muoveresti solo lo slave e la cosa non è bella
- sorvolo sull'installazione del plugin e delle configurazione dei file ne plugin, in effetti per queste cose ti basta solo il file init
- ti ho fatto uno screenset dedicato, si chiama walgri.set, che sta in allegato. Per caricare in mach3 uno screenset vai sul menu->view->load screen e carichi il file che ti ho fatto, di solito gli screenset si salvano nella directory di mach3 screens. Tengo a precisare che visto che è una prova non ho badato per nulla all'aspetto estetico, niente fronzoli insomma. Caricato lo screenset hai una pagina che si chiama walgri, in mach3 si cambiano gli screen con i bottoni in alto. Ma prima...
- devi andare su mach3 menu->config->motor tuning e mettere per ogni asse il numero delle divisioni dell'encoder, abbiamo già detto che gli step sono conseguenza del CL quindi sorvolo. Accelerazione e velocità max per ogni asse, è la velocità che raggiunge nei rapidi, ovvo che se crivi in MDI f30 e poi vai con il G01 andrà a 30 mm/min, scontato ok?
- poi sempre sul menu->port e pin e scegli la finestra di configurazione degli encoder e MPG. Devi mettere quante divisioni hai per mm, per tutti i 4 visto che vogliamo leggere x y1 y2 e z e metti velocità 1 (serve solo per gli mpg) per calibrare la lettura dei dro su mach3, il movimento tanto lo fa kflop ma comunque se vuoi leggere giusto i dro devi fare così.
mi sembra semplice, forse per me lo è..comunque se hai problemi scrivi e vedrò di aiutare, se posso
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
"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."
- Pedro
- God
- Messaggi: 7084
- Iscritto il: domenica 6 aprile 2008, 18:44
- Località: Roma
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
dimenticavo una cosa: dalla pagina walgri puoi, premendo il tasto tab, avere una paginetta accessoria con i vari tipi di jog
"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."
- walgri
- God
- Messaggi: 4735
- Iscritto il: giovedì 13 gennaio 2011, 18:37
- Località: Cagliari
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
Grazie Pedro, M3 demo e screenset installato.In questi giorni vedo di combinare qualcosa.
Ah, non parlarmi di fronzoli, ho guidato un Land Rover Defender per 13 anni, e lo ricomprerei
Ah, non parlarmi di fronzoli, ho guidato un Land Rover Defender per 13 anni, e lo ricomprerei

...stop chasing shadows, just enjoy the ride.
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
- Zebrauno
- God
- Messaggi: 9670
- Iscritto il: venerdì 18 settembre 2009, 18:24
- Località: Savigliano/Torino
- Contatta:
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
Mi sfugge il problema delle coincidenze con l'asse A nei gcode.
Un annetto fa avevo provato ad attivare movimenti anche strampalati, ad esempio due assi dedicati ad Y, due assi dedicati a Z (coassiali, come fosse un pistone a due stadi) ed ovviamente controllando anche il 4° asse A ed un altro rotativo C.
Z in particolare era controllato da due drives distinti e due encoder lineari. Il primo drive comandava un servo DC, il secondo drive comandava un attuatore voice-coil, anche lui DC, capace di velocita' molto elevate ma corsa ridotta.
E' vero che ho eseguito solo codici da KmotionCNC, ma non ricordo di aver avuto alcun problema sulla libera assegnazione degli assi.
Pedro ti riferivi alla configurazione di test in Mach3?
Un annetto fa avevo provato ad attivare movimenti anche strampalati, ad esempio due assi dedicati ad Y, due assi dedicati a Z (coassiali, come fosse un pistone a due stadi) ed ovviamente controllando anche il 4° asse A ed un altro rotativo C.
Z in particolare era controllato da due drives distinti e due encoder lineari. Il primo drive comandava un servo DC, il secondo drive comandava un attuatore voice-coil, anche lui DC, capace di velocita' molto elevate ma corsa ridotta.
E' vero che ho eseguito solo codici da KmotionCNC, ma non ricordo di aver avuto alcun problema sulla libera assegnazione degli assi.
Pedro ti riferivi alla configurazione di test in Mach3?
- Pedro
- God
- Messaggi: 7084
- Iscritto il: domenica 6 aprile 2008, 18:44
- Località: Roma
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
si, io ho usato il 4 asse per leggere la seconda Y di walgri (rimappata come A appunto), che non ha l'asse A quindi per ora può anche lavorare così. Certo che si possono leggere fino a 6 assi, io ne ho 8 figurati
è un "trucchetto" che ho utilizzato per non fargli fare troppe modifiche nei file di configurazione

è un "trucchetto" che ho utilizzato per non fargli fare troppe modifiche nei file di configurazione
"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."
- walgri
- God
- Messaggi: 4735
- Iscritto il: giovedì 13 gennaio 2011, 18:37
- Località: Cagliari
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
Già mi vien voglia di aggiungere un bottone con una SetBit per armare il quadro di potenza... vabbè, per ora lo faccio dalla console e poi chiudo Kmotion...
...stop chasing shadows, just enjoy the ride.
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
- Zebrauno
- God
- Messaggi: 9670
- Iscritto il: venerdì 18 settembre 2009, 18:24
- Località: Savigliano/Torino
- Contatta:
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
Si, uso anche io come voi Kflop+Kanalog+Mach3.
Tutto il setup lo concludero' su KmotionCNC ma visto che Kerekes non ha alcun interesse nell'implementazione dell'acquisizione dati (con sonde a contatto, video o laser) ho deciso di proseguire su Mach3 per sfruttare le imponenti basi che sono gia' state gettate. Ci sono gia' dei plugins a pagamento gia' ottimi, non voglio essere costretto a riscrivere l'Amleto in C+ per portare a termine delle semplici procedure di acquisizione.
Per intenderci...se si vuole correre non e' il caso di diventare pure calzolai
ciao
Tutto il setup lo concludero' su KmotionCNC ma visto che Kerekes non ha alcun interesse nell'implementazione dell'acquisizione dati (con sonde a contatto, video o laser) ho deciso di proseguire su Mach3 per sfruttare le imponenti basi che sono gia' state gettate. Ci sono gia' dei plugins a pagamento gia' ottimi, non voglio essere costretto a riscrivere l'Amleto in C+ per portare a termine delle semplici procedure di acquisizione.
Per intenderci...se si vuole correre non e' il caso di diventare pure calzolai

ciao
- Pedro
- God
- Messaggi: 7084
- Iscritto il: domenica 6 aprile 2008, 18:44
- Località: Roma
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y

hai varcato il Rubicone

mach3 è tanto ma tanto ma tanto potente, se non piace è perchè forse appare un po' complicato rispetto ai software singola finestra. Quando si è capito cosa fa e cosa potrebbe ancora fare altro che abbandonarlo
"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."
- Zebrauno
- God
- Messaggi: 9670
- Iscritto il: venerdì 18 settembre 2009, 18:24
- Località: Savigliano/Torino
- Contatta:
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
E' tutta colpa di Colibri'...per chi entra nel mondo delle cnc volendo subito dei buoni risultati equivale ad una coppia di hostess in bikini che ti accompagnano lungo la scala.
Pero' credo che il Rubicone lo abbiamo varcato tutti mettendo le mani su Kflop
Pero' credo che il Rubicone lo abbiamo varcato tutti mettendo le mani su Kflop

- Pedro
- God
- Messaggi: 7084
- Iscritto il: domenica 6 aprile 2008, 18:44
- Località: Roma
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y
io no. Io uso quella serie di prodotti dal 2002 quando si chiamava masterfive di cui per ne ho ancora la licenza e all'epoca facevo il betatester
Io credo che tutto dipende da cosa si vuole fare: se si vuole il "single big red button machinery" allora di software ce ne sono parecchi, molti anche belli. Se si vuole di più...eh, allora non c'è storia.
Poi sui controller si è aperta una nuova epoca, a tutti i livelli
Io credo che tutto dipende da cosa si vuole fare: se si vuole il "single big red button machinery" allora di software ce ne sono parecchi, molti anche belli. Se si vuole di più...eh, allora non c'è storia.
Poi sui controller si è aperta una nuova epoca, a tutti i livelli
"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."
- walgri
- God
- Messaggi: 4735
- Iscritto il: giovedì 13 gennaio 2011, 18:37
- Località: Cagliari
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y

Buon compleanno Aína !
...stop chasing shadows, just enjoy the ride.
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
Aìna pantografo ▪ Telemetria per KFlop ▪ BlenderCAM STL + DXF
- Zebrauno
- God
- Messaggi: 9670
- Iscritto il: venerdì 18 settembre 2009, 18:24
- Località: Savigliano/Torino
- Contatta:
- arm
- Senior
- Messaggi: 2710
- Iscritto il: venerdì 18 maggio 2007, 13:21
- Località: arborea (OR) e firenze
- Contatta:
Re: Aìna: pantografo 500x500 a ponte basso con due viti su Y

Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
L'arte è l'espressione di piacere che l'uomo prova nel lavoro. (William Morris artigiano - architetto 1834-1896)
Cnc 3 assi per alluminio, 600x350, ponte fisso
Cnc 3 assi+1, 1200x800, doppia vite
Fresatrice verticale per acciaio
Cnc 3 assi per alluminio, 600x350, ponte fisso
Cnc 3 assi+1, 1200x800, doppia vite
Fresatrice verticale per acciaio