Vai al contenuto
PLC Forum


Variazione variabile real nel tempo


TomCastagna

Messaggi consigliati

Buongiorno a tutti,

 

ho un impianto di raffreddamento dove ho una variabile in formato real che rappresenta la temperatura da monitorare.

 

Ho bisogno di far partire un compressore se la temperatura non varia per X minuti, segno che l'impianto di raffreddamento non sta facendo il suo dovere.

 

Ho cercato nei vari confronti, ma non sono riuscito a trovare nulla che mi aiutasse.... Ho fatto un misero tentativo temporizzando un confronto (come da allegato), ma è un disastro e non funziona....

 

Qualcuno ha delle idee?

 

Grazie per l'ascolto!

Cattura programma variaziane.PNG

Link al commento
Condividi su altri siti


Ciao,

non capisco bene come dovrebbe funzionare così com'è scritto; dalla tua descrizione mi aspettavo che effettuassi il confronto ogni tot secondi per poi salvare la temperatura come vecchio valore soltanto dopo il confronto e successivamente ricominciare di nuovo con il ciclo; in questo modo, saresti sicuro di notare eventuali differenze; così come l'hai scritto i due valori sono per forza sempre uguali.

In ogni caso, secondo la mia esperienza, non ti conviene effettuare un confronto uguale, ma impostare un valore minimo ed uno massimo e verificare che il valore sia sempre entro quei due limiti; la temperatura varia comunque entro certi valori, quindi, con un confronto simile, corri il rischio che il timer non parta mai.

Quindi io farei così:

- la prima volta imposti il valore, chiamamolo vecchio, a 0 (diciamo alla prima scansione, mai lasciare un valore utilizzato a sè stesso senza inizializzarlo)

- leggi ciclicamente il valore della tua temperatura (penso che tu lo faccia già)

- calcoli 2 variabili, minimo e massimo, con uno scostamento di un paio di gradi; in pratica fai una differenza ed una somma (poi i 2 gradi si possono ridurre con un po' di prove)

- effettui due confronti (>= del minimo e <= del massimo) e poi ci metti il timer

- ogni 3 secondi (per dire, poi fai tu) prendi il valore attuale e lo metti nel vecchio con un move

In questo modo dovrebbe funzionare, almeno secondo me ...

 

Link al commento
Condividi su altri siti

Ciao!

 

Drugo la tua opzione sembra sensata, anche se ancora non l'ho provata realmente.

 

Quote

dalla tua descrizione mi aspettavo che effettuassi il confronto ogni tot secondi per poi salvare la temperatura come vecchio valore soltanto dopo il confronto e successivamente ricominciare di nuovo con il ciclo; in questo modo, saresti sicuro di notare eventuali differenze; così come l'hai scritto i due valori sono per forza sempre uguali.

 

hai ragione, ma per ovviare al problema di avere sempre il confronto valido, ieri sera ho spostato il blocchetto MOVE nell'OB30, così da avere la variazione della variabile di temperatura su un tempo di ciclo diverso dal tempo di ciclo del blocchetto MOVE: in questo modo, anche solo se per pochi millisecondi, riesco a far resettare il TON, interrompendo la validità del confronto (scusami se sono un po' contorto nella spiegazione!)

 

tutto funziona però......Ora rimane il problema pratico!

 

Trattandosi di un sistema per raffreddamento, se la variazione di temperatura è negativa, cioè rilevo un decremento del valore della temperatura (passo ad esempio da -7° a -8°) mi sta bene questo sistema ed è giusto, perché il TON si resetta ad ogni variazione, visto che il compressore sta raffreddando bene.... Però....

 

Se la variazione è positiva, nel senso che il valore della temperatura sale invece di scendere (ad esempio passo da -7° a -6°), il TON si resetta comunque, perché non va a misurare il senso della variazione (se negativo o positivo): questa cosa è da evitare, perché vuol dire che il compressore non sta funzionando bene!

 

C'è un modo per direzionare questo controllo solo verso il negativo?

 

Chiedo di nuovo perdono se non sono stato chiaro!

 

Grazie!

 

Link al commento
Condividi su altri siti

A questo punto, se il valore vecchio è maggiore di quello attuale, significa che non sta raffreddando; quello che penso è che prima o poi dovrà fermarsi (non puo' raffredare in eterno, diminuendo sempre la temperatura), quindi, più che di un controllo di mancata variazione o di mancata diminuzione, mi sembra che ci sia bisogno di una semplice soglia; nonstante il sistema stia girando e si arriva (ed anche si supera) un valore predefinito per un determinato tempo, attivi le contromisure.

Se non ho capito male le tue necessità, penso sia questo il modo migliore di procedere.

Link al commento
Condividi su altri siti

Quote

Se non ho capito male le tue necessità, penso sia questo il modo migliore di procedere

 

Hai ragione, ho di fatti impostato il resto del progetto su questa linea.

 

 

Grazie mille dell'aiuto!

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...