Vai al contenuto
PLC Forum


Memorizzare ultimi 40 dati?? fifo o datalog?


michela98

Messaggi consigliati

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 plc
Stavolta, dopo aver a lungo girovagato in internet provo a chiedere direttamente aiuto

Dovrei 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 1200

Ho 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'ora

CPU 1215C e pannello KTP400 basic

Grazie a chi mi darà qualche indicazione

Antonello

Modificato: da michela98
Link al commento
Condividi su altri siti


Giuseppe Signorella

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.

 

 

Link al commento
Condividi su altri siti

Grazie Giuseppe della risposta
Se 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 ore

Grazie 1000

Antonello

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