Bild nach längerer Betätigung einer Schaltfläche öffnen...

schnecke

Level-1
Beiträge
148
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ihr,

ich möchte gerne eine Schaltfläche auf dem Panel so belegen, dass diese bei kurzem Drücken eine Funktion anwählt, was ja kein Problem darstellt.

Gleichzeitig soll diese Schaltfläche jedoch bei längerer Betätigung (z.B. 2 Sekunden) ein Bild auf dem Panel anwählen.


Nun könnte ich es ja so programmieren, dass wenn die Schaltfläche gedrückt wird, ein Timer mitläuft, der dann nach 2 Sekunden einen Merker setzt.

Nur was fange ich dann mit dem Merker an???

Ich kann ja unter WinCC flex nur eingeben, dass die Schaltfläche ein Bild aktiviert…


Gibt es da eine andere Lösung?
 
erstmal wäre gut zu wissen was es für ein panel ist.

es gibt zwei möglichkeiten:
1. an die Merkervariable die funktion aktiviere Bild hängen - problem das ganze passiert bei beiden flanken, deswegen vielleicht am einfachsten für jeden bildwechsel nur eine Flanke verwenden
2. Bereichszeiger Steuerungsauftrag mit funktion 51 verwenden

daschris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau mal unter dem Stichwort "Steuerungsauftrag"

Du musst einen Bereichszeiger für Steuerungsaufträge einrichten und dann kannst du über die SPS einen Bildwechsel auslösen.

Wenn ich es recht im Kopf hab, brauchst du den Auftrag-Nr 51.

Gruß
Dieter
 
Danke für eure Tipps!

Es handelt sich um das Panel KTP600 Basic; die Steuerung ist eine S7-1200.

Wollte jetzt mal das mit dem Merker versuchen, der dann im Panel ein Bild öffnet. Aber irgendwo klemmt's noch...

Habe dazu über einen Timer eine Merkerzuweisung programmiert. Im Panel habe ich diesen Merker in die HMI-Variablen eingetragen und ihm folgendes Ereignis zugeordnet:

Wertänderung --> AktiviereBild XY


Der Timer läuft beim Drücken der Panelschaltfläche ab, der Merker erhält Zustand "1" - allerdings wird kein Bild angewählt.

Achso, es ist nicht WinCC flex, sondern WinCC Basic - aber das ist ja nahezu das Gleiche!


Habe ich hier noch einen Fehler in meinen Ausführungen?
 
Die verknüpfte Hilfsvariable muss auf der aktiven Folie sichtbar sein, wenn der Auftrag (die Wertänderung) eingeht, weil die Wertänderung sonst nicht verarbeitet wird. Ich versteck diese Hilfsvariablen immer hinterm Firmenlogo in der Masterfolie. Bei dir reicht es vllt nur auf der Folie mit dem Button eine Variable einzufügen.
(Ich benutze aber Flex, bei WinCC kann das ja wieder alles anders sein)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin moin,

du musst bei dieser Variablen vorwählen, dass sie immer gelesen wird ( nicht Zyklisch bei Verwendung sondern Zyklisch fortlaufend )

bzw. das ganze Elegant mittels Steuerungsauftrag lösen

Gruss,
michael
 
einfacher als mit dem auftrag51 ist folgendes.
benutze die funktion wenn grenzwert überschritten. dann bild öffnen
dort benutze ein byte für. ugr=0 ogr=1

im programm
u m1.0 //merker der nach den 2 sek kommt
spbn m001
l 2
t mb10 //byte welches auf grenzwert überwacht wird (muss in flexible auf aktualisierung zyklisch lesend stehen)
m001: nop 0

beim aufbau des neuen bildes benutze die funktion setze wert. dort das mb10 auf 0 setzen.
 
Ich würde den Steuerungsauftrag bevorzugen. Hier mal ein Stück Code zur Umsetzung des Steuerungsauftrags:

Das Datenfach wird mit dem Steuerungsauftrag "51" = Bildwechsel geladen,
sofern aktuell kein Steuerungsauftrag vorliegt. Der Bildwechsel (#HM_Bildwechsel) wird mit einer Flanke gesetzt.
#HM_Bildwechsel + #Zielbild sind STAT-Variablen im Instanz-DB

Code:
      U     #HM_Bildwechsel
      U(    
      L     "Job Mailbox OP".AreaPointer.Job_No
      L     0
      ==I   
      )     
      SPBN  ende

      L     51
      T     "Job Mailbox OP".AreaPointer.Job_No

      L     #Zielbild
      T     "Job Mailbox OP".AreaPointer.Para_1

      SET   
      R     #HM_Bildwechsel

ende: NOP   0

Nachtrag: Die Variablen für den Auftrag sind aus dem Beispiel von Siemens, die müssen natürlich noch am Panel bekannt gemacht werden.
 
Zuletzt bearbeitet:
Lieben Dank für eure zahlreichen Vorschläge! Habe das jetzt zunächst mal mit dem Merker gelöst, der dann nach Ablauf des Timers ein Bild öffnet.
Wenn das Bild geöffnet ist, wird der Merker rückgesetzt.

Offensichtlich hat hier eine Zuweisung des Merkers nicht ausgereicht - erst nach dem Setzen des Merkers hat es geklappt...

Danke!
 
Zurück
Oben