WinCC Unified Variablen von Faceplate im Pop-Up werden nicht aktualisiert

steve589

Member
Beiträge
12
Punkte Reaktionen
6
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

vewendet wird WinCC Unified V17.
Es geht um Bildbausteine (Faceplates), konkret Bedienfenster von Antrieben, die in einem Script über die Funktion OpenFaceplateInPopup geöffnet und parametriert werden sollen. Verwendet wird die Funktion so (es gibt dafür ein Snippet):

let data = {TagProperty_1:{Tag:"Tag_1"}, ColorProperty:0xff00ff00};
let po = UI.OpenFaceplateInPopup("Faceplate_1_V_0_0_1", "title", data);
po.Left = 100;
po.Top = 150;

po.Visible = true;

Über data werden ja die Variablen und Parameter an das Faceplate übergeben. Die Instanziierung funktioniert soweit auch. Z.B. das Betätigen einer Taste wird dem richtigen Antrieb zugeordnet. Nun besteht aber das Problem, dass die Werte der Variablen im Pop-Up anscheinend nicht aktualisiert werden. Wenn ein Antrieb eingeschalten wird, erkennt man nicht, dass der Antrieb dann läuft (z.B. über die Ausleuchtung des Antriebssymbols). Man muss dann das Pop-Up erst schließen und wieder öffnen, damit die Zustandänderung erkennbar wird.

Hat da schon jemand Erfahrung und ist auf ein ähnliches Problem gestoßen?
 

gustavganzz

Well-known member
Beiträge
64
Punkte Reaktionen
7
Ich könnte mir gut vorstellen, dass das PopUp keinen Trigger hat, oder dieser gesondert angestoßen werden muss?
Ähnlich wie es für die Variablen der Faceplates ist (Trigger zeitintervall oder externe Variable)
 
OP
S

steve589

Member
Beiträge
12
Punkte Reaktionen
6
Zuviel Werbung?
->Hier kostenlos registrieren
Danke für den Tipp. Dynamisiert werden sollte z.B. der Hintergrund eines Objekts. Bei der Variable war der Haken bei nur Lesen gesetzt (Änderung des Werts wird hier so wie es aussieht nicht übernommen).

EinstellungFP.png


NurLesen.png

Leider funktioniert die indirekte Adressierung oder das entfernen des Hakens bei "Nur Lesen" auch nicht (bei indirekter Adressierung muss man übrigens eine String-Variable verwenden):

Konsistenz.png

Bleibt wohl nur die Möglichkeit ein Script an die Eigenschaft dran zu hängen.
 
OP
S

steve589

Member
Beiträge
12
Punkte Reaktionen
6
Nur noch zur Info:
Über ein Script mit einer Variable als Trigger lassen sich Eigenschaften, wie Hintergrundfarbe dynamisch ändern. Entweder kann man in dem Script über den Rückgabewert den Eigenschaftswert zurück geben oder durch Ansprechen des Objekts diesen direkt ändern, z.B:

Farbwert zurückgebenvalue = HMIRuntime.Math.RGB(0,0,0);
Blinken ausschaltenFaceplate.Items("Ellipse_1").PropertyFlashing("BorderColor", false);
 
Oben