-> Hier kostenlos registrieren
Hallo Jungs!
Hiermit möchte ich auch meinen bescheidenen Beitrag zum Forum bringen. Dies als Danke schön für all die Hilfe die ich schon bekommen habe und als Unterstützung für Die, die auch nicht sehr viel Zeit zum Entwickeln haben!
Das folgende WinCC-Flex-Code ermöglicht ein Move von CSV-Dateien von einer MMC-Karte auf ein USB-Stick. Die CSV-Dateien sind Archivdateien (von einem MP277-Panel generiert), welche original als "Read only" deklariert sind. Es scheint mir deshalb ein wichtiger Punkt zu sein, weil ein "Read only" erst als "Normal" umgetauft werden muss um Ihn nach dem Kopierauftrag zu löschen (move).
Der Löschauftrag ist in diesem Code nur auf .csv bezogen (fso.Kill ("\Storage Card MMC\*.csv")). Nun ist es auch mit *.* möglich jedoch kommt eine Fehlermeldung wenn auf dem MMC irgend ein Ordner bestehend ist. Bei mir habe ich immer ein "Simatic-Ordner" nach einem Download. Kommt mit Sicherheit vom Betriebssystem.
Die Namensgebung dieser Archiven finde ich sehr lang. Ich kopiere immer vom "Root-MMC" auf das "Root-USB". Ist der Pathname zu lange, ist das Panel nicht erfreut!
Offene Dateien haben es nicht gern wenn mann sie kitzelt!
Ich hoffe das Progamm funktioniert bei Euch gleich problemlos wie bei mir!
Benutzte Variablen in "normalen" WinnCC-Flex
---------------------------------------------------
DataSaveText : Int-Variable steuert eine Textliste (siehe Kommentare)
DataSourceFileName : Stringvariable (L90) um das Sourcefile am Panel einzublenden (wie Explorer: Kopieren Von x nach Y)
DataDestFileName : Stringvariable (L90) um das Destinationfile am Panel einzublenden (wie Explorer: Kopieren Von x nach Y)
ScriptIndex : Zeigt die Anzahl kopierter Dateien an (wie Explorer: 5 Datei(en) kopiert)
Hiermit möchte ich auch meinen bescheidenen Beitrag zum Forum bringen. Dies als Danke schön für all die Hilfe die ich schon bekommen habe und als Unterstützung für Die, die auch nicht sehr viel Zeit zum Entwickeln haben!
Das folgende WinCC-Flex-Code ermöglicht ein Move von CSV-Dateien von einer MMC-Karte auf ein USB-Stick. Die CSV-Dateien sind Archivdateien (von einem MP277-Panel generiert), welche original als "Read only" deklariert sind. Es scheint mir deshalb ein wichtiger Punkt zu sein, weil ein "Read only" erst als "Normal" umgetauft werden muss um Ihn nach dem Kopierauftrag zu löschen (move).
Der Löschauftrag ist in diesem Code nur auf .csv bezogen (fso.Kill ("\Storage Card MMC\*.csv")). Nun ist es auch mit *.* möglich jedoch kommt eine Fehlermeldung wenn auf dem MMC irgend ein Ordner bestehend ist. Bei mir habe ich immer ein "Simatic-Ordner" nach einem Download. Kommt mit Sicherheit vom Betriebssystem.
Die Namensgebung dieser Archiven finde ich sehr lang. Ich kopiere immer vom "Root-MMC" auf das "Root-USB". Ist der Pathname zu lange, ist das Panel nicht erfreut!
Offene Dateien haben es nicht gern wenn mann sie kitzelt!
Ich hoffe das Progamm funktioniert bei Euch gleich problemlos wie bei mir!
Benutzte Variablen in "normalen" WinnCC-Flex
---------------------------------------------------
DataSaveText : Int-Variable steuert eine Textliste (siehe Kommentare)
DataSourceFileName : Stringvariable (L90) um das Sourcefile am Panel einzublenden (wie Explorer: Kopieren Von x nach Y)
DataDestFileName : Stringvariable (L90) um das Destinationfile am Panel einzublenden (wie Explorer: Kopieren Von x nach Y)
ScriptIndex : Zeigt die Anzahl kopierter Dateien an (wie Explorer: 5 Datei(en) kopiert)
Code:
[COLOR=Black]
[/COLOR] [COLOR=Black]'Skript "CopyFile" / DI - 04.01.2011
'===========================================
Dim PathSearch, Path, fso, Result, Index, SourceFile, DestFile[/COLOR] [COLOR=Black]
Set PathSearch = CreateObject("FileCtl.FileSystem")[/COLOR] [COLOR=Black]
[/COLOR] [COLOR=Black]'USB-Stick suchen
'----------------
Path = "Storage Card USB" [/COLOR] [COLOR=Black]
SetValue SmartTags("DataSaveText"), 1 'Text: Suche USB-Stick [/COLOR][COLOR=Black]
For Index = 1 To 30000 'entspricht ca. 20 Sekunden [/COLOR] [COLOR=Black]
If PathSearch.Dir("\" & Path) = ""_
And Index >= 30000 Then
SetValue SmartTags("DataSaveText"), 2 'Text: USB-Stick nicht gefunden!
ElseIf PathSearch.Dir("\" & Path) = Path Then 'Gefunden! [/COLOR][COLOR=Black]
SetValue SmartTags("DataSaveText"), 3 'Text: Datenübertragung gestartet
Exit For
End If
Next
'CSV-Daten suchen, Kopieren und Attribut auf Normal setzen [/COLOR][COLOR=Black]
'---------------------------------------------------------
If SmartTags("DataSaveText")= 3 Then 'Datenübertragung gestartet[/COLOR] [COLOR=Black]
Set fso = CreateObject("FileCtl.FileSystem")
Result = fso.Dir("\Storage Card MMC\*.csv") [/COLOR][COLOR=Black]
If Result = "" Then
SmartTags("DataSaveText")= 4'Text:Keine Daten vorhanden
Else
SourceFile = "\Storage Card MMC\" & Result
DestFile = "\Storage Card USB\" & Result
SmartTags("DataSourceFileName")= SourceFile
SmartTags("DataDestFileName")= DestFile
fso.FileCopy SourceFile,DestFile
fso.SetAttr SourceFile, 0
For Index = 1 To 999
Result = fso.Dir()
If Result = "" Then
Exit For
Else
SourceFile = "\Storage Card MMC\" & Result
DestFile = "\Storage Card USB\" & Result
SmartTags("DataSourceFileName")= SourceFile
SmartTags("DataDestFileName")= DestFile
fso.FileCopy SourceFile,DestFile
fso.SetAttr SourceFile, 0
End If
Next
SmartTags("DataSaveText")= 5 'Textdaten mit Erfolg übertragen
SetValue SmartTags("ScriptIndex"), Index
End If [/COLOR][COLOR=Black]
End If
'Daten auf MMC löschen [/COLOR][COLOR=Black]
'---------------------
fso.Kill ("\Storage Card MMC\*.csv")
'Init[/COLOR] [COLOR=Black]
'----
Set PathSearch = Nothing
Set fso = Nothing
[/COLOR]
Zuletzt bearbeitet: