# WINCC flex/Drücken-Klicken



## hene1985

moin moin...drücken ist einmal drücken und klicken ist drücken und wieder loslassen...ist in winncc flex auch so  definiert oder......wo zum beispiel braucht man klicken? gibs da einen speziellen anwendungbereich?.....und bei kicken hab ich das problem, dass nach mehrmaligen klicken etwas an den Signalzuständen in der sps ändert...liegt vll. daran dass das klicken nur eine minimal zeitspanne hat und kleiner ist als die sps-zykluszeit und man glück haben muss, das man gerade zum richtigen zeitpunkt drückt?


es gibt auch probleme^^
danke schonmal


----------



## hene1985

*drücken/klicken---wincc flexible*

warum gibt es klicken, wenn es schon drücken gibt?
klicken hat nur nachteile....man muss mehrmals drücken ,damit ein singnal endgültig ind der sps übernommen wird..ich denke das die zeitspanne beim klicken kleiner ist als die zykluszeit der sps..kann das?weil sonst müsste es ja bei einem klicken gehen?oder welchen vorteil könnte klicken haben?

danke schonmal


----------



## netmaster

Es reicht denk ich ein Thema dazu zu eröffnen.

http://sps-forum.de/showthread.php?t=37500


----------



## netmaster

Ich hatte bis jetzt noch nie Probleme wenn ich Klicken hergenommen habe.
In der Flexible Hilfe ist es glaub ich gut beschrieben was der unterschied zwischen Klicken und Drücken ist.


----------



## Ralle

netmaster schrieb:


> Es reicht denk ich ein Thema dazu zu eröffnen.
> 
> http://sps-forum.de/showthread.php?t=37500



Ich hab die Themen mal zusammengeführt, danke netmaster!


----------



## hene1985

ich finde nix in der hilfe von flex speziel zu den fragen und überhaupt ?!?!?


----------



## PN/DP

hene1985 schrieb:


> warum gibt es klicken, wenn es schon drücken gibt?


Da kann man mit etwas überlegen eigentlich selber drauf kommen:

 Drücken: das Ereignis wird sofort beim ersten Drücken der Schaltfläche ausgelöst,
    egal wie lange man die Schaltfläche dann noch weiter betätigt
 Klicken: das Ereignis wird erst beim Loslassen der Schaltfläche ausgelöst, 
    genauer: nur wenn man *innerhalb* der Schaltfläche den Finger vom Bildschirm nimmt 
    bzw. die linke Maustaste loslässt.
 Loslassen: das Ereignis wird beim Loslassen der Schaltfläche ausgelöst,
    auch wenn man den Bildschirm erst außerhalb der Schaltfläche losläßt.
Bei Klicken kann man es sich also noch während dem Drücken überlegen, ob man die Funktion 
wirklich auslösen will. Wenn doch nicht, dann einfach gedrückt nach außerhalb der Schaltfläche 
fahren und da erst loslassen, dann wird das Ereignis "bei Klicken" nicht ausgelöst.

Man kann z.B. als Tooltip-Ersatz sowas realisieren:
Bei Drücken einen Hilfetext einblenden, bei Klicken die eigentliche Schaltflächenfunktion aufrufen 
und bei Loslassen den Hilfetext wieder ausblenden.

Interessant bei Klicken und Loslassen ist, daß bei Drücken und gedrückt nach außerhalb der 
Schaltfläche fahren die Schaltflächen-Darstellung schon zur ungedrückt-Darstellung "zurückschnapt",
das Eregnis aber erst beim tatsächlichen Loslassen des Bildschirms ausgelöst wird.

Zumindest bei den mir bekannten Touchpanels ist es egal, wie lang die Zeitspanne zwischen Drücken 
und Loslassen ist, beim Loslassen innerhalb der Schaltfläche wird dann "bei Klicken" ausgeführt.

Aus diesen Gründen benutze ich lieber das *Klicken*-Ereignis als das Drücken-Ereignis. Vor allem 
bei Bildwechseln. Dann ist ziemlich sicher, daß beim Bildaufbau des aufgerufenen Bildes keine 
Stelle des Bildschirms mehr berührt ist, wo dann ja eine andere Schaltfläche auftauchen könnte.

Allerdings scheint es mir bei Touchpanels so, daß beim kurzen Klicken die Stelle, wo losgelassen 
wird, von der Stelle, wo zuerst der Bilschirm berührt wurde, nicht allzu weit entfernt sein darf.
Deshalb ist es manchmal beim Touchpanel-Bedienen mit Handschuhen schwierig, die "bei Klicken"-
Funktion auszulösen. "Bei Drücken" kann man auch mit fettem Daumen leicht auslösen, Hauptsache 
die Schaltfläche lag mit im berührten Bereich.

Wenn man die Unterschiede bei Drücken, Klicken und Loslassen genauer kennenlernen will, dann kann 
man das doch einfach ausprobieren und sich z.B. ein Testbild dafür erstellen.
Hier ist ein solches Touchtest-Bild als Screenshot zu sehen.
Wie funktioniert das?

Panel-interne UInt-Variable "TouchTest_Status", Startwert 0
eine Schaltfläche, Ereignisse
- *Klicken*: SetzeWert, "TouchTest_Status", 3
- *Drücken*: SetzeWert, "TouchTest_Status", 1
- *Loslassen*:  SetzeWert, "TouchTest_Status", 2
das Bild mit der Schaltfläche, Ereignis *Aufgebaut*: SetzeWert, "TouchTest_Status", 0
Textfeld "gedrückt", *Sichtbarkeit*: (o) Sichtbar im Bereich 1 bis 1, Variable "TouchTest_Status"
Textfeld "losgelassen", *Sichtbarkeit*: (o) Sichtbar im Bereich 2 bis 3, Variable "TouchTest_Status"
Textfeld "geklickt", *Sichtbarkeit*: (o) Sichtbar im Bereich 3 bis 3, Variable "TouchTest_Status"
ein Ausgabefeld für die Variable "TouchTest_Status"

btw.
Mir fällt gerade auf, das im WCF2008SP2-ES in Variablenfeldern nur der Variablenname ohne 
den Variablenordner angezeigt wird. Ich bilde mir ein, bei WCF2007 war immer der komplette Pfad des 
Variablennamens angezeigt, habe aber gerade kein WCF2007 zur Verfügung, um das zu verifizieren.

Gruß
Harald


----------



## hene1985

wie kann das aber sein, das ich mehrmals quittieren drücken muss,damit eine Sörung quittiert wird?...manchmal gehts auch beim 1. mal!!wäre dankbar für lösungsansetze.


----------



## rostiger Nagel

wie hast du den deine Quittierung aufgebaut, kann es vlt. sein das 
da etwas mit deinen Programm nicht stimmt.
Du kannst ja ganz einfach überprüfen ob der Tastendruck ankommt,
indem du in der Steuerung, bei jedem Tastendruck einen Zähler hoch-
zählst, diesen dann beobachtest.


----------



## hene1985

doch doch..das quittieren der störungen geht...nur muss ich manchmal 3 mal klicken mal 6 mal...und ab und zu einmal....durch das quittieren werden NULLEN in den Stördatenbaustein geladen.


----------



## rostiger Nagel

wie machst du das den, so richtig glaube ich dir nicht.
Beschreib mal wie du bei flex vorgehst und wie der code
in deinen Programm aussieht. Hast du das mit den zähler
mal getest ob dein Tastendruck in der steuerung ankommt.


----------



## hene1985




----------



## hene1985

und auf #quitt wird von außen E 65.2 geschaltet....der Hauptquittierer  unten an der Anlage hat den E 65.2!!!!!!!!!!unten an der anlage muss man aber nur einmal drücken...vll. liegt es daran, das man länger drückt als die sps zykluszeit und dieses obere netzwerk zu 100 prozent durchlaufe wird?beim klicken weiß ich net wie lange der E 65.2 gesetzt wird...weiß das so jemand?... könnte da das problem liegen, dass die klickzeit kleiner als die sps zykluszeit ist?


----------



## iPDI

als Versuch kannst du folgendes machen:

Drücken: S quittierimpuls

Loslassen: R quittierimpuls

So hast du sicher einen genügend langen quittierimpuls (hatte jedoch mit "klicken" noch nie Probleme - kann dir jedoch auch nicht sagen, wie lange dieser Impuls ist).


Bist du sicher, dass die Fehlermeldungen schon weg sind und nicht immer wieder gesetzt werden?! Dehnke eher, dass dies das Problem sein könnte


----------



## hene1985

iPDI schrieb:


> Bist du sicher, dass die Fehlermeldungen schon weg sind und nicht immer wieder gesetzt werden?! Dehnke eher, dass dies das Problem sein könnte


 
ich bin mir sicher...unten an der Anlage kann man beim 1. mal drücken   quittieren  ;-)


----------



## rostiger Nagel

hast du den jetzt mal getestet ob deine Quittung aus dem OP in der 
Steuerung ankommt. Das ist doch relativ einfach zu testen. Es kann
doch sein das etwas bei deiner Variabeln Projetierung nicht passt, z.b.
die Aktualisierung. Stell dir mal vor du hast den Erfassungszyklus auf 1h
eingestellt. Oder du überschreibst aus versehen die Variabel in deinen
SPS Programm, bevor du Sie ausgewertest hast.

Nochmal mein Tip, Programmiere einen Zähler der nur hochzählt wenn die
Variabel min einen SPS Zyklus ansteht. Dann drückst du deine Quittier-
taste am OP und zählst mit.

Bist du sicher das zur Laufzeit deines Programmes alles stimmt.
Die Indirekte Adressierung deines Datenbausteines, warum machst
du das indirekt, hast du soviel TP und Störbereiche die du da Quittieren
willst. Das könntest du doch auch mit einen Vollqualifizierten Zugriff
lösen.

Dann noch einmal wie hast du das mit deinen Störmeldungen realisiert,
Bitmeldeverfahren mit Quittierung oder zeigst du deine Störmeldungen
nur als Betriebsmeldungen an.

Ich würde mich ein wenig über eine Mitarbeit freuen, nicht nur immer 
fragen stellen und nichts zur Lössung beitragen wollen.


----------



## hene1985

Ich habe 60 TP in der Halle...und jedes touchpanel hat einen eigenen Stör-DB....es gibt quittierungen für jedes einzelne Touchpanel und eine quittierung für alle Tochpanel....komsciherweise können TP 170A auch Störmeldungen anzeigen...obwohl das laut siemens erst ab TP 170B geht


----------



## rostiger Nagel

und wie möchtest du jetzt weiter vorgehen...?
Irgendwas musst doch machen um den Fehler im System zu finden.

Sag mal du hast 60 HMI und machst da eine Sammelquittierung für alles.
Warum machst du das so und von wo,...von der Leitwarte?

Schreib doch mal mehr wie ein satz!


----------



## PN/DP

hene1985 schrieb:


> komsciherweise können TP 170A auch Störmeldungen anzeigen...obwohl das laut siemens erst ab TP 170B geht


Wenn der Hersteller eines Gerätes sagt, daß das Gerät eine Funktion nicht kann, dann muß ich mich nicht wundern, wenn das Gerät diese 
Funktion tatsächlich nicht richtig kann.
Wer weis, was Deine TP-Programmierer da realisiert haben, was wie Störmeldungen aussieht, aber offenbar nicht zuverlässig funktioniert.



hene1985 schrieb:


> Ich habe 60 TP in der Halle...


Ich habe auch ca. 60 TP in der Fabrik, allerdings an 40 verschiedenen CPU.
Ich kann mir nicht vorstellen, daß Deine 60 TP an einer einzigen CPU hängen. Ist da eine Art Verbindungs-multiplexen im Spiel? 
Wie tricky kommunizieren die TP mit der/den CPU?

Laß Dir doch nicht immer die Fakten aus der Nase ziehen. Bei Deinen anderen Threads mußt Du doch gemerkt haben, daß wir nur helfen 
können, wenn der Fragesteller genügend zuverlässige und sachdienliche Informationen gibt.

Gruß
Harald


----------



## dalbi

hene1985 schrieb:


>



Hi,

das Bit "Reset Bosch" wird das bei jedem Quittieren TRUE?



		Code:
	

U    #QUITT
=    #QUITT

? Das ist Käse !!!

Gruss Daniel


----------



## astranik

hene1985 schrieb:


> Ich habe 60 TP in der Halle...und jedes touchpanel hat einen eigenen Stör-DB....es gibt quittierungen für jedes einzelne Touchpanel und eine quittierung für alle Tochpanel....komsciherweise können TP 170A auch Störmeldungen anzeigen...obwohl das laut siemens erst ab TP 170B geht


 
Sind das *TP170A* oder *TP177A*, die TP170A gibts doch gar nicht mehr?


----------



## hene1985

keine ahnung...vwie lange es die in der halle schon diese tp gibt...es sind aber 170A.....steht hinten auf dem touchpanel drauf!!


----------



## dalbi

Hi,

schau doch Bitte mal Deinen Code an, das geht so nicht!

#QUITT = #QUITT

Gruss Daniel


----------



## rostiger Nagel

dalbi schrieb:


> Hi,
> 
> schau doch Bitte mal Deinen Code an, das geht so nicht!
> 
> #QUITT = #QUITT
> 
> Gruss Daniel



Sieht aus wie eine selbsthaltung, aber
ist eh egal. Wenn wir den TE nicht die 
Lössung stellen, macht der sowieso nicht mit.


----------



## hene1985

das is doch egal was mit dem boschschrauber passiert.....mir geht das ja nur um die TP DB?!?!?!


----------



## Krumnix

Ich will ja nicht komisch klingen, aber wenn du einen deiner Beiträge löschst und dadurch Informationen fehlen, die danach diskutiert wurden, finde ich das schon sehr schlecht.
-> Löschen deines Bildes, wie du die Quittierung programmiert hast

Und nun noch was weiteres:

Wenn du


		Code:
	

U #Quit
O xyz
= #Quit

schreibst, dann ist das nicht so klug. 
Denn 1. kannst du nie sicher sein, welchen Zustand #Quit hat, wenn der 
Baustein aufgerufen wird. 
Und im schlimmsten Fall baust du dir eine Selbsthaltung damit und die wird
nur dann "zurückgesetzt" wenn sich davor ein Zustand so ändert, das
ein VKE=0 ansteht.

Dann ist es schon logisch, das du 5-10 Mal quit auf dem TP drücken musst,
bis das Signal ankommt. Wenn du aber deine Hardware-Taste drückst, dann
ist die Situation wieder ok, da du ein definiertes VKE=1 generierst.


----------



## hene1985

moin moin....dem #quit wird immer eine anderer eingang zugewiesen....z.b. in fb100 wird ihm der eingang von bedienpult 1 zugewiesen....bei fb 110 der eingang von bedienpult 2...dieser #quit ist in einer funktion drin


----------



## hene1985

und außerdem läuft das programm einwandfrei...die sps sterurung ist schon lange fertig programmiert von einer fremdfirma....ich soll nur die visualisierung machen...also kritik am sps programm ist eig. sinnlos..das läuft


----------



## dalbi

Code:
	

U #Quit
O xyz
= #Quit


FALSCH! 

Gruss Daniel


----------



## rostiger Nagel

hene1985 schrieb:


> und außerdem läuft das programm einwandfrei...die sps sterurung ist schon lange fertig programmiert von einer fremdfirma....ich soll nur die visualisierung machen...also kritik am sps programm ist eig. sinnlos..das läuft


 
dann ist ja alles in bester Ordnung....wie war noch mal deine Frage :roll:


----------



## Paule

hene1985 schrieb:


> und außerdem läuft das programm einwandfrei...


... und die Erde ist eine Scheibe und du fällst gleich runter.


----------

