barmatic Inserito: 31 agosto 2014 Segnala Inserito: 31 agosto 2014 Buongiorno a tutti, da qualche tempo sto provando a realizzare un Data Log con S7 1200 e devo ammettere che mi sono impantanato. Per quanto riguarda le istruzioni dedicate ai data log: Crea, Scrivi, Apri, Chiudi e New File tutto a posto, il "problema " nasce quando voglio leggere nel data log scaricato un numero con virgola mobile . Ho provato ad inserire un numero reale nel blocco dati dedicato ma la lettura nel data log viene espressa in modo "non comprensibile da tutti" : "1.267000E+01" questo è un esempio. Come devo convertire la variabile in modo da leggerla "normalmente"? Qualcuno si è già impantanato come me oppure sono l'unico ?
bigalex Inserita: 31 agosto 2014 Segnala Inserita: 31 agosto 2014 Ciao. Dovresti per prima cosa leggerti l'aiuto in linea del TIA per capire le rappresentazioni dei numeri in virgola mobile utilizzate . Quando viene registrato il dato nel datalogger la rappresentazione pare essere di tipo IEEE754 . Qui trovi un documento che spiega tale rappresentazione . bigalex
bigalex Inserita: 31 agosto 2014 Segnala Inserita: 31 agosto 2014 Su Wikipedia trovi anche l'algoritmo per il calcolo che da IEEE754 ti consente di rappresentare il numero in virgola mobile con la classica rappresentazione "numero.decimali". Google comunque è sempre disponibile a rispondere alle domande che vuoi fargli ...... bigalex
barmatic Inserita: 31 agosto 2014 Autore Segnala Inserita: 31 agosto 2014 Accidenti la cosa appare un pò troppo scientifica per le mie modeste conoscenze, tuttavia provo a dare una occhiata, quindi al momento ringrazio bigalex ed eventualmente ci risentiamo in un secondo tempo .
amed Inserita: 31 agosto 2014 Segnala Inserita: 31 agosto 2014 usa l'istruzione di conversione da numero Real a numero in Doppio intero
barmatic Inserita: 31 agosto 2014 Autore Segnala Inserita: 31 agosto 2014 Grazie amed, quindi tu suggerisci di usare una operazione "CONVERT" in cui IN=REAL ed OUT=DINT ?
Davide-SB Inserita: 31 agosto 2014 Segnala Inserita: 31 agosto 2014 Io per acquisire numeri in virgola mobile dal file Log, ho utilizzato Microsot Access. Per chi lo sà usare, basta semplicemente importare il file (impostando però il tipo dati dei vari campi). Si otterrà così una tabella di dati, che la si potrà a sua volta esportare in formato XLS. Non ho avuto modo di provare ad importare il file direttamente con EXCEL, ma sicuramente si potrà fare la stessa cosa. Ci saranno sicuramente altri modi, ma non ho avuto modo di fare altre prove.
barmatic Inserita: 1 settembre 2014 Autore Segnala Inserita: 1 settembre 2014 X amed, seguendo il tuo suggerimento è sparita la virgola ed il numero in uscita viene arrotondato al numero intero superiore od inferiore a seconda se i decimali dopo la virgola son > o< di 5. Non è proprio l risultato che avrei voluto ottenere. Invece davide-SB dice bene per l'importazione di dati con Acess o Excel, che però avrebbe bisogno di una approfondita conoscenza e dimestichezza di questi ultimi strumenti di Microsoft Office. Ma perchè TIA non scrive nel datalog il valore REAL che mi fa leggere, così tale e quale ? X bigalex: faccio tesoro dei tuoi suggerimenti , però ritengo che siano una bella "punturina" per chi come me ha una competenza più pratica che scientifica.
bigalex Inserita: 1 settembre 2014 Segnala Inserita: 1 settembre 2014 Ma cosa ci devi fare con questi valori ? Se spieghi meglio la destinazione del loro utilizzo forse possiamo aiutarti meglio . Comunque guarda questo video su Youtube . Questa è una nota di Microsoft sulla tratazione dei numeri in vorgola mobile in Excel . bigalex
barmatic Inserita: 1 settembre 2014 Autore Segnala Inserita: 1 settembre 2014 Ciao bigalex, bella domanda! Al momento vorrei provare ad importarli in un foglio di lavoro Excel per vedere se, con qualche trappola tipo "macro" riesco ad importare i dati in maniera automatica ed in un secondo tempo archiviarli in server tipo claud o similari
bigalex Inserita: 1 settembre 2014 Segnala Inserita: 1 settembre 2014 (modificato) Il tuo log è in formato CSV ? Se si ne puoi postare uno , giusto per vedere come è formattato il file ? Ho appena fatto una prova in Excel . Se formatti la cella "Scientifico" il formato è IEEE 754 e cioè come viene registrato nel log , se la cella la formatti "Numero" il formato è quello classico "numero.decimali" . Non vedo il problema. Se il log file è in formato CSV ti basta aprire il file e formattare le celle con i valori in IEEE754 in formato "Numero". bigalex Modificato: 1 settembre 2014 da bigalex
barmatic Inserita: 1 settembre 2014 Autore Segnala Inserita: 1 settembre 2014 Ciao bigalex, il "problema " sta nel fatto che se si formatta la cella in "Numero" non riesco a visualizzare la virgola nella stessa posizione che la mette TIA, comunque più tardi ti posto il CSV . Poi una soluzione tampone si trova sempre , però la virgola nel punto giusto e più elegante. Oppure c'è sempre la possibilità di ciucciarsi gli spiegoni scentifici che suggerivi, però alla mia età non tutti riescono a capire in breve tempo.
bigalex Inserita: 1 settembre 2014 Segnala Inserita: 1 settembre 2014 Cosa vuol dire la virgola nel punto giusto è più elegante ? La virgola è nel punto giusto altrimenti che conversione hai impostato ? Poi ricorda che il numero di decimali da mostrare nella cella impostata come "Numero" lo decidi tu. bigalex
barmatic Inserita: 1 settembre 2014 Autore Segnala Inserita: 1 settembre 2014 Ciao bigalex , "la virgola nel punto giusto è più elegante" effettivamente è una espressione impropria per l'argomento in questione, porta pazienza voleva essere una espressione "colorita", ti prometto che userò un linguaggio più formale. Il CSV è il seguente : Record,Date,UTC Time, Var1, Var2 11, 8/30/2014, 9:53:01, 12594, 0.000000E+00 12, 8/30/2014,15:10:32, 0, 0.000000E+00 13, 8/30/2014,15:10:34, 0, 0.000000E+00 14, 8/30/2014,15:10:36, 0, 0.000000E+00 15, 8/30/2014,15:10:38, 0, 0.000000E+00 16, 8/30/2014,15:10:40, 0, 0.000000E+00 17, 8/30/2014,15:10:42, 0, 0.000000E+00 8, 1/01/1970,10:19:03, 0, 0.000000E+00 9, 1/01/1970,10:25:11, 654, 1.267000E+01 10, 1/01/1970,10:39:57, 12594, 0.000000E+00 Come ti ho anticipato la formatttazione della cella in numero di " 1.267000E+01" è 126700000,00 , secondo excel posso spostare la virgola solo a dx, però il valore letto in TIA è 12,67, inserendo una funzione appropriata in questo caso una divisione si dovrebbe ragginge lo scopo di visualizzare il valore come lo visualizza TIA. Sono convinto che TIA e il CSV debbano avere la stessa visualizzazione, o no? Ho provato ad allegare il file però il forum non lo permette .
Davide-SB Inserita: 2 settembre 2014 Segnala Inserita: 2 settembre 2014 Stò provando anche io ad importare un file log con Excel, ma non riesco. I numeri reali in virgola mobile, mi escono con un esponenziale maggiore di 7!? Cioè per esempio, se in origine il numero di un campo è 2.350000E+01, excel me lo importa come 2.350000E+07 (importato come campo generico). Se lo importo invece come campo di testo, me lo estrae corretto e lo visualizzo 2.350000E+01, ma poi non è possibile modificarne il formato di visualizzazione in decimale, ad esempio per visualizzarlo in numero 999,99, (poichè è appunto è stato estratto in formato testo). Queste prove le ho fatte con Excel 2000 e Excel 203. Ho provato pure con OpenOffice 2.4, ma il numero me lo importa solo come testo, per cui lo vedo corretto, ma non posso cambiarne il formato numerico. Non capisco perchè solo con MS Acces sia riuscito "facilmente" ad importare i campi in virgola mobile. Per chi vuole provare... allego un file LOG generato da un S7 1200. LogDati1200.txt
bigalex Inserita: 2 settembre 2014 Segnala Inserita: 2 settembre 2014 Guarda Barmatic che stai commettendo qualche errore di formattazione. Io ho provato in Excel e tutto funziona correttamente. Ho provato a dichiarare una cella (A1) con formattazione scientifica ed un altra (contenente la formula B1=A1) con formattazione numerica ed editando la cella A1 in formato ieee754 , la cella B1 assume un valore coerente e corretto . Quindi è possibile che tu stia commettendo qualche errore in fase di importazione del file CSV o di formattazione delle celle. bigalex
barmatic Inserita: 2 settembre 2014 Autore Segnala Inserita: 2 settembre 2014 Ciao bigalex, quando hai tempo e voglia prova ad importare un file csv da TIA in excel con una variabile dichiarata Real. Credo che non sia come editare in formato ieee754 . Fermo restando il fatto che convertire in numero la cella sia un passaggio fondamentale ma non risolutivo, bisogna inserire una altra funzione. e comunque si raggiunge lo scopo. Però ribadisco in maniera provocatoria: Ma perchè TIA non scrive nel datalog il valore REAL che mi fa leggere, così tale e quale ?
bigalex Inserita: 2 settembre 2014 Segnala Inserita: 2 settembre 2014 (modificato) Guarda barmatic fai come Davide ed inserisci il tuo file di log. Io con quel file sono riuscito a fare quello che chiedi sia con Excel che con OpenOffice (con un pò di difficoltà). Per Davide (OpenOffice) : Per prima cosa rinomina il file con estensione .CSV. Prova a mettere una nuova colonna accanto alla colonna in formato ieee754 dove andrai a visualizzare il valore in formato "numero.decimali". Nella casella che vuoi formattare per la visualizzazione inserisci la seguente formula. =COMP.PARTE.REALE(H2) (in questo caso questa è la formattazione della cella I2 come numero con l'aggiunta della formula) la funzione COM.PARTE.REALE è in dotazione standard di OpenOffice che ti consiglio di aggiornare alla 4.1 o 4.2 (non ricordo quale sia l'ultima). Così facendo accanto ad ogni valore in formato ieee754 avrai il valore corrispondente con la classica notazione"numero.decimali". Al momento con OpenOffice non ho trovato niente di più immediato. Poi magari chi lo conosce meglio può darci qualche suggerimento. Non ho mai usato le Macro ma credo che chi ne ha conoscenza possa manipolare i dati senza problema. bigalex Modificato: 2 settembre 2014 da bigalex
Davide-SB Inserita: 3 settembre 2014 Segnala Inserita: 3 settembre 2014 Ciao bigalex, non capisco da dove derivi il problema, ma sia con Excel 200 e 2003 sia con OpenOffice 2,4 ed un'altra più recente, la conversione da ieee754 a numero decimale non riesce. Come da tuo consiglio, ho provato in excel ad aggiugere una nuova colonna, dove ho inserito la formula per copiare il valore, poi ho modificato il formato cella in numero, ed ho così visualizzato il numero in decimale. Però, resta il fatto che come detto in precedenza, tutti i numeri ieee754, me li estrae aumenati di 1.000.000 volte! Cioè l'esponenziale da +1, mi viene importato a +7. Ho perovato a cambiare dierse opzioni di importazione, ma con risultati uguali o peggiori. Con openOffice, invece i numeri ieee754 vengono importati correttamente, ma non riesce la conversione in decimale. Ho ceato la nuova colonna, ho inserito la funzione COM.PARTE.REALE (cella da convertire), mi restituisce l'errore Err: 502 ! Sono perplesso.
bigalex Inserita: 4 settembre 2014 Segnala Inserita: 4 settembre 2014 (modificato) Ciao a tutti . Dopo una mini ricerca sul mitico Google ho trovato proprio quello che fa al caso vostro. La Siemens ha creato un tool apposito per ovviare ai problemi di conversione del formato REAL. Datalog_Conversion_Tool. bigalex P.S. : Non avevo fatto una ricerca mirata a questo argomento in precedenza perchè mi ero fermato al formato IEEE754. Modificato: 4 settembre 2014 da bigalex
barmatic Inserita: 5 settembre 2014 Autore Segnala Inserita: 5 settembre 2014 Ciao bigalex , i miei più sentiti ringraziamenti per la meticolosa ricerca e per la tenacia dimostrata nel voler aiutare i membri del forum. Bingo con questa macro credo di avere risolto il mio problema Cordiali saluti
Davide-SB Inserita: 6 settembre 2014 Segnala Inserita: 6 settembre 2014 Bigalex, scusa per l'iterferenza introdotta sulla discussione, a causata dai miei problemi di conversine. Anche io ora, riesco ad importare il LOG, anche con Excel 2000. Il mio errore, è stato di non seguire la procedura corretta che hai spiegato. La mia abitudine di importare file.TXT con Access, mi ha condotto a modificarne l'estansione in TXT, ed utilizzarlo anchesso come file da importare con Excel, pensando che, in fondo, fosse la stessa cosa di mantenere il file in *.CSV. Ma evidentemete non è la stessa cosa, qualcosa cambia, non sò cosa, ma mi adeguo. Quindi importando il filelog con estensione *.CSV il numeri reali che importo saranno corretti. Per visualizzare poi i variabili in decimale, mi è bastato modificare semplicemente il formato cella in numerico. Spero che il mio errore possa essee utile anche ad altri. Saluti e ringraziamenti a tutti.
bigalex Inserita: 6 settembre 2014 Segnala Inserita: 6 settembre 2014 Ciao Davide. Hai visto il link che ho postato per l'utility che Siemens ha messo a disposizione per ovviare ai problemi di conversione ? Data_Conversion_Tool bigalex
Davide-SB Inserita: 6 settembre 2014 Segnala Inserita: 6 settembre 2014 Sì Bigalex, è appunto utilizzando il Tool che l'importazione mi è riuscita senza errori. Se invece importo manualmente, nonostante abbia provato diverse impostazioni, non c'è mado di evitare l'errore dei valori ottenuti, aumentati di 1.000.000! Non capisco, comunque mi và benissimo anche l'apposito Tool, che funziona bane. Ciao
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