Aìna: pantografo 500x500 a ponte basso, due viti Y, KFlop

Sezione dedicata alla tua CNC: Costruzione, descrizione, foto, accorgimenti ed errori di progettazione.
Rispondi
Avatar utente
walgri
God
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

Messaggio da walgri » giovedì 11 settembre 2014, 20:43

Eccolo:

DefineCoordSystem(0, 1, 3, -1);
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
walgri
God
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

Messaggio da walgri » giovedì 11 settembre 2014, 21:08

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 pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
Pedro
God
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

Messaggio da Pedro » venerdì 12 settembre 2014, 7:59

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 :lol:

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
walgri.zip
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."

Avatar utente
Pedro
God
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

Messaggio da Pedro » venerdì 12 settembre 2014, 8:33

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."

Avatar utente
walgri
God
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

Messaggio da walgri » venerdì 12 settembre 2014, 10:51

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 :lol:
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
Zebrauno
God
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

Messaggio da Zebrauno » venerdì 12 settembre 2014, 11:00

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?

Avatar utente
Pedro
God
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

Messaggio da Pedro » venerdì 12 settembre 2014, 11:04

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 :lol:

è 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."

Avatar utente
walgri
God
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

Messaggio da walgri » venerdì 12 settembre 2014, 11:09

Zebra per ora stai anche tu su KFlop+M3 ?

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 pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
Zebrauno
God
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

Messaggio da Zebrauno » venerdì 12 settembre 2014, 11:32

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 :D

ciao

Avatar utente
Pedro
God
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

Messaggio da Pedro » venerdì 12 settembre 2014, 11:36

:(

hai varcato il Rubicone
:lol:
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."

Avatar utente
Zebrauno
God
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

Messaggio da Zebrauno » venerdì 12 settembre 2014, 11:41

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 :mrgreen:

Avatar utente
Pedro
God
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

Messaggio da Pedro » venerdì 12 settembre 2014, 11:54

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
"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."

Avatar utente
walgri
God
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

Messaggio da walgri » lunedì 15 settembre 2014, 21:16

:occasion4:

Buon compleanno Aína !
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
Zebrauno
God
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

Messaggio da Zebrauno » lunedì 15 settembre 2014, 21:17

Auguri!!!!

Avatar utente
arm
Senior
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

Messaggio da arm » martedì 16 settembre 2014, 11:15

:lol:
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

Rispondi

Torna a “La mia CNC”