MP270B/Protool Daten auf CSV Formatieren

Waelder

Level-2
Beiträge
964
Reaktionspunkte
117
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,
ich hab mal nach Protool und CSV suchen lassen betr. Exportieren von Daten. Bin aber leider zu keinem (mir verständlichem) Ergebnis gekommen.
Ich möchte folgendes Projektieren.
Ich zeichne Daten in einem Archiv auf, sagen wir 5-10 Verschiedene Werte.
Protool speichert nun alles in einer Reihenfolge ab von oben nach unten.
BSP :
VarName";"TimeString";"VarValue";"Validity";"Time_ms"
"Testvariable";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable1";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable2";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable3";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable4";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable5";"17.10.2005 09:55:19";0;1;38642413413,8542
"Testvariable6";"17.10.2005 09:55:19";0;1;38642413413,8542
usw...
Wie kann ich das mit VB so Formatieren, dass ungefähr so was rauskommt.

TimeString;Testvariable;Testvariable1;Testvariable2;Testvariable3;Testvariable4;Testvariable5;Testvariable6
17.10.2005 09:55;10;11;12;13;14;15;16
17.10.2005 09:56;12;13;12;15;17;18;19
18.10.2005 09:57;80;54;68;64;68;68;15

ggf auch die Möglichkeit daten anzuhängen.
Ich bin leider noch nicht so weit um mit meinem VB Wissen das zu bewerkstelligen.

:idea:
 
schreib ein script.
das sollte dann ungefär so aussehen.

Code:
Dim f,fs,mode,datum,zeit

datum="20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
zeit = Time

Set f= CreateObject("filectl.file")
Set fs = CreateObject("filectl.filesystem")

datei = "storage card2\daten\datensatz.txt"

If fs.dir("storage card2\daten") = "" Then fs.mkdir("storage card2\daten")
If fs.dir(datei) = "" Then 
	f.open datei, 2
	f.LinePrint "Kopfzeile"
	f.Close
End If

mode = 8
f.open "storage card2\daten\datensatz.txt", mode
f.LinePrint datum & " " & zeit & dat_artikel_info_1 & "," & dat_artikel_info_2
f.Close
mode 2 ist überschreiben. 8 ist anhängen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Visual Basic

Sorry :oops:

aber mit deinem Script kann mein Protool leider nichts anfangen.. leider der Versteht mich nicht (Zeile 4 activeX cannot create file usw..). Liegts am Protool oder am Panel? Im Simulastionsmodus geht es auch nicht. Ich bins ja gewöhnt das div Scripte sich in der Simulation wunderbar anwenden lassen aber am Panel nicht gehen. :lol: .
Vielleicht habe ich mich auch falsch ausgedrückt ?
Eben diese Standart Archive von Protool (z.b. Daten_10.csv) wandeln in einigermassen formatierte Werte so dass Excel die komfortabel darstellen kann (wie Daten_10_konv.csv).

Hab ich noch ein 2ten Versuch ?
 

Anhänge

  • daten.zip
    1 KB · Aufrufe: 12
völlig normal. die vbscript befehle eines win und eines wince-systems unterscheiden sich. deshalb kannst du das in der simulation nicht testen.

besorg dir mal diese datei:
http://support.automation.siemens.c..._WinCE.pdf?func=cslib.csFetch&nodeid=13408160

die hilfe für vbscript für win wurden mit deinem protool installiert

auch so, noch ganz nebenbei. dieses script ist nicht zum konvertieren deiner archive, sondern schreibt die variablen direkt. du musst dieses script also durch eine variable starten.
 
nachtrag.

für win sähe das ungefähr so aus.

Code:
Set fs = CreateObject("Scripting.FileSystemObject")

datei = "storage card2\daten\datensatz.txt" 

if not fs.FolderExists("storage card2\daten") then fs.CreateFolder("storage card2\daten")
if not fs.FileExists("storage card2\daten\datensatz.txt") then
   Set TextFile = fs.CreateTextFile("storage card2\daten\datensatz.txt", True)
   textfile.writeline "Kopfzeile" 
   textfile.close
End If 

Set TextFile = fs.OpenTextFile("storage card2\daten\datensatz.txt", 8)
   textfile.writeline datum & " " & zeit & dat_artikel_info_1 & "," & dat_artikel_info_2 
textfile.close
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhängen..

Das Skript ist super, allerdings hängt bei meiner Einstellung das Script meine neuen daten nicht an. sondern schreibt jedes mal neu die Datei neu.
BSP :
Wert 1;Wert 2;Wert 3;Wert 4;
1445;8;5;6
immer mit neuen werten aber nicht angehängt

So sollte es aber aussehen :
Wert 1;Wert 2;Wert 3;Wert 4;
1445;8;5;6
1450;9;6;9
1460;7;5;6
usw..

Warum werht sich das Script gegen das anhängen?
Ich hab doch ....csv", 8).. drinn
Mein script:
Code:
Dim fs,datei,textfile,Name
Name = (PtVar.BATCHNAME)
Set fs = CreateObject("Scripting.FileSystemObject")
datei = "C:\storage card2\daten\" & Name & ".csv" 

If Not fs.FolderExists("C:\storage card2\daten") Then fs.CreateFolder("C:\storage card2\daten") 
If Not fs.FileExists("storage card2\daten\" & Name & ".csv") Then 
Set TextFile = fs.CreateTextFile("C:\storage card2\daten\" & Name & ".csv", true) 
textfile.WriteLine "Wert 1;Wert 2;Wert 3;Wert 4;" 
textfile.Close 
End If

Set TextFile = fs.OpenTextFile("C:\storage card2\daten\" & Name & ".csv", 8) 
textfile.WriteLine(PtVar.Testvariable1)&";"&(PtVar.Testvariable2)&";"&(PtVar.Testvariable3)&";"&(PtVar.Testvariable4)
textfile.Close
 
also bei mir funktioniert es.

dein script wird aber auf dem mp NICHT funktionieren.
am besten testest du das auf dem mp
 
Lösungen...

Also Testobjekt MP270 mit CF-Karte oder Netzwerkspeicherung.

Script für Dateierzeugung :
Code:
Dim f,Name
Name = (PtVar.BATCHNAME)
Set f = CreateObject("FileCtl.File")
f.open "\\pc_46\CETEST\" + (PtVar.BATCHNAME) + ".csv",8
f.linePrint "Zeitstempel;Wert 1;Wert 2;Wert 3;Wert 4"
f.Close
Script für Dateneintragung :
Code:
Dim f,fwModeAppend,Name
Name = (PtVar.BATCHNAME)
Set f = CreateObject("FileCtl.File")
fwModeAppend=8
f.open "\\pc_46\CETEST\" + (PtVar.BATCHNAME) + ".csv",fwModeAppend
f.LinePrint (PtVar.Datum)&";"&(PtVar.Testvariable1)&";"&(PtVar.Testvariable2)&";"&(PtVar.Testvariable3)&";"&(PtVar.Testvariable4) 
f.Close
so nun muss ich dem Protool nur noch beibringen, dass wenn eine Datei vorhanden ist, dass er nicht das Script für Dateierzeugung anwendet.

Kann ich eigentlich meine Daten auf der Karte in eine Kurve auslesen ?
MfG Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das ist doch in meinem script oben drin.

fragen ob datei bereits existiert ist dieser teil. las dich durch das fs.dir nicht irritieren.
Code:
'abfrage ob verzeichnis existiert
If fs.dir("storage card2\daten") = "" Then fs.mkdir("storage card2\daten") 

'abfrage ob datei existiert
If fs.dir(datei) = "" Then 
   f.open datei, 2 
   f.LinePrint "Kopfzeile" 
   f.Close 
End If

aus den daten der karte eine kurve machen ist, denk ich, nicht ohne grössere mühen zu realisieren.

einfacher ist es die daten in einem db abzulegen und diesen dann für eine kurve zu benutzen. siehe mal unter kurvenanforderung in der hilfe
 
Schmatz.... alles wird gut

Folgende Scripte habe ich nun gebastelt + getestet :

Script :

Erzeuge_Datei
Code:
Dim f,fs,Ordner,Datei
'erzeuge Symbole
Ordner = (PtVar.VerzOrdner)
Datei = (+ (PtVar.Dateiname) + ".csv")
Set f = CreateObject("FileCtl.File")
Set fs = CreateObject("FileCtl.Filesystem")

'abfrage ob Verzeichnis existiert 
If fs.dir("Ordner") = "" Then fs.mkdir("Ordner") 

'abfrage ob datei existiert 
If fs.dir(Ordner+Datei) = "" Then 
f.open (Ordner+Datei), 2 
f.linePrint "Zeitstempel;Wert 1;Wert 2;Wert 3;Wert 4;Wert 5;Wert 6" 
f.Close 
End If
Script Schreibe Daten
Code:
Dim f,fwModeAppend,Ordner,Datei
Ordner = (PtVar.VerzOrdner)
Datei = (+ (PtVar.Dateiname) + ".csv")
Set f = CreateObject("FileCtl.File")
fwModeAppend=8
f.open (Ordner+Datei),fwModeAppend
f.LinePrint Time&";"&(PtVar.Testvariable1)&";"&(PtVar.Testvariable2)&";"&(PtVar.Testvariable3)&";"&(PtVar.Testvariable4)&";"&(PtVar.Testvariable5)&";"&(PtVar.Testvariable6) 
f.Close
Kopiere Datei
Code:
Dim f,fs,Ordner,Datei,KopOrdner

'erzeuge Symbole
Ordner = (PtVar.VerzOrdner)
KopOrdner = (PtVar.Kopie_VerzOrdner)
Datei = (+ (PtVar.Dateiname) + ".csv")

'Kopiere Datei
Set fs = CreateObject("FileCtl.Filesystem")
fs.filecopy(Ordner+Datei),(KopOrdner+Datei)
Lösche Datei
Code:
Dim f,fs,Ordner,Datei

'erzeuge Symbole
Ordner = (PtVar.VerzOrdner)
Datei = (+ (PtVar.Dateiname) + ".csv")

'Lösche Datei
Set fs = CreateObject("FileCtl.Filesystem")
fs.kill(Ordner+Datei)
Danke noch an Volker. (Bist du mal in der nähe von Waldshut, dann hast ein paar Rothaus Zäpfle gut bei mir)

Meine nächster Schritt ist nun die Daten einer Protool Archiv Datei aufzubereiten von senkrecht nach waagrecht.

:D :D :D
 
Zuletzt bearbeitet:
Zurück
Oben