TIA Pop-Up für mehrere Ventile

hub

Level-1
Beiträge
251
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
kann man in TIA V15 ein Pop-Up für mehrere Ventile verwenden?
Für Comfort-Panel TP900-TP1500

Momentan mache ich für jedes Ventil ein eigenes Pop-Up
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hat ja nix mit Popup oder Bild zu tun, sondern wie Du die Daten an das gleiche Objekt leitest (Variablen multiplexen) oder verschiedene Objekte überlagerst und (un-)sichtbar machst.

Also ja, ist machbar.

Du kannst aber immer nur ein Popup (oder Bild) anzeigen.
Mehrere gleichzeitig geht nicht.
 
also pro Ventil ein PopUp.
Unterschied ist nur die Variable für das Ventil.
Ansonsten sind es immer gleiche Ventile.

Es soll ein Ventilsymbol, einige Meldungen und Bedientasten enthalten sein.
 
Hat ja nix mit Popup oder Bild zu tun, sondern wie Du die Daten an das gleiche Objekt leitest (Variablen multiplexen) oder verschiedene Objekte überlagerst und (un-)sichtbar machst.

Also ja, ist machbar.

Du kannst aber immer nur ein Popup (oder Bild) anzeigen.
Mehrere gleichzeitig geht nicht.

Nur ein Popup gleichzeitig ist klar.
Genügt auch.

Ich habe 25 Ventile, über mehrere Anlagenbilder verteilt.
Beim Anklicken von einem Ventil soll das Popup aufgehen, damit man das Ventil bedienen kann.
Ich wollte aber dafür keine 25 Popups erstellen.

Habe bei der Suche mehrere Varianten gefunden.
Array, HMI-UDT, PLC-UDT, usw.
Weiß aber nicht, was jetzt der einfachste Weg wäre.

Kannst du das Multiplexen kurz erklären?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst du das Multiplexen kurz erklären?
Zunächst brauchst Du eine INT-Variable als Zeiger.

Dann erstellst Du Dir für jede Variable, die eines der Ventile benötigt, eine gleiche interne Variable.
Bei diesen Variablen aktivierst Du in den Eigenschaften die Funktion Multiplexen und wählst die obige INT als Index aus.
Dann trägst Du beim Index 0 die zugehörige Variable des 1. Ventils, bei 1 die des 2. Ventils usw. ein.
Das machst Du bei jeder der internen Variablen.

Jetzt kannst Du über die Index-Variable auswählen, welches Deiner Ventile seine Werte an die internen Variablen und damit an Dein Popup weitergeben soll.


PS:
Wenn Du z.B. den Index 0 eigentlich nicht verwenden möchtest, trägst Du bei Index 0 und 1 die gleiche Variable ein, und startest bei Deiner späteren Auswahl erst mit der 1.
 
Zuletzt bearbeitet:
Hallo zusammen,

das Multiplexen wäre eigentlich das Mittel der Wahl, ABER:

- Es gibt je nach Variablentyp Einschränkungen zu beachten bezüglich Ein- und Ausgabemöglichkeiten, manche funktionieren gar nicht.
- Die Variablenliste innerhalb so einer Multiplexvariable darf keine Lücke enthalten, Konstrukte wie "Nur Indizes 1, 7, 56, 981 verwendet" funktionieren nicht oder nur sehr aufwändig mit Füllvariablen.

Ich löse das seit Jahren mit einem Satz Hilfsvariablen für das jeweilige Fenster/PopUp und scriptbasiertem Umkopieren der Werte.


Gruß, Fred
 
Absolute Adressierung mit Adressmultiplexen oder wie das heisst funktioniert ganz gut.

Das scriptbasierte Umkopieren von internen auf externe Variablen macht immer mal Ärger, da man einige "Trigger" fürs Umkopieren nicht überreißt...

Einfach mal bissl rumprobieren...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ducati,

...Absolute Adressierung mit Adressmultiplexen oder wie das heisst funktioniert ganz gut.
...
Wobei wir hier ja wieder beim Thema "Symbolische vs. Absolute Adressierung" wären...


...
Das scriptbasierte Umkopieren von internen auf externe Variablen macht immer mal Ärger, da man einige "Trigger" fürs Umkopieren nicht überreißt...
...
Was meinst du damit? Da sich das ganze ja nur im HMI abspielen würde (Trigger wäre immer nur eine Schaltflächenbetätigung, um das PopUp zu öffnen.) sehe ich da keine Schwierigkeit.
Bedingt natürlich, dass nicht "wild" von allen Seiten auf Rezeptvariablen geschrieben wird.


Gruß, Fred
 
Ich hab das mal gemacht, indem ich auf der SPS die Daten kopiert habe.
Ein Datensatz gibt es für die HMI und dann eben 25 für deine Ventile

Jeder Button der ein Pop-Up öffnet, setz eine Int-Variable auf einen bestimmten Wert.
Und abhängig von diesem Wert wird der entsprechende Ventil-Datensatz mit dem HMI-Datensatz verbunden. (Status: Ventil-->HMI; Bedienung: HMI-->Ventil)

Hab das mal für die Handbedienung von 15 Servo-Motoren so gemacht.
Wenn du Werte hast, die angezeigt und gleichzeitig bearbeitet werden können, musst du nur beim ändern des Int-Wertes einmal die Ventil-Daten auf die HMI-Daten kopieren und dann eben wieder die HMI-Daten auf die Ventil-Daten.

Das ganze geht bestimmt eleganter, aber es hat super funktioniert und ich habe gerne die ganzen Sachen in der SPS.
 
Wenn Du z.B. den Index 0 eigentlich nicht verwenden möchtest, trägst Du bei Index 0 und 1 die gleiche Variable ein, und startest bei Deiner späteren Auswahl erst mit der 1.
Mit TIA "Popups" kenne ich mich nicht aus, doch ich verwende beim Variablen-multiplexen immer die Indizes 1...x und beim Index 0 Dummy-Variablen (oder ebenfalls die Variablen wie Index 1). Die Index-Variable steuert gleichzeitig die Sichtbarkeit der "Popup"-Objekte bei Wert > 0

Harald
 
Danke erstmal für die ganzen Anregungen.

Ich habe jetzt das Multiplexen probiert.
Alles was mit Anzeige zu tun hat, funktioniert soweit.

Ich kann allerdings keine Bedienung realisieren.
Wenn ich bei einer Bedientaste am Ereignis Klick ein Bit setzen will, kommt die Meldung:
"Variablen von diesem Datentyp sind für diesen Parameter nicht erlaubt."

Ist das das Problem aus Post #7?
(Es gibt je nach Variablentyp Einschränkungen ...)

Meine Variable ist vom Datentyp UInt (PLC=Word).
Ist jetzt der Datentyp UInt nicht zulässig, oder die Multiplexvariable?
Könnte man dann das Bit mit einem Script setzen?
 
Meine Variable ist vom Datentyp UInt (PLC=Word).
Ist jetzt der Datentyp UInt nicht zulässig, oder die Multiplexvariable?
Könnte man dann das Bit mit einem Script setzen?
Sollen wir jetzt erraten, ob es einen Zusammenhang gibt zwischen Deiner UInt-Variablen und dem zu setzenden Bit und, wenn ja, welchen? :confused: ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Bedientaste (z.B. Auf) soll ein Bit in der Variable gesetzt werden.
Die Variable ist vom Typ UInt.
Es kommt aber die oben gesagte Fehlermeldung.
(nicht erlaubter Datentyp)
Haben jetzt meine 25 Variablen den falschen Datentyp, oder ist die Multiplexvariable nicht zulässig?
 
Habe testweise eine Multiplexvariable mit Bool-Variablen angelegt.
Auch hier kann man kein Bit setzen.
Scheint so, als ob die vorhandenen Systemfunktionen (beim Ereignis Klick) nicht mit Multiplexvariablen zusammenarbeiten.
Womit die Variante Multiplex nicht verwendbar ist. Schade
 
Ich habe es jetzt nicht nachgeprüft, meine mich aber zu erinnern: Du kannst auf das Bit einen Schalter projektieren, der geht auch mit gemultiplexten Bits.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.. Womit die Variante Multiplex nicht verwendbar ist. Schade
Da du schon eifrig am Probieren bist, versuche mal, deine Variablen in der Steuerung zu multiplexen. Die Multiplex-Variable (ID) in der Steuerung anlegen und alles dort logisch auswerten. Bei Änderung (Flanke) dieser ID die Ausgabewerte bzw. E/A-Felder initialisieren, usw. Hier bist du für alles offen. Das funktioniert u.U. auch außerhalb der Siemens-Welt. Die Variablen würde ich in einer gut überlegten Struktur organisieren, unterteilt u.a. in HMI-Input und HMI-Output.
 
Habe testweise eine Multiplexvariable mit Bool-Variablen angelegt.
Auch hier kann man kein Bit setzen.
Scheint so, als ob die vorhandenen Systemfunktionen (beim Ereignis Klick) nicht mit Multiplexvariablen zusammenarbeiten.
Womit die Variante Multiplex nicht verwendbar ist. Schade
Keine Ahnung, was Du speziell vorhast, aber BOOLs kann man auch mit 'nem Schalter setzen.
So handhabe ich das zumindest bei meinen boolschen Multiplex-Variablen.

:oops:
Hat ja Harald schon gepostet.
Ist mir irgendwie entgangen.
 
Zuletzt bearbeitet:
Wobei wir hier ja wieder beim Thema "Symbolische vs. Absolute Adressierung" wären...

Ja, welches generell die "beste" Multiplexvariante ist, kann ich auch nicht sagen... Für meinen Fall war das "Adressmultiplexen" jedenfalls die beste...

Bedingt natürlich, dass nicht "wild" von allen Seiten auf Rezeptvariablen geschrieben wird.

Eben, wenn Du z.B. zwei Comfortpanels hast die u.U. das gleiche Ventil anzeigen... oder auch die SPS auf die HMI-Variablen schreiben kann, z.B. zur Plausibilisierung der HMI-Eingabe...

immer wenn das HMI-EA-Feld nicht zyklisch die Variable der SPS anzeigt, sondern da ne "ereignisbasierte" Umkopiererei stattfindet, muss man ziemlich aufpassen...

Gruß.
 
Zurück
Oben