TIA Popup Status im Script abfragen

Christmaspoo

Level-1
Beiträge
250
Reaktionspunkte
33
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

ich habe das Problem, dass mein Kunde gerne diverse Meldungen als Popup Fenster haben möchte. Nun kann ich die Fenster anlegen, aufrufen und schließen, habe aber das Problem, dass wenn zufällig 2 Popups gleichzeitig aufgerufen werden, diese durchwechseln. Ich habe dieses Problem umgangen, indem ich eine Variable "Popup_active" Im hmi setze, welche das aktivieren von 2 Popups gleichzeitig unterbindet. Nun werden die Popups aber bei einem Bildwechsel in den Hintergrund gestellt, wodurch meine Variable "Popup_active" noch aktiv ist. Ich habe dann keine Möglichkeit diese zu deaktivieren.

Lösungsvorschlag 1:
In jedem Bild einen Trigger setzen, dass "Popup_active" zurücksetzt. -> Umständlich und Fehleranfällig

Lösungsvorschlag 2:
Den Status des Popups auslesen, damit ich weiß ob eines aktiv ist, und meine "Popup_active" Variable begraben.

Nr. 2 finde ich da deutlich attraktiver, aber kann ich den Status einen Popups auslesen? Hilfe, sowie google helfen da wenig.

(Kurzer Rant am Ende: [Hier stand mist, der Vollständigkeit halber lasse ich ihn "unsichtbar" stehen]Warum zur hölle kann man das Aufrufen eines Popups mit Variablenanbindung nur "ändern" aber nicht definiert ein- und ausschalten? Dafür muss ich ein Skript anlegen. Warum kann ich nur auf das Ändern einer Variable reagieren, nicht aber auf True und False abfragen ohne ein Script zu benutzen. Wer hat sich das ausgedacht?!?!?)

Danke für die Antworten.

MfG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
:confused:
Ich kann beim Ereignis Wertänderung einer HMI-Variable auch den Anzeigemodus mit AUS oder EIN anwählen.

Ja, habe ich aber eine Variable, welche mir bei True ein Popup setzen soll, und bei false zurücksetzen, kann es durch Neustart oder Programmänderung passieren, dass diese asynchron werden. Darum ist die Abfrage auf Wertänderung mist. Momentan habe ich ein einfaches Script, in dem ich alle Popups aufrufe, die Variablen abfrage, ob sie True sind und dann True das Popup setze. im jeweiligen Popup ist dann ein quittierbutton, mit dem ich das Popup dann schließe. Ich will einfach ausschließen, dass bei einer Änderung von true of false das Popup aufgerufen wird, statt bei false auf true.

Edit: Habe mich im OP falsch ausgedrückt, hatte noch kein Frühstück und bin etwas unkonzentriert.....
 
Zuletzt bearbeitet:
Das Problem ist also nicht die Aktion an sich (hier der Aufruf des Poup), sondern die Art der Wertänderung selbst.

Bei boolschen Variablen hat mich das auch schon geärgert.
Ich geh' mal davon aus, dass diese Art der Wertüberwachung schon seit ProTool mit seinen damaligen Möglichkeiten so besteht. Außerdem gibt es z.B. bei INT-Variablen, die dieses Event ja auch besitzen, sehr viel mehr mögliche Wertänderungen als nur zwischen 2 Zuständen. Deshalb vermutlich die angepassteren Möglichkeiten über ein Script, sofern das Panel überhaupt scriptfähig ist.


Ich hab' übrigens bei solchen Scripten meist folgende Zeile gleich am Anfang und übergeben die zu überwachende Variable als Eingang Enable an das Script:
Code:
If Enable = 0 Then Exit Sub


Beim Neustart des HMI kann ich solche Scripts beim Aktivieren der Startseite auch auf die gleiche Weise aufrufen.
Bei Neustart der PLC bzw. Unterbrechung der Kommunikation lasse ich das HMI gezielt auf die Startseite zurück springen.

Bei aktivierten Popups hab' ich auf jeder Seite auf einer der höheren Ebenen eine seitengroße teiltransparente Graphik, die dann per Animation "sichtbar" gemacht wird, um zu verhindern, das die Popups durch Berührung des Hauptbildschirms in den Hintergrund geraten. Gleichzeitig wird der Hauptbildschirm dadurch leicht abgedunkelt. Das kommt aber vom Aufwand letztendlich auf das gleiche raus, wie bei Deinem Script auf jeder Seite von Deiner Variante Nr. 1. Daher hab' ich es nicht als Lösungsvorschlag unterbreitet.
 
Zurück
Oben