Ottimizzazione gestione riscadatori
Home › Forum › Discussioni su problematiche generali › Ottimizzazione gestione riscadatori
- Questo topic ha 4 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 11 mesi fa da
Stefano.
-
AutorePost
-
Aprile 7, 2018 alle 8:05 am #36195
Stefano
PartecipanteMi è stato commissionato il retrofitting di un vecchio miscelatore di granulati, l’automazione è tutta elettromeccanica e va reso compatibile con Industria 4.0, utilizzerò uno slimline compact con alcuni moduli di espansione ed terminale serie iE. Questa macchina esegue la miscelazione a temperatura controllata, presenta un tamburo rotante con asse inclinato di circa 45 gradi. Il tamburo e attorniato da resistenze, queste sono fitte nella parte bassa e diradano man mano che si arriva nella parte alta, vi sono due una termocoppie: una dove le resistenze sono fitte ed una nella parte alta del tamburo dove non ci sono resistenze.
La termocoppia in altro controlla la temperatura di processo, si collega ad un termostato che l’operatore regola tra i 70 ed i 120 gradi, il termostato pilota un teleruttore che comanda le resistenze. La termocoppia in basso si collega ad un termostato tarato fisso a 230 gradi (temperatura da non superare, pena distruzione dei granulati) che spegne il precedente termostato.
Sostituirò il teleruttore con uno statico zero crossing e parzializzerò la potenza con una sorta di PWM, sicuramente la temperatura della termocoppia in alto entrerà in un blocco PID per gestire il riscaldamento, ma non so bene come gestire la seconda. Potrei replicare il funzionamento attuale disabilitando il blocco PID precedente, oppure, con un PID ulteriore tarato sulla massima temperatura, variare continuamente la potenza massima applicata alle resistenze. A qualcuno è mai capitata una esigenza simile ?
Aprile 9, 2018 alle 6:32 am #40069Sergio Bertana
Amministratore del forumLe mie sono valutazioni a mente libera non avendo mai affrontato questo tipo di regolazione. La temperatura da controllare è la temperatura di processo quindi su quella devi realizzare il PID di controllo, ma certo alla accensione impianto prima che la temperatura si propaghi fino alla termocoppia di processo tu avrai una fase in cui tutte le resistenze daranno il 100% di potenza ed in questa fase potrebbe essere che la temperatura in basso arrivi al suo valore di soglia. Questo evento, se possibile, succede già oggi è l’unica cosa che oggi l’impianto elettromeccanico può fare è spegnere le resistenze. In questo modo con continue accensioni/spegnimenti delle resistenze la temperatura si propaga nella struttura ed arriva alla termocoppia superiore.
Ora tu puoi mantenere la stessa situazione, oppure prevedere una rampa di riscaldamento in cui attivi le resistenze non al 100% di potenza per dare tempo all’intera massa di scaldarsi. Certo che se usi una percentuale bassa di potenza ci metterai più tempo ad andare in temperatura e comunque con una percentuale predefinita non hai una retroazione del comportamento reale.
Un’altra possibilità è di realizzare come dici tu un PID di riscaldamento sulla termocoppia di controllo, il cui set point è fissato dal PID di processo (Con massimo 200 gradi, per non superare i 230 massimi). Quindi il PID di processo varierà il set point del PID di riscaldamento per regolare la temperatura del processo.
Maggio 8, 2018 alle 8:26 am #43999Stefano
PartecipanteSono alle prese con il dimensionamento delle apparacchiature. Penso di usare i due blocchi PID, uno che varia il set Point dell’altro che poi comanda il ‘PWM’. La CPU dovrà dunque gestire i due blocchi PID, la generazione del out statico della CPU (periodo di 2 secondi), la lettura di un paio di ingressi 4-20ma, la lettura di una decina di encoder (l’ambiente è molto sporco e in alcune fasi diventa difficoltoso l’uso del touch screen. Gli operatori gireranno quindi degli encoder rotativi da pannello per modificare dei setpoint. Userò il blocco IOEncoder). Gestirà una manciata di I/O (qualche pulsante, qualche spia), comunicherà come modbus slave con il pannello e come master su 485 con un driver per motori.
La logica è abbastanza semplice ma le varie gestioni si portano via CPU. Non saprei se tentare con una CPU compact o passare ad una Cortex. Alla peggio sarebbe possibile richiedere un modulo input modificato per avere vari gestori hardware di encoder in quadratura ?
Maggio 8, 2018 alle 8:31 am #44003Sergio Bertana
Amministratore del forumVista la differenza di prezzo (Che non è sostanziale) ti consiglio di utilizzare la CPU Cortex M7 che è anche il modello su cui sono supportate tutte le funzioni che stiamo sviluppando. Tra l’altro i suoi 2 ingressi analogici hanno una risoluzione di 12 bits quindi credo più che sufficenti per l’acquisizione dei tuoi 2 segnali 4-20 mA.
Se devi solo gestire encoders da pannello per il settaggio dei valori di processo, non è necessario che utilizzi schede con la quadratura hardware, il FB IOEncoder è sicuramente in grado di gestirli. Puoi eseguire l’acquisizione degli ingressi digitali e le istanze del FB in una Task Fast (1 mS), in questo modo si possono acquisire encoder con frequenza fino a 500 Hz.
Ma attenzione ruotando a mano l’encoder anche se mediamente la frequenza è molto bassa si possono avere picchi di frequenza molto alti e quindi con l’FB si può perdere qualche conteggio. Ma visto che gli encoders sono solo per impostazione e non per il posizionamento non credo questo possa essere un problema.
Maggio 10, 2018 alle 8:42 am #44012Stefano
PartecipanteDirei che se anche perdesse qualche conteggio l’operatore può girare la manopola di qualche scatto in più. Non è una cosa critica. Se non erro estendo gli encoder con IOEncoder in una task fast si devono acquisire gli ingressi con SysGetPhrDI perchè l’immagine ingressi mappata dal sistema è aggiornata con meno frequenza..
-
AutorePost
- Devi essere connesso per rispondere a questo topic.