WinCC Unified WinCC Unified V20 - aus einem Popup mit einem Button ein Bildfenster steuern

BW0808

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

ich möchte aus einem Popup mit einem Button ein Bildfenster in dem Bild darunter steuern. Leider bekomme ich das nicht hin.
Egal was ich als Bildpfad eintrage, wird das Bild im Bildfenster nicht umgesteuert.
Vielleicht könnt ihr mir sagen was ich falsch mache.
Vielen Dank vorab.
 

Anhänge

  • 2025-09-17 07_53_33-TIA Portal Win11 x64 - VMware Workstation.png
    2025-09-17 07_53_33-TIA Portal Win11 x64 - VMware Workstation.png
    34,6 KB · Aufrufe: 11
  • 2025-09-17 07_57_17-TIA Portal Win11 x64 - VMware Workstation.png
    2025-09-17 07_57_17-TIA Portal Win11 x64 - VMware Workstation.png
    41,9 KB · Aufrufe: 11
Zuletzt bearbeitet:
Man hat normalerweise im Popup keinen direkten Skriptzugriff auf das "normale" Bildmodell. Man kann per Skript aber tricksen und sich das Objektmodell in eine Variable kopieren und über diese Variable darauf zugreifen.
Javascript:
//Variable zum Zugriff auf das eigentliche UI-Objekt
let ui = UI;

//Jetzt erst Zugriff auf UI möglich. Im Popup-Kontext hat man sonst keinen Kontext dazu
ui.SysFct.ChangeScreen(screenName, screenWindowPath);

Den Pfad zum Button im Bildfenster dann via absolute oder relative Pfade zusammenbauen.
Wie hier an den Beispielen zum Pfadaufbau in der Doku zu finditem:


Hier sieht man das Beispiel in die andere Richtung:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dir.
Jedoch funktioniert dies bei mir leider nicht. Er öffnet einfach nicht das Bild im Bildfenster.
Irgendwie vertsehe ich noch nicht richtig wie das mit den Bildpfaden funktioniert.
 

Anhänge

  • 2025-09-17 09_02_46-TIA Portal Win11 x64 - VMware Workstation.png
    2025-09-17 09_02_46-TIA Portal Win11 x64 - VMware Workstation.png
    24 KB · Aufrufe: 10
Jedoch funktioniert dies bei mir leider nicht.
(⁠╯⁠°⁠□⁠°⁠)⁠╯⁠︵⁠ ⁠┻⁠━⁠┻
...
....
┬⁠─⁠┬⁠ノ⁠(⁠ಠ⁠_⁠ಠ⁠ノ⁠)

1:
Pack deinen Code in ein try..Catch & gibt per Trace die Fehlermeldung aus.
Damit bekommst du schon mal ne Ansage was das Problem ist.
Die Fehlerbeschreibung ist teilweise etwas kryptisch, aber wenn man ne Weile damit arbeitet versteht man das Ding... irgendwie...

2:
Gib dir per Trace mal die Path-Property der beiden Bildfenster aus.
Evtl einfach nen Tippfehler, wie von @centipede vorgeschlagen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich danke euch für eure Tipps.
Die Tilde hat leider auch nicht geholfen.
Ebenso verstehe ich von dem anderen nur Bahnhof. Ich bin in dem Thema Unified noch kompletter Neuling und hatte bisher noch keine Schulung.
Vielleicht kannst du dies noch mal für mich genauer erklären (Für Geschäftsführer und Hausfrauen) ;-)
 
Ich danke euch für eure Tipps.
Die Tilde hat leider auch nicht geholfen.
Ebenso verstehe ich von dem anderen nur Bahnhof. Ich bin in dem Thema Unified noch kompletter Neuling und hatte bisher noch keine Schulung.
Vielleicht kannst du dies noch mal für mich genauer erklären (Für Geschäftsführer und Hausfrauen) ;-)
Hier ist das Thema mit der Adressierung von Bildobjekten in Skripten schön aufgedröselt und mit Bildchen gezeigt.
Kapitel 5.4
In einem von den Demoprojekten unten ist es auch schön gezeigt in ein paar Bildern, ich weiß nur auswendig nicht mehr in welchem

Ansonsten als Infosammlung für Unified, es gibt hier mittlerweile einiges an schönen Infos mit beliebigem Tiefgang:

Allgemeine Einstiegsseite:
https://www.siemens.com/de/de/produkte/automatisierung/simatic-hmi/wincc-unified.html
https://www.siemens.com/de/de/produ...imatic-hmi/wincc-unified/getting-started.html

Getting started Teil 1
https://support.industry.siemens.com/cs/document/109954244/

Getting started Teil 2
https://support.industry.siemens.com/cs/document/109818884/

WinCC Unified Tutorial Center (sehr viele Videos, sehr zu empfehlen)
https://support.industry.siemens.com/cs/document/109782433/

Unified Umstiegsleitfaden:
https://support.industry.siemens.com/cs/document/109768002/

WinCC Unified Demoprojekte
https://support.industry.siemens.com/cs/document/109822799/

Modernization Checker
https://support.industry.siemens.com/cs/document/109820536/

Data2Unified (Mitnahme von Massendaten aus WinCC Comfort/Advanced)
https://support.industry.siemens.com/cs/document/109770510

Template Suite als Design/Menüvorlage
https://support.industry.siemens.com/cs/document/91174767/

Projektierungs-Richtlinie (Tipps & Tricks) für WinCC Unified
https://support.industry.siemens.com/cs/document/109827603/

Tipps und Tricks Popups:
https://support.industry.siemens.com/cs/document/109810540/

Tipps und Tricks Faceplates:
https://support.industry.siemens.com/cs/document/109812366
 
Ich denke ich habe das mit der Anleitung soweit verstanden, jedoch sind das alles Beschreibungen für Bildfenster in Bildfenster.
Ich habe aber das Thema das ich aus einem Popup heraus im Grundbild ein Bildfenster ändern möchte und bekomme dort die Adressierung des Bildpfades nicht hin.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke ich habe das mit der Anleitung soweit verstanden, jedoch sind das alles Beschreibungen für Bildfenster in Bildfenster.
Das ist der springende Punkt an der Ganzen Sache: alles besteht aus Bildfenstern.
Es handelt sich nicht mehr um ein rein bildbasiertes HMI-Konzept.
Bei Comfort hast du dein jeweiliges Bild mit mehreren anderen Bildern überlagert (Globales Bild, Vorlage) & dann immer komplette Bilder angezeigt, die jeweils die komplette Anzeigefläche eingenommen haben.
Bei Unified hingegen baust du dir mit einzelnen Bildfenstern bzw. Teil-Bildern deine Anzeigefläche zusammen und wechselst bei "Bildwechseln" auch nur die dafür notwendigen Teilbereiche/Bildfenster.
Das erfordert zwar am Anfang eine etwas andere Denkweise im Bezug darauf wie du deine Bildbereiche einteilst,
ich persönlich finde es, sobald man den Dreh raus hat, aber tatsächlich etwas effizienter als diese monolithischen Bilder in Comfort.

In der Template Suite findest du in Kapitel 4 ein Beispiel wie man seine Bildbereiche aufteilen kann/könnte.
Ich hab beispielsweise für meine Zwecke die Titel- und Statusbar zusammengefasst, den Rest mit main- sub & third-Nav aber konzeptionell, so wie in der Template Suite dargestellt, übernommen.
Schau es dir an, versuche es zu verstehen & entscheide anschließend was für deine HMIs passt und was nicht.
Zum konzeptionellen Entwurf von Layouts kann ich noch die HMI Desing Masterclass empfehlen.
Das ist zwar eine ganze Menge theoretisches Künstler-Gesabbel, im Kern jedoch durchaus nutzbar, da es sich wirklich lohnt beim Umstieg auf Unified mal einen Schritt nach hinten zu gehen und dir ein paar Gedanken zu deinem gewohnten Layout zu machen.
Wenn du in Teams arbeitest sind speziell die Entwurfs-Zettel, die dort vorgestellt werden, ganz nützlich.

Zur Umsetzung beachte unbedingt die Tipps&Tricks-Beiträge, die @LucasMucas oben gepostet hat.
Zumindest wenn du nicht willst, dass dein HMI am Ende läuft wie ein Sack Kartoffeln läuft ¯\_(ツ)_/¯

Zurück zum eigentlichen Thema:
Nutze für irgendwelche Scripting-Geschichten GRUNDSÄTZLICH >>>IMMER<<< die Dreiheiligkeit aus Try, catch & Trace.
Damit bekommst du, sobald es zu einem Fehler in deinem Script kommt, zumindest eine konkrete Aussage was genau das Problem war.
Grundlegende Beschreibung zu diesem Sprachelement siehe hier:
Im Prinzip ist es eine "versuche das, wenn es zu einem Fehler kommt mach dies"-Verzweigung.
Befindet sich auch in den Rechtsklick-Snippets im TIA-Scripteditor, genauso wie Beispiele zum Trace-Befehl.
Verwendung des Trace-Viewers (das wohin die ganzen Debugging-Nachrichten ausgegeben werden) siehe:
Zu der Batch-Datei zum Verbinden deines PCs mit einem Panel hab ich auch mal hier (ganz unten im Beitrag) eine Alternative gepostet.
In dem Post findest du auch ein Beispiels zu Verwendung von Trace, das sich dort allerdings auf die Verwendung innerhalb von Faceplates bezieht. Funktioniert in normalen Bildern aber identisch, musst dich lediglich auf ein Item oder den Screen selbst beziehen, nicht auf das Faceplate.

Ich habe aber das Thema das ich aus einem Popup heraus im Grundbild ein Bildfenster ändern möchte und bekomme dort die Adressierung des Bildpfades nicht hin.
Du kannst dir z.B. beim Bildaufbau oder bei Fehlern den aktuellen Bildfenster-Pfad per Trace ausgeben lassen.
Beispiel, dass ich hier an das "Aufgebaut"-Ereignis des Bildes gehängt habe::
Javascript:
export function Screen_1_OnLoaded(item) {
    try {
        HMIRuntime.Trace("Hierarchie-Info: \n" +
            "Bildfenstername: " + item.Parent.Name + "\n" +
            "Pfad: " + item.Parent.Path, HMIRuntime.Trace.Enums.hmiSeverity.Info);
    } catch (ex) {
        HMIRuntime.Trace("Fehler beim Bildaufbau, Fehlerdetails " + ex, HMIRuntime.Trace.Enums.hmiSeverity.Error);
    }
}
 
Zurück
Oben