WinCC Unified Auflösung auslesen

HSu

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

ich habe folgende Anwendung: Ich möchte eine Visualisierung auf einer Smartphone darstellen (per Webanwendung). Hierzu habe ich die automatische Skalierung von WINCC Unified V19 verwendet. Das funktioniert auch erstmal gut....nur ist alles sehr klein. Ich habe schon ein zweites Screenlayout erstellt, welches an die Größe eines IPhoneSE angepasst ist (375x667). Nun möchte ich wenn ich auf dem PC die Visu öffne eine andere Skalierung bzw. das andere Screenlayout verwenden, wie das des Iphones.

Ich dachte mir das ich die Bildschirmbreite bzw. die Bildschirmhöhe über ein Script abfrage, nur habe ich keine Ahnung wie ich das in Java auslesen kann. Ich habe mir auch eine Variable erstellt, über die ich mir anzeigen lassen kann welche Breite und Höhe ich gerade habe, nur sind die immer Null.

Code:
export function detecDevice() {
    
    Tags.CreateTagSet(["Bild_groeße_int", window.screen.width])
                 .Write();

    // Wenn die Bildschirmbreite kleiner oder gleich 400 Pixel ist, wird die IPhoneSE hochkant geladen
    if (window.screen.width <= 400)
      {
        // IPhoneSE Layout hochkant
        UI.RootWindow.Screen = "IPhoneSE_Layout_hochkant";
      }
    else if (window.Screen.widht > 400 && window.Screen.widht < 1000)
      {
        UI.RootWindow.Screen = "IPhoneSE_Layout_hochkant";     
      }
    else
      {
        // PC-Seite laden
        UI.RootWindow.Screen = "PC_ScreenLayout";
      }
}
 
Erhält man eine FehlerMeldung, wenn man etwas ausserhalb des angezeigten Bereiches zu positionieren versucht?
Und kann man diese FehlerMeldung abfragen und ggfs noch unterdrücken?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche erstmal nichts außerhalb des angezeigten Bereich zu platzieren. Ich versuche die aktuelle Bildschirmgröße des Browsers / des Geräts abzufragen und dann entsprechend mein Layout anzupassen. Ich will die Visu auch nicht 1:1 dann übernehmen sondern zeichne mir entsprechend für den PC und für das IPhone jeweils eigene Bilder.

Hier noch ein Screenshot wie die Layouts die gewechselt werden heißen.

Testen tue ich das ganze über die Browserfunktion (Developer). Hier kann man Bildschirmgrößen simulieren.


1721309686919.png

1721309785801.png
 
Das dachte ich mir auch als ich den Screenshot gemacht habe :D
Was genau meinst du mit frag mal eine Wirt ? :)
 
Ich brauche Hilfe beim Auslesen der Bildschirmgröße, nicht beim alkoholfreien Biergarten (was eh quatsch ist :))
 
Hi,
Bildschirmbreite/Höhe lassen sich wie folgt auslesen:

let ui = UI;
let DisplayWidth = ui.GetClientInfo(ui.Enums.HmiClientInfoType.PrimaryDisplayWidth);
let DisplayHeight = ui.GetClientInfo(ui.Enums.HmiClientInfoType.PrimaryDisplayHeight);


ich rate dir das "let ui = UI;" immer mit zu schreiben.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Befehl funktioniert im PC-System sowie auch im Panel.
Wie sich das verhält wenn man einen ITC (Thin Client) verwendet kann ich nicht sagen, da ich das dort noch nicht getestet habe.
 
1721311746628.png

Stimmt die Umschaltung auf die einzelnen Layouts? habe es gerade mal getestet aber tut sich nix.
Das Scritp rufe ich in jedem Bild auf wenn es aktiviert wird. Ist das die falscher Herangehensweise evtl. ? Gibt es evtl. eine Möglichkeit das Skript dauerhaft aufzurufen?
 
Der Befehl muss
UI.RootWindows.Screen = 'IphoneSE_Layout_hochkant';
heißen.
Also '...' anstelle "..."

Außerdem funktioniert der Befehl (meines Wissens nach) nur in Verwendung mit mind. einem Bildfenster.
 
Traumhaft. Die Umschaltung funktioniert je nach Ausrichtung und Größe. Vielen Dank :D
Ist egal ob '...' oder "..." , funktioniert beides.

Liebe Grüße und Dankeschön
 
Zurück
Oben