WinCC VBscript Daten aus .csv Datei lesen und an eine andere .csv Datei anhängen

jierten

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
zuerstmal bin ich begeistert von dem Forum hier, hab schon sehr viel nützliches gefunden!

Jetzt stehe ich jedoch vor einem Problem:
Und zwar müsste ich bei WinCC (TIA Portal) Daten aus einer .csv Datei über VBscript einlesen bzw. komplett kopieren und an die Daten die sich in einer anderen .csv Datei befinden anhängen.

Ich habe schon einige Zeit damit verbracht die Lösung zu finden und hoffe nun, dass ihr mir weiter helfen könnt.
Den folgenden Forenbeitrag http://www.sps-forum.de/faq/15348-protool-winccflex-daten-lesen-schreiben-mit-vb-script.html habe ich natürlich schon gelesen, jedoch ist da für meinen Fall nicht das richtige dabei..

Habe auch ansonsten schon einige Info's gefunden, jedoch ist das Problem meistens, dass VBscript bei WindowsCE (ich benutze ein Touch Panel) leicht abweicht und ich noch nicht so gut klar komme damit.

Ich hoffe ihr könnt mir weiter helfen

Gruß
jierten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte mit einem VB Script die Daten aus einer .csv Datei kopieren und an eine andere bestehende .csv Datei anhängen.
Leider bin ich bisher bei jedem Versuch gescheitert.
Daher die Frage ob jmd vllt eine Code Idee für mich hätte
 
Und zwar müsste ich bei WinCC (TIA Portal) Daten aus einer .csv Datei über VBscript einlesen bzw. komplett kopieren und an die Daten die sich in einer anderen .csv Datei befinden anhängen.
Rostiger Nagel hat schon recht. Zeig uns eventuell doch mal ein Beispiel für den Inhalt der csv-Files.
Wenn du schon was gemacht hast, zeig doch mal.

Das meiste steht schon im FAQ.
Hier noch ein Handbuch zum FileControl-Objekt mit dem du arbeiten musst. Da steht drinnen was du damit so anstellen kannst.
Anhang anzeigen VBScript_WinCE_File System Controls.pdf
[EDIT]hab grad festgestellt dass die Datei im FAQ angehängt ist.... :rolleyes:[/EDIT]

So aus dem Bauch heraus würd ich sagen:
  1. Ein filectl.file-Objekt für die Quell-csv
  2. Dann mit fs.FileCopy eine Kopie erstellen (Sofern du das Original erhalten willst)
  3. Erstes file-Objekt auf die Kopie legen und öffen (zum Anhängen)
  4. Zweites file-Objekt auf die andere csv-Datei und ebenfalls öffnen
  5. Dann zeilenweise mit file1.LinePrint file2.LineInputString anhängen
  6. Solange bis EOF von file2 (alle Zeilen angehängt)
 
Zuletzt bearbeitet:
Ja so ähnlich habe ich mir das gedacht.

Hier mal mein bisheriger Code:

Dim f,datei1
Set f= CreateObject("filectl.file")
datei1="\\PC\archiv\temp_alarm.csv"

Dim d,ds,datei2
Set d = CreateObject("filectl.file")
Set ds = CreateObject("filectl.filesystem")
datei2="\\PC\archiv\var.csv"


f.open datei1, 1
d.open datei2, 8

Do Until f.EOF
d.LinePrint = f.LineInputString
Loop

f.Close
d.Close


In Datei1 habe ich die Variablen archiviert
In Datei2 zeitgleich die Alarme

Am Ende müsste beides in eine Datei rein

Aber denke mein erstes Problem ist schon bei d.LinePrint = f.LineInputString .. Kann man das so hintereinander schreiben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gut, das sieht ja von der Idee her schon ganz gut aus.
Den Code bekommst du hier übrigens besser angezeigt wenn du davor ein [CODE] und danach ein [/CODE] einfügst.
Dann bekommst du auch die Tabs korrekt angezeigt.
Code:
Do Until f.EOF
    d.LinePrint = f.LineInputString
Loop

Aber denke mein erstes Problem ist schon bei d.LinePrint = f.LineInputString .. Kann man das so hintereinander schreiben?
Das ist sicher ein Problem. LinePrint ist eine Methode und erwartet einen String-Parameter. Zuweisen kannst du Eingenschaften.
d.LinePrint f.LineInputString (Ohne = ) sollte gehen.

Frage noch dazu. Du scheinst ja auf ein Netzlaufwerk zuzugreifen. Funktioniert das erstellen der beiden csv-Dateien auch schon über Skripte?
Will nur sicher gehen ob du überhaupt schon mit den FileControl-Objekten lesen/schreiben kannst.

Als nächstes würd ich mich dann langsam mit rantasten.
Blend dir irgendwo ein Meldefenster mit den System-Fehlern/Warnungen ein.
Bau dir ein paar debug-Meldungen mit ShowSystemAlarm ein und schau mal was das Error-Objekt sagt.
 
Zuletzt bearbeitet:
Danke für den Tipp mit dem Code!

Mein Gott, da verbringe ich so viel Zeit damit mein Skript auf den Kopf zu stellen und übersehe diesen banalen Fehler..
Ohne das "=" Zeichen läufts! :p Danke fürs drauf hinweisen!

Und ja, der Netzwerkzugriff funktioniert.
Ich habe dort jedoch auch einige Stunden investiert, bis es geklappt hat. Bin halt noch ein blutiger Anfänger ;)
 
Ich hätte nun noch eine weiter Frage die auch noch hierzu passt.

Wie kann ich die eingelesenen Daten in der Visualisierung anzeigen ?
Also neben dem einfachen umkopieren auch noch auf dem Bildschirm anzeigen. Ist das möglich?

-> Linie einlesen
-> Linie in Textfeld auf Bildschirm anzeigen
 
Zurück
Oben