Visualisierung programmieren in VBS und Objekten per For Schleife bearbeiten

  • Ersteller Ersteller Gelöschtes Mitglied 129338
  • Erstellt am Erstellt am
Zuviel Werbung?
-> Hier kostenlos registrieren
nur um das mal klarzukriegen :
Mach doch mal ein Script, dass dir den Textinhalt von ActiveScreen auf dem Bildschirm in einem Ausgabefeld darstellt. Vielleicht auch noch ob und wann HMIRuntime.Screens("Übersicht_Taktzeit") ein Objekt zurückgibt ...
Dieses Script rufst du SPS-getriggert zyklisch (z.b. alle 250 ms) auf und dann schau mal ob und wann sich der Wert anpasst / ändert.

Das erklärt allerdings noch nicht warum die direkte Adressierung mit Screens nicht funktioniert. Vielleicht benennst du die Seite noch einmal um damit der Umlaut verschwindet - also vielleicht "Uebersicht_Taktzeit" statt "Übersicht_Taktzeit". Obwohl ... es funktioniert ja, wie du schreibst, wenn du das Script über einen Button aufrufst.

Hast du mal kontrolliert, ob das Script wirklich beim Bildwechsel komplett durchlaufen wird (z.B. mit einer Zählvariable) ?

Gruß
Larry
 
Hab das Bild umbenannt, funktioniert auch nicht.
Das Skript wird nicht komplett durchlaufen. Ab der Zeile 69 mit der Deklarierung für den Loop ist Schluss.
 
Schau dir doch mal die Debug-Ausgaben von apdiag oder dem WinCC Prof. entsprechenden an.
Dann baust du in dein Script Debug Ausgaben ein, kannst sehen wie weit es kommt.
Vor allem bei solchen Problemen erstmal das Script auf das minimalste kürzen, also nur eine einzige Eigenschaft setzen (oder auch nur lesen) und prüfen wie sich das verhält. Das kannst du alles selbst machen. Irgendwelche Warteschleifen einbauen führt aber garantiert nicht zum Ziel.
 
Hallo zusammen,
zur Information, in der Hoffnung, dass somit zukünftige HMI Künstler schneller ans Ziel kommen.

Die Lösung für das Skript im Ereignis "Aufgebaut" ist es, die Deklaration folgendermaßen zu definieren:

Set objBalkenT = ScreenItems("T_" & i)
Set objBalkenP = ScreenItems("P_" & i)
Set objTextT = ScreenItems("TextT_" & i)
Set objTextP = ScreenItems("TextP_" & i)
Set objTextS = ScreenItems("TextZ_" & i)
Set objTimeS = ScreenItems("T_" & i)
Set objDevSek = ScreenItems("TextPZ_" & i)
Set objDevPer = ScreenItems("TextTZ_" & i)
Set objStation = ScreenItems("Station_" & i)

Anscheinend kommt dieses Ereignis nicht klar mit der Syntax "hmiruntime.screens("bild_1")."


Mit freundlichen Grüßen
spsqem
 
Zurück
Oben