TIA TIA V15.1 - TP1900 - VB-Skript - Variablenarchiv kopieren und umbenennen

K5286

Level-2
Beiträge
28
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich weiß zu meinem nachstehenden Anliegen gibt es bereits diverse Einträge. Leider habe ich keinen gefunden der
zu meinen Anforderungen & Systemvoraussetzungen passt. Alle bisherigen Versuche auf Grundlage diverser
Foreneinträge waren nicht erfolgreich. Leider wurde ebenfalls keine direkten Systemfehler ausgegeben.
Ich bin ziemlich neu in der VB-Welt. Dementsprechend fange ich bei vielen Befehlen & Funktionen bei Null an.

Hier die gewünschte Funktion:
Auf "Knopfdruck" im Panel (TP19009 soll ein Variablenarchiv von der SD Karte auf einen USB Stick kopiert werden.
Hierzu soll jedes mal ein neues Archiv mit einem Datum und Zeitstempel auf dem USB-Stick angelegt werden.

Hier mein bisheriger Skipt auf Grundlage anderer Foreneinträge:

___________________________________________________________________________________
Sub Archiv_umbenannt_kopieren()

Dim filesystem
Dim Jahr
Dim Monat
Dim Tag
Dim Stunde
Dim Minute_

On Error Resume Next
Set filesystem = CreateObject("FileCtl.Filesystem")

Jahr= Year
Monat = Month
Tag = Day
Stunde = Hour
Minute_ = Minute

filesystem.Copylog "\Storage Card SD\Variablenarchiv_1.csv", "\Storage Card USB\ "&Jahr&"_"&Monat&"_"&Tag&"_"&Stunde&"_"&Minute_&".csv"

Set filesystem = Nothing

End Sub
___________________________________________________________________________________


Vielen Dank vorab für eure Unterstützung!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jahr= Year(Now)
Monat = Month(Now)
Tag = Day(Now)
Stunde = Hour(Now)
Minute_ = Minute(Now)
Ich bin da immer vorsichtig, x mal NOW zu nehmen, weil die Kunden es immer irgendwie hinbekommen, genau auf einen Monats-, Jahreswechsel ... auf den Knopp zu drücken und man dann u.U. unglückliche Angaben bekommt.

IMHO ist es besser, NOW nur einmal zu erfassen und dann mit einer Zwischenvariablen weiter zu arbeiten:
Code:
Dim n

n = Now

Jahr= Year(n)
Monat = Month(n)
Tag = Day(n)
Stunde = Hour(n)
Minute_ = Minute(n)
 
Für eine Erroranzeige mußt du selber sorgen...

als Ansatz... nach dem Kopierbefehl...
Code:
If Err.Number <> 0 Then
                        ShowSystemAlarm "ERROR #" & CStr(Err.Number) & " " & Err.Description
                        Err.Clear
                    End If

Was mir etwas komisch vorkommt ist das "CopyLog" sollte es da nicht "FileCopy" heißen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
- filesystem.Copylog gibt es nicht
- die Uhrzeit fragt man nur einmal ab, weil sich zwischen mehreren Abfragen die Uhrzeit und sogar das Datum ändern kann
- die Ziffern im Dateiname sollte man immer zweistellig erzeugen, notfalls mit Vor-Null
Datum_Uhrzeit-String für Dateinamen erzeugen

- zuerst das Archivieren stoppen
- dann die Archive schließen, damit sie kopiert werden können
- dann die Archivdatei kopieren
- dann die Archivierung fortsetzen

Code:
StopLogging hmiTagArchive, Archivname
CloseAllLogs

Set fso = CreateObject("FileCtl.FileSystem")
[COLOR="#008000"]'FileCopy erzeugt Runtime-Error, wenn DestFile schon existiert[/COLOR]
If fso.Dir(DestFile) <> "" Then fso.Kill DestFile
fso.FileCopy SourceFile, DestFile
ShowSystemAlarm "Archiv_xxx kopiert"

OpenAllLogs
StartLogging hmiTagArchive, Archivname

FAQ: Protool/WinCCflex/TIA Daten lesen / schreiben mit VB-Script

Harald
 
filesystem.Copylog "\Storage Card SD\Variablenarchiv_1.csv", "\Storage Card USB\ "&Jahr&"_"&Monat&"_"&Tag&"_"&Stunde&"_"&Minute_&".csv"
Leerzeichen in Ordner- und DateiNamen, würde ich möglichst vermeiden, auf jeden Fall aber am Beginn von Ordner- oder DateiNamen!
Code:
[FONT=courier new]... Card USB\ "&Jahr&" ...                                
             !                                 
[/FONT]
 
Zurück
Oben