Sonstiges WinCC VBS Problem

bayernburn

Level-1
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute.

ich verwende WinCC V7.3 Upd7 & Win7 64bit.

Um unser Standard Projekt zu erweitern, bastle ich seit einiger Zeit an einem Vergleichstrend.
Dieser Trend vergleicht die gleiche Variable zu unterschiedlichen Zeiten. z.b möchte der Kunde den Verlauf des Trends von heute mit dem von gestern vergleichen.
Das Aufrufen des Trends im Trendfenster funktioniert. Auch die unterschiedlichen Zeitachsen können bereits mit einem Button eingestellt werden.

Ich habe allerdings derzeit noch folgendes Problem:
Wenn sich das Trendfenster öffnet und die Trends geladen werden, dann soll automatisch ein Zeitversatz von 10min eingestellt werden.
Hierfür habe ich das Skript des Buttons verwendet der eben diese 10min Zeitversatz bereits richtig im Trend anzeigt und habe es in einem Rechteck aufdemselben Bild wie der Button unter Farben --> Hintergrundfarbe hinterlegt. Gestartet wird das Script über ein Bit.
Leider ist es da dann so, dass ich im Global Script Diagnose Fenster den Eintrag erhalte:
Application :pDLRT
Picture :ALL705_CompTrend.pdl_Triggers
Function :FunctionRectangle_BackColor_Trigger(ByValItem)
Line :23
Error :get_Item:Falscher Parameter

Hier der von mir programmierte Code:
Code:
Function BackColor_Trigger(ByVal Item)

Dim objCon1
Dim StartTimeFTrend1
Dim EndTimeFTrend1
Dim StartTimeFTrend2
Dim EndTimeFTrend2
Dim Factor
Dim Stoptime

Stoptime = DateAdd("s",+4,Now)

'HMIRuntime.Trace Left(objScreen.Parent.ObhjectNme,13)
'HMIRuntime.Screens &vbCrlf 

Do

Loop Until Now >= Stoptime

' Time Axis 1
'Dim n As String DateInterval.Minute
'create objects
    Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems("ArchiveTrendControl")
    Factor = -10
StartTimeFTrend1 = DateAdd("n",Factor,Now)
'HMIRuntime.Tags("TrendAxisEndTime").Write strvar_2 

EndTimeFTrend1 = Now
'HMIRuntime.Tags("TrendAxisBeginTime").Write StartTimeFTrend2 

'configuration
objCon1.TimeAxisIndex=0
objCon1.Online=0
objCon1.TimeAxisRangeType=1
objCon1.TimeAxisBeginTime=StartTimeFTrend1
objCon1.TimeAxisEndTime=EndTimeFTrend1

StartTimeFTrend2 = DateAdd("n",Factor,StartTimeFTrend1)
HMIRuntime.Tags("TrendAxisBeginTime").Write StartTimeFTrend2 

EndTimeFTrend2 = StartTimeFTrend1
HMIRuntime.Tags("TrendAxisEndTime").Write EndTimeFTrend2 

' read tags
'strvar_1.Read
'strvar_2.Read
'StartTimeFTrend2.Read
'configuration
objCon1.TimeAxisIndex=1
objCon1.Online=0
objCon1.TimeAxisRangeType=1
objCon1.TimeAxisBeginTime=StartTimeFTrend2
objCon1.TimeAxisEndTime=EndTimeFTrend2


'Set Tag = HMIRuntime.Tags("TrendReadCompFinished")

'If (HMIRuntime.Tags("TrendReadCompFinished")) = 1 Then

'Set Tag = 0
'InitialCompTrend()
HMIRuntime.Tags("TrendReadCompFinished").Write 0
HMIRuntime.Trace("Durchlauf" &vbCrlf)
'End If
'HMIRuntime.Tags("TrendReadCompFinished_1").Write 1
'TrendReadCompFinished_1

BackColor_Trigger = RGB(0,0,0)

End Function

Zeile 23 Betrifft hier genau mein Set objCon1....
Kann mir bitte mal jemand erklären, weshalb das nicht funktioniert?!

Besten Dank für Eure Unterstützung

Bayernburn
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas,

das laden der Objekte im Bild war das Problem. Keine Ahnung aber, warum dasgleiche Skript in einem Button funktioniert und dann beim Rechteck nicht.
Habe jetzt viel herum gebastelt und das Skript so hinbekommen, dass es funktioniert.
Hier der Code:
Code:
Dim objCon1
Dim StartTimeFTrend1
Dim EndTimeFTrend1
Dim StartTimeFTrend2
Dim EndTimeFTrend2
Dim Factor

'Stoptime = DateAdd("s",+4,Now)

'Do

'Loop Until Now >= Stoptime

If HMIRuntime.Tags("TrendReadCompFinished").Read = 1 Then

    Set objCon1 = ScreenItems("ArchiveTrendControl")
    
    Factor = -10
    StartTimeFTrend1 = DateAdd("n",Factor,Now)

    EndTimeFTrend1 = Now

    'configuration Time Axis 1
    objCon1.TimeAxisIndex=0
    objCon1.Online=0
    objCon1.TimeAxisRangeType=1
    objCon1.TimeAxisBeginTime=StartTimeFTrend1
    objCon1.TimeAxisEndTime=EndTimeFTrend1

    StartTimeFTrend2 = DateAdd("n",Factor,StartTimeFTrend1)
    HMIRuntime.Tags("TrendAxisBeginTime").Write StartTimeFTrend2 

    EndTimeFTrend2 = StartTimeFTrend1
    HMIRuntime.Tags("TrendAxisEndTime").Write EndTimeFTrend2 


    'configuration Time Axis 2
    objCon1.TimeAxisIndex=1
    objCon1.Online=0
    objCon1.TimeAxisRangeType=1
    objCon1.TimeAxisBeginTime=StartTimeFTrend2
    objCon1.TimeAxisEndTime=EndTimeFTrend2


    HMIRuntime.Tags("TrendReadCompFinished").Write 0
    'HMIRuntime.Trace("Durchlauf" &vbCrlf)

End If

BackColor_Trigger = RGB(212,208,200)

Besten Dank!
 
Zurück
Oben