Sub LOGING()
Dim f, f2, MyFile, dtDateTime, sMonth, sDay, sYear, sHour, sMinute, sSecond
Dim sFileName, sHeader, sPath, sFolder1
Dim sBatch, sTempB02, sTempB05, spressB01, spressB04, sOperator, helpB02, helpB05, lengthB02, lengthB05
Dim sTempB02string, sTempB05string, kommapositionB02, kommapositionB05
Dim TempB02komma, TempB05komma
'Dateipfad
sPath = "D:\"
sFolder1 = "SIPLOG"
'Ermittle das Datum und Zeit
dtDateTime = Now
sYear = DatePart("yyyy", dtDateTime)
'Befülle das LogFile mit den HMI Variablen
sHeader = HmiRuntime.SmartTags("Log File Needs Header")
sBatch = HmiRuntime.SmartTags("string_STDK_7_chargennummer")
sTempB02 = HmiRuntime.SmartTags("STDK_7_B02")
sTempB05 = HmiRuntime.SmartTags("STDK_7_B05")
spressB01 = HmiRuntime.SmartTags("STDK_7_B01")
spressB04 = HmiRuntime.SmartTags("STDK_7_B04")
sOperator = HmiRuntime.SmartTags("User_Name")
sTempB02string = CStr(sTempB02)
kommapositionB02 = Len(sTempB02string)
TempB02komma = Left(sTempB02string, Len(sTempB02string) - 1) & "," & Right(sTempB02string, 1)
sTempB02 = CDbl(TempB02komma)
sTempB05string = CStr(sTempB05)
kommapositionB05 = Len(sTempB05string)
TempB05komma = Left(sTempB05string, Len(sTempB05string) - 1) & "," & Right(sTempB05string, 1)
sTempB05 = CDbl(TempB05komma)
'Ermittle die Stunde, Minute und Sekunden für das File
sHour = DatePart("h", dtDateTime)
If Len(sHour) = 1 Then
sHour = "0" & sHour
End If
sMinute = DatePart("n", dtDateTime)
If Len(sMinute) = 1 Then
sMinute = "0" & sHour
End If
sSecond = DatePart("s", dtDateTime)
If Len(sSecond) = 1 Then
sSecond = "0" & sSecond
End If
'Formatier den Dateinamen das es immer Zwei stellen anzeigt
sMonth = DatePart("m", dtDateTime)
If Len(sMonth) = 1 Then
sMonth = "0" & sMonth
End If
sDay = DatePart("d", dtDateTime)
If Len(sDay) = 1 Then
sDay = "0" & sDay
End If
'Formatiere den Dateinamen (TagMonatJahr).csv
'sFileName = HmiRuntime.SmartTags("string_STDK_7_chargennummer")& "_" & sDay & "-" & sMonth & "-" & DatePart("yyyy", dtDateTime) & "-" & sHour & "-" & sMinute & "-" & sSecond & ".csv"
sFileName = HmiRuntime.SmartTags("string_STDK_7_chargennummer")& "_" & sDay & "-" & sMonth & "-" & DatePart("yyyy", dtDateTime) & ".csv"
MyFile = (sPath & sFolder1 & "\" & sFileName)
'MyFile = ("D:\SIPLOG\0_12-03-2024.csv")
'Formatiere die Temperaturen von Ganzzahl auf Gleitkommazahlen
'Schreibe die Werte in die Datei
'On Error Resume Next
Set f = CreateObject("scripting.filesystemobject")
Set f2 = CreateObject("scripting.filesystemobject")
'If Err.Number <> 0 Then
'ShowSystemAlarm "Error #" ^ CStr(Err.Number) & " " & Err.Description
'Exit Sub
'End If
'If sHeader <> 0 Then
Set f2 = f.OpenTextFile(MyFile, 8, True)
'f2.WriteLine ("Datum/Zeit;" & "DruckB01;" & "DruckB04;" & "TemperaturB02;" & "TemperaturB05;")
f2.WriteLine (sDay & "." & sMonth & "." & sYear & " " & sHour & ":" & sMinute & ":" & sSecond & ";" & spressB01 & ";" & spressB04 & ";" & sTempB02 & ";" & sTempB05)
f2.Close
Set f = Nothing
Set f2 = Nothing
'End If
'f.Close
' Formatieren der gesamten Spalte mit dem Datums-/Zeitformat
'ShowSystemAlarm "Die Datei wurde Erfolgreich erstellt!"
'ResetBit "Log File Needs Header"
'HmiRuntime.SmartTags("Log Data") = 0
End Sub
Sub Kurve()
Dim objExcel, objWorkbook, objWorksheet, objChart, newWorkbook
Dim rowCount, columnCount, i, j
Dim dataArray, xData, yData
Dim seriesNames(4)
' Excel-Anwendung erstellen
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
' Neue Arbeitsmappe erstellen
Set newWorkbook = objExcel.Workbooks.Add
Set objWorksheet = newWorkbook.Sheets(1)
' Daten aus CSV-Datei lesen
Const ForReading = 1
Dim fso, inputFile, line, tokens
Set fso = CreateObject("Scripting.FileSystemObject")
Set inputFile = fs

penTextFile("D:\SIPLOG\11_14-03-2024.csv", ForReading)
' Erste Zeile der CSV-Datei überspringen
inputFile.SkipLine
' Zeilen aus der CSV-Datei lesen
i = 1
Do Until inputFile.AtEndOfStream
line = inputFile.ReadLine
tokens = Split(line, ";")
For j = 1 To UBound(tokens) + 1
If j = 5 Or 6 Then
objWorksheet.Cells(i, j).Value = (tokens(j - 1))
Else
objWorksheet.Cells(i, j).Value = tokens(j - 1)
End If
Next
i = i + 1
Loop
' Diagramm erstellen
Set objChart = objExcel.Charts.Add
objChart.ChartType = -4169 ' X-Y Streudiagramm
'Datenreihe bezeichnen
'seriesNames(2) = "B01"
'seriesNames(3) = "B04"
'seriesNames(4) = "B02"
'seriesNames(5) = "B05"
' Daten zum Diagramm hinzufügen
For j = 3 To 6 ' Annahme: Daten in den Spalten 3 bis 5
With objChart.SeriesCollection.NewSeries
'.Name = "Datenreihe " & j - 1
.XValues = objWorksheet.Range(objWorksheet.Cells(1, 1), objWorksheet.Cells(i - 1, 1))
.Values = objWorksheet.Range(objWorksheet.Cells(1, j), objWorksheet.Cells(i - 1, j))
End With
Next
' Achsenformatierung
With objChart.Axes(1, 1) ' X-Achse
.HasTitle = True
.AxisTitle.Text = "Zeit"
.CategoryType = 3 ' Zeitachse
.NumberFormat = "dd.mm.yyyy hh:mm:ss" ' Datums-/Zeitformat
.TickLabels.NumberFormat = "hh:mm:ss" ' Zeitformat
End With
With objChart.Axes(2, 1) ' Y-Achse
.HasTitle = True
.AxisTitle.Text = "Druck mbar und Temperatur °C"
.MinimumScale = 0
.MaximumScale = 4000
End With
' Diagramm in eigener Arbeitsmappe speichern
objChart.Name = "Kurve"
newWorkbook.SaveAs "D:\SIPLOG\Kurven\Kurve1.xls"
newWorkbook.Close
' Excel beenden
objExcel.Quit
' Aufräumen
Set objWorksheet = Nothing
Set newWorkbook = Nothing
Set objChart = Nothing
Set objExcel = Nothing
Set fso = Nothing
Set inputFile = Nothing
End Sub