Vai al contenuto
PLC Forum


posizionamento ..... semplice mat + inv + enc


stefano_

Messaggi consigliati

salve a tutti....

non vorrei chiedere sempre le stesse cose, ho letto qualche vecchio post a riguardo ma ho ancora le idee un po confuse ( sarà la mia ignoranza ?!??!? )

il quesito riguarda un semplice posizionamento con motore asincrono encoder ed inverter vettoriale.

dati:

sistema di controllo plc con contatore veloce per encoder ed uscita analogica

velocità massima richiesta 150mms

peso da movimentare 80 Kg

sistema di trasmissione pignone cremagliera.

encoder inc. 1000 ppr

inverter vettoriale comandato in analogico ( 0 - 10 )

motore asincrono trifase con elettro freno.

corsa 1000 mm

rampa triangolare

precisione richiesta = +- 0.5mm

ora mi sembra di aver capito che le strade da percorrere sono 2 e premetto che la soluzione 1 non mi piace

1: demando all'inverter le rampe quindi devo solamente dare lo start e lo stop ovviamente lo stop devo darlo "un pò "prima in modo tale da fermarmi nella posizione finale richiesta .

            domanda... come faccio utilizzo un sensore per lo stop e lo sposto fisicamente fino ad arrivare alla posizione richiesta ?

2: gestisco l'uscita analogica e quindi anche le rampe tramite plc  e qui cade l'asino. ora avendo una corsa di 1000 mm sapendo che per fare tale corsa sono richiesti per esempio 10 giri del pignone quindi so che per effettuare la corsa ho devo contare 1000 * 10 = 10000 impulsi encoder.

Volendo una rampa triangolare quindi ho che da zero impulsi sino a 5000 è la mia rampa di acc e da 5000 a 10000 è la mia rampa di dec. ok ?

Supponiamo di avere luscita analogica 0 - 10 che viene comandata tramite un valore decimale 0 - 4000

quindi avro che dato lo start con frequenza minima ad ogni impulso contato vado ad incrementare l'uscita analogica di 4000/5000 = 0.8 in modo tale che a meta corsa ( quindi 5000 clk ) ho il valore 4000 nell'uscita analogica ( quindi 10 v )  arrivato a 5000 clk faccio la stessa cosa ma anziche incrementare l'uscita analogica ( lasciatemi passare il termine ) di 0.8 vado a sottrarre questo valore per avere frequenza zero a 10000 clk e qui comando lo stop con relativo freno motore.

 

Torna oppure ho detto una mare di cavolate ? ....

 

 

PS: dubbio .... che presto mi tolgo andando a leggere il manuale relativo all'uscita analogica .... come la gestisco nel senso che non penso di poter incrementare di 0.8 o sbaglio

 

 

grazie.

 

Link al commento
Condividi su altri siti


Opss si anche nel primo caso posso utilizzare il numero di impulsi per dare lo stop ma continua a non piacermi un granché ..... credo che il sistema mi possa dare una risposta troppo diversa in base al carico ( 30 kg oppure 80 kg ) anche se alla fine magari posso rallentare tot impulsi prima e procedere a bassissima velocità fino al target !

bho cosa ne pensate ?

grazie

 

Link al commento
Condividi su altri siti

Sandro Calligaro

Non si capisce bene se l'inverter è già stato fissato.

Alcuni inverter hanno la possibilità di gestire il posizionamento tramite un algoritmo interno (immagino che a volte sia da acquistare), che genera tra l'altro anche le rampe di velocità.

In quel caso non serve un PLC (o meglio, la stessa funzione è assolta dal drive stesso), col vantaggio che il drive può usare la misura di posizione anche per il controllo di coppia e velocità vettoriale.

Link al commento
Condividi su altri siti

Ciao Sandro e grazie dell'aiuto.

premetto che non sono del settore quindi perdonatemi se dico qualche sciocchezza !

no l'inverter non è stato fissato e non dovrebbe avere ne l'ingresso per l'encoder ne tantomeno un posizionatore integrato.

Volevo sapere se si riesce a fare un discreto posizionamento semplicemente con un Encoder collegato al plc e con un uscita analogica del plc che diventa il riferimento analogico dell'inverter utilizzando uno dei due modi descritti nel primo post

Grazie

Link al commento
Condividi su altri siti

22 minuti fa, stefano_ scrisse:

Volevo sapere se si riesce a fare un discreto posizionamento semplicemente con un Encoder collegato al plc e con un uscita analogica del plc che diventa il riferimento analogico dell'inverter utilizzando uno dei due modi descritti nel primo post

 

Posizionamenti tramite PLC ed inverter ne ho sempre fatti con buoni risultati.

Se prendi il mio tutorial sulle regolazioni (sezione didattica, sottosezione elettrotecnica) nel capitolo degli esempi trovi anche un esempio di posizionatore. Non è scritto in un linguaggio specifico per PLC, ma la descrizione e la funzione scritta in pseudo "C" dovrebbe essere sufficiente per realizzarlo con un PLC.

Nell'esempio se ricordo bene, il modo di posizionaqmento è tale che non richiede una specifica rampa ma il sistema si autoadatta per ottenere automaticamente il minimo tempo di accelerazione e decelerazione possibili.

Ti servono una scheda di conteggio up/down veloce ed un'uscita analogica.

Link al commento
Condividi su altri siti

oltre ai drive con posizionatore integrato ci sono anche i plc con posizionatori integrati (motion), (vedi tia portal siemens ad esempio). il loro utilizzo è semplice se usi i loro inverter. se invece utilizzi inverter di terze parti risulta più complicato ma fattibile e utilizzabile

 

comunque puoi realizzare il tutto come descrivi, il problema è la precisione e le tempistiche di lavoro. un posizionatore già pronto, se configurato e tarato bene ha precisione ottima (se la meccanica lo permette); uno realizzato da te potrebbe esserlo meno. stesso dicasi per le tempistiche del ciclo di posizionamento.

Link al commento
Condividi su altri siti

ciao a tutti e grazie delle vostre risposte.

si Livio anche in altri casi ho letto il tuo tutorial ma essendo le mie conoscienze molto limitate diciamo che non è proprio pane per i miei denti !!

per Ken , si lo so che ci sono inverter e/o plc con posizionatori integrati ma il sistema non ha bisogno ne di grande velocità ne di grande precisioni ne di grande dinamicità quindi un servo con relativo azionamento o altro lo vedo sprecato !!

Quindi volevo ripiegare su un semplice sistema come detto in precedenza.

Grazie a tutti

Link al commento
Condividi su altri siti

1 ora fa, stefano_ scrisse:

i Livio anche in altri casi ho letto il tuo tutorial ma essendo le mie conoscienze molto limitate diciamo che non è proprio pane per i miei denti !!

 

Il problema è che per realizzare un posizionatore che posizioni sempre con una precisione decente o compri un dispositvo belo e pornto e lo applichi così come è, oppure impari a farlo.

Non ci sono scorciatoie purtroppo.

La tua idea di posizionamento non è......molto funzionale. Ti riconsiglio di leggere almeno la spiegazione del mio esempio, magari solo per avere un'idea di come può essere realizzato un posizionatore nel più semplice dei modi.

Link al commento
Condividi su altri siti

ok Livio grazie ,

lo farò sicuramente ma perche dici che non è molto funzionale ( a dir poco )  :superlol:

non è preciso ?  ( ma se vengono contati gli impulsi encoder meccanica a parte posso avere l'errore di qualche clk ma nulla di più no ?  )

si ha una NON linearita della rampa ?

probabilmente tutto di quanto detto ...

 

grazie.

Link al commento
Condividi su altri siti

No il problema è che....non si può fare così.

Ci sono alcuni modi per farlo.

 

Modo più elememtare con accelerazione e decelerazione identici; rampa triangolare o trapezoidale isoscele,

Dai un gradino di riferimento all'inverter, tari la rampa per avere il tempo di accelerazione e decelerazione che vada bene alla macchina, quindi l'asse accelera con il valore di rampa del'inverter.

A tavolino calcoli con quel tempo di accelerazione e decelerazione a quale quota dovrai decelerare. per avere la sicurezza di accostarti a velocità minima. Calcoli anche la quota da percorrere a velocità minima.

Quando dai la quota da raggiungere sottrai il valore che devi percorre in lento e memorizzi quella quota. Dividi per 2 quel valore; avrai 2 casi: 1 la quota di accelerazione è < della metà del percorso, 2 la quota dia ccelerazione è >= del semipercorso.

  1. Dai il comando di marcia e il gradino di riferimento, verifichi che la quota attuale sia < della quota di rallentamento, non appena la quota attuale è >= alla quota di rallentamento dai il riferimento di velocità minima. Attendi di di raggiungere una quota che sia > della quota corrispondente alla quota finale - errore ammesso e dai lo stop
  2. DAi marcia e gradino di velocità; attendi che la quota attuale sia >= del semipercorso e dai il riferimentoi di velocità minima, poi procedi come nel caso precedente.

Metodo più complesso ma più performante.

Lo trovi descritto in dettaglio nell'esempio del tutorial.

In sostanza si tratta di mettere un traguardo volante davanti all'asse, quello che i vecchi come me chiamano "carota" (che serve per far correre la lepre che l'azionamento asse). In questo modo non devi preoccuparti di niente fa tutto la macchina:). Il bello è che una volta che hai messo a punto la prima funzione, poi la puoi ripetere all'infinito senza quasi far modifiche. Quando facevo questi lavori un posizionamento lo facevo in meno di mezzora di lavoro.

 

 

Se invece vuoi una funzione universale, che possa fare tutto: rampe variabili, raccordate ellittiche, rampe paraboliche, rampe iperboliche, rampe esponenziali, etc., intepolazione ed altro ancora.......compra un motion control. Oggi non vale la pena di mettersi a farlo ex novo.

Link al commento
Condividi su altri siti

grazie livio gentilissimo ....

in pratica posso gestire il tutto tramite il conteggio degli impulsi encoder e affidando le varie rampe all'inverter... no ?

quindi ricapitolando

 

 

A tavolino calcoli con quel tempo di accelerazione e decelerazione a quale quota dovrai decelerare. 

quindi io so che il mio target sta a 10000 clk encoder ,setto nell'inverter le mie rampe in modo tale da ottenere la fine della rampa di accelerazione a 9000 clk , gli ultimi 1000 clk li effettuo a bassissima velocita e poi do lo stop a clk >10000 and clk >10006 

in questo caso comando lo start  a 4500 clk comando il rallentamento ( non mi interessa se sono arrivato alla massima velocità o no se non ci sono arrivato posso aumentare l'acc. ! )  a 9000 circa sono a bassissima velocita e a 10000 clk comando lo stop

 

rAMPE.thumb.JPG.d7585b0db2d62a39e9a56bc3315bed30.JPG

 

Link al commento
Condividi su altri siti

Si, se aggiusti opportunamente le rampe funziona bene, sempre che tu non debba cambiare quota, perchè dovresti rifarti i conti.

Link al commento
Condividi su altri siti

allora mi son fatto due conti.....

......... ed ho visto che non va bene !! :P

in pratica ipotizzando la corsa di cui avrei bisogno 1200 mm ho fissato la rampa a 7.5 secondi  con 0.15 m/sec di velocità massima quindi ho ricavato un'accelerazione di

0.15/7.5= 0.02 ms2 ora con tale acc. lo spazio percorso sarà di 1/2*a*t2 = 0.5*0.02*56.25=circa 1124 quindi in questo caso avrei una rampa triangolare e l'ultimo tratto a bassissima velocita di circa 1200 - 1124 = 76 mm

Non ci siamo nel senso che il sistema è esageratamente lento !! non posso avere 7,5 secondi di acc e 7,5 sec di dec !!! a meno che non mi sono perso qualcosa ,

altrimenti a questo punto avevo intenzione di utlilizzare una rampa trapezoidale

quindi

tempo di acc e dec 3.5 sec  a =0.15/3.5 =0.04285 ms2  spazio percorso per accelerare e decelerare = 0.5*0.04285*12.25 =0.2624 mt =262.4 mm

quindi avro 524.8 mm  per accelerare e decelerare  mi lascio 70mm di corsa a bassissima velocita prima dello stop  ne consegue che avro 1200-524.8-70 = 60.5.2 mm di corsa a v max.

 

Essendo un sistema di trasmissione a pignone / cremagliera  se mi dite che fino a qui non ho detto eresie proseguo con i miei calcoli .....

che ne dite ! proseguo :P

 

Grazie.

 

 

Link al commento
Condividi su altri siti

27 minuti fa, stefano_ scrisse:

mi lascio 70mm di corsa a bassissima velocita

 

Esagerato, ne bastan 10 di mm.

 

Puoi anche accelerare in 1" se il tuo sistema ce la fa.

Hai il gruppo di frenatura sull'inverter, altrimenti rischi di dover decelerare in 20".

 

 

Allora vediamo di confondere maggiormente le idee.:)

Applicando le regole di cinematica si avrà:

  • 150mm/1" Di velocità massima (0.15ms) con rampa di 3.5" significa percorre uno spazio s= 150/2 * 3.5 =262.5 mm in accelerazione ed altrettanti i decelerazione, totale 525mm
  • Considerando solo 10 mm di velocità lenta lo spazio da percorrere a velocità massima di 150mm/1" sarà pari  1200 -535 = 665 mm.
  • Tempo di missione: 7" per rampe + 665/150 = 4".433 più i 10 mm in lento che ipotizziamo siano percorsi a 10 mm/1"; totale tempo di missione 12".43
Link al commento
Condividi su altri siti

allora, fin qui tutto ok.....

ma ancora sono in alto mare....  ora veniamo al nocciolo !! :P  

utilizzando un sisterma di trasmissione pignone cremagliera ed ipotizzando  pignone M2 Z12 Dp 24 mi ritrovo una circonferenza di 75.36 mm quindi per avanzare di un metro dovro far fare al motore 1000/75.36 = 13.26 giri  .

Volendo ottenere un vmax di 0.15 m/sec = 9m/min il mio pignone dovrà ruotare a 13.26 giri/min * 9 = 119.34 giri/minuto OK ? 

Ne deduco che utilizzando un asincrono trifase 2400 giri con riduzione 1:20 otterrò la velocita da me richiesta.

In questo modo alla massima velocità il motore gira con una f di 50 Hz ( che è la sua nominale ) ora per quanto riguarda la bassa velocita ( prima dello stop ) considero come F 15 Hz ( non bassissima per un buon inverter no ? ) avendo 50Hz a 2400 ho 48 giri/hz quindi a 15 Hz ho 720 giri minuto che ridotti di 1:20 sono

36 giri minuto  che corrispondono ad una velocita di 36/13.26 2,7 mt/min .

 

........ che per caso potete confermare anche questo ? :wacko:

 

Grazie.

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