WinCC TP700 Meldeprotokoll Archivvariablen anzeigen lassen Win CC Advanced

Garudu

Level-2
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Community,

ich bin etwas neu auf der TIA Portal Ebene und habe ein kleines Problem.

Theoretisch hätte ich geschafft die Werte von meinem Lauf die ich tracken will in ein .csv File zu schreiben, jedoch unterstützt das TP 700 keine Excel Application.
Also vbs fällt mal Flach.

Daraufhin hab ich mir gedacht, dass ich die Werte in ein Archiv speichere und diese per Meldeprotokoll im Protokoll ausgebe. Jedoch finde ich nirgendwo das Häckchen für die Aktivierung der Werte im Meldeprotokoll. Vl hindert mich auch daran das es Win CC (Scada Lite) ist und nicht die Win CC Professional.

Dadurch die Läufe individuell lang sind, muss ich es dynamisieren und kann leider nicht mit einem Array arbeiten. Zumindest denke ich das.

Meine Idee war eben prinzipiell das ich es ins Meldeprotokoll verlagere und einen Anfang und Endzeitbereich angebe, wo ich nur die Werte anzeigen lasse.

lg Garudu

PS: Ich hoffe es hat jemand eine Idee, wie ich es lösen könnte.
 
Mittlerweile hab ich es gelöst... Trotzdem Danke!

Folgende Lösung:

Rechtsklick in den Meldetext und dann dynamische Variable hinzufügen.

lg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Theoretisch hätte ich geschafft die Werte von meinem Lauf die ich tracken will in ein .csv File zu schreiben, jedoch unterstützt das TP 700 keine Excel Application.
Also vbs fällt mal Flach.
Also das TP700 Comfort (6AV2 124-0GC01-0AX0) kann eine *.csv Datei schreiben und kann auch VBS-Skripte.
Welches Panel hast du denn genau?
 
Hallo,

das schafft zwar das Panel, aber die ' Excel-Anwendung erstellen
Set objExcel = CreateObject("Excel.Application")

funktioniert nicht. Dann bekomme ich eine Active X Element Störung.

Ich habe nämlich probiert die Werte in ein CSV File zu schreiben und dann eine Kurve daraus zu erstellen. Das funktioniert leider nicht so, oder hättest du eine Idee?

lg Stefan
 
Verstehe ich dich richtig? Du möchtest eine csv Datei schreiben und aus der Datei dann wieder eine Kurve generieren?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sry für das schnelle und unverständliche schreiben. Ja möchte ich, da ich keine Möglichkeit hab eine Kurve ins Protokoll zu geben mit Win CC Advanced. Im Professional würde es nämlich eine Kurve geben. Oder hättest du eine Idee um das einfacher umzusetzen?

lg Stefan
 
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 = fso_OpenTextFile("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
 
aber die ' Excel-Anwendung erstellen
Set objExcel = CreateObject("Excel.Application")

funktioniert nicht. Dann bekomme ich eine Active X Element Störung.
Das geht nur, wenn Excel installiert ist, also nur in der WinCC Advanced Runtime (auf PC), aber nicht auf einem Comfort Panel. Das Comfort Panel kann aber csv-Dateien erstellen und auch einlesen (das sind einfach nur Textdateien im speziellen Format: csv = comma-separated values).
Beachte: alle Datei-Funktionen in VBS sind auf dem Comfort-Panel unterschiedlich zur PC-Runtime (bzw. Simulation auf PC), weil auf den Comfort Panels kein normales Windows sondern Win CE läuft.
FAQ: Protool/WinCCflex/TIA Daten lesen / schreiben mit VB-Script
siehe auch TIA-Hilfe Stichwort "windows ce" und hier im Forum Suchworte: csv vbs GetDataRecordTagsFromPLC
 
Zurück
Oben