TIA PLC-Input als HMI Bildwechsel

jbialke

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

Ich befinde mich in der Ausbildung und soll die Anlage eines bereits Ausgelerntem weiterführen.

Mein Problem:
Durch einen Schlüsselschalter mit 4 Stellungen soll zwischen den HMI-Bildern gewechselt werden (Position 0 aktiviert das Grundbild, 1 aktiviert den Tippbetrieb, usw.).
Ich kann nur Schaltflächen auf dem HMI als Umschaltvariable benutzen, unser Ausbilder hätte aber lieber den Schlüsselschalter..

Wir sind hier schon ein bisschen am Verzweifeln, weil wir keine Lösung für dieses Problem finden können.
Danke schonmal für potenzielle Hilfe :)

(PLC: SIMATIC S7-1500)
(HMI: TP1500 Comfort)
 
nehmen wir an die 4 bilder haben die nummern 10,11,12,13
lege in der sps eine variable vom typ int an.
abhängig von der schalterstellung übergibst du nun diese zahl an die variable.
diese variable ins hmi und bei aktualisierung zyklisch fortlaufend.
als funktion hinterlegst du für die variable "bei wertänderung" die funktion "lade bild mit nummer" hier bei bildnummer sie variable verwenden
1669973244176.png

1669973415204.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Unabhängig von den Bildnummern kann man die Umschaltung realisieren, indem man 4 einzelne PLC-Variablen verwendet (je Zielbild eine eigene unabhängige Variable), und im HMI die 4 HMI-Variablen "bei Änderung" den Bildwechsel aufrufen.

Harald
 
Unabhängig von den Bildnummern kann man die Umschaltung realisieren, indem man 4 einzelne PLC-Variablen verwendet (je Zielbild eine eigene unabhängige Variable), und im HMI die 4 HMI-Variablen "bei Änderung" den Bildwechsel aufrufen.

Harald
Wertänderung wird aber auch bei fallender Flanke aufgerufen, dann kann man nicht in der Wertänderung der Variablen direkt das gewünschte Bild aufrufen, sondern muss noch ein Script bauen, welches den Wert der Variablen prüft und dann erst das Bild aufruft, oder?
 
Man braucht kein Skript.
Man könnte eine Byte-Variable nehmen und bei jeder gewünschten Bild-Aktivierung den Wert in der Variable inkrementieren.
Bei Bool-Variablen kann man in der Funktionsliste die auslösende HMI-Variable zurücksetzen oder 0 zuweisen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit der Byte-Variable ist eine Top-Idee! Danke dafür.

Mit einer Bool-Variablen verstehe ich nicht wie du das meinst, WinCC wertet meiner Erfahrung nach auch vom HMI ausgelöste Wertänderungen als solche für das Ereignis "Wertänderung". Somit würde also auch das zurücksetzen in der Funktionsliste wieder das Ereignis "Wertänderung" auslösen und das Bild aufrufen.
 
WinCC wertet meiner Erfahrung nach auch vom HMI ausgelöste Wertänderungen als solche für das Ereignis "Wertänderung". Somit würde also auch das zurücksetzen in der Funktionsliste wieder das Ereignis "Wertänderung" auslösen und das Bild aufrufen.
Nein tut es nicht. Wenn die Wertänderung durch eine Zuweisung im HMI passiert, dann wird kein Ereignis "Wertänderung" ausgelöst - das ist der sogenannte "Loop breaker". Und falls doch, was schadet es, wenn das gerade aktivierte Bild 0.5 ... 1s (*) später nochmal aktiviert wird? Das würde höchstens den Bediener anhalten, den Drehschalter nicht so schnell hin und her zu drehen ;)

(*) ca. Erfassungszyklus der Variable

PS: Überprüfung wie oft "Wertänderung": z.B. bei der "Wertänderung" oder bei "Bild aufgebaut" eine HMI-interne Variable "Bildaufrufzähler" inkrementieren und im Bild anzeigen. Wird der Wert bei der Aktivierung aus der SPS um 1 oder um 2 erhöht?

Harald
 
Zuletzt bearbeitet:
Nein tut es nicht. Wenn die Wertänderung durch eine Zuweisung im HMI passiert, dann wird kein Ereignis "Wertänderung" ausgelöst - das ist der sogenannte "Loop breaker". [...]
@PN/DP ,
Ich habe das der Vollständigkeit halber mal testweise mit PLCSIM Advanced und einem Basic Panel getestet (V16)
Wenn ich nicht komplett schief gucke, ist es, wie ich geschrieben habe:

Wenn die Bool-Variable von der SPS im Panel in der Funktionsliste an der "Wertänderung" auf false gesetzt wird, so wird "Wertänderung" erneut ausgelöst.

Der von Dir erwähnte Loopbreaker bezieht sich meines grauen Erfahrungswissens nur auf HMI-Interne Variablen, nicht auf SPS-Variablen.
Ich meine mich erinnern zu können, dass das nicht oder nur sehr vage dokumentiert ist.
 

Anhänge

  • VisuProjektierung.PNG
    VisuProjektierung.PNG
    60,7 KB · Aufrufe: 19
  • Trace.PNG
    Trace.PNG
    55,6 KB · Aufrufe: 19
Zuviel Werbung?
-> Hier kostenlos registrieren
@PN/DP ,
Wenn ich nicht komplett schief gucke, ist es, wie ich geschrieben habe:

Wenn die Bool-Variable von der SPS im Panel in der Funktionsliste an der "Wertänderung" auf false gesetzt wird, so wird "Wertänderung" erneut ausgelöst.
PS: Überprüfung wie oft "Wertänderung": z.B. bei der "Wertänderung" oder bei "Bild aufgebaut" eine HMI-interne Variable "Bildaufrufzähler" inkrementieren und im Bild anzeigen. Wird der Wert bei der Aktivierung aus der SPS um 1 oder um 2 erhöht?
Ich habe es nun ebenfalls getestet, mit PLCSIM und Panel-Simulation. Tatsächlich, Bildaufruf-Zähler und Bildaufgebaut-Zähler werden um 2 erhöht! Es wird also tatsächlich beim Rücksetzen der auslösenden Bool-Variable eine weiteres "Wertänderung" ausgelöst. Ich kann aber nicht sehen, daß das Bild zweimal aufgebaut wird. Das zweimal Bild aktivieren + aufbauen passiert in der Simulation so schnell, als ob es nur einmal aufgebaut würde, als ob schon beim Rücksetzen der auslösenden HMI-Variable in der Funktionsliste das zweite Ereignis "Wertänderung" ausgelöst wird, und nicht erst beim nächsten Lesen der Variable aus der SPS. Im E/A-Feld sieht man nur die geraden Werte der Zähler, nicht die ungeraden Zwischenwerte.

Ich bin aber der Meinung, dieses Verhalten schadet nicht, es sei denn man will tatsächlich mitzählen, wie oft ein Bild aufgerufen/aufgebaut wird. Für Basic Panels ohne Skripte kann man das Rücksetzen der auslösenden Bool-Variable in der Funktionsliste durchaus verwenden. Alternative: eine numerische Variable inkrementieren.

Harald
 
@PN/DP, Du hast recht, für die Anwendung ist es nicht unbedingt relevant. Deinen Vorschlag mit der inkrementierten Byte-Variablen finde ich da aber sicherer.
Nimmt man für jede anzuzeigende Betriebsart eine Bool-Variable und verschaltet diese auf den entsprechenden digitalen Eingang, so wird aber bei der zuletzt aktiven BA eine fallende Flanke und bei der gerade gewählten eine steigende Flanke ausgelöst. Bei ungünstigen Konstellationen kann es also für die Anwendung passieren, dass zunächst das gewünschte, danach das zuletzt angezeigte Bild wieder angezeigt wird.

Dennoch finde ich wichtig zu wissen, dass der Loopbreaker nur für HMI-interne Variablen greift, da das für verschiedene Szenarien wichtig sein kann (sowohl günstig als auch ungünstig).
 
Dennoch finde ich wichtig zu wissen, dass der Loopbreaker nur für HMI-interne Variablen greift, da das für verschiedene Szenarien wichtig sein kann (sowohl günstig als auch ungünstig).
Ja, das weiß ich eigentlich, daß das nur für HMI-interne Variablen gilt. Und trotzdem habe ich das verwechselt. :oops: Naja, beim richtigen testen merkt man es dann.

Harald
 
Zurück
Oben