TomCastagna Inserito: 16 giugno 2016 Segnala Inserito: 16 giugno 2016 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!
drugo66 Inserita: 16 giugno 2016 Segnala Inserita: 16 giugno 2016 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 ...
TomCastagna Inserita: 17 giugno 2016 Autore Segnala Inserita: 17 giugno 2016 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!
drugo66 Inserita: 18 giugno 2016 Segnala Inserita: 18 giugno 2016 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.
TomCastagna Inserita: 21 giugno 2016 Autore Segnala Inserita: 21 giugno 2016 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!
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