WinCC Unified Rückgabewert beim schließen eines Faceplate Popup

razer_1337

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

weiß jemand eine Lösung, wie ich ein Rückgabewert beim schließen eines Popup (Faceplate) erhalten kann? Ich möchte dabei nicht die Variablenschnittstelle verwenden, da ich sonst zu viele HMI-Tags erstellen müsste und mein Programm damit unübersichtlich und schwer editierbar wird.

Was ich schon probiert habe:
1. Faceplate nicht als Popup zu öffnen sondern im Bild zu plazieren und mit den Properties Left,Top,Width und Height zu spielen. Dabei bekommt man aber Probleme mit den einzelnen Ebenen und teilweiße liegt somit das Faceplate unter einem anderen Bildobjekt.
2. Mit der Eigenschaft Faceplate.Parent bzw. Faceplate.Parent.Parent. Dabei besteht das Problem, dass das Popup nicht den gleichen Pfad besitzt, wie die Schaltfläche, die das Popup öffnet. Damit hat ein Popup keinen Bezug zu der Seite, auf der es aufgerufen wurde. Mit dem Chrome Debugger kann man das sehr gut sehen.
3. Mit Lokalen Variablen eines Faceplates. Faceplate erstellen -> in diesem Faceplate ein anderes Faceplate per Popup öffnen und lokale Variable übergeben. Leider funktioniert es nur wenn eine HMI-Tag Variable angehängt wird...
4. Mit UI.FindItem sollte es möglich sein mit dem absoluter Dateipfad von einem Faceplate Popup aus ein Element zu beschreiben. Jedoch habe ich keine Lösung wie dieser absolter Dateipfad dynamisch gelesen werden kann ohne ihn selbst eingeben zu müssen.

Ich bin leider ratlos. Sollte doch eigentlich icht so schwer sein oder??

Danke für eure Hilfe.

Grüße
 
Habe nun eine Lösung gefunden, die aber anspruchsvoll ist aber sehr gut funktioniert.
1. Faceplate erstellen in dem sich ein EA-Feld befindet
2. Beim OnTapped auf das EA-Feld wird ein zweites Faceplate als PopUp geöffnet
3. Diesem Faceplate PopUp übergibt man
- Variable für den Rückgabewert
- Variable für den Unified Objekt Namen (Destination)
- Eigenschaft für den Unified Objekt Namen (Source) mit Faceplate.Parent.Name kann dieser ausgelesen werden.
Variablen und Eigenschaften müssen natürlich am ersten Faceplate angehängt werden und beim Aufruf des Faceplates in einem Objekt zusammengefasst übergeben werden.
4. Beim schließen des Popups schreiben man
- Den Wert des Faceplates Popups in die Variable für den Rückgabewert
- Den Wert der Eigenschaft für den Unified Objekt Namen in die Variable
5. Auf der Seite, auf der das erste Faceplate erstellt wurde erstellt man eine Tag Subscription z. B. bei On Loaded der Seite
6. Tag Subscription erkennt eine Wertänderung des Rückgabewerts oder des Unified Objekt Namen
7. Nun kann man den Wert weiter verarbeiten und man weiß genau von welchem Faceplate der Rückgabewert stammt.

Unter Unified Objekt Namen ist der Name des ersten FaceplateCointers gemeint. Diesen kann selbst individuell vergeben.
 
Zurück
Oben