WinCC Interne Variable per VBS aus Faceplate beschreiben

Medium

Level-1
Beiträge
66
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Huhu nochmal,

der nächste Stolperstein den ich gefunden habe ist, dass ich es nicht schaffe aus einem Faceplate heraus eine einfache interne Variable zu beschreiben.

Ich habe in meinem Faceplate einen Button, der bei Klick dieses tun soll. Das VBScript in dem Button:
Code:
Sub OnClick(Byval Item)                     
	SmartTags("Testvariable").Value = "Test"
End Sub
"Testvariable" ist im Variablenhaushalt als 8-Bit Textvariable mit Länge 255 angelegt. Folgende Varianten habe ich durch probiert:
HMIRuntime.SmartTags("Testvariable").Value = "Test"
HMIRuntime.Tags("Testvariable").Write "Test"
HMIRuntime.Tags("Testvariable").Value = "Test"
SmartTags("Testvariable").Value = "Test"
Tags("Testvariable").Write "Test"
Tags("Testvariable").Value = "Test"

Ich lasse den Inhalt der Variablen in meinem Hauptbild in einem statischen Textfeld anzeigen. Und wenn ich genau das selbe mit einem Button im Hauptbild mache geht es auch! Aber ich komme aus meinem Faceplate heraus einfach nicht da dran.

Ich habe ebenfalls auch schon versucht es über eine Faceplate-Variable zu machen, die ich an eine dafür erstellte Property gebunden habe, welche ich im Hauptbild dann bei der FP-Instanz an meine interne Variable angebunden habe. Ich hätte dann erwartet, dass wenn ich im Faceplate die Faceplate-Variable beschreibe, der Wert durch diese Verknüpfungen an die interne Variable "Testvariable" weiter gereicht würde. Wird es aber leider nicht. (Die FP-Variable ist allerdings richtig versorgt.)

Wie könnte ich das noch anstellen?
 
Der Weg über die Faceplate-Eigenschaften ist der richtige. Wichtig ist nur, der Eigenschaft ein "Properties\ " voranzustellen
Über ein Skript mit

SmartTags("Properties\NameDerEigenschaft") = 1234

Würde der Wert 1234 auf die Eigenschaft "NameDerEigenschaft" geschrieben. Wenn dann an der Faceplateinstanz an dieser Eigenschaft eine Variable angebunden ist, wird der Wert auf diese Variable geschrieben.

Das HMIRuntime Objekt gibt es in einem Faceplate nicht, darum funktionieren auch die Lösungen aus dem anderen Thread mit den ScreenItems nicht.
 
Huhu! Danke für eure Hilfe. Ich bin zwischenzeitlich allerdings hierfür auf eine Bildinstanz gewechselt, und um dort "Parameter" zu übergeben missbrauche ich einfach unsichtbare Textfelder. Dann kann mein Pop-Up leider nur rechteckig sein und die Versorgung muss via Script statt Variablenanbindung geschehen, aber zumindest konnte ich so innerhalb des "Faceplates" alles so scripten wie ich es brauchte. Das mit dem "Properties" werde ich aber bei nächster Gelegenheit mal probieren! (Schade, dass solche Finessen nicht im Guide erwähnt werden.)
 
Zurück
Oben