WinCC Hilfe VB Script Daten speichern in CSV Datei, legt keine Datei ab

kliebisch.m

Level-1
Beiträge
120
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein Vb Script im Einsatz. Hat auch ein jahr funktioniert auf einem ipc 477 siemens
windows 10

plötzlich werden keine Dateien (Csv) mehr angelegt , noch abgelegt. Das System meldet auch, das die Datei nicht geschrieben werden kann. Weder auf die Festplatte, noch auf USB Stick geht es nicht. Als wenn dies Win10 nicht zulässt.

hat jemand so etwas schon einmal gehabt?
danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich nehme mal an WinCC V7.xx? Weder/noch geht sowieso nicht, im Script ist ja ein Zielpfad angegeben. Sind die Schreibrechte für den Zielpfad noch vorhanden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sub BDE_Daten_sichern()

If SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen") = True Then
'Info: Die Variable "dbDateiErstellen.Datei_Erzeugen" ruft bei einer Werteänderung dieses Skipt auf.
'Siehe Eigenschaften der Variablen "dbDataToWinCC_Steuern.File_Erzeugen"

'Error Routine - Fehlerroutine
On Error Resume Next
Err.Clear

'Initialisierung der Variablen zur SPS
SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen_Busy") = True
SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen_IO") = False
SmartTags("DB1730_BDE_Datei_Erstellen_Fehlerstatus") = 0
'SmartTags("BDE\DateiErstellen\Skript_Step") = 1

'---------------------------------------------------------------------------
'
' Verzeichniss- und Dateiname erzeugen
'
'---------------------------------------------------------------------------

Dim fso, f, ts, bCreated, FName, Dataset, Header, Storage_Path, strName, strTemp, arr, strDir

Dim Lw, Dateiname, Pfad
Dim Dateityp
Dim Verzeichnis
Dim Dateigroesse
Dim Laufwerkname
Dim Kalenderwoche, Jahr , Monat, Tag
Dim Magazin


'Datum für Verzeichnisserstellung
Kalenderwoche = DatePart("ww", Date(), vbMonday, vbFirstFourDays)
Jahr = DatePart ("yyyy", Date)
Monat = DatePart ("m", Date)
Tag = DatePart("d",Date)

Laufwerkname = SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Netzwerk_Ordnername")

'Speicherort festlegen
Select Case SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Speicherort")
'Case 1 Lw = keines! Wird in der PLC ausgewertet. Dann kann dieses Skript nicht aufgerufen werden.
Case 2 Lw = "F:\" 'USB-Stick
Case 3 Lw = Laufwerkname 'Festplatte
Case Else Lw = "C:\" 'Auf C:
End Select

'Neues Verzeichnis anlegen? OPTION
Select Case SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Verzeichnis_anlegen")
Case 1 Verzeichnis = "" 'Neues Verzeichnis nicht anlegen
Case 2 Verzeichnis = Tag & "_" & Monat & "_" & Jahr 'Neues Verzeichnis pro Tag anlegen
Case 3 Verzeichnis = "KW" & Kalenderwoche & "_" & Jahr 'Neues Verzeichnis pro Woche anlegen
Case 4 Verzeichnis = Monat & "_" & Jahr 'Neues Verzeichnis pro Monat anlegen
Case Else Verzeichnis = "" 'Neues Verzeichnis nicht anlegen
End Select


' Ablagepfad festlegen

Storage_Path = Lw & Verzeichnis

'Dateityp festlegen
Select Case SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Dateityp")
Case 1 Dateityp = ".csv" '.csv
Case 2 Dateityp = ".txt" '.txt
Case Else Dateityp = ".csv" '.csv
End Select

' Ablagepfad festlegen Auswahl pro Teil oder pro Tag
Select Case SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Dateigroesse")
' Case 1 FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & SmartTags("DB1731_BDE_Daten_Speichern_Header_Gesamtzaehler") & Dateityp '1 Teil pro Datei
Case 2 FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & Tag & "_" & Monat & "_" & Jahr & Dateityp 'Teile pro Tag
' Case Else FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & SmartTags("DB1731_BDE_Daten_Speichern_Header_Gesamtzaehler") & Dateityp '1 Teil pro Datei
End Select

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

'Prüfen ob Ablagepfad vorhanden, wenn nicht -> erzeugen.
'Checks storage path availably, if not -> create
Script_Storage_Path Storage_Path ' Übergabe des Ablagepfades aus dem Script "Script_Storage_Path" / Handing over of the storage path from the script "Script_Storage_Path"

' Allgemeine Fehlerauswertung -> Datei konnte nicht angelegt oder ist geöffnet werden
' Generically Error logging -> File could not be create or open
On Error Resume Next

' Datei öffnen bzw. erstellen, wenn sie noch nicht existiert
' Open File or create file if it does not exist
bCreated = False ' Hilfsvariable, Datei bereits angelegt / Help tag, File exist?
If Not fso.FileExists(FName) Then
fso.CreateTextFile FName
bCreated=True
End If


Set f = fso.GetFile(FName)
Set ts = f.OpenAsTextStream (8,-2)


' Fehlernummer <> 0 -> Meldung
' Fault number <> 0 -> Message
If Err.Number <> 0 Then
Call ShowSystemAlarm ("Datei konnte nicht angelegt werden oder ist eventuell geöffnet / File could not be create or maybe open")
Err.Clear
Else

' Wenn Datei nicht vorhanden, => Tabellenkopf muss eingefügt werden
' If file did not exist, => Table header must be inserted
If bCreated = True Then
ts.WriteLine FName
ts.WriteLine(" ")
ts.WriteLine("Traceability-Data")
ts.WriteLine("date;tool;total counter;day counter;heating time;heating temperature upper[°C];heating temperature lower[°C];tool temperature upper[°C];tool temperature lower[°C];part temperature[°C];part temperature outline[°C];pressing time;delay pressure build up;delay pressure hold;ramp pressure build up[%];set pressure press[kN];set pressure hold[kN];actual pressure press[kN];actual pressure hold[kN]")
End If

' Schreibt die Daten in das Excel Blatt
'---------------------------------------------------------------------------
'
' Parameter Speichern
' parameter save
'---------------------------------------------------------------------------
Dim Spalte1,Spalte2,Spalte3,Spalte4,Spalte5,Spalte6,Spalte7,Spalte8,Spalte9,Spalte10,Spalte11,Spalte12,Spalte13,Spalte14,Spalte15,Spalte16,Spalte17,Spalte18,Spalte19,Spalte20

' Werte der Variablen in die Archivdatei schreiben
' Write values of variables in archive file

Spalte1 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.Time") & ";"
Spalte2 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.name_tool") & ";"
Spalte3 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.total_counter") & ";"
Spalte4 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.day_counter") & ";"
Spalte5 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.heating time") & ";"
Spalte6 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.heating temperature upper") & ";"
Spalte7 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.heating temperature lower") & ";"
Spalte8 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.tool temperature upper") & ";"
Spalte9 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.tool temperature lower") & ";"
Spalte10 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.part temperature") & ";"
Spalte11 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.part temperature outline") & ";"
Spalte12 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.pressing time") & ";"
Spalte13 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.delay pressure build up") & ";"
Spalte14 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.delay pressure hold") & ";"
Spalte15 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.ramp pressure build up") & ";"
Spalte16 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.set pressure press") & ";"
Spalte17 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.set pressure hold") & ";"
Spalte18 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.actual pressure press") & ";"
Spalte19 = SmartTags("DB1730_BDE_Datei_Erstellen_Daten.actual pressure hold") & ";"
Spalte20 = "" & ";"

' Schreibt die Daten in das Excel Blatt
' Write the Dataset in File
ts.WriteLine (Spalte1&Spalte2&Spalte3&Spalte4&Spalte5&Spalte6&Spalte7&Spalte8&Spalte9&Spalte10&Spalte11&Spalte12&Spalte13&Spalte14&Spalte15&Spalte16&Spalte17&Spalte18&Spalte19&Spalte20)


' Datei wieder schließen
' Close File'
ts.Close

SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen_IO") = True

End If

' Verwendeten Speicher wieder freigeben
' Used storage will be freed
Set ts = Nothing
Set f = Nothing
Set fso = Nothing



' Variablen zur SPS
SmartTags("DB1730_BDE_Datei_Erstellen_Fehlerstatus") = 0
SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen_Busy") = False

'Skriptstartvariablen zurücksetzen
SmartTags("DB1730_BDE_Datei_Erstellen_Datei_Erzeugen") = False
' SmartTags("BDE\DateiErstellen\Skript_Step") = 6

End If

End Sub
 
Kannst du vielleicht auf die Fragen, die dir gestellt werden, eingehen?

Das System meldet auch, das die Datei nicht geschrieben werden kann.
Wo wird das gemeldet?

Was für Systemfehlermeldungen werden erzeugt ( Systemmeldefenster )?

Moin,
ich nehme mal an WinCC V7.xx? Weder/noch geht sowieso nicht, im Script ist ja ein Zielpfad angegeben. Sind die Schreibrechte für den Zielpfad noch vorhanden?

??
 
Hi,

ich habe den Script komplett mal kopiert.

Er speichert weder auf USB, noch auch D oder C.

Ich habe die Fehlerüberprüfung im Script mal deaktiviert, damit er die Speicherung auch trotzdem ausführt. Geht auch nicht.
Dann mal die Firewall im Windows deaktiviert. Auch das ist es nicht.

Ich weiss auch nicht, wo ich hier mehr erfahren/schauen kann, warum und was hier das Problem sein kann mit der Err.Number

' Fehlernummer <> 0 -> Meldung
' Fault number <> 0 -> Message
If Err.Number <> 0 Then

Habe das auch schon mehrfach so umgesetzt in anderen Anlagen. Hat immer funktioniert.

Vielleicht kann mir jemand helfen und weiß, wie ich da weiterkomme, Danke
 
Was Delta meint ist, was wird am Panel als Fehlermeldung angezeigt, oder sin da Systemmeldungen deaktiviert?
Und warum sind da Zeilen im Script durchgestrichen?
 
@kliebisch.m,

und setze Deinen Code mal bitte noch in die Code-Tags [CODE]...[/CODE] (oder in der Icon-Leiste die letzten 3 Punkte und in der dann erscheinenden Unterleiste das letzte Symbol).

Dadurch wird der Code vom restlichen Text abgetrennt, dort funktionieren z.B. auch Einrückungen und insgesamt ist der Code dann deutlich lesbarer.
;)
 
Habe jetzt eine Fehlernummer 424
Ich habe mir mal für dich die Mühe gemacht, den Fehler auszuschlüsseln:
--------------------------------------------------------
Fehlernummer: 424
Fehlerbeschreibung: Laufzeitfehler in Microsoft VBScript
Fehlerbeschreibung: Objekt erforderlich
--------------------------------------------------------
 
Hi,

danke an alle, die darüber geschaut haben, ich dussel habs gefunden nachdem ich die Zeilen wieder einkommentiert habe


Code:
Select Case SmartTags("DB1730_BDE_Datei_Erstellen_HMI_Dateigroesse")
' Case 1 FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & SmartTags("DB1731_BDE_Daten_Speichern_Header_Gesamtzaehler") & Dateityp '1 Teil pro Datei
Case 2 FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & Tag & "_" & Monat & "_" & Jahr & Dateityp 'Teile pro Tag
' Case Else FName = Storage_Path & CStr(SmartTags("DB1730_BDE_Datei_Erstellen_FileName")) & SmartTags("DB1731_BDE_Daten_Speichern_Header_Gesamtzaehler") & Dateityp '1 Teil pro Datei
End Select
 
sondern eher "Nachdem ich das Script geändert habe".
Das sind halt die kleinen Feinheiten im Informationsfluss.

Wenn wir das vorher gewusst hätten, dann hätte es ja gereicht zu fragen " Ja was hast du denn geändert "?
Bzw. wenn ich was ändere und dann geht es nicht mehr, dann würde ja mein Verdacht nicht am Windows 10 / VBS System liegen
sondern......
 
Zurück
Oben