Vai al contenuto
PLC Forum


Asse Verticale Non Lineare


Simone080604

Messaggi consigliati

Salve,

è da un pò che cerco nei vari post delle risposte al mio problema ma ancora non ho trovato nulla, pertanto chiedo a voi che sicuramente avete più esperienza.

Dovrei realizzare un pallettizzatore dove l'asse verticale è movimentato da motore, riduttore con encoder e puleggia sulla quale si avvolge una cinghia.

Il diametro minimo è 70mm e quello massimo 110mm quindi a parità di riferimento sull'inverter mi cambia notevolmente la velocità. Non è la prima volta che mi capita e finora ho sempre gestito la cosa con marcia veloce, rallentamento e un un po di regolazioni.

Dimenticavo la corsa è circa 2000mm e la velocità max circa 50mt/min

Ora vorrei passare ad un controllo dinamico in analogica e/o treno di impulsi con il quale sto già facendo dei test (ho anche scaricato il tutorial di Livio x carpire informazioni utili).

Quindi mi chiedevo :

1. c'è un modo per cercare di linearizzare l'asse ?

2. Nel caso genero io con il plc il profilo di velocità controllando la quota reale e quota teorica e la differenza la dò come riferimento all'inverter il punto 1 non serve?

3. l'inverter risponde allo stesso modo se tolgo la marcia e uso la sua rampa di deceler. interna oppure diminuisco il riferimento fino a 0 mantenendo la marcia ?

( dalle mie prime prove sembra proprio di no, a meno che mi sfugga qualcosa )

Grazie anticipatamente...........

Link al commento
Condividi su altri siti


1) per linearizzazione intendi velocità costante al variare del diametro?

2) Se l'encoder è sull'asse della puleggia puoi mantenere costante la velocità angolare ma non quella lineare della cinghia.

3) Se togli la marcia (run) dell'inverter il motore rallenta per inerzia, maggiore è il momneto d'inerzia maggiore sarà il tempo di fermata. Il riduttore potrebbe anche ridurre ai minimi il tempo di fermata, dipende dalle sue caratteristiche meccaniche. Se porti a zero il riferimento il motore si ferma secondo il tempo di rampa impostato. Se il tempo di rampa è troppo corto e l'inverter non dispone di gruppo di frenatura sarà generato un allarme di massima tensione sul DC bus.

la corsa è circa 2000mm e la velocità max circa 50mt/min

In pratica alla massima velocità son meno di 2". Se non hai un trasduttore di velocià/posizione sulla cinghia non c'è modo di farla lavorare secondo un profilo di velocità a meno di misurare il diametro della puleggia in tempo reale.

Link al commento
Condividi su altri siti

Intanto grazie Livio,

1) si intendo linearizzare la velocità o quanto meno compensare il più possibile la variazione di velocità in funzione del diametro della puleggia avvolta.

2) si l'encoder è sull'albero della puleggia quindi pensavo che usando un controllo sulla qta reale encoder e qta teorica calcolata alla velocità desiderata del posizionamento, nel momento che la velocità reale si discosta troppo da quella teorica il controllo mi diminuisce il riferimento di velocità.

3) No, l'asse deve fermarsi in rampa e c'è la resistenza di frenatura, solo che quando uso la decelerazione impostata sull'inverter es.0,3sec nel momento in cui tolgo la marcia mi sembra si fermi + deciso rispetto a quando sono io ad diminuire la frequenza di uscita fino a zero ( ovviamente nello stesso intervallo di tempo ).

Grazie

Simone

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Controlla gli a capo perchè altrimenti i messaggio risultan poco comprensibili; evita anche le abbreviazioni, vietate anche dal regolamento. le abbreviazioni diminuiscono di molto la comprensività immediata del messaggio e sono spesso anche irritanti.

Veniamo ora ai problemi tecnici.

pensavo che usando un controllo.....

Si è fattibile. Diventa un po' pesante, però se ti accontenti di una precisione blanda dovresti realizzarlo con poca fatica.

...tolgo la marcia mi sembra si fermi + deciso....

Può essere, specie se hai un riduttore che assorbe parecchia coppia o è irreversibile.

Link al commento
Condividi su altri siti

Grazie, chiedo scusa per il linguaggio...

Come precisione mi va bene +/- 5mm

Per quanto riguarda il riduttore effettivamente c'è ed è un vite senza fine con i=10, però non capisco in che modo faccia la differenza tra i due modi di decelerazione. Io pensavo fosse più un fattore interno dell'inverter, visto che nel caso in cui tolgo la marcia sa che si deve fermare nel tempo impostato, mentre nel secondo caso la marcia è presente e c'è solo una diminuzione del riferimento di velocità

Oggi vedo se riesco a scrivere il programma e fare ulteriori prove

Grazie

Simone

Link al commento
Condividi su altri siti

Se porti a zero il riferimento a "gradino" all'uscita della funzione rampa hai una variazione lineare nel tempo del riferimento, quindi anche la velocità decrescerà in accordo con il riferimento.

Se togli la marcia è come se aprissi il contattore di rete, il motore decelera per inerzia. Avendo un riduttore che assorbe molta enrgia il tempo di fermata risulta essere molto ridotto.

Come precisione mi va bene +/- 5mm

Sono 5mm/1", quindi precisone di velocità lienare, oppure sono proprio 5mm, quindi precisione di posizionamento?

Link al commento
Condividi su altri siti

Si ok, però se porto a zero il riferimento in un tempo molto basso attorno 0,2sec ( da una Velocità di circa 40 mt/min ) l'influenza del riduttore dovrebbe essere all'incirca simile.

Altrimenti dovendo convertire i vecchi programmi fatti come dicevo sfruttando la rampa dell'inverter mi trovo in grosse difficoltà nel rispettare il tempo ciclo precedente!!

I 5 mm sono la mia finestra di posizione in questo caso, poi in altre situazioni arriverò fino 1mm.

Grazie

Simone

Link al commento
Condividi su altri siti

Scusa, perchè non puoi sfruttare la rampa dell'inverter?

Dai il rifermento di velocità alta, l'inverter sale in rampa. Raggiunto il traguardo di rallentamento dai il riferimento di velocità lenta e l'inverter scende in rampa, poi al tragurdo finale, in anticipo sul punto di arrivo, porti il riferimento a zero.

Link al commento
Condividi su altri siti

Si, è quello che ho sempre fatto, ma visto che in questo momento avevo la possibilità di mettere a punto e gestire un posizionamento controllando tutto il trapezio mi sembrava una cosa più performante.

Inoltre come dicevo sul primo post mi sembrava l'unico modo per riuscire a compensare in maniera dinamica la variazione di velocità dovuta alla cinghia che si avvolge.

In ogni caso cercherò al più presto di fare delle prove sulla macchina con i vari sistemi e se non ci sono soluzioni tornerò indietro.

Intanto grazie mille per le delucidazioni

Simone

Link al commento
Condividi su altri siti

Cambiando il generatore di rampa le cose non cambiano. Escludi la rampa dell'inverter e generi tu l'accelerazione da PLC con la pendenza necessaria. Tutto il resto rimane eguale.

Però, vista l'applicazione, mi sembra una complicazione inutile.

Usando la rampa dell'inverter la messa a punto è molto più semplice.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Ieri ho "quasi" messo a punto la gestione dell'asse orizzontale generando da plc le rampe di accelerazione e decelerazione controllando la massima velocità in funzione dello spazio residuo e per ora sono abbastanza soddisfatto.

Ho anche provato controllare l'errore di posizione controllando la quota reale - la quota teorica ma anche se vado a compensare aumentando il riferimento l'errore è sempre altissimo, approfondirò.....

Oggi cercherò di fare ugualmente con l'asse verticale.

Grazie ancora

Simone

Link al commento
Condividi su altri siti

Non è che compensi al contrario? Se stai avvolgendo, cioè l'asse sale, la velocità lineare aumenta per l'effetto dell'aumento del diametro, viceversa se stai svolgendo.

Link al commento
Condividi su altri siti

scusa il ritardo... credo di sbagliare qualcosa nei calcoli sulla conversione in impulsi perchè impostando dei valori fissi vedo che l'errore si stabilizza.

Però al momento avrei bisogno di capire altre cose più importanti:

1. attualmente opero così : attivo la correzione quando supero ad esempio un errore di 100 impulsi , poi divido l'errore per 10 e lo moltiplico per un fattore 1,1 o 1,5 e lo do in uscita per incrementare il valore sull'analogica. Però ovviamente quando ritorno sotto i 100 impulsi l'uscita diminuisce e l'errore torna ad aumentare con il risultato che l'asse va a scatti. Come posso rendere più fluida la risposta?

2. Per gestire la velocità del posizionamento e per rallentare quando mi avvicino al target uso sempre la formula V=SQRT ( 2*a*Spazio Residuo ) però ho due dubbi. Quando la Velocità aumenta per compensare l'errore come devo comportarmi visto che il calcolo di a=V/t l'ho fatto prima di partire con la velocità impostata ? Inoltre ho notato che se uso il risultato esatto ed imposto una rampa di decelerazione al di sotto di 1,5 - 2 secondi l'asse oltrepassa il target e poi torna indietro, quindi nel momento in cui l'equazione mi inizia a decrescere la velocità per rallentare, ho dovuto aggiungere un fattore che mi decresce ulteriormente per fermarmi correttamente e più deciso. Sto sbagliando qualcosa?

Grazie ancora

Simone

Link al commento
Condividi su altri siti

Come posso rendere più fluida la risposta?

Devi mettere un 'integrale; ovvero integrare la correzione. Tu ti stai complicando la vita inutilmente :smile: ; se avessi letto con attenzione il mio tutorial, specie il sesto capitolo, avresti tutto quasi pronto.

Sto sbagliando qualcosa?

Certo.

s = v * t da cui t = s / v. Per conoscere il tempo di decelerazione dividi lo spazio di rallentamento per la velocità media; ovvero se passi dalla velocità massima alla velocità lenta il tempo di decelerazione sarà dato da s / ((VM + VL) / 2) .

Ovviamente puoi fissare il tempo di rampa e calcolarti la quota da cui iniziare la decelerazione.

Link al commento
Condividi su altri siti

sinceramente ci ho provato.... Ho avuto grosse difficoltà nell'installazione del MicroWin ( che ancora su Win7 - 64 bit non mi gira, so che a molti va ma anche con il service Siemens non ho risolto, per ora devo lavorare su macchina virtuale e solo off-line ). Inoltre non conoscendo bene Siemens ( ho aperto il progetto ) faccio fatica a convertire il programma in Omron, quindi ho seguito i vari post e sono arrivato a generare con l'uscita analogica il mio profilo di velocità con accelerazione, velocità costante e decelerazione. Tutto sommato mi sembra risponda discretamente, io imposto il target, il tempo di Accelerazione, di Decelerazione e la Velocità poi il resto lo fa la routine plc. L'unica cosa che mi manca è appunto vedere se riesco a controllare meglio nel caso in cui per via del peso applicato e con movimento in salita o discesa l'errore di posizione mi si amplifica troppo.

Grazie infinite

Simone

Link al commento
Condividi su altri siti

  • 3 weeks later...

Volevo solo fare il punto della situazione ringraziando tutto lo staff che è sempre pronto e disponibile, dicendo che credo di essere arrivato ad un buon compromesso e ho provato su entrambe gli assi della macchina la routine messa a punto sfruttando la formula V=SQRT ( 2*a*Spazio Residuo ) sia per gestire la Velocità massima possibile in funzione dello spazio da fare e per decrementare la velocità dell'asse in avvicinamento al target. Il problema che pensavo di avere dovuto alla puleggia con diametro variabile non lo noto nemmeno, ed in tutte le situazioni mi sembra lavorare discretamente anche con corse molto piccole e la massima velocità impostata. Forse alla fine il problema più grosso che ho avuto è dovuto alla scansione del plc che con interrupt 4msec non girava e ho dovuto accontentarmi di 8msec. Adesso spero di riuscire ad utilizzare questa routine anche con treno di impulsi ed eventualmente motori brushless.

Grazie ancora

Simone

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...