michela98 Inserito: 2 settembre 2015 Segnala Inserito: 2 settembre 2015 (modificato) Ciao a tutti e complimenti agli esperti del forum per la competenza e la disponibilitàHo attinto più volte alle discussioni scoprendo tante soluzioni ai miei problemi di semi-neofita con i plcStavolta, dopo aver a lungo girovagato in internet provo a chiedere direttamente aiutoDovrei memorizzare una serie di valori real o int in una tabella, in pratica si tratta di un valore analogico che si incrementa, e deve essere memorizzato ogni quarto d'ora, per un totale di 40 dati, con logica FIFO, cioè a buffer riempito il valore più nuovo sostituisce il più vecchio; tutti i valori dovrebbero essere poi visualizzati a richiesta su un pannello operatore Con l'S7 200 una cosa simile era stata fatta con le tabelle (ADD-T-TBL) ma mi sembra di aver capito che questa istruzione non è utilizzable sul 1200Ho fatto qualche esperimento con i datalog senza capirci un gran che, ma comunque mi sembra che non gestiscano la funzione fifo...In pratica devo memorizzare gli ultimi 40 valori di una variabile (real o int) ogni quarto d'oraCPU 1215C e pannello KTP400 basicGrazie a chi mi darà qualche indicazioneAntonello Modificato: 2 settembre 2015 da michela98
Giuseppe Signorella Inserita: 2 settembre 2015 Segnala Inserita: 2 settembre 2015 Con i datalog, puoi memorizzare tranquillamente i 40 valori che ti necessitano.Nella creazione del datalog, imposti il numero di colonne e di celle che ti occorrono, (Dando alle colonne, se necessario anche un nome per idedificarne il contenuto), puoi decidere se indicare anche la data è l'ora nel momento in cui scrivi i valori nel datalog, nonché decidere una volta riempite tutte le celle, se sovrascrivere quelle più vetuste, oppure creare un nuovo file.Unico handicap (non da poco) di questo sistema, e che da software non puoi andarti a rileggerti i valori scritti nel file. Almeno non con il PLC. Potresti farlo con un pannello operatore più evoluto, ma sicuramente non con un KTP 400.Un'altra soluzione, visto che 40 variabili non sono tantissimi, sarebbe quella di crearti un array di 40 elementi, in un un DB ritentivo. Ad ogni richiamo di scrittura, incrementi l'indice dell'array di una unità. Quando l'indice è arrivato a 40, al successivo richiamo, lo azzeri e riparti dall'inizio.Una soluzione comunque non priva di handicap anche questa. in quanto non hai data ed ora della registrazione, e quindi non riesci a risalire con esattezza quali sono i valori più vetusti.
michela98 Inserita: 3 settembre 2015 Autore Segnala Inserita: 3 settembre 2015 Grazie Giuseppe della rispostaSe come dici non ci sono altre possibilità posso anche rinunciare alla visualizzazione dei 40 valori con data e ora.La soluzione dell'array come proponi potrebbe quindi essere accettabile, in effetti mi basta attivare un'uscita quando la somma degli ultimi 40 valori supera un certo valore Per capirci si tratta della pioggia caduta nelle ultime 10 oreGrazie 1000Antonello
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