WinCC flexible 2008 SP2: unterschiedliches Sktipverhalten

Grimsey

Level-2
Beiträge
543
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

wir haben hier ein nicht nachvollziehbares Problem und wissen nicht mehr weiter.
Wir möchten über ein Skript die Position von Linien auf einem Bild verändern. Das Skript wurde in einem PC-Runtime-Projekt erstellt und getestet...klappt wunderbar.

Nun haben wir das Skript in ein anderes Projekt integriert (Panel-PC 670 15'' Touch) und dort funktioniert es nicht.
Hier einmal das Skript

Dim line, i
Dim Feld(1)
On Error Resume Next

For i = 1 To Anzahl Step 1
'2 Strings zum Namen der Linie zusammensetzen
Feld(0) = Trim("Klinkungen_")
Feld(1) = Trim(CStr(i))
Name = Join (Feld,"")
'Linie als Objekt zuweisen
Set line = HmiRuntime.ActiveScreen.ScreenItems(Name)
'Eigenschaften ändern
line.Visible = True
line.Left = PosArray(i)

'falls Fehler auftreten, Systemmeldung erzeugen
If Err.Number <> 0 Then
ShowSystemAlarm ("Error in code ! " & CStr(Err.Number) & ", " & Err.Description)
Err.Clear
End If
Next


Wir haben bereits alle Linien neu angelegt, die Namen überprüft ....alles ist im Grunde wie es soll aber es läuft nicht. Als Fehlermeldung wird angezeigt, dass kein Objekt mit diesem Namen gefunden werden kann aber ich kann zu 100% versichern, das es Objekte mit der korrekten Bezeichnung auf dem Bild gibt.
Temporäre Variablen löschen und alles neu generieren hat auch nicht geholfen.
Hat vielleicht noch jemand einen Tipp, was man noch überprüfen könnte?
 
Hallo,

in der VBS-Hilfe steht:

ActivateScreen

Beschreibung
Gibt ein Objekt vom Typ "Screen" zurück, welches das Bild darstellt, das gerade den Fokus besitzt.

Kann es sein, dass der Focus falsch ist?

Besser wäre wahrscheinlich, das Objekt direkt mit Angabe des Screens zu referenzieren (Beispiel aus VBS Hilfe):

Code:
Dim objCircle
Set objCircle = HMIRuntime.Screens("RootScreen").ScreenItems("myCircle")
objCircle.BackColor = vbGreen

Und außerdem, warum nutzt du nicht Animation/Direkte Bewegung für deine Linie? Wäre doch viel einfacher, da brauchst du in deinem Script nur eine Variable ändern.

Grüße, Ben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
kontrollier doch bitte mal die Geräte-Einstellungen.
Dort gibt es unter "Einstellungen für PC-Runtime" die Checkbos "Namesinformationen transferieren" - das muss aktiv sein ...

Gruß
Larry
 
Zurück
Oben