Luca_99 Inserito: 10 maggio 2019 Segnala Inserito: 10 maggio 2019 Buongiorno a tutti, Ho una pompa, sotto inverter, che deve regolare la portata di un liquido, il tutto gestito da un blocco PID Compact, il PLC è un s7 - 1200. Il setpoint viene inserito dal sistema di supervisione, mentre l'input viene dato tramite un real già scalato dall'ingresso analogico. Il problema è che la variabile input della db di istanza del PID, alcune volte da valori sbagliati, mentre l'ingresso analogico non rileva alcun valore fuori dalla norma. Esempio: ho impostato il setpoint ad 12 l/h, ed l'input varia costantemente tra 11,7 ed 12,3 l/h, che posso ritenere accettabile, ma ad un certo punto sale oltre 3000 l/h ed il PID di conseguenza pone a 0, l'uscita (gli Hz inviati all'inverter). Volevo sapere se anche qualcuno aveva già riscontrato un problema simile, oppure se avete qualche idea. Grazie Mille
acquaman Inserita: 10 maggio 2019 Segnala Inserita: 10 maggio 2019 Sale a 3000 la lettura della portata o il set point? Se gli inverter vanno a zero presumo che sia la lettura dello strumento di portata ad andare a 3000 l/h quindi probabilmente hai un problema sull'ingresso/strumento di portata non sul PID
Luca_99 Inserita: 10 maggio 2019 Autore Segnala Inserita: 10 maggio 2019 Ciao, Innanzitutto grazie per la risposta. A 3000 sale la lettura della portata. Il problema è che sull'ingresso dello strumento non vedo alcun aumento, ho provato a fare un segmento che setta una memoria a uno quando l'ingresso è superiore a 50, e la memoria non viene settata. Mentre se nello stesso segmento al posto dell'ingresso analogico scalato, inserisco l'input della db di istanza del pid viene settata la memoria. In parole povere leggendo il valore sul mio ingresso analogico non ottengo alcun aumento, invece leggendo sul input della db del PID leggo questo famoso 3000
Livio Orsini Inserita: 10 maggio 2019 Segnala Inserita: 10 maggio 2019 C'è qualche parte del programma che va a scrivere in quella memoria
Luca_99 Inserita: 10 maggio 2019 Autore Segnala Inserita: 10 maggio 2019 (modificato) Mi era già sorto questo dubbio, però solamente l'ingresso analogico scalato è collegato con quella memoria, cioè che trasferisce il valore di input Modificato: 10 maggio 2019 da Luca_99
Livio Orsini Inserita: 11 maggio 2019 Segnala Inserita: 11 maggio 2019 Io ai fantasmi non ci credo; se il valore cambia è perchè da qaulche parte c'è un'istruzione che va a scriverci quel valore ben preciso visto che dici che è sempre il medesimo valore. Può anche essere, anzi sarà quasi certamente così, che c'è un'istruzione che dovrebbe scrivere in un'altra area ma, per un errore di indirizzo scrive proprio li. Quel valore ben preciso dovrebbe essere un indizio.
acquaman Inserita: 11 maggio 2019 Segnala Inserita: 11 maggio 2019 Se sei sicuro che l'analogica non ha problemi di sicuro da qualche parte scrivi su quella variabile, prova a spostare quella misura su di un'altra area di memoria che sicuramente non usi,
batta Inserita: 11 maggio 2019 Segnala Inserita: 11 maggio 2019 Mi associo a quanto ti hanno già detto. Se il valore scalato è collegato all'ingresso della funzione PID, come fa l'ingresso della funzione PID ad assumere un valore diverso? Significa che qualcuno, da qualche altra parte, ci va a scrivere qualcosa. Se vuoi allegare il progetto, vedrai che troveremo qualcosa di sbagliato nel programma.
Luca_99 Inserita: 13 maggio 2019 Autore Segnala Inserita: 13 maggio 2019 Salve a tutti, Dopo aver ricontrollato il blocco pid, non ho trovato alcuna istruzione che scriveva su quella memoria, possibile problema dell'utilizzo dei riferimenti crociati??. Però eliminando quel blocco e riaggiungendone uno nuovo il problema è scomparso, dunque sicuramente qualcosa scriveva su quella variabile. Quindi la domanda che mi pongo è la seguente, come potrei capire cosa scrive su quella variabile se il cross reference non me lo mostra? Per il momento grazie a tutti voi
Livio Orsini Inserita: 13 maggio 2019 Segnala Inserita: 13 maggio 2019 13 minuti fa, Luca_99 scrisse: dunque sicuramente qualcosa scriveva su quella variabile. Questo è lapalissiano. 14 minuti fa, Luca_99 scrisse: Quindi la domanda che mi pongo è la seguente, come potrei capire cosa scrive su quella variabile se il cross reference non me lo mostra? Come ti ho scritto prima, visto che il valore scritto sembra cosatante, devi fare il percorso inverso partendo dal valore di "3000" e capire a cosa può essere associato. Il nuovo blocco PID usa la medesima area di memoria del precedente?
Luca_99 Inserita: 13 maggio 2019 Autore Segnala Inserita: 13 maggio 2019 (modificato) 7 minuti fa, Livio Orsini scrisse: Il nuovo blocco PID usa la medesima area di memoria del precedente? No ora ho cambiato l'area di memoria. Pensavo appena riparte la macchina, di inserire dal mio sistema di supervisione tutti i vari bit della variabile input, per capire quale bit viene settato. Intanto grazie vi aggiornerò Modificato: 13 maggio 2019 da Luca_99
batta Inserita: 13 maggio 2019 Segnala Inserita: 13 maggio 2019 Non è che il risultato della scalatura dell'ingresso analogico, che poi utilizzi come ingresso alla funzione PID, sia stato appoggiato ad una variabile TEMP, e che non venga aggiornato tutti i cicli? Io rinnovo l'invito: se alleghi il progetto, sono sicuro che riusciremo a trovare l'errore.
Livio Orsini Inserita: 13 maggio 2019 Segnala Inserita: 13 maggio 2019 14 minuti fa, batta scrisse: Non è che il risultato della scalatura dell'ingresso analogico, che poi utilizzi come ingresso alla funzione PID, sia stato appoggiato ad una variabile TEMP, e che non venga aggiornato tutti i cicli? Sarebbe comunque un errore perchè il campionanmento asincrono con la regolazione, potrebbe aumentare il jitter a livelli non trascurabili
Luca_99 Inserita: 13 maggio 2019 Autore Segnala Inserita: 13 maggio 2019 1 ora fa, batta scrisse: Non è che il risultato della scalatura dell'ingresso analogico, che poi utilizzi come ingresso alla funzione PID, sia stato appoggiato ad una variabile TEMP, e che non venga aggiornato tutti i cicli? Potrebbe essere, siccome dall'ingresso analogico prima di passare alla db, uso le variabili temporanee per i calcoli. Se io richiamassi anche il mio FC della scalatura nel OB30 del PID, lo ciclerebbe ogni volta insieme al PID? 1 ora fa, batta scrisse: Io rinnovo l'invito: se alleghi il progetto, sono sicuro che riusciremo a trovare l'errore. Nel pomeriggio sarò felice di allegarlo. Intanto Grazie ancora
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