TIA Schaltfläche - Bedienbarkeit während Drücken rücksetzen

Alde_Oma

Level-2
Beiträge
103
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe ein Problem mit der Bedienbarkeit einer Schaltfläche (SF) in einem Bildbaustein.

Der Bildbaustein enthält ein Symbolisches EA-Feld und eine SF.
Die SF hat eine Bedienbarkeit und Gestaltung angekoppelt.

Die SF soll im Prinzip ähnlich wie ein Zustimmtaster funktionieren:
SF wird gedrückt (Bit in der CPU wird gesetzt), laufen Aktionen ab.
SF wird losgelassen (Bit in der CPU wird rückgesetzt), pausieren die Aktionen.
SF wird wieder gedrückt, laufen die Aktionen weiter.

Wird die SF nun solange gedrückt bis die Aktionen alle fertig sind, wird die Bedienbarkeit auf False gesetzt, wodurch sich auch die Gestaltung der SF ändert.
Durch das Rücksetzen der Bedienbarkeit wird in der CPU das Bit, welches vom Drücken-Event gesetzt wird, rückgesetzt, da dieses ansonsten nicht zurückgesetzt wird.
Nun kann ich im Symbolischen EA-Feld einen anderen Eintrag auswählen, wodurch die Bedienbarkeit und die Gestaltung der SF wieder auf den Ursprüglichen Zustand gesetzt werden.

Nur habe ich hier das Problem, dass ich zuerst einmal die SF berühren und wieder loslassen muss, bevor diese tatsächlich den Drücken-Befehl annimmt.
Bei diesem Drücken ändert sich aber nichts am Bildbaustein. Es wird also kein Objekt markiert oder ähnliches (müsste man ja am Rahmen des Objektes sehen).
Erst danach wird das Drücken-Event wieder ausgelöst.

Dieses Problem ist nur wenn sich die Bedienbarkeit ändert. Lasse ich die SF los bevor die Aktionen fertig sind (Bedienbarkeit wird nicht rückgesetzt), kann ich ohne Probleme erneut drücken und die Aktionen laufen weiter.

Es muss also an der Kombination Drücken und gleichzeitig die Bedienbarkeit rücksetzen liegen.

Wo liegt hier das Problem?
 
Tipp: Löse solche "solange gedrückt"-Aktionen mit einer Hardware-Taste. Mit Bildschirm-Schaltflächen ist das sowieso nicht zuverlässig implementierbar.

Was erhoffst Du durch das Rücksetzen der "Bedienbarkeit"? Ob/wie das SPS-Programm auf unerwartete Tastendrücke reagiert wird im SPS-Programm entschieden/verknüpft und nicht im HMI.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
Hardwaretaster sind nicht möglich, muss auf dem HMI sein.
Die Bedienbarkeit wird rückgesetzt damit die gleiche Aktion nicht mehrfach hintereinander gestartet werden kann. Mein Gedanke war, Bedienbarkeit rücksetzen, dann wird theoretisch auch das Gedrückt rückgesetzt. Habe ich jetzt gemerkt das es nicht so ist...
Habs jetzt als Zwischenlösung so gemacht, das ich die Bedienbarkeit erst bei negativer Flanke des Gedrückt-Bit rücksetze. Also erst nachdem die SF losgelassen wurde.
Was für Möglichkeiten gibt es denn, um solch eine Situation abzufangen? Drücken und Bedienbarkeit rücksetzen?
 
Wenn es garnicht anders geht, mal versucht, ob Sichtbarkeit eventuell das Problem löst?
Vielleicht wird Visible ja anders behandelt als Enable. Oder du arbeitest auf eine interne Variable mit der Taste und setzt über die Wertänderung dieser Variablen dann die SPS-Variable.
Könnte ja ggf. was mit Timing zu tun haben, was Du so vielleicht umgehst.

Aber "eigentlich" ist das alles Gebastel und ich würde mich da nicht drauf verlassen. Wie Harald schon schrieb: Lieber in die SPS verlagern.
Z.B. Beim Drücken eine 1 Schreiben und beim Loslassen eine 2 schreiben. Dann kannst Du in der SPS immer noch eine 0 reinschreiben. Und somit weißt Du in der SPS gleich, wer was geschrieben hat, wenn Du die Variable auswertest.
Und dort mußt Du dann das mehrfache Anstoßen verriegeln. Das sollte doch machbar sein, oder? Einmal angestoßen = gesperrt. Und entsperren erst wieder, wenn das E/A-Feld bedient wurde: Fokus = Alle Sperren aufheben.

Gruß
Jens
 
Ich habe es jetzt so gemacht, das die Bedienbarkeit erst nach dem Loslassen rückgesetzt wird.
Das mit der internen Variable könnte ich noch versuchen. Generell ist ja das Problem, dass das Loslassen nicht mehr ausgeführt wird. Mal schauen ob das bei einer internen Variable anders ist.
Der rest läuft ja alles schon auf der SPS, Verriegelung, Bedienbarkeit usw.
Erst wieder entsperren wenn das EA-Feld eine Wertänderung hat, hab ich ja auch so realisiert. Es muss trotzdem zuerst einmal auf die Schaltfläche gedrückt werden.
 
Zurück
Oben