virgolanera Inserito: 17 settembre 2010 Segnala Share Inserito: 17 settembre 2010 Dovrei calcolare il valore medio di una misura analogica, dell'ultima ora corrente (dall'istante corrente ai precedenti 60 minuti). Il valore lo devo leggere, diciamo una volta ogni 5 secondi. Visto che è un dato che farà solo supervisione, e non sarà collegata a nessuna automazione (allarmi, blocchi...) volevo cercare di ridurre il più possibile l'uso di memoria (sono gia abb carico). Dunque, secondo voi, qual'è il metodo meno "costoso" per realizzarlo??Pensavo di creare una sorta di array, e ogni tot secondi far entrare un valore da una parte e farlo uscire dall'altro. O meglio. Di usarne due, perche con uno solo avrei valori troppo alti e rischio di andare in overflow. In uno calcolerei la media del minuto. In un altro piu grande, da 60, calcolerei la media oraria. Ancora è solo un'idea e non l'ho messa in pratica. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 17 settembre 2010 Segnala Share Inserita: 17 settembre 2010 Se ti serve solo per la supervisione dell'impianto, perchè non demandare tutto al supervisore?Leggere un valore ogni 5"-10" non è un problema per il supervisore; come non ci sono problemi di memoria per un vettore di 600-1200 elementi. Anche la lunghezza di parola non è un problema, qualsiasi sia il linguaggio usato dal supervisore, lavorare in interi lunghi o real deve essere possibile. Nel PLC ti risparmieresti anche i calcoli relativi alla media che occupano tempo e memoria. Link al commento Condividi su altri siti More sharing options...
virgolanera Inserita: 17 settembre 2010 Autore Segnala Share Inserita: 17 settembre 2010 Se ti serve solo per la supervisione dell'impianto, perchè non demandare tutto al supervisore?Sinceramente perchè in Movicon, non saprei come fare. (Ci sono di default medie giornaliere, settimanali... ma non orarie). Sto leggendo il manuale, ma per ora non vedo soluzioni accettabili..Con il plc invece in un modo o nell'altro me la posso calcolare.. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 17 settembre 2010 Segnala Share Inserita: 17 settembre 2010 Non mi dirai che Movicon non permette di memorizzare dati, farne la somma e dividerne il risultato per un numero.Fatta nel PLC non ci sono trucchi. Se esesgui una media aritmetica devi memorizzare i valori, sommarli e dividerne il risultato per il numero dei valori. La tua idea iniziale non è una media, ma è la media di valori medi. Può anche essere ininfluente ai fini pratici, però non è la media aritmetica delle letture orarie.Puoi ovviare parzialmente con l'uso di una media scorrevole su di una finestra di un ora (sliding window); questo algoritmo smeplifica un poco le operazioni, però devi tenerti comunque in memoria tutti gli elementi del vettore. Link al commento Condividi su altri siti More sharing options...
virgolanera Inserita: 17 settembre 2010 Autore Segnala Share Inserita: 17 settembre 2010 Non mi dirai che Movicon non permette di memorizzare dati, farne la somma e dividerne il risultato per un numero.certo che si, però avendo poca dimistichezza con questo software, fare un vettore scorrevole di elementi, mi riesce notevolmente piu facile in step 7. Link al commento Condividi su altri siti More sharing options...
mubeta Inserita: 17 settembre 2010 Segnala Share Inserita: 17 settembre 2010 Scusa, ma perché non fare un più semplice filtro derivativo? campionare ogni 5 secondi, per un ora, gestire la rotazione del buffer, fare tutte le somme e la media, è un bel lavoretto ed un bel pacco di dati.Fare un filtro derivativo, con costante di tempo regolabile, è una bazzecola, per il PLC o per la supervisione e si presta a molti altri usi. Link al commento Condividi su altri siti More sharing options...
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