Checcohfl Inserito: 26 marzo 2021 Segnala Inserito: 26 marzo 2021 Buonasera, è la prima volta che mi trovo a dover utilizzare un sistema di regolazione proporzionale di temperatura. In breve dovrei attivare 4 resistenze in fase di riscaldo (partenza da freddo), sino al set point di temperatura impostato; una volta raggiunto il set point rimangono accese solo 2 resistenze che dovranno mantenere la temperatura settata. mi domandavo quale fosse il blocco di programmazione (e se sia intuitivo da parametrizzare) da utilizzare per il mantenimento della temperatura. Ho visto che nelle librerie ce ne sono diversi di blocchi PID, quale è quello giusto per me? Come sensore ho una PT100 collegata ad un trasmettitore di temp. che mi da in uscita un segnale 0-10V. Mi sapreste aiutare, grazie
marco87mi Inserita: 26 marzo 2021 Segnala Inserita: 26 marzo 2021 puoi usare il PID generico che va benissimo. come ingresso al PID puoi usare un qualunque segnale analogico. Ti consiglio di usare solo il PI la D non è utile per la temperatura perchè ha una inerzia in genere elevata ciao
Checcohfl Inserita: 29 marzo 2021 Autore Segnala Inserita: 29 marzo 2021 Grazie per la risposta! secondo te, una volta fatto il programma se mo faccio dare la pt100 dal cliente potrei fare l’auto tuning in casa evitando di testarlo sul campo?
acquaman Inserita: 30 marzo 2021 Segnala Inserita: 30 marzo 2021 Puoi crearti delle pagine sul hmi per far partire l'autotuning.
batta Inserita: 30 marzo 2021 Segnala Inserita: 30 marzo 2021 16 ore fa, Checcohfl scrisse: se mo faccio dare la pt100 dal cliente potrei fare l’auto tuning in casa evitando di testarlo sul campo? Se intendi che vuoi provare se riesci a lanciare l'autotuning, puoi anche semplicemente passare al PID una variabile che comandi a tuo piacere. Per avere un risultato dovrai, ovviamente, scrivere dei valori coerenti con ciò che l'autotuning sta facendo. Se intendi fare l'autotuning ora per non farlo dal cliente, non ha nessun senso. L'autotuning serve per rilevare la risposta reale del sistema, ed impostare parametri adeguati. Ha quindi senso solo se fatto nelle reali condizioni di lavoro.
Checcohfl Inserita: 2 aprile 2021 Autore Segnala Inserita: 2 aprile 2021 grazie a tutti per le ottime risposte. Aimè il cliente non ne vuole sapere di utilizzare un PID (nonostante io abbia insistito per fargli capire che fosse la soluzione migliore). Quindi dovrei realizzare un sistema on\off con isteresi per azionare un normale teleruttore, hanno voluto la signal board RTD per leggere direttamente la pt100. Premesso che non sono un programmatore, ma siamo in situazione di emergenza, e mi tocca fare il programma a me, vi chiederei un poco del vostro tempo per giudicare il programma in allegato, cosi per sapere se può funzionare o se ho combinato qualche casino. Grazie infinite.
batta Inserita: 5 aprile 2021 Segnala Inserita: 5 aprile 2021 (modificato) il 2/4/2021 at 21:21 , Checcohfl scrisse: Premesso che non sono un programmatore, ma siamo in situazione di emergenza, e mi tocca fare il programma a me Questa cosa, sinceramente, non la capisco. Che senso ha far sviluppare a te il software se non sei un programmatore? Se ci fosse un problema meccanico, lo darebbero da risolvere ad un elettricista? Per problemi di contabilità, chiamano un idraulico? Ad ognuno il suo lavoro. Questa è una regola che non si dovrebbe mai disattendere. Al programma ho dato un'occhiata veloce, e potrebbe funzionare. Io però lo affronterei in modo diverso. Ecco le principali modifiche: 1) Anche se usi pochissime variabili, abituati ad usare i "Blocchi Dati" (DB) al posto delle MW. 2) Vedo che usi anche la MW0. Tieni presente che se abiliti i merker di sistema, di default utilizzano i byte MB0 e MB1, ovvero la stessa area di memoria della MW0. 3) Vedo che dividi per 10 per trasformare la lettura dell'ingresso analogico RTD da decimi di grado a gradi. In questo modo, perdi inutilmente precisione. Piuttosto, usa anche il set point in decimi di grado. Nel caso di visualizzazione su pannello operatore, imposti la visualizzazione con una cifra decimale. 4) Piuttosto che una memoria per attivare 4 resistenze fino al primo raggiungimento del set point e successivamente lavorare solo con due resistenze, io creerei due diverse soglie: sotto alla soglia più bassa attivo tutte le resistenze, poi, quando sono vicino al set point, lavoro solo con due resistenze. 5) Per la logica del programma non usare direttamente le uscite, ma appoggiati a memorie interne (merker o bit in un DB). Poi utilizza queste memorie per comandare le uscite. Modificato: 5 aprile 2021 da batta
Checcohfl Inserita: 5 aprile 2021 Autore Segnala Inserita: 5 aprile 2021 3 ore fa, batta scrisse: Questa cosa, sinceramente, non la capisco. Che senso ha far sviluppare a te il software se non sei un programmatore? Se ci fosse un problema meccanico, lo darebbero da risolvere ad un elettricista? Per problemi di contabilità, chiamano un idraulico? Ad ognuno il suo lavoro. Questa è una regola che non si dovrebbe mai disattendere. Ti ringrazio per il prezioso aiuto che mi stai dando! Se mai avrai bisogno qualche informazione riguardo la quadristica, normative CEI, software di disegno schemi elettrici.. Potrò ricambiare il favore. La penso anche io così, solitamente non prendiamo quasi mai in carico la parte SW oppure la deleghiamo a dei professionisti. In questo caso hanno insistito per farmela fare a me perchè pensano che siccome ho fatto un corso base anni fà per S7-300 e faccio i collaudi HW degli I\O, allora mi considerano erroneamente un programmatore. Ma soprattutto mi lasciano uno stipendio da operaio normale. 1) Anche se usi pochissime variabili, abituati ad usare i "Blocchi Dati" (DB) al posto delle MW. Ho provveduto, è decisamente meglio usare i DB come dici tu! 2) Vedo che usi anche la MW0. Tieni presente che se abiliti i merker di sistema, di default utilizzano i byte MB0 e MB1, ovvero la stessa area di memoria della MW0. Si ne sono al corrente, ho modificato la configurazione della CPU impostando per quei 2 merker i byte 100 e 101. 3) Vedo che dividi per 10 per trasformare la lettura dell'ingresso analogico RTD da decimi di grado a gradi. In questo modo, perdi inutilmente precisione. Piuttosto, usa anche il set point in decimi di grado. Nel caso di visualizzazione su pannello operatore, imposti la visualizzazione con una cifra decimale. Grazie del consiglio, farò così! 4) Piuttosto che una memoria per attivare 4 resistenze fino al primo raggiungimento del set point e successivamente lavorare solo con due resistenze, io creerei due diverse soglie: sotto alla soglia più bassa attivo tutte le resistenze, poi, quando sono vicino al set point, lavoro solo con due resistenze. Ottima idea, farò così! 5) Per la logica del programma non usare direttamente le uscite, ma appoggiati a memorie interne (merker o bit in un DB). Poi utilizza queste memorie per comandare le uscite. Ho provveduto, è decisamente più corretto fare così come dici tu! Mi rimangono solamente un paio di dubbi? Te li chiederei: 1-Per appoggiare l'ingresso analogico RTD "IW80" in una variabile del "DBinput" ho pensato di usato il blocco MOVE, è corretto? 2-Mi chiedevo se non fosse il caso di ritardare di un tempo X (impostabile da OP) il SET e RESET delle resistenze di mantenimento, per evitare il continuo on\off del contattore? Ancora Grazie!
batta Inserita: 6 aprile 2021 Segnala Inserita: 6 aprile 2021 11 ore fa, Checcohfl scrisse: 1-Per appoggiare l'ingresso analogico RTD "IW80" in una variabile del "DBinput" ho pensato di usato il blocco MOVE, è corretto? Sì, è corretto. E sarebbe più corretto mettere questa istruzione all'inizio del programma, non alla fine come nel tuo esempio. Dal lato pratico non cambia quasi nulla (mettendola alla fine avrai solo la prima scansione con un dato non aggiornato), come concetto, prima aggiorno la variabile e poi la uso. 11 ore fa, Checcohfl scrisse: 2-Mi chiedevo se non fosse il caso di ritardare di un tempo X (impostabile da OP) il SET e RESET delle resistenze di mantenimento, per evitare il continuo on\off del contattore? Piuttosto che ritardare con tempi, meglio creare un'isteresi. Esempio: stop al raggiungimento del set point, start mezzo grado sotto il set point.
Adelino Rossi Inserita: 6 aprile 2021 Segnala Inserita: 6 aprile 2021 Quote , per evitare il continuo on\off del contattore Trattandosi di una regolazione suppongo che usi contattori statici e non elettromeccanici.
Livio Orsini Inserita: 6 aprile 2021 Segnala Inserita: 6 aprile 2021 1 ora fa, Adelino Rossi scrisse: Trattandosi di una regolazione suppongo che usi contattori statici e non elettromeccanici. purtroppo no il 2/4/2021 at 21:21 , Checcohfl scrisse: realizzare un sistema on\off con isteresi per azionare un normale teleruttore, hanno voluto la signal board RTD per leggere direttamente la pt100
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