-> Hier kostenlos registrieren
Hi zusammen,
ich sitze gerade auf IBN und brauche Hilfe, ich Möchte Soll und Ist Kurve aus einem DB in der Visu anzeigen (Durchfluss x / Druck Y).
Mit dem Skript von der Siemens Seite zur F(x) Kurve, habe ich das auch abgeändert geschafft, nun möchte ich aber in einer Kurvenanzeige, 2 Kurven sprich 2 CSV Dateien anzeigen (Ist / Sollkurve).
Ich habe alles kopiert und unbenannt, leider schreibt er mir die Werte aus dem 2. FB aber nicht in die "2." CSV sondern nur mist, Siehe Screenshot. Anbei das Skript für die 2. Kurve.
Function TrendControl_1()
Dim timestring, ObjFile, ObjFileSystem, arrx, arry, ObjFilePath, ObjFileName, ObjLoopCount, ObjIndex, ObjTime, Objx, Objy
Const varNametagX = "LogValX_1"
Const varNametagY = "LogValY_1"
Const splitsign = ";"
Const ForAppending = 8
'Get current datetime
timestring = "'" & Now & "'"
Set ObjFileSystem = CreateObject("Scripting.FileSystemObject")
Set arrx = SmartTags("Input_X_1")
Set arry = SmartTags("Input_Y_1")
ObjLoopCount = UBound(arrx)
ObjFilePath = "C:\Logs\" ' File location for tag log
ObjFileName = "TrendControl_f(x)20.csv" ' Name of tag log
' Closing logs
CloseAllLogs
Do While SmartTags("LogsAreClosed") = False ' Wait until all logs are closed
Loop
' Deleting old file
On Error Resume Next
ObjFileSystem.DeleteFile ObjFilePath & ObjFileName, True
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Deleting old file not possible. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 1 ' RetVal: 1= error deleting old file
Exit Function
End If
' Create new archive as csv file
Set ObjFile = ObjFileSystem.OpenTextFile(ObjFilePath & ObjFileName, ForAppending, True)
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Open file not possible. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 2 ' RetVal: 2= error creating new file
Exit Function
End If
' Write header into data log
ObjFile.WriteLine("VarName" & splitsign & "TimeString" & splitsign & "VarValue" & splitsign & "Validity" & splitsign & "Time_ms")
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Can not write to data log. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 3 ' RetVal: 3= error writing to new file
Exit Function
End If
' Write entries into data log
For ObjIndex = 0 To ObjLoopCount
' Write x element to log
Objx = arrx(ObjIndex)
ObjFile.WriteLine(varNametagX & splitsign & timestring & splitsign & Objx & splitsign & "1" & splitsign & ObjIndex)
' Write y element to log
Objy = arry(ObjIndex)
ObjFile.WriteLine(varNametagY & splitsign & timestring & splitsign & Objy & splitsign & "1" & splitsign & ObjIndex)
Next
ObjFile.Close
OpenAllLogs
Do While SmartTags("LogsAreClosed") = True 'Wait until all logs are opened
Loop

' End function
ShowSystemAlarm "Load new file"
Set ObjFile = Nothing
Set ObjFileSystem = Nothing
TrendControl_1 = 0 ' RetVal: 0= no error occurred
End Function
ich sitze gerade auf IBN und brauche Hilfe, ich Möchte Soll und Ist Kurve aus einem DB in der Visu anzeigen (Durchfluss x / Druck Y).
Mit dem Skript von der Siemens Seite zur F(x) Kurve, habe ich das auch abgeändert geschafft, nun möchte ich aber in einer Kurvenanzeige, 2 Kurven sprich 2 CSV Dateien anzeigen (Ist / Sollkurve).
Ich habe alles kopiert und unbenannt, leider schreibt er mir die Werte aus dem 2. FB aber nicht in die "2." CSV sondern nur mist, Siehe Screenshot. Anbei das Skript für die 2. Kurve.
Function TrendControl_1()
Dim timestring, ObjFile, ObjFileSystem, arrx, arry, ObjFilePath, ObjFileName, ObjLoopCount, ObjIndex, ObjTime, Objx, Objy
Const varNametagX = "LogValX_1"
Const varNametagY = "LogValY_1"
Const splitsign = ";"
Const ForAppending = 8
'Get current datetime
timestring = "'" & Now & "'"
Set ObjFileSystem = CreateObject("Scripting.FileSystemObject")
Set arrx = SmartTags("Input_X_1")
Set arry = SmartTags("Input_Y_1")
ObjLoopCount = UBound(arrx)
ObjFilePath = "C:\Logs\" ' File location for tag log
ObjFileName = "TrendControl_f(x)20.csv" ' Name of tag log
' Closing logs
CloseAllLogs
Do While SmartTags("LogsAreClosed") = False ' Wait until all logs are closed
Loop
' Deleting old file
On Error Resume Next
ObjFileSystem.DeleteFile ObjFilePath & ObjFileName, True
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Deleting old file not possible. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 1 ' RetVal: 1= error deleting old file
Exit Function
End If
' Create new archive as csv file
Set ObjFile = ObjFileSystem.OpenTextFile(ObjFilePath & ObjFileName, ForAppending, True)
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Open file not possible. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 2 ' RetVal: 2= error creating new file
Exit Function
End If
' Write header into data log
ObjFile.WriteLine("VarName" & splitsign & "TimeString" & splitsign & "VarValue" & splitsign & "Validity" & splitsign & "Time_ms")
If Err.Number <> 0 Then
ShowSystemAlarm "Error: Can not write to data log. " & Err.Number & " " & Err.Description
Err.Clear
OpenAllLogs
TrendControl_1 = 3 ' RetVal: 3= error writing to new file
Exit Function
End If
' Write entries into data log
For ObjIndex = 0 To ObjLoopCount
' Write x element to log
Objx = arrx(ObjIndex)
ObjFile.WriteLine(varNametagX & splitsign & timestring & splitsign & Objx & splitsign & "1" & splitsign & ObjIndex)
' Write y element to log
Objy = arry(ObjIndex)
ObjFile.WriteLine(varNametagY & splitsign & timestring & splitsign & Objy & splitsign & "1" & splitsign & ObjIndex)
Next
ObjFile.Close
OpenAllLogs
Do While SmartTags("LogsAreClosed") = True 'Wait until all logs are opened
Loop

' End function
ShowSystemAlarm "Load new file"
Set ObjFile = Nothing
Set ObjFileSystem = Nothing
TrendControl_1 = 0 ' RetVal: 0= no error occurred
End Function