WinCC Flex Datei mit Script schreiben

olmuk

Level-2
Beiträge
81
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
wieder einmal gibt es Probleme mit dem Schreiben einer CSV-Datei.
Das Script wird über ein INT mit Grenzen erreicht aufgerufen.
Alle beteiligten Variablen sind mit 100mS und zyklisch fortlaufend eingestellt.

Beim ersten Aufruf des Scriptes wird noch kein Wert im Bereich des Append geschrieben,
erst nach dem zweiten Aufruf.
Was mache ich falsch - bitte um Hilfe

Code:
'**************************************************
'*** Daten in Datei schreiben                   ***
'    BDE Betriebszustände
'    UJ / 08.02.2017
'**************************************************
'
Const ForAppend = 8
Dim fso, f, file, myfile, path

myfile = "BDE"
path = "C:\Checkdata\"
file = path & myfile & ".csv"

'Objekt erstellen
Set fso = CreateObject("Scripting.FileSystemObject")

'Abfrage Ordner vorhanden, wenn nicht dann erzeugen
If Not fso.FolderExists("c:\Checkdata") Then 
    fso.CreateFolder("c:\Checkdata")
End If

If Not fso.FileExists (file) Then 
    Set f = fso.CreateTextFile(file, True)
    f.WriteLine(" Dateiname :  ; " & myfile & ";")
    f.WriteLine(" Datum     :  ; " & Date & ";") 
    f.WriteLine(" Kommentar 1 :  ; " &SmartTags("DB: TEXTLISTEN.Kommentar1_Prf") & ";")
    f.WriteLine(" Kommentar 2 :  ; " &SmartTags("DB: TEXTLISTEN.Kommentar2_Prf") & ";")
    f.WriteLine(" ; " & ";")
    f.WriteLine(" ; " & ";")
    f.WriteLine("  Betriebsart  ; " & ";" & " SCHICHT 1 ;" & " SCHICHT 2 ;" & " SCHICHT 2 ;" & ";")
End If

If fso.FileExists (file) Then
    Set f = fso.OpenTextFile(file, ForAppend)
    f.WriteLine Time & ";" & SmartTags("DB32.Minuten_run") & ";" & SmartTags("DB32.Sekunden_run") & ";" & ";" 
    f.Close
End If
 
Um dem noch einen draufzusetzen :

Nach dem n-ten Male schreiben mit append soll es eine Abschlusszeile geben mit
einem kummuliertem Wert.
n kann stark variieren, nur der Zeitpunkt abgeleitet von der Schichtzeit in SPS

Wie kann ich das realisieren ?
 
setz dir einfach ein bit wenn die fusszeile geschrieben werden soll

Code:
If fso.FileExists (file) and SmartTags("fusszeile")=false Then
....

If SmartTags("fusszeile")=true Then
...
    f.WriteLine "fusszeile"
...
end if

SmartTags("fusszeile")=false
 
Zurück
Oben