05.02.2024 14:38 | |
Beigetreten: 01.02.2021 Letzter Bes: 10.07.2024 Beiträge: 1376 Bewertung: (130)
|
In WinCC Unified ist es möglich, aus einem Faceplate, das in einem Popup geöffnet wird, ein weiteres Faceplate in einem Popup zu öffnen (weitere Informationen). Es kann hilfreich sein, das zweite Popup relativ zum ersten zu positionieren. In diesem Beispiel wird das zweite Popup neben dem ersten platziert. Dazu muss die Position des ersten Popups ermittelt werden, da auch ein manuelles Verschieben des Popups zur Laufzeit berücksichtigt werden soll. Dies kann folgendermaßen mittels Skripten (Ereignis auf der Schaltfläche) gelöst werden: Beim Aufruf des ersten Faceplates aus dem Bild, muss dem Befehl OpenFaceplateInPopup der parentScreen (aufrufendes Bild) als Parameter mitgegeben werden. In diesem Fall wird das aktuelle Bild, also UI.ActiveScreen angegeben. Außerdem muss der popupWindowName, in diesem Beispiel FPinPopUp mit übergeben werden. Im zweiten Faceplate wird über einen kleinen Workaround das UI-Objekt zugänglich gemacht (Codezeile 3). Nun kann das Faceplateobjekt mit ui.FindItem in die neue Variable FindItemPopup gelegt werden (Codezeile 4). Aus dem Objekt können nun die aktuelle X- und Y-Position (Left, Top) gelesen und dem geöffneten Faceplate unter Addition der Faceplatebreite zugewiesen werden (Zeile 5 und 6). Es wurde hier für eine einfachere Darstellung nicht berücksichtigt mehr als jeweils eine Faceplate-Instanz gleichzeitig zu öffnen. Hinweis: Die in diesem Beitrag beschriebene Vorgehensweise bezieht sich auf den Zeitpunkt der Erstellung dieses Beitrags (Stand: Februar 2024). Es wurde mit WinCC Unified V18 Update 3 getestet. Mit freundlichen Grüßen Fachberatung Deutschland (MS) |
Für diesen Beitrag bedanken sich1 Benutzer |
Folgen Sie uns auf