TIA WinCC Advanced Archiv Variabeln in einer csv Datei geordnet archivieren

EAC Thomas

Level-2
Beiträge
11
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Tag an Alle.
Ich bin bei einem Kunden, der will für seine Firma einen Monatsbericht für seine Anlage aufgezeichnet haben dies täglich Tonnage und die Laufzeit der Anlage mit den jeweiligen Materialien in den Silos.

Das Programm dazu habe ich bereits geschreiben, alle Daten werden in einigen DBs geschrieben und am Monatsende per blocktransfer auf einen Ablage DB abgelegt.

Diesen DB will ich jetzt über die HMI (TIA V16 WinCC Advanced update 6) in eine schöne übersicht bringen, was mir ebenfalls gelungen ist.
Jetzt kommt mein Problem.
Die angezeigten Variabeln sollen in eine CSV Datei archiviert werden und in ein Netzwerkordner der Firma abgelegt werden, damit deren Buchhaltung diese CSV für ihr System einbinden können und die Listen nicht von den Anlagenfahrern per hand vom Monitor abgeschrieben werden müssen damit die Buchhaltung die wieder ins System eintragen können.

Beim Export wurde mir jedoch darauf aufmerksam gemacht, dass die Variabeln in der CSV keine logische Reinfolge besitzen (31 Tage je 14 Variabeln pro Tag)
Die Liste beginnt mit zur Zeit mit Tag 1, geht weiter mit Tag 10 bis 15, danach Tag 28 abwärts bis 17, dann Tag 30 -31 und am Ende die Fehlenden Tage kreuz und quer.
Somit für die Buchhaltung unbrauchbar.
Ich habe meine Archive jedoch so angelegt, dass es die geordnete Reinfolge haben sollte:

Tag01 - 1 Natur [h]
Tag01 - 1 Natur [Kg]
Tag01 - 2 Granit [h]
Tag01 - 2 Granit [Kg]
.. bis
Tag31 - 1 Natur [h]
Tag31 - 1 Natur [Kg]
etc.

Nachdem ich alles noch einmal komplett neu Übersetzt habe und noch einmal die Archivierung exportiert habe, kam wieder eine neue Variante mit unlogischer Reinfolge der exportierten Variabeln.

Gibt es bei der Archivierung in eine CSV Datei eine Möglichkeit die Variabeln selbst in einer bestimmten Reinfolge zu archivieren oder macht TIA Portal in der Sache was es will?
Ist TIA WinCC Advanced überhaupt ausgelegt solche Aufgaben zu erfüllen oder sollte man doch lieber ein anderes System für diese Aufgabe in betracht ziehen?
Ich habe mein angelegtes Variabel Archiv schon 2 mal überarbeitet damit die Reinfolge in der ich es aufgeschrieben habe auch archiviert wird, was bisher immer schief ging.

Ich habe leider auch keine Ahnung von Scripte und hab auch keine Ahnung wie man welche schreibt. Funktioniert das nur durch die Unterstützung von Scripten ?
Die Anzahl der genutzten Variabeln für das CSV Dokument beträgt ca. 434 Variabeln.

Ich hoffe ich konnte mein Problem einigermaßen gut erläutern und hoffe es findet sich jemand der Interesse hat mir zu helfen.

MfG Thomas
 
Wie erzeugst du denn deine csv-Datei?
Mit einem eigenen VBS-Skript hast du alle Freiheiten, das Format der csv-Datei zu bestimmen, musst dafür aber jede Variable einzeln anfassen. Hast aber auch die volle Kontrolle über die verwendeten Trennzeichen (Listen-Separator) und Dezimalsymbol. Tipp: wenn die csv-Datei in einer Firma mit deutschem Excel geöffnet werden soll, dann verwende immer Semikolon ';' und Dezimal-Komma ',' und verlass dich nicht darauf, welche Trennzeichen auf dem PC mit der WinCC Adv. Runtime eingestellt sind.

Hinweis: die größte Hürde ist, die Daten aus der PLC garantiert aktualisiert in das HMI (die Advanced Runtime) zu bekommen. Das geht nur mit einem Handshake, z.B. als Rezeptur.
siehe Forumssuche nach: GetDataRecordTagsFromPLC

PS: Welche PLC CPU hast du (wo der DB ist)? Vielleicht kann die die csv-Datei erzeugen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich danke dir für deine Antwort, das bringt mich schon einmal weiter und ja der Kunde ist ein deutsches Unternehmen.
Die CSV datei wird von der HMI erstellt Archiv - Ablageort CSV-Datei (ASCII).
Die CPU ist eine CPU 1516F-3 PN/DP (6ES7 516-3FN01-0AB0) V2.8 mit TIA V16 Update 6 Projektiert.
Das mit den Einstellungen zum öffnen werde ich auch noch einmal ausprobieren.
Das ich jede Variabel einzeln bearbeiten muss wollte ich eigentlich vermeiden. Gestern ist ,mir noch eine Idee gekommen, ich könnte einfah das Archiv in einzelne Tagesarchive aufteilen und bei der Kopieraufforderung die Option statt überschreiben auf "anhängen" einstellen und gucken ob er mir dann dem Zyklus her alle entsprechend der Reinfolge anbindet. Dies kann ich leider erst Montag ausprobieren, da ich heute nicht ins werk komme.

Das die CPU das auch machen könnte ist mir noch nicht eingefallen, das werde ich auch noch einmal überprüfen.

Ich danke erst einmal für die Antwort, ich hab mir schon überlegt den Bericht von der HMI über den Druckbefehl als Screenshot an den PDF drucker zu senden und die PDF kann die Buchhaltung dann mit einem Konverter Programm ins Excel laden. Ich habe leider wenig Erfahrung mit Textbearbeitung und Tabellenkalkulation und weiss nicht was da alles möglich ist.
Ich bleibe lieber bei meiner Programmierung da weiss ich wenigstens was ich mache und dass es funktioniert.
Schönes Wochenende noch.
 
Die CSV datei wird von der HMI erstellt Archiv - Ablageort CSV-Datei (ASCII).
Gibt es bei der Archivierung in eine CSV Datei eine Möglichkeit die Variabeln selbst in einer bestimmten Reinfolge zu archivieren oder macht TIA Portal in der Sache was es will?
Da hast du überhaupt keinen Einfluss auf das Format der csv-Datei und die Reihenfolge der Einträge/Zeilen. Die werden in "bunter" Reihenfolge erzeugt. Schau dir die erzeugte csv-Datei einfach mit einem Texteditor (z.B. Notepad) an.

Ich habe leider wenig Erfahrung mit Textbearbeitung und Tabellenkalkulation und weiss nicht was da alles möglich ist.
Ich bleibe lieber bei meiner Programmierung da weiss ich wenigstens was ich mache und dass es funktioniert.
Ich habe leider auch keine Ahnung von Scripte und hab auch keine Ahnung wie man welche schreibt.
Da ist auch noch einiges mehr zu beachten, als nur fehlerfreien VBS-Code zusammen zu kopieren. Da wäre es vermutlich günstiger, die Programmierung des Export von DB in csv-Datei extern zu beauftragen, dann hättest du auch für die Zukunft eine Vorlage (vorausgesetzt, du lässt dir nicht irgendwelchen KnowHow-Schutz unterjubeln).
(Allerdings ist nicht gesagt, dass externe Anbieter das auch gut können. Für so kleine Aufträge werden gerne unerfahrene Programmierer eingesetzt, die in der Firma gerade nichts wichtigeres zu tun haben und eigentlich noch nicht genug Erfahrung haben).

Das eigentliche Konvertieren der 31 x 14 Variablen = 434 DB-Variablen in csv-Datei ist zwar recht simpel, aber das Drumherum, um garantiert aktualisierte Daten ins HMI zu bekommen und anderes macht die Realisierung etwas aufwendig (wozu ich zur Zeit keine Lust habe ;) ).
Vor Jahren (2011) hatten wir hier mal einen Thread, der von der Fragestellung bis zum funktionierenden Export alles behandelte, den könntest du mal durchlesen. Da ist aber keine fertig anwendbare Lösung zum einfach kopieren enthalten.


Ist TIA WinCC Advanced überhaupt ausgelegt solche Aufgaben zu erfüllen oder sollte man doch lieber ein anderes System für diese Aufgabe in betracht ziehen?
Es gibt externe Tools, um Daten aus einem DB in der CPU zu lesen und in csv-Dateien zu exportieren. Damit habe ich aber keine Erfahrung, weil ich meine Exporte immer selbst mit Skripten realisiere. Externe Tools wurden hier schon öfter genannt, Hinweise auf die Namen müsstest du mit der Forumssuche finden können ("db csv export" ? ) oder frag' eine KI. Vielleicht nennen auch noch andere User die einschlägigen Tools.

PS: bei einer Inet-Suche nach "s7 daten aus cpu in csv speichern" bin ich gerade über folgende Tools gestolpert:
aber wie gesagt, ich habe noch keines der Tools verwendet
oft wird auch anstatt "csv" das Wort "Excel" genannt


Die CPU ist eine CPU 1516F-3 PN/DP (6ES7 516-3FN01-0AB0) V2.8 mit TIA V16 Update 6 Projektiert.
(...)
Das die CPU das auch machen könnte ist mir noch nicht eingefallen, das werde ich auch noch einmal überprüfen.
Da müsste es Möglichkeiten geben, habe ich aber keine Erfahrungen. Vielleicht andere User?
 
Zuletzt bearbeitet:
PS:
Das eigentliche Konvertieren der 31 x 14 Variablen = 434 DB-Variablen in csv-Datei ist zwar recht simpel, aber das Drumherum, um garantiert aktualisierte Daten ins HMI zu bekommen und anderes macht die Realisierung etwas aufwendig (wozu ich zur Zeit keine Lust habe ;) ).
(...)
Es gibt externe Tools, um Daten aus einem DB in der CPU in csv-Dateien zu exportieren. Damit habe ich aber keine Erfahrung, weil ich meine Exporte immer selbst mit Skripten realisiere.
Wenn ein PC vorhanden ist, der Zugriff auf die S7-CPU hat, dann programmiere ich oft das auslesen der DB-Variablen direkt mit Excel. Das ist wesentlich einfacher, als Skripte in der WinCC Comfort/Advanced Runtime.
Beispiel siehe FAQ: Excel + Libnodave

für selbstgestricktes direktes Auslesen aus S7-CPU mit Kommunikations-Bibliotheken (Libnodave, Snap7, Accon Aglink, ...) suche mal mit der Forumssuche z.B. nach "libnodave excel"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Besten Dank für die Hinweise, ich werde sie mir alle einmal angucken.
Ich denke jedoch dass dies alles zu aufwendig ist, der Kunde will im Grunde nur seine Handschriftlichen Dokumente die zur Buchaltung ins Bürogebäude gebracht werden muss eindämmen. Ich denke mit der PDF Datei die eine angenehme Form hat und automatisch rüber gesendet wird kommen die auch klar.
Das mit der Excel Tabelle oder CSV Datei denke ich könnte man in Zukunft noch einmal einrichten.
Was ich jedoch vermeiden will ist, dass Externe Programme wie die Office programme oder andere Tools irgendwie direkt auf meine CPU zugreifen.
Ich hatte mal einen Fall wo der Kunde eigenmächtig einen Netzwerkdrucker in die Anlage gestellt hat und mit dem Profinet verbunden hat um Dokumente zu drucken.

Ich bekam an den Tag öfters Anrufe dass die Anlage immer willkürlich ausfällt. Ich konnte mir das am Telefon nicht erklären.
Als ich vor Ort war habe ich mir das angesehen und das war wirklich so, alle paar Stunden fiel das komplette System aus, Teilnehmer waren im
Profinet verschwunden und wieder da.

Ich habe eine Netzanalyse durchlaufen lassen über einen längeren Zeitraum und festgestellt, dass die Übertragungsgeschwindigkeit vom Netz kontinuierlich langsamer wurde bis meine Safetybaugruppen ausfielen.

Ich habe dann die Telegramme durchgesucht und gesehen dass ein Netzwerksrucker Tokens ins Profinet sendete jedoch keine Antwort bekam und die Token nie gelöscht wurden, der Drucker jedoch immer mehr Token reinsendete um zu hoffen einen Druckauftrag zu bekommen. am Ende war das Netz voll mit Anfragetoken die das Netz lahmgelegt hat.
Das hätte mir der Kunde aber auch am Telefon sagen können, dass er am Vortag einen Netzwerkdrucker eingebaut hat ohne ihn zu konfigurieren.

Seit dem bin ich ganz vorsichtig was externe Tools oder Programme angeht die eine direkte Verbindung zu der CPU aufbauen.

Ich werde mich jedoch über diese Optionen bei uns in der Firma schlau machen und wenn ich mit meiner Test CPU das sauber hinbekomme werde ich es dem Kunden hier Vorschlagen es einzuspielen.
Das mit dem Papierkram haben die seit 50 Jahren oder mehr gemacht, da kommt es auf ein paar Tage oder Wochen auch nicht mehr drauf an.
PS: bei einer Inet-Suche nach "s7 daten aus cpu in csv speichern" bin ich gerade über folgende Tools gestolpert:
https://www.traeger.de/products/software/tools/s7-to-csv
https://www.process-informatik.de/sps-daten-loggentriggern.html/?lang=de_

So einfach gehts: Excel-Dateien mit der Siemens S7 schreiben

Erfahren Sie, wie Sie erstklassige xlsx-Dokumente mit Ihrer Siemens S7 SPS erzeugen können. Maschinendaten in Excel-Dateien schreiben und mehr.
mb-datasuite.com
aber wie gesagt, ich habe noch keines der Tools verwendet
oft wird auch anstatt "csv" das Wort "Excel" genannt

Wenn ein PC vorhanden ist, der Zugriff auf die S7-CPU hat, dann programmiere ich oft das auslesen der DB-Variablen direkt mit Excel. Das ist wesentlich einfacher, als Skripte in der WinCC Comfort/Advanced Runtime.
Beispiel siehe FAQ: Excel + Libnodave

für selbstgestricktes direktes Auslesen aus S7-CPU mit Kommunikations-Bibliotheken (Libnodave, Snap7, Accon Aglink, ...) suche mal mit der Forumssuche z.B. nach "libnodave excel"

Ich danke nochmal für all die Hinweise, das werde ich einmal ausprobieren und durchlesen.
Für zukünftige Projekte und Optimierung älterer kann man das natürlich auch auch verwenden und wenn man die DBs direkt auslesen kann spart man natürlich auch an Powertags und braucht keine teure Runtime Lizienz kaufen.

MfG Thomas
 
Zurück
Oben