WinCC TP1500 Comf - Archiv als CSV in Excel grafisch darstellen

escride1

Level-3
Beiträge
1.278
Reaktionspunkte
330
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich habe auf o.g. Panel mehrere Archive auf Anforderung erstellt und diese ins CSV auf einen anschließbaren USB-Stick ausgelagert. Funktioniert.

Beim Öffnen fiel mir auf, das das Trennzeichen ein Komma statt Semikolon ist. Ok, auch geändert, nur fraglich warum die Standardeinstellung von Siemens eigener Empfehlung abweicht. Aber irrelevant.

Ich habe die Archive in verschiedene Kategorien eingeteilt weil es viele Daten sind die zusammenhängend in einer Datei ausgelagert werden sollen.
Diese Archive sind nach 20 Tagen mit 200.000 Einträgen gefüllt.

Zum darstellen wollten wir
https://support.industry.siemens.co...a-portal)-grafisch-darstellen-?dti=0&lc=de-WW
nutzen. Problematisch ist es, so steht es ja auch dort, das zu viele Einträge einen Fehler herbeiführen. Also habe ich die Archive mittels Script beim Auslagern auf 10.000 Einträge begrenzt und mehrere Dateien erstellt.

Sobald ich nun aber nur eine Datei versuche mit dem o.g. ArchivViewer von Siemens zu öffnen bekomme ich den Fehler 1004. Also zuviele Einträge?! Ich habe nun ein Archiv genommen und es auf 5 Einträge reduziert. Bekomme noch immer den selben Fehler.

Da meine Excel-Kenntnisse äußerst miserabel sind (lediglich Grundfunktionen und Rechnungen) wollte ich fragen ob jemand eine funktionsfähige Variante hat oder aber ein anderes Tool/Programm (auch kostenpflichtig) benennen kann das diese Werte dem Endkunden ohne große Einstellungen grafisch darstellen kann.

Vielleicht weiß aber auch jemand den Grund warum das VBA-Skript nicht funktioniert (vllt. liegt es ja aber auch schon daran das es für V12/13 und nicht für V15 erstellt wurde.

Besten Dank!
 
Beim Öffnen fiel mir auf, das das Trennzeichen ein Komma statt Semikolon ist. Ok, auch geändert, nur fraglich warum die Standardeinstellung von Siemens eigener Empfehlung abweicht. Aber irrelevant.
Das ist von den Windows Einstellungen abhängig, wie in dem Siemens FAQ erklärt

Sobald ich nun aber nur eine Datei versuche mit dem o.g. ArchivViewer von Siemens zu öffnen bekomme ich den Fehler 1004. Also zuviele Einträge?!
Der Fehler 1004 kommt auch, wenn keine Datei für den Import im Blatt "Konfig" angegeben ist.

Du mußt <deineArchivdatei>.csv in das selbe Verzeichnis wie den Archivviewer kopieren.
Dann im Blatt "Konfig" in Zelle B2 den Dateiname der csv-Datei eintragen und in Zelle A2 eine 1 schreiben. (Du kannst bis zu 10 Dateinamen in B2 .. B11 eintragen, und mittels 1 oder 0 in A2 .. A11 für den Import enablen)

Harald
 
Moin,

also beim Versuch eine Datei beliebiger Größe einzulesen:
Code:
Laufzeitfehler '1004': Kann den markierten Bereich nicht gruppieren.
Klicke ich auf debuggen steht er bei
Code:
Selection.Group Start:=True, End:=True, Periods:=Array(True, True, True, True, False, False, True)
Sagt mir nur nix und fehlerhaft wird das ja nicht sein ^^.

Die Datei wird definitiv eingelesen. In einer der Tabellen sind die Werte vorhanden und der markierte Bereich umfasst Bezeichner, Zeit, Wert

In dem Archiv sind verschiedene Variablen, könnte das ein Problem sein? Also das man nur eine Variable im Archiv haben dürfte, auch wenn ich es mir nicht vorstellen kann.
 
Sind im Blatt "Archive" alle kompletten Zeilen in Spalte A "ArchivTag", und die Spalten B "Time" und C "Value" sind leer?

Welches Listentrennzeichen ist in Deinem Windows eingestellt? (Deutschland: Semikolon ';')
Welches Trennzeichen wird in Deiner csv-Datei verwendet?
Das muß gleich sein.

Probiere mal das Archiv im Anhang. (nach dem Download die Endung .txt entfernen)

Wie heißt Deine ArchivDatei? Hast Du mal ein Bild vom Blatt "Archive" nach dem Einlesen (Spalten breit genug eingestellt)?

Harald
 

Anhänge

Zuviel Werbung?
-> Hier kostenlos registrieren
Deine Archivdatei kann ich einlesen, funktioniert also schon mal generell und mein Excel ist nicht kaputt ^^.

Auszug aus meiner Datei

Anfang:
Code:
"VarName";"TimeString";"VarValue";"Validity";"Time_ms"
"Ansaugfeuchte";"1/8/2020 9:13:11 AM";91.37312;1;43838384160.8102
"Feuchtesollwert";"1/8/2020 9:13:11 AM";45;1;43838384160.8102
"Raumfühler 1";"1/8/2020 9:13:11 AM";80.39135;1;43838384160.8102
"Raumfühler 2";"1/8/2020 9:13:11 AM";80.20839;1;43838384160.8102
"Ansaugfeuchte";"1/8/2020 9:14:12 AM";91.3478;1;43838384857.2338
"Feuchtesollwert";"1/8/2020 9:14:12 AM";45;1;43838384857.2338
"Raumfühler 1";"1/8/2020 9:14:12 AM";80.08392;1;43838384857.2338
"Raumfühler 2";"1/8/2020 9:14:12 AM";80.28434;1;43838384857.2338
"Ansaugfeuchte";"1/8/2020 9:15:12 AM";91.3261;1;43838385553.6458
"Feuchtesollwert";"1/8/2020 9:15:12 AM";45;1;43838385553.6458
"Raumfühler 1";"1/8/2020 9:15:12 AM";79.62095;1;43838385553.6458
"Raumfühler 2";"1/8/2020 9:15:12 AM";80.28434;1;43838385553.6458
"Ansaugfeuchte";"1/8/2020 9:16:12 AM";91.42376;1;43838386250.081
"Feuchtesollwert";"1/8/2020 9:16:12 AM";45;1;43838386250.081
"Raumfühler 1";"1/8/2020 9:16:12 AM";79.83434;1;43838386250.081
"Raumfühler 2";"1/8/2020 9:16:12 AM";80.33498;1;43838386250.081
"Ansaugfeuchte";"1/8/2020 9:17:12 AM";91.44907;1;43838386946.5625
"Feuchtesollwert";"1/8/2020 9:17:12 AM";45;1;43838386946.5625
"Raumfühler 1";"1/8/2020 9:17:12 AM";80.23944;1;43838386946.5625
"Raumfühler 2";"1/8/2020 9:17:12 AM";80.43264;1;43838386946.5625
"Ansaugfeuchte";"1/8/2020 9:18:12 AM";91.47077;1;43838387642.9861
"Feuchtesollwert";"1/8/2020 9:18:12 AM";45;1;43838387642.9861
"Raumfühler 1";"1/8/2020 9:18:12 AM";80.10923;1;43838387642.9861
"Raumfühler 2";"1/8/2020 9:18:12 AM";80.50497;1;43838387642.9861
"Ansaugfeuchte";"1/8/2020 9:19:13 AM";91.42376;1;43838388339.4329
"Feuchtesollwert";"1/8/2020 9:19:13 AM";45;1;43838388339.4329
"Raumfühler 1";"1/8/2020 9:19:13 AM";80.50709;1;43838388339.4329
"Raumfühler 2";"1/8/2020 9:19:13 AM";80.47965;1;43838388339.4329
"Ansaugfeuchte";"1/8/2020 9:20:13 AM";91.35503;1;43838389035.9259
"Feuchtesollwert";"1/8/2020 9:20:13 AM";45;1;43838389035.9259
"Raumfühler 1";"1/8/2020 9:20:13 AM";79.93562;1;43838389035.9259
"Raumfühler 2";"1/8/2020 9:20:13 AM";80.50497;1;43838389035.9259
"Ansaugfeuchte";"1/8/2020 9:21:13 AM";91.3478;1;43838389732.3148
"Feuchtesollwert";"1/8/2020 9:21:13 AM";45;1;43838389732.3148
"Raumfühler 1";"1/8/2020 9:21:13 AM";80.55772;1;43838389732.3148
"Raumfühler 2";"1/8/2020 9:21:13 AM";80.55561;1;43838389732.3148
...
Ende:
Code:
"Raumfühler 1";"2/24/2020 2:22:31 PM";50.23727;1;43885598969.838
"Raumfühler 2";"2/24/2020 2:22:31 PM";55.09627;1;43885598969.838
"Feuchtesollwert";"2/24/2020 2:22:31 PM";45;1;43885598969.838
"Ansaugfeuchte";"2/24/2020 2:22:31 PM";88.2228;1;43885598969.838
"$RT_DIS$";"2/24/2020 2:23:00 PM";0;0;43885599310.3704
"$RT_COUNT$";127785;;;;

So sieht meine Archivdatei aus. Datum/Uhrzeit sowie Werte sind in einem anderen Format.


Listentrennzeichen ist Semikolon
Trennzeichen scheint ein Punkt zu sein
sofern ich gerade nicht beides verdreht habe.

Mein Problem konnte ich nun aber mittels Deiner Archivdatei lösen:

Vorgehensweisen:
Schritt 1: Habe den Punkt durch Komma ersetzt
Schritt 2: Habe die Datei verkleinert, Anzeige ist okay.

Lag also am Trennzeichen Punkt statt Komma in den Werten.

Das einzige verbleibende Problem ist nun das ich nicht die gesamte Zeit darstellen kann. Sobald die Dateien klein genug sind (<10000 Einträge) kann ich sie einzeln anzeigen, aber sobald ich eine zweite hinzufüge wird mir der gleiche Fehler angezeigt das er nicht gruppieren kann.
Einzeln kann er beide Dateien darstellen.

Muss ich doch ein externes Programm dafür nutzen wie z.B. Acron?
 
Kommt drauf an wie umfangreich Deine Daten sind und was Du damit machen willst, ob der kostenlose Programmschnipsel des Siemens-WinCC_TIA_ArchivViewers ausreicht oder von Dir erweitert werden kann. (Der Siemens-WinCC_TIA_ArchivViewer kann max ca 1 Mio Datensätze)
Du könntest möglicherweise auch nur für die Daten-Trenddarstellung eine eigene WinCC Advanced Visu für den PC erstellen und der die Archive "unterjubeln".

Wenn man Excel/VBA kann, dann kann man selber seine speziellen Auswertungen programmieren. Wenn man nicht programmieren kann, dann muß man eben fremde Lösungen verwenden. Da kenne ich mich aber kaum aus. Meine Aufgabenstellungen konnte ich bisher rein in WinCC Comfort/Advanced oder Professional lösen oder sie waren so speziell aber einfach, daß ich mir dafür einen eigenen spezifischen Viewer in Excel gebastelt habe inklusive "zu-Fuß-einlesen" der csv.Dateien (siehe Beispielbild).

Für das Problem Dezimalpunkt oder -komma siehe mal hier

Harald
 

Anhänge

  • Analyse_Wasseraufbereitung.jpg
    Analyse_Wasseraufbereitung.jpg
    182,2 KB · Aufrufe: 52
Der WinCC_TIA_archivviewer kann leider nur weniger als 10000 Einträge. Bei mehr Einträgen gibt es den Fehler. Siemens schreibt dazu zwar das es an der lokalen Konfiguration vom PC liegt, gibt als Hilfe aber nur an das man die Größe des Archivs reduzieren muss.
Scheinbar habe ich bei ihm die Grenzen irgendwie erreicht und es ist nicht zufriedenstellend wenn ich dem Kunden später den Archivviewer übergebe nachdem ich meine Konfiguration "irgendwie" verstellt habe, es bei ihm aber dann nicht läuft.

Es wird also wahrscheinlich darauf hinauslaufen das ich etwas ähnliches mache wie das was Du als Bild angehangen hast. Mein Problem dabei ist nur eben das ich von Excel so überhaupt keinen Peil habe. Also ich kann alle möglichen Rechnungen aufstellen, aber beim Datenhandling hört es dann auf.

Das Problem mit dem Dezimalpunkt habe ich im Griff. Das ist zum Glück nicht das schwierigste.

Die Größe der Archive lässt sich am obigen Beispiel ja noch verkleinern, muss ja nicht minütlich bei einer langsamen Raumtemperatur sein. Bei Volumenstrom/Druck sowie Energiemessungen allerdings hört es dann ja leider auf es zu minimieren, diese Werte sind vorgeschrieben minütlich zu protokollieren.

Die Alternative es direkt in einer SQL-Datenbank auszulagern anstelle der Archive ist leider nicht gegeben. Außer dem super Siemens USB-Stick darf kein PC oder sonstiges an das System. Sonst wäre es ja zu einfach gewesen.

Muss mal schauen wie ich hier weiterkomme.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Siemens schreibt daß es erst ab "mehrere hunderttausend Datensätze" Probleme wegen der Größe geben könnte.
Welche Excel-Version hast Du?
Wieviele Zeilen insgesamt hat das Excel-Blatt "Archive" bei Dir?

Ich habe gerade kein sooo großes csv-Archiv zur Verfügung, doch wenn ich meine obige csv-Datei einfach nur die Zeilen bis auf über 1 Mio Zeilen vervielfache, dann dauert das Einlesen mit dem Siemens WinCC_TIA_ArchivViewer zwar etwas, funktioniert aber ohne Laufzeitfehler. In Excel habe ich jetzt z.B. 1006081 Zeilen im Blatt "Archive" (allerdings wiederholen sich die Zeitstempel durch meine Kopieraktion in der csv-Datei). Ich verwende Excel 2010 64 Bit

Harald
 
Ich habe mir jetzt mal mein "Beispiel"-Archiv mit Zeitstempeln im. ca. 9 Sekunden Abstand erzeugt (also alles unterschiedliche Zeitstempel).
In der Tat kackt der WinCC_TIA_ArchivViewer da schon bei weniger als 50.000 Datensätzen ab! Ein Archiv mit ca. 32.000 Datensätzen kann ich noch fehlerlos einlesen.
Da hat der Praktikant ;) der den Viewer erstellt hat, wohl auch nur mit Fake-Datensätzen getestet...
Die Idee der Verwendung von Pivot-Tabellen/Diagrammen (ohne selber denken zu müssen ;) ) war wohl doch nicht so gut...

Harald
 
Probiere mal das Archiv im Anhang.
Hab mal Deine csv in Excel eingelesen, Harald.
Meine Frage dazu (schon ziemlich off topic): welche Bedeutung hat die Spalte 'Time_ms'?
Interpretiert man die Zahlen in dieser Spalte mit der Einheit µd (MikroTage) statt ms, dann erhält man recht genau Datum und Uhrzeit laut Spalte 'TimeString' (Abweichung kleiner als ±5,787 µd entspechend ±500 ms, also letztlich die Rundung auf ganze Sekunden).
Interpretiert man die Zahlen jedoch "Überschrifts-gemäss" als ms, dann kommen knapp 500 Tage zu viel heraus!?
Lass mich raten, es war der Herr Siemens, der sich die Überschrift für diese Spalte ausgedacht hat? ;)

Gruss, Heinileini
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@PN/DP:
Jo, irgendwie sind wenige Datensätze möglich, auch wenn da mehr steht ^^. Am Speicher liegt es kaum, meine CSV-Datei hat 208.334 Einträge mit 5 Variablennamen. Also irgendwas bei 34.000 Einträge pro Variable im Minutentakt.
Die kleine CSV-Datei ist bei 18MB, wird jedoch weiter wachsen.
Am Ende werden es 32 Variablen mit je 500.000 Einträgen werden die alle in einem Diagramm darstellbar sein sollen (an- und abwählbare Einzelgraphen).


Das Siemens mir zwar das Archiv speichern aber nicht richtig wiedergeben kann ist irgendwie traurig.


edit:
Microsoft Excel für Office 365 MSO (16.0.12430.20198) 64-Bit
 
Zuletzt bearbeitet:
welche Bedeutung hat die Spalte 'Time_ms'?
[...]
Lass mich raten, es war der Herr Siemens, der sich die Überschrift für diese Spalte ausgedacht hat? ;)
Ich vermute, das "_ms" soll "Microsoft" heißen, weil Excel diese Time-Codierung "0,0 ... 1,0 entspricht 0:00:00 ... 24:00:00" kennt.
https://www.sps-forum.de/hmi/89039-...v-eines-comfort-panels.html?highlight=Time_ms

Übrigens:
Der Siemens WinCC_TIA_ArchivViewer verwendet nur die ersten 3 Werte (Spalten) der csv-Archivdatei:
- VarName
- TimeString
- VarValue

Die fünfte Spalte "Time_ms" wird nicht verwendet - es wird der von den Regionaleinstellungen abhängig formatierte Zeitstempel aus "TimeString" verwendet (ich habe nicht geprüft, ob das da richtig gemacht wird)

Die vierte Spalte "Validity" (Gültigkeit) wird der Einfachheit halber einfach ignoriert (!). Der Wert "VarValue" ist nur gültig, wenn in der Spalte "Validity" eine 1 steht.

Fazit: der WinCC_TIA_ArchivViewer ist (so wie er ist) nur zum Vorführen gut, um Leuten mit Kleinstprojekten ein Erfolgserlebnis zu verschaffen, die von csv und VBA überhaupt keine Ahnung haben, aber irgendwas auf die Schnelle präsentieren müssen... ;)

Harald
 
Ich vermute, das "_ms" soll "Microsoft" heißen, ...
Das klingt plausibel, Harald.
Die Spalte 5 kann man in Excel (mit 2010, 32 Bit getestet) auswerten, wenn man nicht durch 10^6 dividiert, sondern per StringManipulation das Komma um 6 Stellen nach links schiebt und dann erst das Ergebnis als DateValue bzw. TimeValue interpretiert.
Die TabellenBlattFormatierung 'JJJJ-MM-TT hh:mm:ss,000' liefert dann tatsächlich hinter dem Komma die SekundenBruchteile:
ArcWT2ms.jpg
In VBA habe ich das nicht geschafft. Die Formatierung mit 'yyyy-mm-dd hh:mm:ss.000' liefert mir immer 000 hinter dem Komma.
So weit, so schlecht.
Was mich total verblüfft hat: 'mm' für den Monat in der VBA-Maske wird tatsächlich als Monat interpretiert, während 'mm' (statt 'MM') in der TabellenBlattMaske ganz frech die Minuten statt des Monats in die DatumsAngabe schmuggelt.
Die VBA-Maske 'yyyy-mm-dd hh:mm:ss.000' übrigens ist genau das, was mir die Funktion MakroAufzeichnen aus meiner TabellenBlatt Formatierung gemacht hat.
Diese Art von Inkonsequenz in Excel nervt mich genauso, wie das ständige "MitDenken" von Excel, das immer wieder WorkArounds erfordert, sofern sich überhaupt welche finden lassen.

Genug gejammert. Mein eigentliches Anliegen (und schon wieder "topic-grenzwertig"): wie sind die Daten in Deiner csv-Datei ArcTW2 zu interpretieren?
Zu manchen ZeitStempeln werden alle 4 Daten geliefert, zu manchen aber nicht. Zunächst hatte ich angenommen, dass die nicht enthaltenen Daten einfach aus vorherigen Werten übernommen werden sollen, d.h., dass die csv nur die geänderten Werte enthält, um die Dateien nicht unnötig aufzublähen. Aber Deine Datei enthält ausreichend GegenBeispiele für meine These, also Daten, die erneut angeliefert werden, ohne dass sie sich verändert hätten.
Ich habe also die nicht angelieferten Daten nicht interpoliert bzw. nicht extrapoliert und erhalte folgendes, lückenhaftes Diagramm:
ArcWT2.jpg

Ist das plausibel oder total "daneben"?
Ab Zeitstempel '21.09.2010 22:49:21' kommen nur noch Nullen - diesen Bereich habe ich nicht in das Diagramm einbezogen.

Gruss, Heinileini
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Werte haben nichts zu bedeuten, sie stammen aus einer Simulation mit "zufälligen" Werten. Ich habe die csv-Datei einfach kurzerhand genommen, um eine kleine Datei im WinCC-Prozesswertarchiv-Format zu haben. Mach' Dir keine Mühe da was zu interpretieren.

Harald
 
Hast Du mal 'yyyy-mm-dd hh:mm:ss,000' probiert? (mit Dezimal-Komma)
Sicher doch! U.a. auch das, Harald.

Übrigens, das was Du kürzlich über die Auffindbarkeit von passenden Themen beim Suchen in der Hilfe gesagt hast, gilt für MicroSoft ganz besonders!!!
Da erhält man eine mindestens 3 Seiten lange Liste von Kapiteln und kann sich stundenlang mit dem Nachlesen in den vorgeschlagenen Kapiteln amüsieren, ohne der eigentlich gesuchten Info auch nur ein Bisschen näher zu kommen. Folgt man den Links (egal, ob nur denen, die verheissungsvoll klingen oder allen), dann dreht man sich im Kreis, dass einem schwindelig wird.
Und durch die unnötig verkonsumierten Kapitel hat man auch nix dazugelernt, weil zu unverständlich.
Wenn die ExcelHilfe schon immer so unbrauchbar gewesen wäre, wie sie sich jetzt darstellt, hätte ich nie den Einstieg in Excel geschafft. :ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das klingt plausibel, Harald.
Die Spalte 5 kann man in Excel (mit 2010, 32 Bit getestet) auswerten, wenn man nicht durch 10^6 dividiert, sondern per StringManipulation das Komma um 6 Stellen nach links schiebt und dann erst das Ergebnis als DateValue bzw. TimeValue interpretiert.
Die TabellenBlattFormatierung 'JJJJ-MM-TT hh:mm:ss,000' liefert dann tatsächlich hinter dem Komma die SekundenBruchteile:

Gruss, Heinileini
Ich habe das gerade mal ausprobiert und ein Variablenarchiv in Excel geöffnet. Ich kann das Probleme mit der Umrechnung ins Datum_Zeit-Format nicht nachvollziehen.
Die Formatierung von Zellen F funktioniert bei mir problemlos auch mit Milisekunden. Zelle F2: =e2/10^6. Format der Zelle ist JJJJ.MM.TT hh:mm:ss,000;@
Mein Excel ist Excel 2010 64 Bit.
Oder ich habe das wahre Problem nicht erkannt.;)
 

Anhänge

  • Zwischenablage04.jpg
    Zwischenablage04.jpg
    47,8 KB · Aufrufe: 9
Mein Excel ist Excel 2010 64 Bit.
Die Division des Time_ms-Wertes durch 10^6 funktioniert auch bei mir im TabellenBlatt - nicht jedoch in VBA. Vielleicht liegt's an meiner 32-Bit-Version.
Habe mal "ersatzweise" mit dem DatenTyp Currency herumprobiert, aber das war in diesem Fall auch keine Lösung. Deshalb habe ich die Division in VBA durch Verschieben des Kommas im String realisiert.
Sorry, dass ich das so missverständlich beschrieben hatte!
 
Der Beitrag hat sich weiterentwickelt ^^ Hab es nicht mitbekommen.

Ich hatte für meinen Teil geschrieben:
Muss mal schauen wie ich hier weiterkomme.

So, das Fazit daraus - ich hab ein Programm geschrieben das mir meine Funktionen erfüllt, Siemens kann das ja nicht -.-

Falls jemand das Programm haben mag stelle ich es zur Verfügung.
Es liest (bei mir getestet) 999.999.999 Einträge aus, sortiert diese in bis zu 20 Variablennamen und erstellt ein druckbares Blatt.
Der Trenner ( , . ; ) ist frei einzugeben, die Zeit ist irrelevant, wird aber auf der X-Achse unten angezeigt.
Es ist mit den linken Buttons möglich einzelne Linien auszublenden, die AchseY wird automatisch neu ermittelt

Vielleicht könnt Ihr damit etwas anfangen.

Template_1.jpgTemplate_2.jpg

WinCC_TIA_Viewer

Bei groben Fehlern oder so schreibt mir eine PN ;)

edit: Damit das Thema im Ursprung gelöst ist markiere ich das als hilfreichste Antwort.
 
Zuletzt bearbeitet:
Zurück
Oben