WINCC V7.0.1 Layer Visible schalten

Hagen

Level-1
Beiträge
149
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte über eine Schaltfläche ein Layer sichtbar (Visible = True) und ein anderes unsichtbar (Visible = False) schalten.
Mache ich das mit einem Button innerhalb des betreffenden Bildes, geht das ganz wunderbar mit:

Layers(1).Visible = True
Layers(2).Visible = False



Versuche ich das von ausserhalb zum Beispiel mit:

Screens("Bildx").Layers(4).Visible = True

klappts nicht. Habe auch schon andere Varianten mit "ScreenItem" etc. probiert, aber nichts geht.

Hat jemand eine Idee, wie man das Objekt anspricht?

Gruß Hagen

PS: Übrignes, auf "Ej, Alter mach dich unsichtbar!", hat das System auch nicht reagiert. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mach doch die Anzeige des Layers einfach von einer Variable abhängig und setze mit dem Button nur den Wert der Variable.

Ich habs nicht ausprobiert, also keine Garantie dass es funktioniert.

Gruß Dom
 
@explosiv: Nein, habe ich nicht. Aber der Vorschlag von Dorn sollte funktionieren, auch wenn es quasi einen Umweg bedeutet.

Gruß Hagen
 
Hallo,
die Suchfunktion hat mich auf euren Threat gebracht.
Leider aber noch keine Lösung gefunden.
Ich stehe vor dem gleichen Problem kann aber leider nicht "visible" nutzen, da ich über den Webnavigator arbeite und dort keine Rechnerlokalen Variablen unterstützt werden.

Gibt es vielleicht doch eine Lösung in einem anderen Bildfenster eine Ebene ein/aus zu schalten.
Oder alternativ in einem Faceplate (ohne PCS7)

Gruß Michi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Screens("Bildx").Layers(4).Visible = True
"Bildx" steht aber schon für das Bildfenster und nicht für den Bildnamen oder?

Ich hab mal schnell folgendes unter WinCC v7.2 ausprobiert...
Basisbild (Base.Pdl) mit Bildfenster (Fenster1) und enthaltenem Bild (Bild1.Pdl).
Zwei Buttons befinden sich im Basisbild und schalten im Bildfenster den Layer 1.

Variante 1:
Code:
'Adressierung unter Verwendung des Bildnames
HMIRuntime.Screens("Base.Fenster1:Bild1").Layers(2).Visible = False

Code:
'Adressierung under Verwendung des Bildfensternamens
HMIRuntime.Screens("Fenster1").Layers(2).Visible = False
Funktioniert bei mir tadellos. :cool:
 
Zurück
Oben