Vai al contenuto
PLC Forum


Controllo Pressione Liquido - controllo di pressione su una pompa pneu


matmor

Messaggi consigliati

Salve a tutti

Premetto che sono alle prime armi, quindi ogni informazione mi sarà utilissima.

il mio problema è controllare e stabilizzare la pressione su una pompa pneumatica

utilizzata per portare liquido(nel mio caso vernice) a degli spruzzatori (pigmentatori)

La regolazione è effettuata con una valvola (motopotenziometro) 0-10 Volt

Il PLC che utilizzo è un pcm2 con analogica naturalmente

Il prim tentativo che ho fatto è stato l'utilizzo del PID

essendo questo un sistema non Lineare ho utilizzato Più pid per le varie scale

di lavoro ma il sistema non sembra(a mio parere) essere buono

Cioè se sono veloce ho troppa oscillazione se sono lento ho precisione ma sono lento

cosi mi sono buttato su nuova idea(ricordo che sono veramente alle prime armi con il PLC)

ho inserito più comparatori inseriti in modo da crare una scala di velocità su l'apiezza di manovra

esterna al SETPOINT, agendo direttamente sulla tensione cioè se sono sotto al set point e lontano,

mi troverò LESS_THAN in un comparatore che mi dovrà aumentare la tensione in modo veloce fino a che

non troverò un comparatore più vicino al setpoint, con una velocità più bassa e cosi via...

cosa faccio io? ho trasformato il valore HEX in bcd a cui detrarrò o sommerò un valore in BCD a seconda della mia posizione il valore in bcd lo ritrasformo in hex e lo butto nell'uscita

qual'è il mio problema? quando sono in alto rispetto al set point e quindi devo scendere e quindi calare di tensione e quindi sottrarre, non ho nessun problema anzi funziona tutto a meravigli, il problema lo incontro quando

vado a sommare un valore , il risultato sono dei valori assurdi......

SE potete darmi dei consigli o qualsiasi cosa vi ringrazio, a presto MATTEO.

Link al commento
Condividi su altri siti


Ciao, eccoti qualche suggerimento.

CMP tra il Valore del Segnale e il Set Point

Se maggiore, con un'impulso sul fronte di salita, DIFU (13) abiliti un Bit in autoritenuta che userai come condizione per la sottrazione e per interdire le altre operazioni.

Se minore, con un'impulso sul fronte di salita DIFU (13) abiliti un Bit in autoritenuta che userai come condizione per l'addizione e per interdire le altre operazioni.

Se uguale, con un impulso sul fronte di salita DIFU (13) abiliti un Bit in autoritenuta che userai come condizione per disabilitare Addizione o Sottrazione.

Per incrementare o decrementare usa un clock, il piu' veloce che hai e' il 254.01 (0_02_sec_clock) e per gestire i gradini della rampa di salita o di discesa devi solo scegliere quanto sommare o sottrarre ogni volta. Se Metti #0001 avrai rampa lunga, piu' alto e' il valore e piu' veloce sarai. Vedi di non fare i gradini troppo grandi o rotolerai giu' per le scale. ( scherzi a parte, se il sistema deve funzionare dolcemente e non a strattoni sai cosa fare).

Per sommare esattamente quanto hai stabilito ad ogni clock, usa ancora il DIFU (13) e sei sicuro che ad ogni colpo si becca quello, e nient'altro che gli puo' venir sommato in piu' dal ciclo scansione.

Dipendentemente dal numero di cifre che i tuoi calcoli dovranno elaborare, vedi se sia il caso di usare Long BCD Add ADDL(54) e Long BCD Sub SUBL(55). I numeri assurdi che vedi durante l'addizione credo derivino dal fatto che vai fuori scala.

Stabilisci un Limite Massimo del valore BCD di Set Point che non deve essere superato e con un confronto fai in modo che se per errore viene scritto un valore maggiore, la peggior cosa che puo' succedere e' che oltre l'allarme di Superata Soglia Massima Impostabile, nel DM che contiene la conversione del Set Point nel valore BCD corrispondente al segnale viene scritto e accettato automaticamente il valor max, per esempio #4000.

Se non vuoi perdite di dati in caso di Mancanza Tensione o altri motivi di spegnimento del PLC, usa Bit dell'area di memoria HR e area DM per i calcoli. Tieni conto di quanti canali ti portano via ADDL(54) e SUBL(55) in modo da non creare sovrapposizioni.

Sincronizza il tutto in modo che ogni operazione sia fine a se stessa e non interferisca con altre.

Link al commento
Condividi su altri siti

Ciao matmor.

Provo a darti qualche suggerimento.

Se vuoi avere buona precisione e ottima velocità di risposta non puoi affidarti alla sola reazione,cioè aspettare che ci sia errore e poi correggerlo, ma devi prevenire l'errore stesso. Come fare? Le metodologie sono svariate: si va dai tentativi empirici ai modelli matematici.

Il tuo è un caso realtivamente semplice, pertanto ritengo sia sufficiente l'adozione di un feed forward proporzionale al set point. In altri termini il valore di consegna determinerà una certa apertura della valvola, poi il tuo algoritmo PI annullerà l'errore residuo. Ho scritto volutamente PI perchè non userei la componente D ma, eventualmente, aggiungerei un anticipo di reazione. In altre parole il derivativo viene calcolato non sull'errore, bensì sul segnale di reazione.

Non vorrei offenderti, ma ti raccomanderei vivamnete di essere sicuro che il tempo di campionamento, e tuttu l'algoritmo di regolazione, abbiano un periodo fisso e costante. Non si deve assolutamente usare il tempo di ciclo, ma l'algoritmo ed il campionamente vanno legati ad un interrupt a tempo; il periodo è proporzionale alla banda passante del tuo sistema: sistema veloce (banda passante larga) = periodo breve.

Da ultimo, una raccomandazione dettata dall'esperienza, i PID multipli e gli algoritmi con guadagni variabili son sempre fonte di guai, sono difficili da mettere a punto e sono scarsamente ripetibili (ci sono sempre le debite eccezzioni), ergo è meglio evitarli.

Buon lavoro e aggiornaci sui risultati

Link al commento
Condividi su altri siti

  • 3 weeks later...

CIAO, scusate il ritardo, ma purtroppo nel mio lavoro non c'è soltanto

la programmazione di plc.

comunque grazie per le dritte, visto che adesso il sistema funziona

decisamente bene, ma posso migliorarlo:comè?

dovrei stabilizzare il valore di pressione che che ottengo

dal trasduttore oscilla continuamente.

Il filtro ho visto che c'è nella funzione PID, ma io non stò utilizzandola

come posso fare?

Grazie mille ancora per l'aiuto, siete molto chiari.

MATMOR :D

Link al commento
Condividi su altri siti

Ti metto un semplice algoritmo per fare un filtro, sta a te convertirlo in linguaggio plc.

UscitaFiltro = UscitaFiltro + (IngressoFiltro- UscitaFiltro)/Costante

Note:

-Verificare sperimentalmente il valore da mettere come costante tenendo presente che:

----Non si può mettere Costante < 1

----Valori troppo grandi rallentano notevolmente la risposta

----Tutte le variabili del filtro devono essere a virgola mobile

Link al commento
Condividi su altri siti

Entro solo adesso nella ricerca dell'ottimizzazione perchè ora leggo i messaggi. Pensavo che la regolazione va fatta solo ed esclusivamente con i principi dei PID e credo non con artifizi starni. Potresti per ottimizzare e affinare il tuo regolatore, cercando di dividere la curva della tua pompa in fette e per ogni fetta trovare i valori di regolazione del PID e ogni volta che entri nella fetta passare questi valori trovati al tuo regolatore. Comunque credo che con tanta pazienza troverai sicuramente l'unico valore che ti regoli in qualsiasi condizione richiesta. Pazienza molta pazienza. Lascia perdere per un pò di tempo il resto e dedicati solo al tuo problema e lo risolvi sicuramente in maniera definitiva. Io faccio così, si fermi pure il mondo, ma intanto dimentico un problema per volta anzichè averne tanti in testa non finiti.

Ciao e che la vernice vada OK.

Link al commento
Condividi su altri siti

Dimenticavo, utilizza anche la BS banda morta del tuo PID perchè quella è forse la tua ancora di salvezza.

La banda morta è quel range intorno al SET in cui il PID si disinteressa della regolazione e quindi di effettuare retroazione sulla tua valvola lasciando tutto comè. Forse questo ti elimina un pò di pendolamento della tua pressione.

Ciao

Link al commento
Condividi su altri siti

Grazie a molte per gli aiuti, comunque il mio problema non sta solo nello stabilizzare

la pressione, devo anche impostarla , 0,1 o 0,5 o 1 bar , in un tempo contenuto, entro un minuto.

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