Vai al contenuto
PLC Forum


Pid Per Controllo Valvola Proporzionale


Alexo87

Messaggi consigliati

Salve a tutti sono in possesso di un PLC S7-200 CPU 216-2 con modulo analogico EM235 e ho bisogno di creare un controllo PID su una valvola proporzionale di controllo portata. Questa vavola regola la portata d'aria che alimenta un cilindro pneumatico che si può muovere avanti e indietro e la sua posizione viene letta da un encoder incrementale solidale ad esso.

Io sono uno studente di ingegneria e questo progetto è per l'università ma ho molta poca dimestichezza con i PLC, sono riuscito a far funzionare dopo vari problemi il software STEP7 micro-win su windows 8.1 ma riesco a fare cose molto basilari. Diciamo che sulla teoria ho abbastanza chiara la questione ma realizzarla in pratica con un PLC è un'altra cosa. Sono riuscito anche a trovare i datasheet di encoder e valvola con relativi dati elettrici ma qui mi sono fermato perchè con collegamenti e programmazione PLC sono messo male.

Ringrazio anticipatamente qualsiasi aiuto a riguardo e se ci fosse bisogno posso fornire dati più specifici sui componenti.

Link al commento
Condividi su altri siti


.....ma riesco a fare cose molto basilari.

Forse ti serve un corso più approfondito sull'argomento, non pensi?

O vuoi che qualcuno faccia il lavoro per te con un semplice messaggio nel forum?

Di solito se posti uno schema od un tuo lavoro qualcuno è sempre gentile di darti una mano a correggerlo, ma fare tutto al posto tuo non penso proprio...

ciao

Link al commento
Condividi su altri siti

Come lo collegheresti l'encoder incrementale? Certamente non all'uscita analogica....Ti serve almeno un modulo di ingressi digitali e magari veloci e poi realizzare la funzione che discrimina la direzione di movimento, la posizione e la velocità....fatto tutto questo, bisognerebbe conoscere, come minimo di quale ordine di velocità si sta parlando: mm/s - m/s - Km/ora anni/luce.....

miiiiii.....ancora il 200 si studia? :blink::thumbdown: E' fuori produzione da una vita....Aggiornarsi al già vecchio ma non ancora pensionato S7-300 per l'università italiana potrebbe essere una rivoluzione.....copernicana...

e poi ..thinking....l'ha pensata giusta......nessuno lavora per voi.​

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Giuseppe Signorella

Ragazzi, non siate troppo severi........non mi sembra che Alexo87 abbia chiesto che qualcuno facesse il lavoro al suo posto, ma ha chiesto solo un pò di aiuto.

ingrazio anticipatamente qualsiasi aiuto a riguardo

Diamogli una possibilità ;)

In passato qui nel forum, ho letto di università che utilizzavano i logo della siemens per fare pratica. Un S7 200 a questo punto comincio a pensare che sia anche troppo di .......lusso. Visto i tempi che corrono, credo che difficilmente acquisteranno nuovi PLC. :wacko:

Inanzi tutto, la valvola che regola la portata d'aria come viene gestita? Presuppongo con un segnale analogico 0-10 oppure 4-20 ma. (Visto che sul PLC tu hai un modulo con uscita analogica. "EM235"), ed ovviamente il rilevamento della posizione lo effettui con l'encoder incrementale, con il quale pensi di discriminare anche il verso di movimentazione del pistone?

Partiamo dai collegamenti, cosa non sai fare o dove trovi difficoltà?

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Dato che viene menzionato un encoder incrementale, presuppongo che il cilindro voglia essere controllato in posizione. Se é cosi, credo che si possa fare a meno di scomodare un PID, o perlomeno la parte integrale e derivativa. Se sullo stelo del cilindro peró agiscono forze scostanti che tendono a muoverlo dalla sua posizione ...sono un altro bel paio di maniche.

Anticipo Livio consigliandoti prima di tutto di leggerti il suo ottimo tutorial sulle regolazioni, lo trovi nella sezione didattica. Li ti puoi fare un'idea più dettagliata di come funziona un PID e i campi dove puó essere impiegato.

Dopodichè come ti suggerivano gli altri hai bisogno almeno di due canali di conteggio veloce( potrebbe andar bene anche un contatore non veloce, se fossero note le dinamiche) che possano leggere l'incrementale ed il senso di conteggio... A questo punto devi crearti una funzione che in base all'errore piloti la valvola in modo che l'errore tenda a zero. Se l'errore è zero e nessuna forza agisce sullo stelo il riferimento di portata deve essere zero.

Link al commento
Condividi su altri siti

Ciao,

qui trovi tutta la documentazione ufficiale Siemens, le FAQ e qualche esempio; hanno cambiato il sito da poco.

Come ti consiglia Step80, io non scomoderei un PID, in ogni caso il 200 ce l'ha ed ha anche gli ingressi veloci per l'encoder, anche se dipende molto dalla release firmware della tua CPU (l'ultima era la 2.01).

Ti consiglio innanzitutto di leggere il manuale di sistema (lo trovi nel link che ti ho postato) e provare a scrivere qualcosina.

Link al commento
Condividi su altri siti

Questo lavoro in realtà è più un restauro nel senso che è una vecchia attrezzatura ritrovata all'università e ridotta piuttosto male. Io per il momento ho rimesso in funzione il PLC ma il progetto servirebbe per far vedere agli studenti come era possibile controllare in posizione un cilindro pneumatico che per sua natura non lo è, e anche per far conoscere il PLC che in molti (quasi tutti) non sanno nemmeno che esiste quindi già fargli vedere un vecchio 200 in funzione sarebbe qualcosa (e poi questo passa l'università). Ovviamente non ho nessuna pretesa che qualcuno faccia il lavoro al posto mio, il chiedere aiuto nel forum è solo stato un tentativo nell'ottica "chiedere non costa nulla al massimo mi si dice di no". Alle brutte se la cosa risulta troppo complicata si abbandona e l'attrezzatura torna nella polvere.

Per rispondere alle domande:

-Si il controllo è in posizione e si l'encoder andrà all'ingresso digitale e la valvola proporzionale all'uscita analogica.

-La valvola viene alimentata a 17-30 V mentre la tensione nominale è 0-10V e la corrente nominale è 4-20mA (Giuseppe ci ha preso subito) la posizione a riposo è 5V e 12mA.

-Allora in realtà il pistone parte da un posizione iniziale (c'è un finecorsa) e si deve fermare in una zona intermedia (misurata dall'encoder) quindi prima del finecorsa finale e poi tornare all'inizio. Quindi credo che il controllo del PID serva solo in un verso cioè dalla posizione iniziale a quella desiderata, per il ritorno indietro dovrebbe bastare il finecorsa a farlo fermare.

-Come controllo mi andrebbe bene pure un PI essendo in posizione (con il solo P avrei l'errore statico) ma non so quanta differenza in termini pratici di programmazione ci sia con il PID.

-Per il collegamento direi che ho problemi sia su encoder che su valvola, ovvero la valvola ha 4 fili: 24V (alimentazione) 2 terre e un filo che da il valore di riferimento che può essere (credo) o in tensione o in corrente ma non ho ben capito cosa sia meglio e perchè e se lo posso collegare direttamente al modulo analogico, mentre l'encoder ha 8 fili: 2 mi pare per alimentazione e 6 di "incremental signals" e qui comincio ad avere più problemi su quali e dove collegarli.

Comunque vada ringrazio per l'interessamento

Link al commento
Condividi su altri siti

Giuseppe Signorella

Andiamo a gradi:

-La valvola viene alimentata a 17-30 V

Questa credo che sia il range di tensione dell'alimentazione della valvola, che come da te detto, la tensione nominale è di 24 volt. Quindi per farla breve devi mandare alla valvola i 24 volt per alimentarla.

mentre la tensione nominale è 0-10V e la corrente nominale è 4-20mA

Qui mi confondi.

questi sono i segnali che (fanno aprire e chiudere la valvola) in genere o sono 4-20 ma oppure 0-10 volt, mai tutti e due insieme.

E' probabile che la valvola possa essere settata sul segnale che desideri utilizzare per controllarla.

la posizione a riposo è 5V e 12mA.

Lo avvale di più questo dettaglio, che però in genere è tipico delle valvole deviatrici, che hanno la posizione di chiuso a metà della loro corsa. Appunto se controllati in volt (0-10) a 5 volt è in posizione centrale, oppure se controllata in corrente (4-20ma) a 12 ma in posizione centrale (chiusa).

Detto questo, in genere è meglio utilizzare il controllo in corrente, (io lo preferisco quanto possibile).

Per l'encoder, bisognerebbe che riportassi cosa c'è scritto sopra, per capire come collegarlo/utilizzarlo.

Avendo 8 fili posso ipotizzare 2 per l'alimentazione, 2 per il canale A, (A+ A-) 2 per il canale B, (B+ B-) e due per il canale Z,(Z+ Z-) ma potrebbe non essere così.

In genere questi vanno collegati agli ingressi veloci del PLC.

Con i canali A e B, rilevi la posizione e la direzione di rotazione, mentre il canale Z genera un impulso ad ogni giro. Spesso utilizzato per fare un reset e/o azzeramento.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Prima di tutto, al di là del discorso funzionamento e del fatto che il 200 sia ormai superato almeno a livello didattico ti devo fare i miei complimenti per il nobile intento. Spesso i ragazzi che escono dall università un plc non l'hanno mai visto e se hai a disposizione l'attrezzatura ( ed anche molta pazienza e tempo libero aggiungerei) l'idea mi sembra lodevole.

Comunque, non sono un esperto di valvole proporzionali ma mi viene da pensare che la tua sia una sorta di 5/3 a centri chiusi dove a0 volt o 4mA corrisponda la massima apertura in un senso e a 10 volt o 20 mA corrisponda la massima apertura nell' altro senso.

Una cosa non ho capito: la posizione iniziale di cui parli corrisponde alla battuta meccanica del cilindro( quindi per esempio tutto indietro)? In questo caso il finecorsa potrebbe servire solo come controllo in fase di start ciclo(sono solo supposizioni). È che mi sembra strano che si usi un PID per far fuoriuscire lo stelo e poi per farlo rientrare lo si faccia allegramente "sbattere" contro il finecorsa..anche perchè un finecorsa è un segnale digitale e la tua valvola dispone di controllo analogico...

Solitamente se si ha la possibilità di scegliere si predilige il controllo in corrente in quanto è possibile coprire distanze maggiori senza avere valori sfalsati. Essendo appunto la tensione proporzionale al valore di corrente e a quello di resistenza, aumentando la lunghezza del cavo a parità di corrente circolante diminuirà la tensione dandoti dei valori non corretti...

Per il collegamento encoder vale quello che ti ha già detto Giuseppe, quindi è molto probabile che due fili siano l' alimentazione e 6 i canali rispettivamente A e A negato , B e B negato , Z e Z negato.Potresti non avere bisogno del segnale Z visto che la tua è una applicazione lineare e non hai bisogno di azzerare, almeno credo. Verifica se riesci a recuperare il tipo di encoder, se push-pull o differenziale anche se qui il problema compatibilità mi sembra inesistente se il sistema già funzionava.

P.s: per avere poca esperienza ti sei scelto proprio un argomento da niente per iniziare!

Link al commento
Condividi su altri siti

Livio Orsini
-Come controllo mi andrebbe bene pure un PI essendo in posizione (con il solo P avrei l'errore statico) ma non so quanta differenza in termini pratici di programmazione ci sia con il PID.

In genere in questi casi si usa proprio un regolatore PI.

Se guardi gli allegati al mio tutorial, quello citato da Matteo, c'è un programma per S7-214 di un PI per il controllo di posizione di una servovalvola. La differenza tra la tua applicazione e quella dell'esempio è che il trasduttore di posizione per l'esempio è un LVDT, quindi analogico.

Link al commento
Condividi su altri siti

Intanto grazie per le risposte e per i complimenti dell'iniziativa, spero dia risultati.

si la proporzionale è una 5/3 a centri chiusi

Allora per la valvola devo attaccare il filo di alimentazione a 24V, le due GND a 0 e il filo per il segnale a V0 del modulo EM235 (leggendo meglio il modello di valvola in questione ho visto che lavora solo a 0-10V, prima avevo letto una manuale più generico che indicava più tipi di valvole, sembrava un pò strano infatti).

Mentre per l'encoder ho individuato i 2 dell'alimentazione poi devo capire quelli di segnale, si il finecorsa serve per avere un segnale di posizione iniziale ma credo possa anche chiudere l'aria quando arriva a battuta, non è che sbatte il cilindro quando arriva a battuta, sono fatti in modo da smorzare l'arrivo e poi la forza esercitata dall'aria compressa non è elevatissima (si parla di 8 bar con un diametro di stelo piuttosto piccolo) e comunque questa idea che il PID funziona in un solo verso mi è venuta anche per un altro motivo, ovvero per i fili dell'encoder che sembravano essere utilizzati all'epoca (erano tagliati e sbucciati solo alcuni).

L'encoder è di tipo incrementale HTL (non so se è un problema per il forum inserire marca e modello del prodotto). Comunque questa è la descrizione fili:

e67dceb1d8d18f017269fc0f3c86967d.jpg

Io sul mio cavo ho GRIGIO ROSA VERDE BIANCO BLU ROSSO MARRONE GIALLO e la rete metallica esterna (credo vada a terra). Mentre i fili che sembra fossero utilizzati all'epoca sono solo 5 più la rete metallica esterna che era attaccata ad un occhiello, sono il BLU BIANCO VERDE MARRONE ROSSO (e qui la cosa che il verso di rotazione inverso non servisse visto che questi fili indicano il canale A (Ua1 Ua0negato) e Z (Ua0)). Comunque sia mi manca il NERO (Ua0 negato) e non capisco il perchè.

Grazie ancora

Link al commento
Condividi su altri siti

Per il cavo che ti manca, faccio delle ipotesi, forse è stato tagliato rasente all'isolante o non collegato nella scocca dell'encoder.

Non sono un esperto di encoder, ma dovresti comunque avere tutto quello che ti serve: alimentazione (bianco e blu), le 2 fasi (marrone e grigio) e la tacca di zero (rosso); gli altri sono solo i segnali negati; il MicroWin ha un assistente per i contatori veloci (si chiamano HSC) e lo trovi nell'albero delle operazioni con la voce "Attiva contatore veloce"; si possono anche utilizzare senza assistente, ma dovresti leggerti tutta la sezione relativa nel manuale di sistema (che comunque dovrai fare, se li usi); potresti iniziare a collegarlo e provare a combinare qualcosa; se poi il movimento è lento, puoi anche evitare i contatori veloci e contare con la classica istruzione ADD.

Il MicroWin ha anche un assistente per un controllo di posizionamento (non l'ho mai usato), ma mi sembra vada solo con il PWN/PTO (treno di impulsi) e non con l'analogica.

Modificato: da drugo66
Link al commento
Condividi su altri siti

Allora mi sono visto un pò di cose e con encoder e valvola sono a posto. Credo di aver capito bene come funzionano e anche con i fili sono a posto. La valvola va collegata a V0 del modulo analogico e all'alimentazione 24V. L'encoder mi tornano tutti i fili ma non ho ben capito a quali ingressi del plc vanno collegati, mi pare di aver capito che ne servono di particolari. Fatto questo credo che mi manchi solo la programmazione (forse la parte peggiore) del PID (o PI in questo caso basta). Ho visto su internet che esiste un assistente sia per HSC che per il PID ma non so perchè sul mio microwin c'è solo l'assistente per l'HSC e non per il PID, forse devo installare qualche pacchetto aggiuntivo?

No so se qualcuno sia ancora disponibile per chiarimenti, comunque qualsiasi risposta è ben accetta.

Grazie ancora

Link al commento
Condividi su altri siti

Pacchetti aggiuntivi, che io sappia, non ce n'è; che versione di MicroWin usi ? L'ultima è la 4 con SP8 o SP9

Se possibile, posta anche il codice della CPU, così si risale al firmware.

Gli assistenti sono sia sul menu che nell'albero delle operazioni.

Link al commento
Condividi su altri siti

Il MicroWin lo puoi sempre aggiornare (credo che l'aggiornamento SP8/9 sia gratuito), anche se la versione 4 è già la più completa, se non erro; il problema è la CPU con il firmware vecchio ...

Appena riesco, faccio qualche prova e ti faccio sapere.

Link al commento
Condividi su altri siti

L'assistente per il PID c'è:

139e0676fce1bb3bed4bb957ccdd9cfd.jpg

Il problema potrebbe esserci per altre istruzioni, tipo queste:

54c6c4c6c8618291c91e779fd9c8664d.jpg

Tutte le istruzioni con la x rossa non sono supportate dal firmware della tua CPU.

Ho buttato anche un occhio al manuale (questo): sono spiegati molto bene sia i contatori veloci (con l'assegnazione degli ingressi) che il PID.

Buon lavoro

Dimenticavo: ho usato MicroWin 4.0.9 (quindi SP9), ma non credo cambi molto; su Siemens Support prova a cercare SP9 per MicroWin, se proprio vuoi aggiornarlo.

Modificato: da drugo66
Link al commento
Condividi su altri siti

per quanto ne so , regolare un pistone pneumatico in posizione ....mmmm....la vedo dura anche se ci sono valvole di blocco e di non ritorno e con valvola proposrzionale .... <_< comunque se il progettista meccanico ti ha detto che si puo fare....

Come trasduttore di posizione ci vedrei piu un laser montato sulla testa del pistone che spara contro una base in lamiera montata sullo stelo del pistone . Allora fai una cosa .....

Inizia a preparare un software nel plc dove hai sotto controllo la variabile di uscita analogica , quella che pilota la valvola proporzionale , e mettici un trasduttore di posizione o encoder come vuoi ....

poi inizia a pilotare la valvola al 15-20% della sua massima apertura e vdei come si comporta , se il pistone rimane fermo o altro .Poi fai altri passi fino a raggiungere il 100 % . Scrivi 4 note e fai 4 considerazioni su come risponde il sistema perche talvolta capita che il sistema non risponda in modo lineare per cui addio controllo .....

Se il sistema e' lineare non hai bisogno di fare nesusn PID .Fai solamente un'interpolazione lineare che si basa su un valore basso ed uno alto di pilotaggio interpolato con le due relative posizioni che hai raggiunto

A questo punto , dopo aver scartato gli intervalli non lineari della valvola (qualora ce ne fossero) , inizi il pilotaggio vero e proprio inserendo un valore o una % di posizionamento e l'algoritmo ti butta fuori il valore da passare alla valvola .

Se tutto funziona , poi , fai dei test ...dai un riferimento , fai posizionare il pistoni e verifichi la stabilità premendo con qualcosa sullo stelo , per capire se si muove e di quanto .Immagina che un pistone deve sempre spingere qualcosa e se quel qualcosa e' pesante devi correggere il guadagno di riferimento .Pero non so come funziona la tua valvola in portata perche di solito , parlo nel campo di presse oleodinamiche , ci sono valvole di portata e valvole di pressione che fanno due lavori diversi ....

Link al commento
Condividi su altri siti

per quanto ne so , regolare un pistone pneumatico in posizione ....mmmm....la vedo dura anche se ci sono valvole di blocco e di non ritorno e con valvola proposrzionale .... <_< comunque se il progettista meccanico ti ha detto che si puo fare....

Walter, basta saperlo fare. ;)

Link al commento
Condividi su altri siti

se lo sai fare bene scrivilo , cosi ne discutiamo e impariamo tutti ;)

Io quello che potevo dire e che so l'ho scritto , consigli o procedure .

Vediamo gli altri .....

Modificato: da walterword
Link al commento
Condividi su altri siti

Walter l'ho già scritto nel #10.

E' un esempio con una 214. Posizionava un pistone di una pressa per fare il ricciolo alle balestre.

Link al commento
Condividi su altri siti

Per fare si può fare e per la mia esperienza anche in maniera piuttosto precisa, i problemi vengono fuori quando il sistema ha qualche ora di funzionamento sulle spalle: l'usura delle guarnizioni del pistone o dei gommini del cassetto sulla valvola, possono portare il sistema, in primis, a non fermare il pistone esattamente dove è richiesto o ad avere una posizione ballerina dovuta al tentativo di compensare l'errore.

Ma comunque mi sembra di aver capito che è un esercizio didattico.

Link al commento
Condividi su altri siti

Posizionamenti con cilindri idro-pneumatici ne ho visti ancora...

ma con cilindri esclusivamente a aria sinceramente non ne ho mai visti, secondo me fare un posizionamento di questo tipo significa cercare rogne...

Con un encoder incrementale poi... voglio vederti a cercare lentamente la tacca di zero... meglio piuttosto un potenziometro o un LVDT o un sensore magnetostrittivo o anche un laser che restituiscono un valore assoluto.

p.s. ho visto una volta una servovalvola ad aria che assumeva una certa posizione fornendo un semplice segnale analogico 0...10V o 4...20mA, ma dentro c'è una meccanica sofisticata fatta di molle e viti di regolazione che se ne tocchi una gli viene il morbo di Parkinson... Anche la pressione di linea doveva essere costante, altrimenti si sballava tutto...

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