Vai al contenuto
PLC Forum


Moto Interpolato Con Plc


emanuele.croci

Messaggi consigliati

emanuele.croci

Ciao a tutti,

Stavo valutando, per ragioni di comodità e risparmio, di realizzare direttamente nel PLC S7-314C la gestione di alcuni movimenti interpolati che ora eseguo con controllo numerico o con schede di motion control.

(sono consapevole del fatto che la performance del PLC in questo campo è molto più bassa di quella di un hardware dedicato....)

Nella fattispecie i dati sono i seguenti:

- gestione di 2 assi lineari, X e Y

- interpolazioni lineari e circolari (cerchi completi e archi di qualsiasi ampiezza, raggio di curvatura >10mm)

- velocità tangenziale <30 mm/sec , errore max. sul profilo <0.5 mm, errore max. sulla velocità 10%

- pilotaggio con inverter vettoriale, motore AC, retroazione encoder

Secondo voi è una cosa fattibile?

Inoltre, dovrei realizzare l'interpolatore.... cioè la routine di calcolo che assegna ad ogni istante il setpoint di posizione a X e a Y. Sapete se esiste del materiale didattico su questo argomento?

Da ignorante pensavo a 2 possibili tecniche di approccio:

1) mi calcolo, al tempo T, i setpoint di posizione X(T) e Y(T); X insegue X(T) con un PID, Y insegue Y(T) con un PID; penso che sia il modo più semplice

2) mi calcolo, al tempo T, il setpoint di posizione X(T); X insegue X(T) con un PID; Y insegue Y(X) con un PID; penso che sia il modo più complesso, ma forse riduce l'errore di profilo che è per me il problema più importante.

considerando che tutti i calcoli sono da fare nel PLC, è comunque un bel divertimento....

...Ogni aiuto è apprezzato!

Ciao e grazie,

Emanuele

Link al commento
Condividi su altri siti


  • Risposte 100
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Livio Orsini

    33

  • emanuele.croci

    32

  • lucios

    8

  • walter.r

    5

Ho l'impressione che andresti a ficcarti in un bel casino! :o

Se il plc gestisce *solo* il discorso assi considera che esistono controllini numerici che fanno tutto cio' di cui hai bisogno ad un costo forse addirittura inferiore ad un plc Siemens, senza considerare i tuoi costi di sviluppo...

ciao

Andrea

Link al commento
Condividi su altri siti

Claudio Monti

Sono d'accordo con Andrea...

Se consideri le ore che ci perderesti sopra... mi sa che se non devi fare "grandi numeri" ti conviene usare le schede motion x PLC.

Se invece puoi ammortizzare lo sviluppo su molte applicazioni allora il discorso cambia

Link al commento
Condividi su altri siti

emanuele.croci
Ho l'impressione che andresti a ficcarti in un bel casino! 

ragazzi, sono un temerario....

comunque non ne faccio solo un problema di costi, ci sono anche altri aspetti.

Premesso che SICURAMENTE IL CN E' PIU' PRECISO DEL PLC, non è vero che "ci sono controllini numerici che fanno tutto ciò di cui ho bisogno..." (anche perché non sai di cosa ho bisogno!).

Il CN ti agevola in alcuni punti e ti complica la vita in altri....

facciamo un esempio: il mio problema principale è che alcune funzioni delle mie macchine sono meglio controllate dal PLC, altre dal CN; ebbene, io uso CN Sinumerik 810D, che hanno già un PLC S7 incorporato nella stessa scheda del CN... dovrei essere stra-agevolato, eppure.....

- prova a far andare 2 nastri alla stessa velocità: col PLC te li regoli come vuoi, li piloti con l'analogica e puoi farli andare tutti e 2 alla velocità di lavoro, oppure uno alla velocità di lavoro e l'altro in veloce, è una bazzecola; col CN devi inserire/disinserire l'albero elettrico e ti garantisco che non è così semplice

- devi fare una macchina che ha non UNA ma magari 2 o 3 coppie di assi interpolati: con il CN devi cambiare modello, perché "ha un canale solo..."; col PLC ti compri una scheda di uscite analogiche, raddoppi la tua FC e sei a posto.

Insomma, con il PLC avrei una soluzione estremamente flessibile, che posso applicare molto comodamente a qualsiasi macchina presente o futura.

Concludo dicendo che l'idea mi è venuta osservando una macchina che abbiamo acquistato da un ns.subfornitore e inserito in un ns. impianto: la macchina ha una funzione totalmente diversa dalle nostre (è un "fine linea"), ma contiene all'interno un moto interpolato lineare-circolare fatto nel PLC.... e funziona!

Ciao, Emanuele

Link al commento
Condividi su altri siti

Scusa Emanuale ma sei sicuro delle tue affermazioni ?

All'inizio della discussione dici che vuoi usare una 314C , poi adesso dici che vuoi gestire più assi con interpolazione lineare / circolare / albero elettrico etc. etc. , se riesci a fare quello che dici con una 314C e schede a conteggio + moduli analogici sei un mostro della programmazione PLC .

Ho seri dubbi a riguardo o meglio non credo cha la soluzione sia questa .

Ci sono PLC di varie marche che possono gestire tranquillamente assi in interpolazione lineare / circolare / asse elettrico e altro e se aumentano gli assi devi "solo" inserire le schede che ti servono e comunque anche così le cose non sono sempre semplici .

Scusa ma con una 314C che schede a conteggio useresti (banda passante encoder) e che analogiche ?

Questa è la mia personale opinione e volendo di controindicazioni ce ne sarebbero ancora , comunque la tua determinazione mi piace e posso solo augurarti buon lavoro .

bigalex :blink:

Modificato: da bigalex
Link al commento
Condividi su altri siti

ciao

Emanuele se le altre persone che ti hanno risposto non ti hanno

fatto vnire qualche dubbio fore non ci riusciro' nemmeno io.

non voglio fare un discorso tecnico perche e' gia' stato fatto dagli altri

quindi mi limito a segnalarti le uniche 2 cose che mancano.(secondo me)

la prima e' che inizi questo post com delle domante ed invece lo concludi

difendendo la tua idea da qualsiasi regionevole obiezione che muovono le

persone (professionisti) che ti rispondono.

inoltre , molto importante.....

perche' credi che le altre migliaia di professionisti programmatori

che ci sono non adottano la soluzione da te suggerita ...... forse un motivo ci sara'.......

vorrei suggerirti di non buttar via l'esperienza che deriva dai lavori fatti dagli altri!

;);)

ciao

dario

Link al commento
Condividi su altri siti

Premesso che SICURAMENTE IL CN E' PIU' PRECISO DEL PLC, non è vero che "ci sono controllini numerici che fanno tutto ciò di cui ho bisogno..." (anche perché non sai di cosa ho bisogno!).

Con "controllino numerico" non intendevo certamente un Sinumerik 810D :lol:

L'810D è un controllo moooolto potente ma anche moooolto tedesco per cui o fai le cose come lui vuole vadano fatte o ti devi arrampicare sugli specchi <_<

Quello che intendevo suggerirti è qualche controllo "ibrido", magari Italiano, costruito da qualche ditta relativamente piccola e quindi disposta a personalizzarlo secondo le Tue specifiche esigenze (Non ti faccio nomi x ovvi motivi, ma se sei del settore probabilmente sai + o - di cosa sto parlando....).

Se poi proprio vuoi rimanere sulla soluzione plc proverei allora a sondare le caratteristiche dei plc giapponesi che, almeno sui cataloghi, penso siano imbattibili in queste cose (dico "catalogo" perche' non ho mai avuto possibilità di mettreci mano personalmente...).

ciao

Andrea

Link al commento
Condividi su altri siti

In linea di principio la cosa è fattibile, il problema principale è costituito dai tempi. Anche se usassi una scheda posizionatrice invece di quella di conteggio (FM350 o simule) + D/A, la CPU dovrebbe calcolare in tempo reale le quote da passare al posizionatore.

In efetti la teoria dell'interpolatore prevede un posizionatore pliriasse a cui le quote sono passate dal'interpolatore in tempo reale. Più corto è l'intervallo di tempo più precisa è la curva. Con periodo tendente a zero la curva tende al continuo.

Ora un CPU 314 quanto impiega a calcolarsi le quote dei due assi in interpolazione circolare? e le relative velocità?

Pensa solo ad un asse elettrico, che può essere assimilato ad un interpolatore lineare; bene per avere pretazioni decenti dovrebbe eseguire una chiusura del loop ogni 10 ms. In pratica legge la posizione del master, legge quella dello slave, calcola la posizione slave teorica data la posizione master e rapporto, regola lo slave con PID + feedforward confrontando slave teorico con slave reale. Per fare questo quanto impiega la CPU? Almeno 3 ms. Ora pensa alla complicazione di una interpolazione circolare, quanto impiegherà la CPU? Se poi invece di due assi diventano tre....

Link al commento
Condividi su altri siti

Ciao a tutti!

Rispondo solo ora in quanto il forum era chiuso per manutenzione.

Grazie comunque a tutti quelli che mi hanno risposto e scritto, sia sul forum che privatamente.

Penso che la limitazione principale, come sostiene Livio (ed anche Marcello che mi ha scritto per e-mail), sia legata al tempo di scansione del PID che magari non è sufficientemente rapido per raggiungere la precisione desiderata.

Come calcolare la precisione che si può raggiungere??

(Rimando anche a questa mia discussione di qualche mese fa....)

discussione

Grazie ai contributi di Livio, Marcello e alla mia esperienza fatta in seguito alla discussione succitata, ritengo sensato che, una volta "trasformata in tempo" la precisione richiesta, si debbe campionare almeno 4 volte + veloce per avere la precisione voluta (sia a regime che in "transitorio non velocissimo"):

ad es., nel mio caso, vel= 30mm/s precisione =+/- 0.5mm T=16.7 ms, devo ciclare il mio PID a 16.7/4=4.2ms

con questo valore dovrei essere OK sia a regime che in transitorio: come ottengo questo valore di 4?

da vari post e da mie esperienze.... non è un numero magico e intoccabile, se ne avete di migliori.....

Non vedo problematico il fatto di calcolare i setpoint di posizione per una interpolazione circolare.

Se passo dal supervisore i dati: (Xc,Yc) coordinate del centro, R (raggio di curvatura), alfa ini (angolo iniziale) e v(velocità), mi basta fare.....

alfa= alfa ini +/- v*t / R

Xset=Xc + R * cos (alfa)

Yset=Yc + R* sen (alfa)

La CPU 314C esegue un calcolo in virgola mobile in 20 MICROsecondi, quindi penso che il tutto prenda al max 1ms

dopodiché usando la funzione di albero elettrico che mi sono già creato e funziona (v. la discussione citata), faccio inseguire a X e a Y i master virtuali Xset e Yset ...et voilà, il programma è già bello e fatto!

(Bigalex ...ebbene sì ....l'albero elettrico l'ho già fatto e gira a meraviglia addirittura su una CPU 312!!)

Più che altro il problema del cerchio è che, cambiando in continuazione le velocità sulle componenti X e Y, è come se fossi sempre in regime di transitorio... cosa che mi rompe un po' le scatole specialmente per i bassi raggi di curvatura, ma spero di starci dentro.....

E' tutto! Tutti i contributi sono sempre bene accetti !

Grazie e Ciao,

Emanuele

P.S.: L'unica cosa che non condivido è il "...si è sempre fatto così..." messo lì bovinamente e senza giustificazioni tecniche precise. Poi vedo discussioni interminabili sul fatto che gli Italiani non innovano... i cinesi ci mangiano la pappa in testa... ecc... ecc...

Link al commento
Condividi su altri siti

ciao

quindi tu avevi gia' sperimentato il tutto , e avresti ,POI, iniziato questa discussione?

a che pro?

se ci sono problemi ci sono molte persone ,come si è visto , pronte ad aiutare ed a condividere gli altri

ma se poi si scopre che il post era fittizio , boh!! non so come si sentira' chi si è preso la riga di

risponderti.

(che uscite analogiche usi sulla 312 ed in quanto tempo rispondono? )

ciao

dario

Link al commento
Condividi su altri siti

Ci sono prodotti come già ho detto molto potenti e economici.

Estremamente flessibili.

Integrano CNC, PLC, HMI, editor ISO.

Per quale motivo si deve complicare la vita uno?

In italia non sappiamo mai fare le cose nella direzione corretta, vogliamo usare il PLC per fare il CNC e magari cosa altro non si sà.

Non a caso ora si usano i PAC invece dei PLC.

Insomm valoriziamo le aziende italiane che magri hanno soluzioni affidabili, potenti, semplicie e assistite.

Link al commento
Condividi su altri siti

Per emanuele.croci

Usare un periodo di campionamento pari ad 1/4 è il minimo indispensabile (sarebbe meglio 1/10). Quello che non condivido è l'equiparazione del regime statico al regime transitorio "a bassa velocità". Io ritengo sia più corretto valutare quale precisione si desideri in regime trnasitorio, con accelerazioni massime (caso pessimo), e poi stabilire il periodo di campionamento. Ovviamente poi i servi dovranno essere in grad di seguire.

Anche la valutazione dei tempi di calcolo mi sembra un poco ottimistica (in quanto tempo pensi che la CPU risolva le funzioni trigonometriche?).

In quanto all'asse elettrico ci credo che funzioni con una 312, io ne ho realizzato uno con una 214 e chiusura del loop ogni 10 ms, ma l'algoritmo dell'asse elettrico è molto più semplice di quello di un interpolatore circolare.

Per Dario.

Non credo che Emanuele Croci abbia realizzato il sistema e poi aperto la discussione. Anzi ha ancora dei problemi aperti.

Per "mbellini"

Il fatto di prendere in considerazione l'ipotesi di uso di un prodotto non specifico per un problema specifico denota elasticità mentale. Questo approccio dovrebbe essere alla base di tutti i lavori di progettazione, almeno per chi si definisce "progettista".

Ripetere pedissequamente esperienze precedenti senza tentare di esplorare strade diverse è il peggior difetto di un progettista!

E poi, chi può stabilire a priori, senza un'analisi seria del problema, che per una determinata applicazione un prodotto specifico dia migliori risultati, in termini di costi-benefici, di un prodotto generico ben applicato?

Infine cosa c'entra tutto questo con la valorizzazione delle aziende italiane? Forse Emanuele Croci lavora per un'azienda Turca?

A questo punto sospetto che sia tu che, anonimamente, usando la funzione "segnala messaggio" mi hai inviato il link di un'azienda produttrice di controlli similari.

Link al commento
Condividi su altri siti

Ciao,

x Dario: forse potevi leggerti la discussione che avevo linkato nel post precedente.... almeno capivi meglio la situazione!

comunque ti preciso che non avevo già sperimentato nulla: semplicemente...

- sono partito da una applicazione (albero elettrico, già realizzata) che ha alcuni punti in comune con questa, ma è più semplice, ha requisiti di performance meno stringenti e per realizzare la quale avevo avuto alcuni validi consigli dal forum

- dopo il buon esito di questa 1a applicazione mi è venuta in mente la possibilità di realizzarne un'altra, più ambiziosa, con un hardware di taglia superiore (cpu 314 versus 312)

- ho chiesto un parere, ed ho ricevuto alcuni validi argomenti tecnici (anche per e-mail, voi non li vedete tutti)

- da qui ho riflettuto, fatto calcoli, riesaminato dati sperimentali della mia 1a applicazione .....e questo è quanto.... non ho la certezza che funzionerà, ma un buon 50% di possibilità ce le ho, e se non funziona ora la tengo nel cassetto e aspetto l'uscita di una CPU S7 più potente. Se mi va male perdo un mese di lavoro, se mi va bene risparmio parecchi soldi sull'hardware....

per le uscite analogiche, non ho ancora usato la tecnica di misura di Livio (oscilloscopio). direi comunque un tempo molto basso, tipo 1ms o giù di lì, onestamente non ho idea....

x mbellini: ti ringrazio per i tuoi messaggi che mi hanno aiutato a capire il problema.

Sono d'accordo sul fatto che esistono validi controllori che integrano CN e PLC a costi contenuti.

Ad esempio un anno fa ho provato per 3 mesi un CN della S&H (se posso dirlo...) e l'ho anche raccomandato sul forum perché mi sembrava molto valido.

Ho provato pure un PLC giapponese: non male, aveva qualche funzione di CN incorporata, qualche magagna ma nel complesso era interessante.

Purtroppo, però, non esistono solo le ragioni tecniche e di costo hardware, ne esistono anche altre:

- costi di formazione: questa eventuale macchina mi copre magari il 5-10% del fatturato; se riesco ad usare S7-300 avrei un'unica piattaforma hardware-software per tutte le mie macchine; se adotto un altro CN devo insegnare a tutti i miei programmatori ad usarlo altrettanto bene quanto Step7. Se ho TOT programmatori, quanto mi costa??

- ragioni commerciali: vendiamo in tutto il mondo e S7 a noi non lo contesta nessuno. Ma se monti un hardware particolare potresti trovarti fuori da certi capitolati o fuori dalle grazie dell'acquirente.

- motivi di riusabilità: per noi Step7 è il vero JAVA dell'automazione: write once run everywhere.

Mi capita spesso di riciclare pezzi di programma che ho scritto anni fa su macchine nuove totalmente diverse, perché il cliente ha richiesto una funzione nuova o realizziamo una macchina speciale. Facciamo macchine speciali e su commessa, avere in tasca una buona dote di funzioni motion-control pronte all'uso per qualsiasi evenienza è per me un asso nella manica. E preferisco averle scritte in Step7, che riutilizzo dove voglio.

Ovviamente queste osservazioni si riferiscono alla ns. realtà particolare e non tolgono validità alle tue idee e alla bontà ed economicità del tuo hardware.

Grazie a tutti e saluti!

Emanuele

P.S. a proposito... leggo ora il post di Livio. Ovviamente le mie osservazioni si applicano non a un prodotto particolare, ma al fatto di realizzare uno standard interno. Se usassi al 95% Allen Bradley avrei scritto "Allen Bradley è il JAVA dell'automazione". Ciao!

Modificato: da emanuele.croci
Link al commento
Condividi su altri siti

x Orsini

Esattament cosi.

Un problema di interpolazione non mi sembra specifico per un PLC.

Ma per un motion control.

Quindi un buon progettista che fa usa il PLC? cosi nel frattempo il concorrette di un ipotetico progetto che usa un motion control rapidamente va sul mercato e quello con il PLC impiega mesi di lavoro e magari visti i limiti chissà se v mai.

Nel mio lavoro è capitato spesso di vedere simili situazioni con risultati scadenti e altro che time to market.

Se è didattica va bene tutto.

Dico aziende italiane perchè in italia tanti fanno sistemi PAC o INC, ma a volte solo perchè si chiama siemens non si prendono in considerazione soluzioni semplici e potenti.

Poi di certo in altri casi diventa indispensabile usare soluzioni di nome.

Ma certo usare un S7 solo PLC e fare interpolazioni lineari, circolari e assi elettrici insomma non è certo buona progettazione.

Forse i cinesi e i giapponesi ci battono perchè non si sono fossilizzati con queste strade.

Link al commento
Condividi su altri siti

Per "mbellini" non credo tu abbia letto bene. Io affermo che si sta usandi un prodotto non specifico per risolvere un problema specifico!

Non importa quello che usi, ma come lo usi!

Perchè usare un autoreno per andare a far compere al supermercato? Poterbbe essere sufficiente la bicicletta. L'importante è che la bicicletta sia perfettamente funzionante!

Se tu conoscessi nella realtà le macchine giapponesi, e non solo per sentito dire, sapresti che spesso vengono usati prodotti generici, come i PLC, per risolvere problemi di posizionamento e regolazione. E non solo.

Certo che è molto più facile spendere 2000 € per risolvere un problema che può essere risolto spendendone solo 500 € più un'accurata progettazione. Questo non incide sui tempi di realizzazione, almeno per chi è capace e sa quello che sta facendo.

La concorrenza si vince, sopra a tutto, dando al cliente quello di cui a bisogno al prezzo più conveniente (per entrambi: fornitore e acquirente). Questo lo si ottiene anche con un'esatta valutazione dei costi delle possibili soluzioni.

Se leggi l'ultimo post di Emaunuele Croci spiega bene le ragioni della scelta. Sono tutti argomenti che condivido pienamente e che, a mio avviso, denotano un aproccio serio e completo di tutte le problematiche della fornitura.

E con questo chiudo la polemica sull'uso o meno di componenti specifici.

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

  • 7 months later...
emanuele.croci

Ciao,

Ripesco questa vecchia discussione perché nel frattempo le cose si sono evolute e adesso sto testando un esemplare "semplificato" dell'oggetto che vi ho descritto.

Diciamo ad es. che in questo caso una precisione di +- 2mm può essere sufficiente.... (ecco perché dico "semplificato").

Sto facendo alcune prove "a mano" e tra poco mi costruirò un "plotter" per vedere su carta le mie interpolazioni, comunque i risultati non sono male, dovrei essere sotto a +-1 mm di errore.

(nota: ho provato una sinusoide alta 100mm e larga 400mm sul periodo completo)

La mia macchina semplificata legge tramite un encoder la posizione di un asse X, comandato da un'altra macchina e deve spostare il suo unico asse controllato Y in modo tale da seguire una traiettoria ben prestabilita, ad es Y=SIN(X).

E' quindi una specie di camma elettronica.

Vi chiedo alcuni consigli, se potete aiutarmi:

- Le curve che sto facendo adesso sono sinusoidi, cioè del tipo Y=SIN(X).

SIN(X) è il mio master virtuale che Y deve inseguire il più precisamente possibile.

In pratica Y è "in albero elettrico" con SIN(X).

Quale valore di Feedforward è il migliore da usare nel PID che controlla questo albero elettrico? (io ho una mia teoria ma non mi convince moltissimo...)

Le precisioni che ho visto le ho viste con FF=0... confido di poter migliorare di 10 volte la precisione con un buon FF.... o sono ottimista?

- La mia FC di controllo PID gira adesso nel OB35 del S7, è quello richiamato a tempo, posso richiamarlo ogni 5 o 10 ms senza far andare in errore il programma.

Però ciclerebbe più velocemente se lo mettessi in OB1, visto che OB1 cicla in 1-2 ms....

ora mi chiedo: sicuramente se uso integrale o derivativo è importante che gli intervalli di tempo siano sempre uguali, ma visto che uso solo il proporzionale FORSE potrei richiamarlo il più possibile sacrificando l'uguaglianza dei tempi di campionamento.... non mi piace molto, ma è una strada che può avere degli sbocchi?

Grazie e Ciao,

Emanuele

Modificato: da emanuele.croci
Link al commento
Condividi su altri siti

Perbacco Emanuele, una bella macchinetta. Mi piacerebbe avere qualche dettaglio in più sulla meccanica, così per curiosità tecnica. Chissà se MBelini leggerà questo post :P

Relativamente alle tue domade, vediamo se posso darti qulche indicazione utile.

Non usare il campionamento a temporizzazione costante, anche in solo proporzionale, introduce rumore dato dal jitter di fase. Runore <===> errore di posizione.

Per il tempo di aggiurnamento devi anche valutare in quanto tempo risponde il tuo azionamento. E' inutile campionare a 5ms se l'azionamento taglia a 50Hz. E' vero che il campionamento deve essere pù veloce di un ordine del massimo errore ammesso (trasformato in tempo), però se l'azionamento non segue, non serve. E' come frustare un somaro per farlo correre al derby :(

Se l'ampiezza della tua sinusoide è nota e conosciuta, o comunque dipende da un parametro ben preciso, io userei feedforward con peso pari al 90%. Cerco di spigarmi meglio con un esempio.

Immagina sen90 equivalga ad un riferimento di velocità per Y = alla velocità massima operativa. Ovviamente la macchina dovrà avere un surplus di velocità per effetture le correzzioni. Io tarerei il tutto per avere questa velocità con 9v di riferimento e questi 9v sarebbero generati dal feed forward. Poi farei pesare la massima uscita del P per 1v. L'ideale sarebbe avere l'uscita D/A = 10v e poi un sommatore HW esterno.

Ma anche facendo tutto Sw i risultati, dalle mie esperienze, sono validi. Tutto questo se la parte driver e la parte generatore FF sono sufficientemente precise da avere il nassimo errore << 10%.

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

  • 1 month later...
emanuele.croci

Ciao,

torno sull'argomento per un resoconto delle prove effettuate (Livio, spero ti siano arrivati i miei dettagli sulla meccanica).

Ho finito le prove in officina e tra pochi gg sarà messo in servizio il tutto (da un mio collega, io non sono riuscito ad andare)

Apparentemente (prove di plotteraggio su carta ed esame dell'errore di inseguimento a video) SENZA FEEDFORWARD ho un errore tipico di +/- 0.5 mm, massimo di +/- 2mm. CON FEEDFORWARD arrivo ad errore tipico di +/- 0.2 mm, massimo di +/- 0.5 mm, quindi molto bene.

Le prove però le ho fatte muovendo a mano la ruota metrica che dovrà leggere la posizione dell'asse X. Ritengo tali condizioni peggiorative rispetto a quelle presenti sulla macchina, che è sicuramente più brava nel muovere con regolarità l'asse X (controllato in velocità da brushless) di quello che posso fare io a mano.

Ho usato come feedforward, banalmente... Vfeed y= Vx * (dy/dx),

dove Vx è la velocità dell'asse X misurata ogni 100 ms leggendo gli impulsi encoder, mentre dy/dx è la derivata della funzione setpoint(x), cioè sin(x).

Riesco ad usare il OB35 con tempo di scansione 5msec (leggo direttamente dalla periferia anzichè usare il SFB47, è più veloce).

Vorrei chiederti Livio alcuni ragguagli sulla tua risposta precedente:

- il fatto di "pesare" con 9 volt il FF e 1 volt il P, serve per evitare di "mandare in distorsione" la risposta o qualcosa del genere? Io attualmente uso 10 volt sul FF e 10 volt sul P (se la somma è >10 la pongo = a 10): è sbagliato?

- risposta dell'azionamento: noto che l'inverter + motore asincrono ha una risposta meno pronta del brushless (il brushless ha una risposta veramente "bruciante", si nota bene quando si collega il resolver al contrario e l'asse parte a bomba nella direzione opposta...). Ciò è dovuto allo scorrimento dell'asincrono? (più eroga coppia => più ha scorrimento e questo gli fa in qualche modo da ammortizzatore) oppure è una caratteristica costruttiva dell'inverter? ma non credo....

Ciao e Grazie!

Emanuele

Link al commento
Condividi su altri siti

Livio, spero ti siano arrivati i miei dettagli sulla meccanica).

Si mi sono arrivati in momento in cui ero molto preso da un paio di problemi; ho letto al volo la mail, ho dimenticato di darti un cenno di risposta e me ne scuso, poi l'ho lasciata li (spero di non averla cancelleta :( ).

- il fatto di "pesare" con 9 volt il FF e 1 volt il P, serve per evitare di "mandare in distorsione" la risposta o qualcosa del genere? Io attualmente uso 10 volt sul FF e 10 volt sul P (se la somma è >10 la pongo = a 10): è sbagliato?

Il motivo principale è per non avere saturazione. Io uso ripartire 90%ff e 10%fb, altri usano 80% e 20% ( la mitica velotto di alcuni cn). L'importante è avere l'uscita del PID <=10v e poi, prima di sommare, dividere per 10. Apparentemente in questo modo devi aumentare il guadagno proporzioanle di 10 e diminuire il tempo di integrale di 10, ma alla fine di tutto il loop i valori tornano come prima. Allora perchè fare quello che sembra un inutile giro di pista? Perchè sei sicuro di non saturare e perchè, come sottoprodotto, ottieni una maggiore semsibilità di taratura.

noto che l'inverter + motore asincrono ha una risposta meno pronta del brushless

Se non fosse così ti consiglierei di sostituire il brushless con uno "buono" :lol:

L'unico motore che può tenere testa ad un brushless è un cc a mgneti permanenti, anzi se usi un terre rare con rotore a disco riesci a spremere qualche radiante in più in accelerazione, ma qui andiamo su applicazioni particolari.

Non ricordo, ma suppongo che sia il brushless asservito all'asincrono e non il viceversa. Perchè in questo caso il campionamento a 5 ms ha un senso, altrimenti puoi benissimo raddoppiarlo.

Piuttosto, non vorrei offenderti suggerendoti una cosa ovvia, verifica che la correzzione venga generata sempre nel medeismo intervallo; l'algoritmo PID non ha sempre il medesimo tempo di esecuzione e se generi l'uscita al DA subito puoi avere un jitter che ha coe effetto un aumento del rumore (la spoegazione teorica è lunga). IO uso la tecnica di generare l'uscita al campionamento successivo a quello in cui l'ho calcolato. Il ritardo costante di un campionamento non ha effetti pratici rilevanti.

Complimenti e auguri. E' bello sapere che c'è ancora chi pensa per risolvere i problemi e no fa come al supermercato: guarda l'etichette e compra la scatola con il prodotto precotto :(

Link al commento
Condividi su altri siti

emanuele.croci

Ciao,

premetto che mi hanno portato freschi freschi dalla Norvegia alcuni pezzi realizzati con la "nuova" macchina... da vedere sono una meraviglia!!

Quindi questo esperimento con la versione "semplificata" (camma elettronica) è andato senz'altro bene.

Vorrei far notare a Livio e agli altri alcuni punti:

- Da quanto ho capito dagli interventi di Livio il collo di bottiglia nella precisione di un sistema del genere non è tanto il PLC ma piuttosto l'inverter. E' giusto? In effetti mi dici che non ha nemmeno senso campionare veloce quanto potrei perché comunque l'inverter "non gli sta dietro". Estremizzando, potrei usare una CPU più scarsa per risparmiare... (ora uso una 313C). Comunque un risultato sorprendente, viste le premesse in cui "si metteva la croce" al povero PLC.

- L'inverter che uso è vettoriale, è un Micromaster 440. Io lo sto però pilotando in V/f pensando che nell'usare la regolazione vettoriale mi si rallenti la risposta (deve fare più calcoli). E' sensato?

- Il discorso di dare 9 volt al FF e solo 1 al proporzionale mi fa paura per un motivo: se mi sbaglio a calcolare il FF e faccio un errore ad es. del 25% il mio regolatore non avrà più la possibilità di recuperarsi la posizione da solo....

- Ho guardato sul nostro gestionale quante ore mi ci sono volute a consuntivo per realizzare il tutto: 50 ore comprensive di studio, programmazione e collaudo. La programmazione vera e propria sarà durata 25-30 ore.

Mi chiedo: se avessi usato un hardware nuovo non è che ci sarebbero volute PIU' ORE solo per capire come si cabla, come funziona, leggere i manuali, smanettare con i software...? Poi anche lui deve essere programmato....

Ciao, Emanuele

Link al commento
Condividi su altri siti

Emanuele sono contento quasi l'avssi fatto io. Sono sempre stato un sostenitore di chi usa il crvello per pensare e non solo per masturbrsi mentalmente.

...collo di bottiglia nella precisione di un sistema del genere non è tanto il PLC ma piuttosto l'inverter.
Da come descrivi sembra sia così. Bisognerebbe conoscere la frequenza di taglio del sistema motore - inverter. Potresti misurarla semplicemnete. Generi un riferimento fisso, 5v p.e,, a cui sovrapponi una sisnusoide di 0.5Vpp, frequenza 1Hz. misuri la variazione di velocità corrispondente. Mantenendo costante l'ampiezza, aumenti la frequnza; continui, misurando il delta v, fino a che questo vale circa 0.707 quello di partenza. Questa è la freqenza di taglio del sistema. Se per esempio fosse pari a 20Hz, scendere sotto 50ms di tempo di campionamento serve a niente, l'azionamento non riesce a seguire le correzzioni.

In effetti potresti scendere di classe di CPU. Se pensi che con una vecchia 214 riuscivo a choidere l'anelllo di posizione in 10ms. (non faceva molto di più che posizionare)

...nell'usare la regolazione vettoriale mi si rallenti la risposta (deve fare più calcoli).

Se per questa ragione l'azionamento riduce la banda passante è imperativo cambiare marca e modello di azionamento :angry:

Il controllo vettoriale deve avere una banda passante almeno uguale al V/f, con il medesimo motore, apportando i vantaggi di un miglior controllo di coppia e maggior coppia ai passi regimi, cosa che automaticamente comporta la possibilità di accelerazioni più pronte.

Mi chiedo: se avessi usato un hardware nuovo non è che ci sarebbero volute PIU' ORE solo per capire come si cabla, come funziona, leggere i manuali, smanettare con i software...? Poi anche lui deve essere programmato....

Questo è un altro sintomo di approccio intelligente ai problemi. Purtroppo non siamo rimasti in molti a pensarla così. Sarei felice se venissi sommerso da messaggi di persono che lavorano con metodologia simile.

Oggi, sempre più, vuoi per pigrizia mentale, cuoi per evitare "rogne" si tende ad acquistare sempre più prodotti preconfezionati.

Qualcuno ha anche giustificato le scelte con "Sai con tutti i cervelloni che ha una Siemens o una GE, cosa devo star li a perder tempo io per inventare l'acqua calda"

Senza pensare che forse non si tratta di reinventare l'acqua calda, ma un modo diverso di riscaldarla.

Tempo addietro, in altro post sui posizionamenti, ho scritto che per fare un posizionamento con un S7_22x, se si sapeva cos fare, bastavano 4 ore di lavoro qualcuno mi ha tacciato di eccessivo ottimismo. Se si pensa che di posizionamenti ne ho realizzati parecchie decine di tipi diversi, facendo il paragone

con il tempo impiegato per il primo interpolatore con PLC i conti tornano.

Link al commento
Condividi su altri siti

Dimenticavo. Il feedforward al 90%. Questo è un particolare che devi calcolare bene. Se il progetto è fatto bene sai prima quali sono le condizioni limite. Comunque considera che se la correzzione supera il 15% ci deve essere qualche cosa di sbagliato nel progetto. Esistono poi algoritmi che ti permettono di riportare il feedforward al giusto livello in caso di lavoro in condizioni anomale.

Link al commento
Condividi su altri siti

emanuele.croci

Ciao Livio, grazie 1000 per i consigli e l'entusiasmo!

Mi è tutto chiaro quanto dici, salvo il discorso della frequenza di taglio: come posso misurare il delta v? (delta velocità..?)

Mi basta guardare quello che dice il display dell'inverter (che non essendo retroazionato da encoder può essere affetto da un errore di scorrimento) oppure devo trovare un sistema per misurarlo con precisione? (tipo applicare un 2° encoder provvisorio sull'albero veloce)

E' un dato che forse posso trovare nella documentazione...?

Ciao e grazie!

Emanuele

Link al commento
Condividi su altri siti

Scusa Emanuele, ma ho dato per scontato alcune cose.

Si il delta v è la variazione di velocità. Per una prima valutazione potrebbe bastare l'indicazione del display dell'inverter, se fosse istantaneo. Più che un secondo encoder provvisorio sarebbe utile una tachimetrica, la cui uscita potresti osservarla direttamente sull'oscilloscopio.

Ahi, ahi sto dando per scontato che tu possa disporre di un oscilloscopio. Se è disponibile è il sistema più semplice e facile. Rivedresti sulla tachimetrica la nedeisma forma d'onda della modulazione e potresti apprezzare immediatamente quando comincia a calare d'ampiezza.

Se non disponi di un oscilloscopio puoi misurare le deviazioni di frequenza dell'encoder sul motore, solo che è meno agevole, come lo è la misura della deviazione di frequenza dell'inverter. Oltre al fatto che la misura sarebbe inficiata dallo scorrimento come, giustamente, hai notato.

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.

×
×
  • Crea nuovo/a...