Du hast die Read Funktion vergessen !
Es mus heißen:
dblAxisX(lngIndex) = CDbl(HMIRuntime.Tags("KurvenwertX" & (lngIndex + 1)).Read)
dblAxisY(lngIndex) = CDbl(HMIRuntime.Tags("KurvenwertY" & (lngIndex + 1)).Read)
Wie man Variablen mit VBS liest siehe Handbuch
1.14.2.21 Tag-Objekt
1.14.2.23 TagSet-Objekt (Auflistung)
z.B. HMIRuntime.Tags("NeueVariable_3").Read
Um Fehler zu finden kannst Du das Tool apdiag verwenden unter
C:\Program Files\Siemens\WinCC\uTools
Wenn das Tool offen ist Diagnosefenster unter Output Window – Open öffnen und Meldung prüfen
ich habe es inzwischen hinbekommen den Graphen darzustellen.
Wie schaffe ich es das der Graph nur die Verbindungen zwischen den Punkten anzeigt und nicht auf 0 springt bzw. zurückspringt siehe anhang.
ich habe es mit min max begrenzung versucht aber so ganz will es nicht.
1 Punkt (100,1700)
letzter Punkt(2100,1000)
Code:
Function Left_Trigger(Byval Item)
Dim lngIndex
Dim dblAxisX(50)
Dim dblAxisY(50)
Dim objTrendControl
Dim objTrend
Dim xMin, xMax, yMin, yMax
xMin = 1E+20
xMax = -1E+20
yMin = 1E+20
yMax = -1E+20
Set objTrendControl = ScreenItems("Control1")
Set objTrend = objTrendControl.GetTrend("Kurve 1")
For lngIndex = 0 To 49
dblAxisX(lngIndex) = CDbl(HMIRuntime.Tags("KurvenwertX" & (lngIndex + 1)).Read)
dblAxisY(lngIndex) = CDbl(HMIRuntime.Tags("KurvenwertY" & (lngIndex + 1)).Read)
If dblAxisX(lngIndex) < xMin Then xMin = dblAxisX(lngIndex)
If dblAxisX(lngIndex) > xMax Then xMax = dblAxisX(lngIndex)
If dblAxisY(lngIndex) < yMin Then yMin = dblAxisY(lngIndex)
If dblAxisY(lngIndex) > yMax Then yMax = dblAxisY(lngIndex)
Next
objTrendControl.XAxisBeginValue = xMin
objTrendControl.YAxisBeginValue = yMin
objTrendControl.XAxisEndValue = xMax
objTrendControl.YAxisEndValue = yMax
objTrend.InsertData dblAxisX, dblAxisY
End Function