TIA Setze Bit währ. Taste gedrückt

Tommy1981

Level-2
Beiträge
76
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gemeinde,

Ich habe eine Anlage mit 18 FUs die im Tippbetrieb über ein TP1500 comfort gesteuert werden sollen.

So weit so einfach... Jedoch passiert es immer wieder dass trotz Befehl "Drücken: Setze Bit während Taste gedrückt" der Befehl anstehen bleibt wenn ich die Taste loslasse und der Antrieb einfach weiterläuft. Ich habe auch schon probiert mit "Drücken: Setze Bit" und "Loslassen: Rücksetzte Bit". Aber auch dann passiert das sporadisch... Hatte dieses Problem sonst schon mal jemand? Ist jetzt wahrlich nicht meine erste Anlage dieser Art, aber sowas ist mir das noch aufgefallen. Ich kann zu 100% ausschießen dass im SPS Programm (S7 - 1513) der Befehl gesetzt wird.


Danke vorab.
 
Es reicht wenn die Variable als In/Out Parameter übergeben wird. Wenn der Rücksetzbefehl vom HMI kommt während der Baustein bearbeitet wird, geht der Befehl verloren und das Bit bleibt anstehen.
 
... Jedoch passiert es immer wieder dass trotz Befehl "Drücken: Setze Bit während Taste gedrückt" der Befehl anstehen bleibt wenn ich die Taste loslasse ..
Das ist schon seit ewigen Zeiten ein Problem, und das wird es auch bleiben. Das es mit der Verwendung des Bits als IN_OUT im Programm im Zusammenhang steht, wäre mir neu. Einfache Taster-Funktionen setzt man nach der Verarbeitung im Programm der Steuerung zurück, aber mit "Setze Bit so lange gedrückt", ist das ja nicht so einfach möglich. Sieh dir mal die Thematik "Direkttasten" an! Eventuell kannst du diese Funktion auch als so eine Art von "Zustimmtasten" zusätzlich zu deiner jetzigen Projektierung nutzen?

Was man auch tun kann, ist mit der jeweiligen Taste für die "Gegenrichtung" das Bit der anderen Taste zurück zu setzen. Das wäre zumindest schon mal besser als nichts. Ob diese Maßnahme genügt, musst du entscheiden. Eine Verlängerung des OB1-Zyklus könnte das Problem eventuell lediglich lindern. Du kannst das ja mal probieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Tommy1981

user-offline.png


"Hatte dieses Problem sonst schon mal jemand?"


Es passiert manchmal wenn man Merker einsetzt die schon woanders benutzt ist , durch Überschneidung.
 
Das ist schon seit ewigen Zeiten ein Problem, und das wird es auch bleiben. Das es mit der Verwendung des Bits als IN_OUT im Programm im Zusammenhang steht, wäre mir neu.
Neu vielleicht, aber durchaus einleuchtend. Wenn ein Baustein den Zustand nur abfragen soll, den nur die HMI setzt und rücksetzt, dann ist IN absolut passend.
Wenn ein Baustein zu Beginn den Zustand einliest (IN) und bei seiner Beendung wieder schreibt (OUT) und die HMI zwischenzeitlich den Zustand des Bits verändert hat, so wird durch den Baustein das Bit wieder auf den Zustand "rekonstruiert", den es zum ZeitPunkt des Einlesens hatte.
 
Tippbetrieb über Netzwerk ist nicht das Wahre, sondern ziemlich blauäugig, ja sogar kreuzgefährlich für die Anlage (vor allem wenn kein Timeout programmiert wird), weil da auch nie sicher ist daß die Loslaß-Message überhaupt in der Steuerung ankommt. Und selbst wenn die Loslaß-Message in der Steuerung ankommt dann wird das oft auch noch falsch verarbeitet.

Hast Du bei dem Touchpanel einen Hardware-Freigabe(Zustimm)Taster, so daß das Tippen nur geht wenn auch dieser Taster gedrückt ist? Und wenn nicht dann wird das Bit rückgesetzt?
Zweitens kommen einem auch häufig noch neumodische Touchtreiber in die Quere, die eh nicht länger als ein paar Sekunden gedrückt ermöglichen und bei länger gedrückt irgendeine Touch-Comfort-Funktion auslösen wollen.
Wenn schon nur mit dem Touchpanel Tipbetrieb dann besser nur als PN- oder DP-Direkttaste.

Das Problem ist nur in den Griff zu bekommen wenn das Tastenbit per Referenz an den FB übergeben wird, oder als IN und Rücksetzen außerhalb des FB stattfindet.
Warum muß das Bit überhaupt im FB rückgesetzt werden? Unnötiger Comfort-Wahn. Echte Hardwaretaster kann man ja auch nicht mit dem Hammer rauskloppen, wenn einem Programm das Drücken grad nicht passt ;) Da ignoriert bzw. verriegelt man einfach das Bit.

Das es mit der Verwendung des Bits als IN_OUT im Programm im Zusammenhang steht, wäre mir neu.
Die Frage kommt gefühlt alle 3 Monate. Suchbegriffe: S7-1500 HMI Zykluskontrollpunkt

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann zu 100% ausschießen dass im SPS Programm (S7 - 1513) der Befehl gesetzt wird.
Wie ein FB-InOut eines einfachen Datentyps funktioniert weißt Du? Wenn beim Aufruf des FB der Aktualparameter (das HMI-Bit) gesetzt ist und im FB wird die lokale Kopie nicht rückgesetzt, dann wird nach Ende des FB das HMI-Bit 100% gesetzt, weil da die FB-Kopie zurück auf das HMI-Bit kopiert wird. Was das HMI während der Bearbeitung des FB mit der HMI-Variable macht geht verloren.

Harald
 
Wir realisieren die Kommunikation zwischen SPS und HMI über Global-DBs
Das Problem welches Tommy1981 beschreibt, ist uns so noch nicht aufgefallen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Global-DBs verhindern das Problem nicht zuverlässig.
Wenn die Verbindung zum Panel abbricht, eine Bildumschaltung stattfindet, oder eine automatische Benutzerabmeldung stattfindet, kann es immer passieren, dass ein Taster „hängen bleibt“.
 
ich ich hab "das Problem" so in Erinnerung:

wenn man am Panel mit dem Finger von der gedrückten Taste "rutscht", also nicht den Touch losläst, sondern den Finger neben den Button schiebt, dann wird das Ereignis "Loslassen" nicht/nicht immer ausgeführt...

Das Problem gibts in der Tat, warum auch immer schon ewig, deshalb macht man sowas, also Tippbetrieb mit nem Visubutton so nicht...

Gruß.

PS: das TIA gibts ja z.B. auch ne Warnmeldung, dass "Drücken" und "Loslassen" bei der Bearbeitung nicht immer in der richtigen Reihenfolge garantiert werden kann... Keine Ahnung wie die Meldung jetzt wörtlich heisst...
 
Zuletzt bearbeitet:
Servus,
Wir kennen die Probleme leider auch, HW Button stehen leider nicht zur Diskussion....
Gibt es schon neue Erkenntnisse ? Oder Lösungsvorschläge?
Den Zusammenhang mit dem InOut verstehe ich aber nicht wenn die DBss optimiert sind wird die Variable ja als call by ref übergeben?:-?
"V15.1"
Hat schon mal jemand dran gedacht ggf das Panel als I-Device zu parametrieren, dieses Bit dann zu verwenden? Die Aktualisierung wäre dann eben Zyklisch?

Grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Dieses Problem kennt glaub jeder der mit Siemens HMI arbeitet.
Wenn ich bei einer Anwendung auf ganz sicher gehen will.

Drücken - Setze Bit während Taste gedrückt
Loslassen - Rücksetze Bit

Somit sind schon mal zwei Rücksetzen vorhanden.

Wenn es noch sicherer sein soll bei Bildwechsel oder falscher Bildnummer Rücksetzen auf der SPS.
Und über das Lifebit des HMI oder wenn als Device projektiert über Abfrage der Busteilnehmer.

Die verwende ich so oder so nur bei Tippenden Funktionen.
Bei allen anderen Funktionen setze ich im Panel und Rücksetze in der Steuerung.

Achso weil ich es gelesen habe irgendwo, es gibt bei der 1500er keinen Zyklus Kontrollpunkt mehr bei der HMI Kommunikation oder?
 
Den Zusammenhang mit dem InOut verstehe ich aber nicht wenn die DBss optimiert sind wird die Variable ja als call by ref übergeben?:-?
Aber nicht wenn es sich bei dem Parameter um eine Variable elementaren Datentyps wie Bool, Int, usw. handelt.
Und es hängt auch noch davon ab, ob der DB "optimiert" ist und der FC/FB auch "optimiert", oder dieser nicht. Und bei Variablen im EA-Bereich gibt es noch mehr Varianten bei denen sich das wieder anders verhält. Ich kann und will mir so einen Unfug aber gar nicht mehr merken müssen.
 
Zurück
Oben