matmor Inserito: 15 gennaio 2004 Segnala Share Inserito: 15 gennaio 2004 Salve a tuttiPremetto che sono alle prime armi, quindi ogni informazione mi sarà utilissima.il mio problema è controllare e stabilizzare la pressione su una pompa pneumaticautilizzata 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 naturalmenteIl prim tentativo che ho fatto è stato l'utilizzo del PIDessendo questo un sistema non Lineare ho utilizzato Più pid per le varie scaledi lavoro ma il sistema non sembra(a mio parere) essere buonoCioè se sono veloce ho troppa oscillazione se sono lento ho precisione ma sono lentocosi 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 manovraesterna 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'uscitaqual'è 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 More sharing options...
elemsystem Inserita: 16 gennaio 2004 Segnala Share Inserita: 16 gennaio 2004 Ciao, eccoti qualche suggerimento.CMP tra il Valore del Segnale e il Set PointSe 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 More sharing options...
Livio Orsini Inserita: 16 gennaio 2004 Segnala Share Inserita: 16 gennaio 2004 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 More sharing options...
matmor Inserita: 4 febbraio 2004 Autore Segnala Share Inserita: 4 febbraio 2004 CIAO, scusate il ritardo, ma purtroppo nel mio lavoro non c'è soltantola 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ò utilizzandolacome posso fare?Grazie mille ancora per l'aiuto, siete molto chiari.MATMOR Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 4 febbraio 2004 Segnala Share Inserita: 4 febbraio 2004 Ti metto un semplice algoritmo per fare un filtro, sta a te convertirlo in linguaggio plc.UscitaFiltro = UscitaFiltro + (IngressoFiltro- UscitaFiltro)/CostanteNote:-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 More sharing options...
tarta Inserita: 7 febbraio 2004 Segnala Share Inserita: 7 febbraio 2004 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 More sharing options...
tarta Inserita: 7 febbraio 2004 Segnala Share Inserita: 7 febbraio 2004 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 More sharing options...
matmor Inserita: 12 febbraio 2004 Autore Segnala Share Inserita: 12 febbraio 2004 Grazie a molte per gli aiuti, comunque il mio problema non sta solo nello stabilizzarela 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora