WinCC Unified Faceplate als Popup popupWindowName auslesen

batman&ich

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

folgende Ausgangssituation:
Ich habe ein Faceplate, beim Klick auf dieses Faceplate öffnet sich ein anderes Faceplate als Popup (Funktion: OpenFaceplateInPopup).
Das funktioniert problemlos.

folgendes habe ich vor:
Bei der Skriptfunktion "OpenFaceplateInPopup" ist es möglich mehrere Eigenschaften an das Popup zu übergeben (siehe Bild).
Ich möchte nun einen einmaligen "popupWindowName" übergeben und diesen dann über ein Textfeld in dem Popup anzeigen, jedoch bekomme ich das nicht hin.
Entweder der popupWindowName wird nicht übergeben oder ich bin nicht in der Lage diesen korrekt in einem Textfeld auszugeben...?

Evtl. hat sich ja schonmal jemand mit ähnlichem Beschäftigt und kann mir helfen.
Vielen Dank!
1708503730956.png
 
Wie sieht denn dein Textfeld aus, in dem du den popupWindowName ausgeben möchtest? Wie versuchst du, auf die Eigenschaft zuzugreifen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der popupWindowName soll im Textfeld über "Eigenschaften -> Text -> Dynamisierung -> Skript" über ein Skript angezeigt werden.

Meine bisherige Idee war:

let name = PopupScreenWindow.popupWindowName;
return name;
 
Wie willst du das Skript aufrufen?

Aber prinzipiell könntest du mal name = Faceplate.DisplayName.Get ausprobieren.
 
Das Skript könnte sekündlich aufgerufen werden, oder später evtl. beim Bildaufbau (Ereignis Aufgebaut).

Die Idee mit DisplayName funktioniert leider nicht. Danke trotzdem :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mal ein HMI Skript gemacht um zu prüfen ob ein Popup mit bestimmten Namen aktiv ist.
Wenn bei dir immer nur ein Popup aktiv ist,
dann dürfte in der Liste "aktivePopups" ja immer nur der Name des einen Popup auftauchen.

Javascript:
export function PopupAktiv(popupName) {
  // alle Namen von aktiven Popups in eine Liste Packen
  let aktivePopups = [];
  for (let key in HMIRuntime.UI.PopupScreenWindows) {
    aktivePopups.push(HMIRuntime.UI.PopupScreenWindows[key].Name); 
  }
  // prüfen ob der Name des gesuchten Popups in der Liste auftaucht
return aktivePopups.includes(popupName);
}


Also irgendwie so hier:
Javascript:
// alle Namen von aktiven Popups in eine Liste Packen
let aktivePopups = [];
for (let key in HMIRuntime.UI.PopupScreenWindows) {
  aktivePopups.push(HMIRuntime.UI.PopupScreenWindows[key].Name);   
}

if(aktivePopups.length > 0){
  return aktivePopups[0];
  }
else{
  return "Kein Popup aktiv";
  }
 
Zuletzt bearbeitet:
Zurück
Oben