WinCC Unified CSV-Datei pro Buttonklick exportieren?

Schlackeraal

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

Nach langer Recherche bin ich zu dem Entschluss gekommen euch anzuschreiben da ich zu Lösung gekommen bin. :(

Ich möchte in WinCC Unified pro Betätigung eines Buttons eine CSV-Datei exportieren, dies wird in JavaScript realisiert. Ich weiß das es möglich ist eine CSV-Datei per WinCC Unified JavaScript zu exportieren aber sobald der Button erneut betätigt wird, wird die vorherige CSV-Datei überschrieben.. egal ob ich ein Datum hinzufüge oder nicht. Wüsstet ihr wie man das Problem behebt?

LG
 
Wie erzeugst Du denn den Dateiname?
Wenn Du mehrmals eine Datei mit demselben Name erzeugst, dann wird logischerweise die vorherige Version der Datei überschrieben. Willst Du vielleicht bei jeder Button-Betätigung neue Daten an die evtl. schon existierende Datei hinten anfügen? Dann müsstest Du die Datei im Append-Mode öffnen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
egal ob ich ein Datum hinzufüge
Na das Datum wird ja immer gleich sein, wenn du 2x hintereinander die Taste drückst. Also entweder Datum+Uhrzeit einfügen oder einen fortlaufenden Dateinamen generieren. Möchtest du denn überhaupt mehrere Dateien oder evtl. eine Sammeldatei?
 
Hallo Harald & DeltaMikeAir

Das Problem hat sich soeben geklärt..
Es war ein Fehler meinerseits..
Hier der Code :

let Ergebnis = Summe + 1;

let timeStamp = new Date().toLocaleDateString().replace(/[/]/g, "_");
let fileName = "C:\\Users\\Public\\Exportierung_TIA-Portal\\" + timeStamp + "_Motordaten" + Ergebnis + ".csv";

Wie man sieht habe ich einen Zeitstempel hinzugefügt und dieser Ersetzt jedes mal den vorherigen Zeitstempel wenn die Datei aktualisiert wird.. Ich habe nun eine Variable angelegt welche im Dateinamen angegeben werden soll und siehe da... Die Datei wird nichtmehr ersetzt. Stattdessen wird nun immer eine neue CSV-Datei angelegt.

Es tut mir leid das ich eure Zeit unnötig in Anspruch genommen.
Danke trotzdem für die ganze Hilfe :)
 
Ich habe nun eine Variable angelegt welche im Dateinamen angegeben werden soll und siehe da... Die Datei wird nichtmehr ersetzt.
Dieser kurzgeschossene workaround ist keine gute Lösung. Wenn Du die WinCC Runtime neu startest, dann werden vermutlich wieder ältere Dateien von dem Tag überschrieben. Was für eine Variable ist "Summe"?

Wie DeltaMikeAir bereits in Beitrag #2 erwähnt hat, wäre eine korrekte Lösung, die Uhrzeit mit in den Dateiname einzufügen. Du müsstest timeStamp so formatieren, daß da die Uhrzeit inkl. Sekunden mit drin ist (aber ohne Doppelpunkt als Trennzeichen).
Kann es passieren, daß in der Nacht vom letzten Sonntag im Oktober bei der Zurückschaltung von der Sommerzeit in den 2 Stunden zwischen 02:00 bis 03:00 jemand den Button drückt? Da müsstest Du Dir noch was einfallen lassen, damit da nicht eine Datei überschrieben wird.
Eine generelle Lösung könnte sein, vor dem Datei anlegen zu prüfen, ob eine Datei mit dem Dateiname schon existiert, und wenn ja dann eine (fortlaufende) Zahl anzuhängen oder die bereits angehängte Zahl zu erhöhen, solange bis ein Dateiname entsteht, der noch nicht existiert.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann es passieren, daß in der Nacht vom letzten Sonntag im Oktober bei der Zurückschaltung von der Sommerzeit in den 2 Stunden zwischen 02:00 bis 03:00 jemand den Button drückt? Da müsstest Du Dir noch was einfallen lassen, damit da nicht eine Datei überschrieben wird.

CST anstatt der lokalen Zeit hat das Problem nicht.
 
Zurück
Oben