WinCC VB-Script Array CSV Export & Namens Änderung

GeorgSei

Level-2
Beiträge
66
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe noch nie VB Skripte genutzt und brauch mal eure Hilfe.

Ich muss mehrere Daten in eine CSV schreiben. Die "einfachen" Daten bekomme ich ohne weiteres hin. Nun habe ich aber eine Array[1..200] of Real das auch in den Export muss. Natürlich könnte ich jetzt die 200 Daten einzeln dazuschreiben wie bei den anderen Daten. Dies ist natürlich nicht Smart daher meine Frage wie man ein Array exportieren kann :D Die Einzelnen Daten des Arrays müssen nicht einzeln in eine Zeile sein, sondern können auch mit einem Trennzeichen in einer Zeile stehen.

Dann habe ich noch eine 2. Frage und zwar Werte ich 3 Mittelwerte aus dem Array aus und wenn diese einen bestimmten Wert überschreiten soll im Name der CSV "_nichtBestanden" hinzugefügt werden. Wie macht man da die Namensänderung? die Auswertung ist schon fertig nur der Ändern des Namens fehlt noch.

Hier mal der bisherige Code:
Code:
Sub CSV_Export()

Dim fs
Dim f
Dim mode
Dim pfad
Dim Value

' pfad festlegen
'pfad = "Storage Card SD\CSV\" 'CSV auf SD Karte schreiben
pfad = "\\SIG-329-1\Export\" 'CSV auf Netzwerk-PC schreiben

' Objekt fuer Filehandling erstellen
Set fs = CreateObject ("filectl.filesystem")
Set f= CreateObject("filectl.file")
    
' Pruefen ob Verzeichnis existiert und sonst erstellen
If fs.dir(pfad) = "" Then fs.mkdir(pfad)

If SmartTags("HF_CSV_Beprobung_Messwert") Then
'Kopfzeile in Datei schreiben
f.open pfad +  " " &  SmartTags("Prozess_DB_Beprobung_CSV_CNT") & "_Beprobung_Messwerte" &  ".csv" , 8
f.LinePrint "Uhrzeit" & ";" & "Blende 1"  & ";" & "Blende 2" & ";" &  "Blende 3" & ";" & "Prüfkammer Druckwert 1 [mbar]" & ";" & "Prüfkammer Druckwert 2 [mbar]" & ";" & "Messkammer Druckwert [mbar]" & ";" & "Novion 1 Druckwert [mbar]" & ";"
End If

If SmartTags("F_CSV_Beprobung_Meswerte") Then
' Daten in Datei schreiben
f.open pfad +  " " &  SmartTags("Prozess_DB_Beprobung_CSV_CNT") & "_Beprobung_Messwerte"  &  ".csv" , 8
f.LinePrint CStr(Now) & ";" & CStr (SmartTags("Blende 1")) & ";" & CStr (SmartTags("Blende 2")) & ";" & CStr (SmartTags("Blende 3")) & ";" & CStr (SmartTags("Prozess_DB_Druckwerte_Drucksensor 1 Prüfkammer")) & ";" & CStr (SmartTags("Prozess_DB_Druckwerte_Drucksensor 2 Prüfkammer")) & ";" & CStr (SmartTags("Prozess_DB_Druckwerte_Messkammer")) & ";"
End If

SmartTags("F_CSV_Beprobung_Meswerte") = 0
SmartTags("HF_CSV_Beprobung_Messwert") = 0

f.Close

End Sub
 
Datei umbenennen machst du mit
fs.MoveFile <altename>, <neuename>

Ein Tip: Anstatt jeden mal das Pfad+Dateiname zusammenstücken, dann erstelle ein oder mehrere Variabeln dafür. Dann kannst du sie komfortabel bearbeiten.
Z.B.:
Dateiname_nichtbestanden = Dateiname & '_nichtBestanden'
 
mit dem Array habt ihr nicht zufällig eine Idee?
Das Array durschschleifen.
In WinCC wird ein Array so addressiert:
SmartTags("VariabelName")(index)

Ich öffne das Datei als ein Text Stream.
Ungefähr so:
Code:
Set f = fso.GetFile(str_Path_and_File)
  Set ts = f.OpenAsTextStream(8, -2)
  ts.WriteLine "DO NOT ALTER THIS FILE !"
  // schleife mit Index durchlaufen
  ts.WriteLine "Line no " & CStr(index) & "," & CStr(SmartTags("VariabelName")(index))
 
Zurück
Oben