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