gianni12345 Inserito: 25 maggio 2011 Segnala Share Inserito: 25 maggio 2011 (modificato) Buongiorno, premetto che conosco pochissimo il siemens S7 ma vorrei comunque provare a risolvere il mio problema.Ho la necessita' di attivare le resistenze di un forno 2 °C prima del setpoint Per prima cosa volevo chiedervi se sull' IST PID TEMP c'e qualche parametro chi mi permetta di fare questa cosa. Fino adesso ho provato a variare il GAIN, TI, TD ma senza risltati apprezzabili.Grazie anticipatamente PS attualmente ho un oscillazione 96 - 104 C° Modificato: 25 maggio 2011 da gianni12345 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 25 maggio 2011 Segnala Share Inserita: 25 maggio 2011 Qualche aprola in più non guasterebbe. Si capisce solo che, forse, stai usando un blocco PID per controllare una temperatura, temperatura che oscilla tra 96 e 104 gradi.Prova a descrivere meglio e più compiutamente tutto il sistema, forse l'oscillazione non dipende solo dall'ottimizzazione del regolatore PID. Inoltre variare i paremtri secondo la filosofia "pene di di molosso" in genere fa più danni che risultati. Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 25 maggio 2011 Autore Segnala Share Inserita: 25 maggio 2011 Prima di tutto grazie per la risposta, cerco nel limite delle mie possibilita di essere piu' chiaro, come detto sto cercando di eliminare l'oscillazione di temperatura all'interno di un forno.La struttura e' composta da un gruppo resistenze azionate da SCR GTT GEFRAN pilotate dal PLC con un uscita 4-20 ma.Il rilevamento della temperatura avviene tramite Termocoppia ed arriva sul PLC tramite il convertitore PR 5131.Da quello che sono riuscito a capire la modulazione delle resistenze avviene con il classico PID della siemens con i parametri di default tranne il GAIN TI TD e PV.Il problema sta nel fatto che il riazionamento delle resistenze dovrebbe avvenire un paio di gradi prima perche altrimenti la temperatura scende troppo ( a 96) per poi risalire.Spero di essere stato chiaro e grazie ancora. Link al commento Condividi su altri siti More sharing options...
Lucky67 Inserita: 25 maggio 2011 Segnala Share Inserita: 25 maggio 2011 Secondo me dovresti cercare di aggiustare i parametri del pid Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 25 maggio 2011 Segnala Share Inserita: 25 maggio 2011 Sembra un problema di inerzia termica.Prima di andare a smanettare il PID bisognerebbe sapere come si modula la potenza. Se si lavora a taglio di fase o sul burst. probabilmente si lavora a burst cioè a pacchetti. Però potrebbe anche essere molto più rozzo: tutto o niente. Da quello che scrivi questa mi sembra l'ipotesi più probablie. Arrivato in temperatura si toglie potenza alle resitenze, ma l'inerzia fa si che la temperatura continui a crescere. Accadrà il fenomeno inverso al calare della temperatura.Se la modulazione è eseguita in questo modo, smanettando un PID standard non ottieni molto, anzi....Puoi ottenere dei buoni risultati con il regolatore PID standard di Siemens se la potenza è modulata sul burst o sul taglio di fase. E' sempre necessaria molta pazienza e molta pratica per affinare bene la regolazione ma si ottengono risultati validi.Se invece è un brutale on-off con un PID standard si ottiene poco o nulla, l'oscillazione ci sarà sempre. In pratica lavora come il temrostato di un ferro da stiro. Link al commento Condividi su altri siti More sharing options...
Lucky67 Inserita: 25 maggio 2011 Segnala Share Inserita: 25 maggio 2011 A vedere dal tipo di variatore non credo che agisca sul taglio di fase bensì sul treno d'onda. Nella mia modesta esperienza modulando con gli opportuni valori P I e D il segnale di comando ho avuto sempre degli ottimi risultati. Sono d'accordo che se il controllo alla fine si riduce ad un "banale" ON OFF si può fare ben poco. Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 26 maggio 2011 Autore Segnala Share Inserita: 26 maggio 2011 (modificato) Buongiorno, Il problema e' stato perfettamente inquadrato da LIVIO. Da quello che ho capito non dovrebbe essere molto lontano da un rozzo "on-off" l'unica modulazione si ottiene agendo sul gain ma sempre una volta arrivati al set point.Sono d'accordo anch'io che smanettando solo sul PID non si ottiene molto pero' e' pure strano che la siemens non abbia al suo interno una soluzione "tipo termoregolatore"(stile gefran 1600) dove avevi molte piu possibilita' per arginare questi tipi di problemi.Grazie e buona giornata Modificato: 26 maggio 2011 da gianni12345 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 26 maggio 2011 Segnala Share Inserita: 26 maggio 2011 ...che la siemens non abbia al suo interno una soluzione "tipo termoregolatore"(stile gefran 1600)....Il regolatore PID di libreria è un regoaltore per impieghi generali, il regolatore che citi, invece, è ottimizzato sull'applicazione.Comunque puoi tentare di ridurre al minimo l'oscillazione ottimizzando al meglio il PID.Per prima cosa verifica che il tempo di campionamento sia congruo con il tuo sistema; un tempo di campionamento troppo lento rende il sistema instabile, se è troppo veloce è meno facile da ottimzzare. Comunque è meglio che sia veloce piuttosto che lento.Poi escludi integrale e derivativo ed ottimizza il guadagno proporzionale dando variazioni di set point pari a circa il 10% di fs ed osservando il comportamente. Devi arrivare al limite della sovraelongazione.Inserisci l'integrale e, partendo da valori lenti, acceleri al risposta sino al limite dell'instabilità.A questo punto puoi cercare di agire sul derivativo per anticipare la risposta del sitema. In questo caso sarebbe meglio se il derivativo fosse un anticipo sulla reazione, ma credo invece che sia il classico derivativo sull'errore. Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 27 maggio 2011 Autore Segnala Share Inserita: 27 maggio 2011 Buongiorno, grazie per le indicazioni, faro' ancora qualche tentativo.Saluti Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 maggio 2011 Segnala Share Inserita: 27 maggio 2011 Se non hai molta dimestichezza con questi regolatori (PID) puoi leggere il mio tutorial (sezione didattica, sottosezione elettrotecnica); spiego abbastanza dettagliatamente la procedura per l'ottimizzazione dei regolatori. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 29 maggio 2011 Segnala Share Inserita: 29 maggio 2011 azionate da SCR GTT GEFRAN pilotate dal PLC con un uscita 4-20Da quello che ho capito non dovrebbe essere molto lontano da un rozzo "on-off"Se piloti con un segnale 4-20mA non hai una regolazione ON-OFF.O meglio, lo strumento Gefran provvederà a pilotare gli SCR ad impulsi di ampiezza variabile secondo il segnale 4-20mA ricevuto (modulazione PWM).L'energia fornita al sistema quindi sarà proporzionale al segnale di riferimento inviato dal PLC allo strumento SCR GTT GEFRAN.Io penso si tratti solo di ottimizzare il PID, ma senza sapere come si comporta il tuo sistema e quali parametri sono attualmente impostati, dare indicazioni valide è come giocare una schedina.Dovresti fornire dati tipo:- quanto tempo impiega il sistema per passare dalla temperatura T1 alla temperatura T2 (per esempio da 90 a 110°C) con riferimento al 100%?- quanto tempo passa, portando il riferimento a 0%, prima di vedere la temperatura reale scendere?- quanto tempo impiega il sistema per passare dalla temperatura T2 alla temperatura T1 con riferimento 0%?- quanto tempo passa, portando il riferimento a 100%, prima di vedere la temperatura reale risalire?- che parametri GAIN, TI e TD sono attualmente impostati?- che funzione PID stai utilizzando?- è impostata una banda morta?- sei sicuro di gestire la funzione PID nel modo corretto?- cosa c'è impostato nel parametro "CYCLE" e come viene richiamata la funzione PID?Con i dati che hai fino ad ora fornito io riesco solo a fare domande, non certo a dare risposte. Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 30 maggio 2011 Autore Segnala Share Inserita: 30 maggio 2011 Buongiorno, cerchero' in qualche modo di rispondere alle vostre domande: 1-per passare dalla T1 alla T2 impiega circa 8 minuti2- per scendere la temperatura dopo OFF impiega circa 6 minuti3- da T2 a T1 circa 8 minuti4- al 100 % circa 5 minuti prima che la temperatura inizia a risalire Da dire che il programma sulla macchina non e' stato scritto da me io sto cercando solo di migliorare il sistema.Mi sono accorto solo ora che la derivata sul pid non e' attiva Grazie ancora.Saluti Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 30 maggio 2011 Segnala Share Inserita: 30 maggio 2011 Prima di inserire il coefficiente derivativo bisogna aver ottimizzato i coefficienti proporzionale ed integrale.Le inerzie termiche che si deducono dai tempi che hai riportato rientrano nella normalità.La sensazione che no ho ricavato è che si potrebbe/dovrebbe incrementare il guadagno proprozionale e diminuire il tmepo d'integrazione. Sempre a sensazione che un sistema siffatto, se ottimizzi bene i due coefficienti PI quasi non necessiti di derivativo.Purtroppo ottimizzare i parametir di uun regolatore è possibile solo in due modi: automatico (se è dotato di autotuning) e manuale. Nel primo caso, se l'applicazione rientra nella media, si otttengono ottimizzazioni prossime al 90% delle possibilità del regolatore.In manuale dipende solo dalla sensibilità e dall'esperienza dello strumentista. Se non hai molta pratica con questi lavori devi solo armarti di pazienza, effettuare una variazione alla volta ed eseguire la procedura passo - passo. La procedura l'ho riassunta nel messaggio #8, se invece vuoi un'esposizione più dettagliata la trovi nel mio tutorial oppure in molti altri documenti reperibili sul webb. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 30 maggio 2011 Segnala Share Inserita: 30 maggio 2011 Mi sono accorto solo ora che la derivata sul pid non e' attivaQuesto non è assolutamente strano.Si potrebbe iniziare ad inserire gradualmente il controllo derivativo solo dopo aver parametrizzato in modo corretto proporzionale ed integrale (come già detto da Livio).La cosa invece sicuramente sbagliata è il tempo integrale impostato. Con 100ms il tuo PI(D) lavorerà come un controllo ON/OFF.Normale quindi avere le oscillazioni da te rilevate.Io partirei impostando un tempo integrale di almeno 10 minuti (minuti, non secondi), per poi ridurlo gradualmente.Tieni presente che riducendo il tempo integrale si aumenta l'azione dell'integrale stesso.Prima ancora però dovresti disabilitare completamente l'integrale (oppure impostare tempi molto lunghi) e concentrarti sul proporzionale che, a mio avviso, ora è troppo alto (10.0).Io proverei a partire con un valore di 2.0-3.0.Ultima cosa da controllare: il parametro CYCLE è impostato a 1 secondo. Ma la funzione PID, ogni quanto tempo è realmente richiamata?Se CYCLE = 1s, il richiamo deve essere tassativamente fatto una volta ogni secondo. Hai verificato che sia effettivamente così? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 maggio 2011 Segnala Share Inserita: 31 maggio 2011 Io partirei impostando un tempo integrale di almeno 10 minuti (minuti, non secondi), per poi ridurlo gradualmente.Batta il tempo di integrazione non è indipendente dal guadagno proporzionale. Questo lo desumi anche dalla definizione canonica del tempo d'integrazione: Il tempo necessario all'azione integrale per eguaglaire l'azione proprozionale ad errore costante.Partire con tempi molto lunghi è normale procedura di ottimizzazione, però sempre dopo aver ottimizzato il guadagno proporzionale a integrale escluso. Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 31 maggio 2011 Autore Segnala Share Inserita: 31 maggio 2011 Buongiorno, per riepilogare inizialmete dovrei escludere intregale e derivata e lavorare solo sul guadagno?Come faccio a verificare che il richiamo del PID e' impostato a 1S ? Grazie anticipatamenteSaluti Link al commento Condividi su altri siti More sharing options...
batta Inserita: 31 maggio 2011 Segnala Share Inserita: 31 maggio 2011 Partire con tempi molto lunghi è normale procedura di ottimizzazione, però sempre dopo aver ottimizzato il guadagno proporzionale a integrale escluso.Ed infatti è quello che ho scritto:Prima ancora però dovresti disabilitare completamente l'integrale (oppure impostare tempi molto lunghi) e concentrarti sul proporzionale che, a mio avviso, ora è troppo alto (10.0).Io proverei a partire con un valore di 2.0-3.0.Di sicuro i 100 ms di integrale attualmente impostati non possono assolutamente andar bene. Buongiorno, per riepilogare inizialmete dovrei escludere intregale e derivata e lavorare solo sul guadagno?Sì.Aumenti gradualmente il guadagno e, quando il sistema diventa instabile, lo riduci di un 10-20%.Poi fai praticamente la stessa cosa con l'integrale, ricordandoti però che l'azione integrale aumenta riducendo il tempo.La derivata la tieni per ultima, ma tieni presente che potrebbe portare benefici o problemi.Insomma, non sempre si utilizza la derivata. Tanto per dire, nella funzione PID di Siemens di default è disabilitata.Come faccio a verificare che il richiamo del PID e' impostato a 1S ? Devi guardare dove come e quando avviene il richiamo della funzione PID.Se FB41 è richiamata in OB35 (ad ogni ciclo di OB35), dovresti verificare nella configurazione hardware che tempo di schedulazione c'è impostato per OB35.Se è richiamata in altri punti del programma, devi vedere se viene eseguita ad ogni scansione, oppure se si utilizza un qualche merker programmato per lanciare la funzione una sola volta ogni secondo.Se, per esempio, FB41 è richiamata in OB35, e OB35 è avviato ogni 100 ms (valore di default), FB41 in un secondo viene richiamata 10 volte. Ma alla funzione si dice con il parametro CYCLE che il campionamento avviene ogni secondo.Il risultato, in un caso simile, sarebbe che in un secondo la funzione PID effettuerebbe le regolazioni che dovrebbe effettuare in 10 secondi. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 maggio 2011 Segnala Share Inserita: 31 maggio 2011 (modificato) ..inizialmete dovrei escludere intregale e derivata e lavorare solo sul guadagnoSi parte sempre con il solo coefficiente proprozionale, si ottimizza quello artendo da guadagni bassi, poi si procede con l'integrale partendo da tempi lunghi, quindi con il derivativo iniziando con coefficienti molto bassi.L'invito a leggere il mio tutorial o altri documenti analoghi non l'ho fatto per narcisismo, l'ho fatto perchè è evidente che hai poca dimestichezza con queste problematiche e non le domini bene. Sfortunatamente non esistono scorciatoie: le cose o le si conosco oppure si studia sino a conoscerle.Come faccio a verificare che il richiamo del PID e' impostato a 1SQui non ti posso aiutare molto. Al contrario di Batta, che la conosce bene, io non conosco affatto la funzione PID della libreria Siemens. Quando ho avuto bisogno di usare un regolatore PID su PLC Siemens ho smepre usatounamia funzione dedicata ed ottimizzata. Il tempo di richiamo della funzione lo stabilivo in OB35. Allo scadere del timer di sistema, il cui tempo lo stabilisci nella configurazione Hw del PLC, scatta un iterrupt servito da OB35. In OB35 metto la chiamata alla mia FC_PID.Probabilmente anche la funzione di libreria è richiamata in modo analogo. Modificato: 31 maggio 2011 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Gianmario Pedrani Inserita: 31 maggio 2011 Segnala Share Inserita: 31 maggio 2011 il richiamo dell'fb41 che viene chiamata dall'ob 35 dove il suo tempo di default e di 100 ms che può essere cambiato nella configurazione hardware della cpu, se non hai toccato niente il tuo bp35 viene richiamato ogni 100 ms Link al commento Condividi su altri siti More sharing options...
Fabio66 Inserita: 31 maggio 2011 Segnala Share Inserita: 31 maggio 2011 Salve , se non ricordo male il regolatore Gefran indicato andrebbe controllato col sistema PWM. In dipendentemete da questo, tutto quanto suggerito da Livio, Batta e Gianmario è tutto corretto.Vorrei però chiedere a Gianni12345 se la pendolazione è costante nel tempo oppure varia. Mi è capitato un cliente che lamentava pendolazioni su un forno, poi ho scoperto che apriva le porte per ispezionare innescando lui stesso una pendolazionein ogni caso suggerisco di controllare bene che il Cycle settato sia reale, verificando dove l'fb41 è richiamata altrimenti si corre il rischio di parlare di un gain di 5 che in realtà non si sà cosa faccia.Tieni conto che il gain del fb41 lavora così :La grandezza LMN (0-100%) è la somma algebrica delle tre componenti Gain + TI + TDla componente gain = errore tra set point e pv * gain ---> quindi 2 °C di errore con gain 5 = 10 % su LMNInoltre suggerisco di guardare il db indicato ON line. Dubito siano i parametri veri e propri, poichè si dice che il sistema pendola tra 96 e 104 °C con SET POINT a 120 °Cinoltre io verifichei come si comporta il valore LMN a ridosso del SP durante la regolazioneCon CYCLE giusto ( in linea con il tempo di richiamo ) per esperienzapregressa in forni io inserirei un gain a 4-5 circa e tempi lunghi ( 20-30S o anche di più ) cercando di ottimizzare al meglio gain prima di ogni variazione attendere almeno 2-3 pendolazioni per capire se restano costanti ed a valle di ogni variazioni capire se stai peggiorando o migliorando. Trovato il gain migliore possibile, inizierei ad abbassare il TI tutto quanto sempre ammesso che non si verifichino interferenze esterne ( porte ecc )Comunque per la messa a punto di un forno serve tanta pazienza sopratutto se non si ha troppa esperienza Fabio Link al commento Condividi su altri siti More sharing options...
gianni12345 Inserita: 10 giugno 2011 Autore Segnala Share Inserita: 10 giugno 2011 (modificato) Buongiorno,scusate l'assenza ma sono stato impegnato in altri lavori e ho abbandonato un po' il forno.Ho verificato (nel limite delle mie possibilita) che FB41 e' richiamato in OB35 e ed e' settato con il valore di default 100ms. Lavorando parecchio sul gain con il TI e TD esclusi sono riuscito ad ottenere dei discreti risultati e per adesso va bene cosi'.Grazie a tutti per l'aiuto e disponibilita'. Gianni Modificato: 10 giugno 2011 da gianni12345 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 12 giugno 2011 Segnala Share Inserita: 12 giugno 2011 Se FB41 è richiamata in OB35 ogni 100ms e CYCLE è invece impostato a 1 secondo, la funzione lavora ma lavora in modo non corretto.A questo punto, o effettui il richiamo di FB41 ogni 1000ms (modificando il tempo di OB35 in configurazione hardware, oppure creando in OB35 un contatore e richiamando FB41 ogni 10 cicli), oppure imposti il parametro CYCLE a 100ms.Diciamo che, per questo tipo di utilizzo, un campionamento ogni 100ms non ha proprio alcun senso. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 12 giugno 2011 Segnala Share Inserita: 12 giugno 2011 Diciamo che, per questo tipo di utilizzo, un campionamento ogni 100ms non ha proprio alcun senso.Diciamo che determina un utilizzo di maggior tempo di CPU senza apportare benefici alla regolazione. 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