Unterschiedliche Frames bei Start der WebVisu anzeigen

mzs

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich arbeite mit ECockpit und habe ein Projekt das je nach ausgewählter Variante (Variable im Programm) mit einer anderen WebVisu starten soll.

Der Startbildschirm der WebVisu ist ein Frame mit referenzierten Visualisierungen. Normalerweise wird beim Start immer der Index 0 geladen.

Nun soll aber abhänig von der Variante ein anderer Index geladen werden.

Gibt es eine Möglichkeit beim Start der Visu mit einem Event oder sowas ähnliches im Frame die Visualisierung umzuschalten ohne das es eine Inetraktion des Benutzer braucht.

Die Umschaltung würde ich dann über Current Visu umschalten.

Gruss mzs
 
Du kannst dein Frame dynamisch anhand einer Variablen umschalten. Somit kannst du beim Start eine gültige Variable vordefinieren.
Die Umschaltung durch einen Benutzer würde dann durch das Beschreiben der Variable erfolgen und nicht mehr über "Wechsel Framevisu".

CurrentVisu ist für Frame nicht geeignet sondern bezieht sich immer auf die gesamte Seite. Außerdem werden hier alle WebVisu Geräte umgeschaltet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo holgermaik

Das mache ich und es funktioniert im Prinzip auch. Innerhalb des Programms definiere ich die Variable dann habe ich einen "Home" Button der mit diesem Prinzip den Index des Frames umschalte und so auf die jeweilige StartVisu bzw. Startframe springt.

Jedoch wird beim Start der Visu im Browser immer zuerst der Index 0 des Frames geladen.
Auch wenn ich F5 im Browser drücke springt er mir auf das Frame mit dem Index 0.

Ich müsste beim Start der Browsersession irgend einen Event abfangen können um die Routine zu starten.

Also ich bräuchte einen EventHandler "Load Visu initial" oder sowas in der Art.

Ich bin mir jedoch nicht sicher wie das in Codesys heisst.

Grüsse mzs
 
Deine Frage ist nicht so richtig eindeutig.
1. möchtest du aus dem Programm ein bestimtes Frame laden?
Definiere irgendwo eine Variable vom Typ Int. Diese kannst du aus dem Programm beschreiben. Unter Eigenschaften / Umschaltvariable des Frame gibst du diese Variable an und das entsprechende Frame wird aufgeschaltet.

oder

2. Die Visu startet mit dem Start der PLC. Egal ob ein Client darauf zugreift oder nicht.
Mache dir einen FirstRun für den ersten Zyklus und verfahre nach 1 weiter.

oder

3. möchtest du bei jedem 1. Zugriff eines Client ein bestimmtes Frame laden, egal welches bisher angezeigt wurde?
In dem Fall wäre erstmal zu klären ob mehrere Client auf den Webserver zugreifen und ob alle die gleiche Visu anzeigen.
Für den einfachen Fall (nur 1 Client) kann man auf die Anzahl der Verbindungen (0 oder 1) regieren.
Für den Fall mehrere Client aber gleiches Bild - siehe oben nur dann eben Erhöhung der Anzahl der Verbindungen.
Für mehrer Client und unterschiedliches Bild - in dem Fall muss man dem Aufruf der Webvisu den Clientnamen mitgeben um einen neuen Cient unterscheiden zu können.

Beispiel
 
Zuletzt bearbeitet:
Hallo holgermaik

Ja im Prinzip wäre es die Variante 3 beim ersten Zugriff bekommt jeder Client die gleiche StartVisu, je nach Einstellung der Variable jedoch eine definierte die ich zur Laufzeit ändern kann.

Aber ich habe heute Nachmittag rausgefunden das ich mit der Frameumschaltung auf dem Holzweg war.

Was ich benötige ist eine clientabhänige Start der WebVisu.


Und anstatt das ich prüfe was für ein Endgerät da ist prüfe ich auf die interne Variable und setze die richtige StartVisu.

VisuElems.g_VisuManager.SetMainVisu(pClientData, 'MeineStartVISU');

Sieht ähnlich aus wie dein erstes Beispiel.

Danke Problem gelöst.

Grüsse mzs
 
Zurück
Oben