SPSnewbie91
Level-2
- Beiträge
- 272
- Reaktionspunkte
- 18
-> Hier kostenlos registrieren
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Danke. Das mit dem Datum funktioniert schon Mal. Ich habe mir testweise das Datum und die Uhrzeit in eine csv geschrieben. Das geht. Wie kann ich jetzt das ganze als Dateiname verwenden? Sorry für die blöde Frage, aber ich denke bei mir ist es eher ein Syntax-ProblemDateiname in einem Skript erzeugen und festlegen
FAQ: Datum und Uhrzeit für Dateinamen formatieren
Sub Export_Recipe()
Dim file_path, fso, fso2, t, s, d, test
'aus der Systemzeit einen String in der Form "YYYYMMDD_hhmmss" (z.B. "20991231_015959") erzeugen
t = Now 'Systemzeit (Lokalzeit des HMI)
s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
& Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)
d = t & s
file_path = "D:\Export\Rezepte\d & _recipe.csv"
'object for file
Set fso = CreateObject("Scripting.FIleSystemObject")
'1 - read, 2 - write, 8 - append
Set fso2 = fso.OpenTextFile(file_path, 8, True)
Export_Recipe
'Storage free
Set fso = Nothing
Set fso2 = Nothing
If Err.Number <> 0 Then
ShowSystemAlarm CStr(Err.Number) & ", " & Err.Description & ", " & Err.Source
Err.Clear
End If
End Sub
Wie kann ich jetzt das ganze als Dateiname verwenden?
t = Now 'Systemzeit (Lokalzeit des HMI)
s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
& Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)
file_path = "D:\Export\Rezepte\" & s & "_recipe.csv"
DankeCode:t = Now 'Systemzeit (Lokalzeit des HMI) s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _ & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2) file_path = "D:\Export\Rezepte\" & s & "_recipe.csv"
Sub Export_Recipe()
Dim file_path, timestamp, fso, fso2, recipeNumber, datasetNumber
Dim exportResult
' Dynamischen Zeitstempel für den Dateinamen erzeugen
timestamp = Year(Now) & Right("0" & Month(Now), 2) & Right("0" & Day(Now), 2) & "_" _
& Right("0" & Hour(Now), 2) & Right("0" & Minute(Now), 2) & Right("0" & Second(Now), 2)
' Dateipfad mit Zeitstempel erstellen
file_path = "D:\Export\Rezepte\" & timestamp & "_recipe.csv"
exportResult = True
' Prüfen, ob der Exportordner existiert, und bei Bedarf erstellen
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists("D:\Export\Rezepte") Then
fso.CreateFolder("D:\Export\Rezepte")
End If
'1 - read, 2 - write, 8 - append
Set fso2 = fso.OpenTextFile(file_path, 8, True)
' Rezeptnummer/-name und Datensatznummer/-name auf "0" setzen, um alle Datensätze zu exportieren
recipeNumber = "0" ' Exportiere alle Rezepturen
datasetNumber = "0" ' Exportiere alle Datensätze
' hier Export Rezepte
' Überprüfen, ob der Export erfolgreich war
If exportResult = True Then
ShowSystemAlarm "Export erfolgreich: " & file_path
Else
ShowSystemAlarm "Export fehlgeschlagen. Überprüfen Sie die Einstellungen."
End If
' Speicher freigeben
Set fso = Nothing
Set fso2 = Nothing
' Fehlerbehandlung
If Err.Number <> 0 Then
ShowSystemAlarm CStr(Err.Number) & ", " & Err.Description & ", " & Err.Source
Err.Clear
End If
exportResult = False
End Sub
Ich habe die Export_Recipe Funktion gefunden, verstehe nur noch nicht so ganz, wie ich sie anwenden muss.
Und wie kann ich jetzt noch meine Rezepte exportieren?
(...)
Mit diesen Parametern, nur halt mit anderem Dateipfad, der oben definiert wurde
Sub Export_Recipe()
Dim file_path, timestamp, t
t = Now 'Systemzeit (Lokalzeit des HMI)
timestamp = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
& Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)
file_path = "D:\Export\Rezepte\" & timestamp & "_recipe.csv"
ExportDataRecords 0, 0, file_path, hmiOverwriteWithConfirmation, hmiOn, Null
End Sub
Now
nicht mehrmals aufrufen (das fragt jedesmal wieder die Uhrzeit ab, dazwischen ändert sich die Uhrzeit!). Sondern genauso machen, wie ich es in der FAQ und in #5 geschrieben habe.Danke. Tipp 1 kannte ich gar nicht. Jetzt funktioniert es.Code:Sub Export_Recipe() Dim file_path, timestamp, t t = Now 'Systemzeit (Lokalzeit des HMI) timestamp = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _ & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2) file_path = "D:\Export\Rezepte\" & timestamp & "_recipe.csv" ExportDataRecords 0, 0, file_path, hmiOverwriteWithConfirmation, hmiOn, Null End Sub
Tipp 1: rechts neben dem VBS-Editor gibt es die Aufgabencard "Funktionsliste". Da gib die gewünschte Funktion wie gewohnt ein, dann "Übernehmen" fügt den zugehörigen VBS-Code in den VBS-Editor ein.
Tipp 2:Now
nicht mehrmals aufrufen (das fragt jedesmal wieder die Uhrzeit ab, dazwischen ändert sich die Uhrzeit!). Sondern genauso machen, wie ich es in der FAQ und in #5 geschrieben habe.
Sub Export_Recipe()
Dim file_path, timestamp, fso, recipeNumber, datasetNumber, overwrite, status, processingStatus
Dim exportResult
Dim t
' Generate a dynamic timestamp for the file name
t = Now
timestamp = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
& Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)
' Create file path with timestamp
file_path = "D:\Export\Rezepte\" & timestamp & "_recipe.csv"
' Check if the export folder exists, and create it if necessary
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists("D:\Export\Rezepte") Then
fso.CreateFolder("D:\Export\Rezepte")
End If
' Set recipe number/name and data record number/name to “0” to export all data records
recipeNumber = 0 ' Exportiere alle Rezepturen
datasetNumber = 0 ' Exportiere alle Datensätze
ExportDataRecords recipeNumber, datasetNumber, file_path, hmiOverwriteAlways, hmiOn, Null
' Check if the export was successful
If exportResult = True Then
ShowSystemAlarm "Export erfolgreich: " & file_path
Else
ShowSystemAlarm "Export fehlgeschlagen. Überprüfen Sie die Einstellungen."
End If
' Release memory
Set fso = Nothing
' Error
If Err.Number <> 0 Then
ShowSystemAlarm CStr(Err.Number) & ", " & Err.Description & ", " & Err.Source
Err.Clear
End If
exportResult = False
End Sub
Ich denke mal, weil Du mit:Eine letzte Frage habe ich noch. Und zwar wird jetzt am Dateinamen nochmal "..._Recipe1.csv" rangehängt.
Anhang anzeigen 83347
Woher kommt das?
alle Rezepturen exportierst, hängt WinCC das hinten an.Code:... recipeNumber = 0 ' Exportiere alle Rezepturen ...
Das ist der von dir projektierte Name der Rezeptur. Der wird vom ExportDataRecords automatisch angehängt. Du könntest ja mehrere verschiedene Rezepturen haben, und die sollen nicht alle in derselben Datei landen.Eine letzte Frage habe ich noch. Und zwar wird jetzt am Dateinamen nochmal "..._Recipe1.csv" rangehängt.
(...)
Woher kommt das?
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen