Vai al contenuto
PLC Forum


Controllo asse oleodinamico


slevin96

Messaggi consigliati

Ciao a tutti,

 

scrivo questo post per chiedere consigli a voi più esperti per il controllo di posizione di un'asse oleodinamico.

 

Supponendo di avere un'asse controllato da una valvola proporzionale(profinet/uscita analogica) con annesso encoder e voler fare un controllo sia in posizione che in velocità, voi come fareste?

L'applicazione richiede una precisione con tolleranza di +-0.2mm, partendo da una quota di 0.00mm per arrivare ad esempio a 150.00mm, come si può realizzare? Vedo che si usa il controllo PID con retroazione ma oltre alla posizione avrei anche la velocità da regolare, per esempio a 130.00mm andare ad una velocità di rallentamento e soprattutto l'idea sarebbe quella di non andare a correggere l'eventuale errore ma di andare a prevenirlo, quindi a questo punto la soluzione migliore qual è?

Step successivo sarà il sincronismo tra 2 assi.

 

Ringrazio anticipatamente

 

 

p.s. ma nella sezione didattica si possono ancora scaricare i vari .pdf? A me da errore nel scaricarli

Link al commento
Condividi su altri siti


ciao slevin96,

 

prerequisiti:

1) valvola proporzionale in analogica con modulo di uscita PLC che supporta l'isocronia, idem per la riga ottica / trasduttore collegato con un modulo che supporta l'isocronia oppure valvola in Profinet isocrono e e riga ottica come sopra.

2) creare un oggetto tecnologico collegato alla valvola e alla riga ottica

3) creare una camma per la linearizzazione della ricopertura della valvola a meno che la valvola non abbia l'elettronica a bordo che favorisca una sorta di linearizzazione

4) gestire l'oggetto tecnologico in posizionamento con i blocchi dedicati che trovi sulla destra dello schermo tecnologia\motion control\ tutti i blocchi che cominciano con MC_

5) giocherellare con l'integrale che deve essere piuttosto sordo rispetto ad un motore brushless e darci dentro casomai con il proporzionale 

 

Quanto alla precisione di posizionamento dipende da tanti fattori, primo fra tutti il circuito oleodinamico che se è fatto bene consente tolleranze di 0,02 al posto di 0,2 mm. Il vero problema è avere le competenze per poter dimostrare ai meccanici che il problema non è tutto del software ma c'è pure il loro zampino, tipo contropressioni, valvole proporzionali dimensionate male o semplicemente troppo grossolane per ciò che si deve fare. In questo caso la funzione di oscilloscopio può fugare qualsiasi dubbio e fornire preziosi consigli.

 

Se poi vai avanti di uno step usi il gearing, se si tratta di una pressa usi un virtuale e ci agganci gli assi reali al profilo di movimento, se si tratta sempre solamente di 2 assi al massimo fai una gestione portale cartesiano anche se i 2 assi si muovono nella stessa direzione.

 

 

Link al commento
Condividi su altri siti

Volevo rispondere, ma @pigroplc ha detto tutto cento volte meglio di come avrei fatto io.

 

Unica cosa che aggiungo, è che se si tratta solo di un asse di posizionamento, sono sufficienti le funzioni a disposizione nelle cpu normali. Se, invece, devi controllare due assi sincronizzati (salvo il caso di un banale gearing), devi passare alle cpu con funzioni tecnologiche (quelle con la "T" nel nome).

Link al commento
Condividi su altri siti

Vi ringrazio per le risposte. Ma quindi per capire meglio, dovrei creare un oggetto tecnologico in posizione? Il punto 3 non mi è chiaro.

 

Cioè andrei a gestirlo come un azionamento elettrico? Utilizzo sinceramente le librerie LaxisCntrl che mi trovo bene per S120/G120

 

Mi sembrava di aver già provato a creare un oggetto tecnologico in posizione per valvole proporzionali profinet però se non ricordo male non riuscivo ad assegnargli all'oggetto i telegrammi, forse dovrei psitolarci un po' di più, o forse devo creare un TO per il pid e un TO per il posizionamento?

Link al commento
Condividi su altri siti

13 ore fa, slevin96 ha scritto:

p.s. ma nella sezione didattica si possono ancora scaricare i vari .pdf? A me da errore nel scaricarli

 

Purtroppo c'è stato un incendio del data center in cui era "appoggiato" il forum ed alcuni documenti sono stati persi in modo definitivo.

Link al commento
Condividi su altri siti

12 ore fa, slevin96 ha scritto:

Vi ringrazio per le risposte. Ma quindi per capire meglio, dovrei creare un oggetto tecnologico in posizione?

Sì. Che l'attuatore sia un motore o una valvola proporzionale, per il plc non cambia nulla.
Per te è come se gestissi un posizionamento con un motore pilotato con segnale analogico.

 

12 ore fa, slevin96 ha scritto:

Il punto 3 non mi è chiaro.

Una valvola proporzionale, a differenza di un azionamento elettrico, non ha una risposta lineare (a meno che, come detto da Pigroplc,non abbia a bordo l'elettronica per renderla lineare), quindi dovrai correggere il segnale in uscita dall'oggetto tecnologico prima di inviarlo alla valvola.
Potrebbe essere utile configurare l'asse impostando Tipo di azionamento = Profidrive e Collegamento dati = Blocco dati (devi creare un DB con una struttura di tipo "PD_TELx", dove x è il numero del telegramma che intendi usare e, nel caso specifico, dovrebbe andare bene 1). Poi inserisci gli OB "MC-PreServo" e "MC-PostServo", elaborati rispettivamente prima e dopo di "MC-Servo", nei quali effettui la correzione per rendere lineare la risposta dell'idraulica.
Se la risposta della valvola è già corretta internamente dalla sua elettronica, puoi saltare questi passaggi e configurare l'asse come azionamento con segnale analogico.
Questo, almeno, è quello che credo si dovrebbe fare, ma io non ho mai lavorato con assi idraulici.

Su questo tipo di controlli, l'esperto che ti saprà dare indicazioni precise è @pigroplc.
 

Link al commento
Condividi su altri siti

1 ora fa, batta ha scritto:

Una valvola proporzionale, a differenza di un azionamento elettrico, non ha una risposta lineare (a meno che, come detto da Pigroplc,non abbia a bordo l'elettronica per renderla lineare), quindi dovrai correggere il segnale in uscita dall'oggetto tecnologico prima di inviarlo alla valvola.

 

Purtroppo slevin96 non da alcuna indicazione ne della valvola, ne dell'applicazione finale.

In genere le valvole dei migliori produttori (Moog, Parker, etc.) sono dotate di un'elettronca interna, in modo da garantire un'apertura lineare in funzione del segnale di riferimento.

Poi sarebbe interesante conoscere l'applicazione:

18 ore fa, slevin96 ha scritto:

Step successivo sarà il sincronismo tra 2 assi.

 

Si tratta forse di un "taglio al 2volo"?

Link al commento
Condividi su altri siti

Si scusate, la valvola è della duplomatic e ha già un elettronica interna anche se mi piacerebbe avere comunque una visione completa, l'applicazione riguarda la deformazione del tubo ma in realtà volevo delle "linee guida" in modo da saper come gestire un asse oleodinamico

 

Grazie 

Link al commento
Condividi su altri siti

Come detto, se la risposta della valvola è lineare, ti basta gestire l'asse come un qualunque azionamento pilotato con uscita analogica.

 

Esempio:

image.png.22a46b36c2802613ff0e78338f0f55de.png

Link al commento
Condividi su altri siti

Il 29/5/2022 alle 20:56 , slevin96 ha scritto:

Vi ringrazio per le risposte. Ma quindi per capire meglio, dovrei creare un oggetto tecnologico in posizione? Il punto 3 non mi è chiaro.

Si, devi creare un oggetto tecnologico in posizione. Il punto 3 cerco di spiegartelo meglio:

Ammettiamo pure di aver l'elettronica a bordo della valvola che compensa almeno parzialmente la ricopertura dello spool, tanto dipende dall'accoppiamento pompa-valvola proporzionale. Come ben saprai gli impianti si fanno con i componenti commerciali che si trovano e potrebbe darsi che la valvola proporzionale modula (cioè al suo cambio di percentuale di apertura cambia la velocità) da 0 a 50% dopodiché dal 50 al 100% non si ottengono particolari differenze di velocità, anzi, per assurdo potrebbe pure capitare che rallenta leggermente. 
In tal caso bisogna istruire il sistema che non si tratta di un motore che ha una risposta lineare cioè 10% di pilotaggio corrisponde al 10% della velocità, 20% di pilotaggio corrisponde al 20% della velocità ecc.

 

 

18 ore fa, slevin96 ha scritto:

ma in realtà volevo delle "linee guida" in modo da saper come gestire un asse oleodinamico

 

Quando si mischiano componenti di diversi costruttori purtroppo le linee guida sono piuttosto generiche. Se riguardi i miei 5 punti trovi le informazioni di base che ti servono.
Non è che non lo sappia, si tratta di linee guida mooolto vaghe, ma pure tu non ti sei prodigato a descrivere minuziosamente la tua applicazione. Ho fatto linee per tubifici per 12 anni della mia vita, e tu parli genericamente di deformazione del tubo....

 

 

Link al commento
Condividi su altri siti

Ciao a tutti,

 

ho provato a pistolare un po' con TIA, a seguito mi sono venute delle domande:

 

-Creo l'oggetto tecnologico in posizione e qui tutto ok, ma per il PID come lo vado ad integrare? Cioè il pid(compact per ora ho usato) ha in ingresso il "setpoint" che sarà presumo la quota da raggiungere e poi ha l'input, cosa dovrei metterci nell'input? L'encoder o l'uscita del positionigAxis? Nell'out metterò l'uscita per la proporzionale immagino. Oppure non ho bisogno del pid?

 

-Per quanto riguarda il creare la camma, ho visto che ci sono 3 tipi, una "TO_Cam" che si va a creare una camma elettronica, poi un "TO_Camtrack" e un "TO_outputcam" che si legano al positionigAxis, dovrei usare gli ultimi 2?

 

Scusate le domande stupide ma è la prima volta che mi imbatto in un'applicazione simile

 

Grazie

Link al commento
Condividi su altri siti

20 ore fa, slevin96 ha scritto:

-Creo l'oggetto tecnologico in posizione e qui tutto ok, ma per il PID come lo vado ad integrare?

Non devi integrare nessun PID, è l'oggetto tecnologico che si occupa di tutto. Se dovessi occuparti tu del PID, che razza di oggetto tecnologico di posizionamento sarebbe?

 

L'unico problema, nel tuo caso, è che stai lavorando con un sistema oleodinamico. Mentre con un azionamento elettrico c'è proporzzionalità tra il segnale di pilotaggio e la reale velocità, con un asse oleodinamico questa proporzionalità è tutta da dimostrare. Anche nel caso di valvole con una elettronica che dovrebbe correggere gli errori di linearità, Pigroplc dice (e fidati, se te lo dice lui, è così!) che è veramente difficile che il controllo sia veramente proporzionale.

Quello che serve quindi all'oggetto tecnologico non è un PID per il controlo di posizione, ma le informazioni su come reagisce l'asse ai comandi.
Come spiegato in precedenza, per risolvere questo problema anziché collegare direttamente l'uscita analogica all'oggetto tecnologico, dovrai appoggiare l'oggetto tecnologico ad un DB e, in MC_Preservo e MC_Postservo dovrai mettere le istruzioni per rendere lineare la risposta dell'asse.
Nel tuo caso, la posizione reale dell'asse non ha bisogno di correzioni, perché ti arriva da un encoder. Dovrai invece correggere il riferimento da inviare alla valvola proporzionale, probabilmente tenendo conto anche della direzione del movimento (la stessa portata istantanea di olio, su un cilindro, produce velocità diverse nelle due direzioni).

Link al commento
Condividi su altri siti

15 ore fa, batta ha scritto:

Pigroplc dice (e fidati, se te lo dice lui, è così!) che è veramente difficile che il controllo sia veramente proporzionale.

Grazie Batta per la fiducia che riponi in me. 😀 
E' lo spool della valvola stessa che non permette la linearità così come l'interazione fra pompa e valvola, delta pressione della valvola stessa ecc. ma non mi voglio dilungare troppo.

Io il controllo degli assi controllati lo facevo con Simotion che mi permetteva agevolmente di collegare l'uscita della valvola con la camma che andavo a trovare sperimentalmente. La camma quindi aveva come X la percentuale di apertura -100/+100% mentre sulla Y aveva la velocità reale misurata in anello aperto in fase di setup della pressa. Oggi mamma Siemens sta abbandonando il prodotto a causa di volumi insufficienti per loro per proseguire lo sviluppo quindi se si vuole fare il tutto con una CPU tecnologica bisogna trovare l'equivalente funzione, che potrebbe banalmente essere rimodulare l'uscita analogica secondo una funzione matematica che simula la camma.
Altra cosa che mi piacerebbe provare ma purtroppo manca il tempo per fare delle prove è utilizzare invece dell'oggetto tecnologico un PID con valori di integrale, proporzionale e derivativa consoni ai decimi di secondo che richiede un posizionamento.

 

 

Link al commento
Condividi su altri siti

Non è difficile, ancora nel secolo scorso (🤪)feci il controllo di posizione di una pressa oleodinamica (valvola proporzionale Moog) con PID che girava su una S7-224; il trasduttore di posizione era un LVDT.

 

Con quella CPU chiudevo l'anello ogni 10 ms. Penso che con una CPU di quelle attuali sia molto più facile e si possa andare anche più veloci.

Qualche anno prima avevo fatto il controllo di una cesoia volante, con cilindro Parker e valvola Moog, però il controllo era realizzato con elettronica dedicata.

Link al commento
Condividi su altri siti

2 ore fa, Livio Orsini ha scritto:

Penso che con una CPU di quelle attuali sia molto più facile

di sicuro si può scandire a tempi inferiori sempre che sia necessario. Il vero problema è che non si ha mai tempo di fare delle prove vere con un "muletto" e quando la macchina è pronta (in ritardo) deve funzionare bene e subito. Io il pallino del PID l'avevo da anni ma non sono mai stato in grado di provarlo davvero. Alla fine ho sempre dovuto utilizzare la soluzione consolidata sulla quale ero preparato. Grande differenza può fare il fatto di piegare in aria o avere uno stampo con sottosquadra e molle ad azoto sotto, in quel caso bisogna andare a cannone fino alla compressione dello stampo. E' che fino a quando slevin96 non dichiara il tipo di macchina siamo sempre nel campo delle 100 pertiche.

 

Link al commento
Condividi su altri siti

3 ore fa, pigroplc ha scritto:

in quel caso bisogna andare a cannone fino alla compressione dello stampo.

 

Si può agire anche molto di feedforward, bliccando il regolatore sino a quando l'errore di posizione non è minore di una soglia, tra l'altro è la strategia che ho usato per quella pressa che serviva a per i riccioli delle balestre.

Mi ero fatto anche un simulatore in VB, devo averlo ancora archiviado su uno dei 100 CD che usavocome archivio.

 

3 ore fa, pigroplc ha scritto:

E' che fino a quando slevin96 non dichiara il tipo di macchina siamo sempre nel campo delle 100 pertiche.

 

 

E una cosa comune a molti utenti, chiedono consigli ma sono restii a fornire le informazioni, non so se per pudore o per paura.😉

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

  • 7 months later...

Buongiorno, anche io sto facendo delle prove per sviluppare un controllo di posizione asse idraulico tramite oggetto tecnologico.

Come detto da @batta risulta essenziale utilizzare MC_Preservo e MC_Postservo e, tal proposito, vi è anche una specifica guida di Siemens proprio riferita a questi casi: https://support.industry.siemens.com/cs/document/109741575/using-the-mc-preservo-and-mc-postservo-organization-blocks?dti=0&lc=en-US

 

Sorge però una questione: i TO di Siemens hanno come riferimento di posizione un encoder (assoluto o incrementale che sia) mentre noi abbiamo un trasduttore lineare da segnale 4-20mA o 0-10 V. Secondo la guida sopra citata, questo valore va elaborato in MC_Preservo con specifico FB SimpeEnc e quindi passato al Telegramma standard.

Però questo mi convince ben poco e, a seguito di svariati tentativi, non riscontro una corretta interpretazione della posizione nell'oggetto tecnologico.

Modificato: da Fabio96
Link al commento
Condividi su altri siti

1 ora fa, Fabio96 ha scritto:

Buongiorno, anche io sto facendo delle prove per sviluppare un controllo di posizione asse

 

Prino messaggio di un nuovo utente che, probabilmente, non ha letto il regolamento che ha liberamente accettato.

Il rgolamento, per evitare confusione nelle risposte, vieta gli accodamenti. Bisogna sempre aprire una nuova discussione.

Inoltre questa discussionen è inattiva da 7 mesi.

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...