Vai al contenuto
PLC Forum


Datalog Su S7-1200


bigsbunch

Messaggi consigliati

Ciao ragazzi sono Piero, è da molto tempo che sono iscritto al forum, ma non ho mai aperto discussioni in quanto ho sempre risolto le mie problematiche seguendo i post già presenti. Premetto che sono un autodidatta e che non ho una grande preparazione, ma vengo al dunque:

Avrei la necessita' di realizzare un DATALOG che registri il cambio di stato di due ingressi (I1.0 - I1.1) completo di data e ora sulla MMC-SIEMENS che si trova a bordo del plc S7-1200.

Ho provato a seguire il manuale o a scaricare l'esempio presente sul sito siemens, ma non ci sono riuscito. Mi chiedevo se qualcuno di voi mi può aiutare con un esempio semplice, possibilmente realizzato in FUP e con la versione 11 del TIA PORTAL. Vi ringrazio anticipatamente e vi saluto.

Link al commento
Condividi su altri siti


Giuseppe Signorella

Ciao bigsbunch,

L'utilizzo del datalog nelle CPU S7 1200 non è particolarmente complicato, tutt'altro.

I passi da seguire sono: (Vado a mente) ma nel manuale è spiegato bene:

1) Crearti il file nel quale memorizzare i dati con DataLogCreate,

2) Apriti il file su cui memorizzare i dati DataLogOpen. (Quando si crea per la prima volta un file, viene aperto in automatico.)

3) Scivi nel file i valori con DataLogWrite e quando terminato la scrittura chiudi il file con DataLogClose.

Al successivo evento di scrittura riparti dal punto 2.

Esiste anche il comando DataLogNewFile che serve per crearti un nuovo file quando quello precedentemente creato è pieno. Se non crei un nuovo file, quando il file ha raggiunto il valore impostato in RECORDS, i dati più vecchi vengono sovrascritti.

Un consiglio che ti do, è quello di monitorare sempre i parametri error e status dei blocchi, in tal modo puoi capire quando e dove commetti un errore.

Per avere la data e l'ora nel datalog devi impostare ad 1 il parametro TIMESTAMP.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Ciao Giuseppe e grazie per la celere risposta. In pratica non ho capito come creare il file nel quale memorizzare il datalog e neanche come strutturare le ob piuttosto che le fb o le fc; infatti quando inserisco nel main il blocco di creazione del datalog il parametro NAME, che dovrebbe essere il nome del file con estenzione csv, si crea un errore del tipo "operando non definito"...ecco perchè avrei bisogno di un piccolo esempio per capire cosa non ho afferrato...

Link al commento
Condividi su altri siti

Giuseppe Signorella

Nel parametro Name, devi inserire una variabile che (contiene) il nome che vuoi assegnare al datalog. (Non puoi inserire costanti nel parametro name) ecco il perchè ti genera l'errore.

Va bene qualunque tipo di variabile, ma ti consiglio una Stringa.

Io in genere procedo nel seguente modo:

Mi creo una stringa con un nome simbolico, al quale associo a questo nome l'ora e la data letta dalla CPU al momento della creazione del file. (ed ovviamente dopo aver convertito in string sia la data che l'ora).

La medesima procedura la utilizzo sia con il comando DataLogCreate, generalmente con una procedura di tipo manuale, ma questo dipende da come è composto il tuo hardware e dal software che stai creando.

Ad esempio se hai un pannello operatore, e sia con il comando DataLogNewFile.

In tal modo ottengo qualche cosa di questo tipo:

Il nome simbolico potrebbe essere : report produzione del : e la data di creazione 12.11.2014

Ciao

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao Giuseppe io avrei bisogno di creare 2 data log al giorno, uno alle 6 di mattino e uno alle 14.

Vorrei nominare i data log con 1° turno+data e 2° turno +data ma non riesco a trasformare la data in string ed associarla a alle variabili di tipo string 1° turno, 2° turno.

Grazie per l'attenzione

Link al commento
Condividi su altri siti

Giuseppe Signorella

Usa la classica istruzione di conversione, (CONV dal menu delle operazioni di conversione.)

Apriti un blocco dati, nel quale dichiari 4 variabili. Una in formato DTL (Struttura) che chiamerai ad esempio ora sistema e tre di tipo stringa, che chiamerai rispettivamente giorno mese anno.

Inserisci tre istruzioni di conversione parametrizzate ad accettare in ingresso variabili di tipo USint ed in uscita una stringa.

Ad ogni istruzione di conversione inserisci rispettivamente il dato di anno/mese/giorno.

Poi lavorando con le stringe concateni tutto come meglio credi.

In ogni caso, se vuoi semplificarti le cose, puoi anche passare al parametro name del datalog un dato strutturato che contiene una variabile in formato stringa e le variabile contenente la data.

Ciao

Link al commento
Condividi su altri siti

Giuseppe sono riuscito a trasformare giorno/mese/anno rispettivamente in string ed ho collegato le variabili con la funzione concat ma non va.

Ho provato anche a creare una variabile struct con all'interno una variabile string con valore di avvio 'produzione del' e una variabile dtl ma il data log create non mi fa creare il data, rimettendo una variabile di tipo string in name va tutto a posto.

Ciao.

Link al commento
Condividi su altri siti

Giuseppe finalmente ci sono riuscito!

L'errore che compievo è che nel convertire giorno/ mese/anno mi venivano dei valori di string con spazi, ad esempio ' 24' ed quando ho unito con la funzione concat le variabili mi usciva una variabile con degli spazi tipo 'produzione 24 11 2014'.

Ho usato la funzione delete per eliminare questi spazi vuoti ed il data log riconosce la variabile.

Grazie per l'aiuto!

Link al commento
Condividi su altri siti

Giuseppe Signorella

Grazie per l'aiuto!

Ci mancherebbe, è stato un piacere.

Però ti sarei grato se tu potessi postare qui sul forum il pezzo del programma inerente il datalog con un minimo di spiegazione.

Sono sicuro che tornerà utile anche ad altri utenti.

Ciao

Link al commento
Condividi su altri siti

  • 2 years later...

Ciao giervolino1, ti sarei grato se potresti postare il tuo esempio, magari come dice Giuseppe, con un minimo di spiegazione. Ho anch'io difficoltà a programmare il Datalog.  Grazie mille

Link al commento
Condividi su altri siti

Accodarsi non è consentito dal regolamento perchè causa confusione.

Accodarsi ad una discussione ferma da oltre 2 anni è anche autolesionistico:)

Poi hai già aperto una discussione sull'argomento.

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...