Vai al contenuto
PLC Forum


Input PID Compact


Luca_99

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

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

 

Link al commento
Condividi su altri siti

Mi era già sorto questo dubbio, però solamente l'ingresso analogico scalato è collegato con quella memoria, cioè che trasferisce il valore di input

Modificato: da Luca_99
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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,

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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: da Luca_99
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...