Forum: Mikrocontroller und Digitale Elektronik Sollte man nicht prellende Sensoren entprellen??


von Holger Wu. (Gast)


Lesenswert?

Es ist bekannt dass Kontakte, die an Eingänge von Microcontrollern 
angeschlossen werden, entprellt werden sollen, wenn beispielsweise die 
Anzahl von Tastendrücken gezählt werden soll. Es werden Entprellzeiten 
von 10ms und für ganz ausgelutschte Kontakte bis zu 50ms empfohlen.

Nun gibt es viele mit 24 Volt zu versorgende Industriesensoren wie 
beispielsweise Näherungsschalter und Lichtschranken. Anders als bei 
Kontakten prellen deren Ausgänge nicht. Nehmen wir an, dass auch diese 
im Level angepasst auf einen Microcontroller-Eingang gelegt werden. Da 
sie nicht prellen, könnte man denken, dass diese nicht entprellt werden 
müssen.

Nun könnte es aber passieren, dass auf dem Schaltsignal des Sensors ein 
wenig Schmutz liegt, so dass gerade nach Überschreiten des Schaltpunktes 
des Microcontroller-Eingangs der Schmutz das Signal für einen kurzen 
Moment nach unten zieht und dann abermals die Schaltschwelle passiert 
wird und somit zweimal auslöst.

Sollten vor diesem Hintergrund auch nicht prellende Sensoren entprellt 
werden, wenngleich auch mit deutlich kürzerer Zeit?

Wenn ja, wie lange sollte die Entprellzeit sein? Intuitiv würde ich mal 
1ms wählen.

von Costa Smeralda (Gast)


Lesenswert?

Klar doch, immer weiter sp?

von Michael B. (laberkopp)


Lesenswert?

Holger Wu. schrieb:
> Nun gibt es viele mit 24 Volt zu versorgende Industriesensoren wie
> beispielsweise Näherungsschalter und Lichtschranken. Anders als bei
> Kontakten prellen deren Ausgänge nicht.

Auch Näherungsschkater oder Lichtschranken können prellen, nämlich wenn 
das Ding mechanisch vibriert und nahe an der Schaltschelle ist, oder 
wenn Störeinstreuungen an der Schaltschwelle die Elektronik 
beeinflussen.

Wenn jedoch der Näherungsschalter bzw. Lichtschranke industrietauglich 
ist, enthält sie einen Schmitt-Trigger und ist damit entprellt. Da muss 
man nicht nochmal entprellen.

von Georg (Gast)


Lesenswert?

Holger Wu. schrieb:
> Wenn ja, wie lange sollte die Entprellzeit sein? Intuitiv würde ich mal
> 1ms wählen

Das muss man im Einzelfall entscheiden, z.B. bei Kontakten für eine 
geschlossene Tür können das auch 100 ms oder mehr sein, was man halt für 
ein relevantes Eingangssignal hält. Bei Tastaturen ist das auch Sache 
der Bedienung, für einen geübten Tipper muss man kurze Zeiten wählen, 
für Fabrikarbeiter mit Schutzhandschuhen eher lange, mit denen kommt 
dann aber ein Schnelltipper nicht klar. Aber an einem Bedienterminal für 
eine Maschine schreibt man ja auch keine Romane.

Aber egal an welche Anwendung ich da denke, 1 ms ist nicht nur zu kurz, 
sondern einfach wirkungslos, wenn wirklich was prellt. Eher 10 ms.

Georg

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Holger Wu. schrieb:
> Da sie nicht prellen, könnte man denken, dass diese nicht entprellt
> werden müssen.
Ich entprelle jeden Taster oder Sensor, der von aussen kommt. Das hilft 
z.B. tadellos, wenn aus irgendwelchen Gründen mal ein EMV/ESD-Spike 
ankommt, der nur ein paar µs dauert, aber gerade recht zum 
Abtastzeitpunkt der Software kommt.
Schlimmer noch, wenn die Software im Verlauf den Eingang öfters abfragt, 
dann sieht ein Teil des Programms einen Impuls und der Rest nicht.

Und das passiertbei dieser ungünstigen Programmierweise (jedesmal, wenn 
nötig den Portpin abfragen, statt den Portpin pro Zyklus nur 1x 
einzulesen) sowieso, denn der Eingang ändert seinen Zustand ja 
irgendwann. Und eben nicht nur dann, wenn die Hauptschleife gerade mal 
durch ist...

Holger Wu. schrieb:
> Wenn ja, wie lange sollte die Entprellzeit sein? Intuitiv würde ich mal
> 1ms wählen.
Die sollte so lang sein, dass die schnellste gewünschte Pegeländerung 
noch sicher durch kommt. Wenn z.B. ein Sensor 1 Impuls pro Radumdrehung 
abgibt, dann muss er nicht 1000 mal pro Umdrehung aktualisiert werden...

: Bearbeitet durch Moderator
von A. S. (Gast)


Lesenswert?

Jeder Sensor sollte gemäß seiner Spezifikation ausgewertet werden.

Jede Auswertung sollte auf ihrer Aufgabe abgestimmt sein.

Ein Sensor hat normalerweise eine Hysterese, damit er im 
Umschaltpunkt nicht prellt.

Wenn er es trotzdem tut, dann brauchst Du für diese Aufgabe mit 
diesem Sensor eine darauf abgestimmte Auswertung. Hier etwas zu 
verallgemeiner ist so unsinnig, wie die Länge eines Seils zu erfragen.

von Herbert B. (herbert_b)


Lesenswert?

Michael B. schrieb:
> Auch Näherungsschkater oder Lichtschranken können prellen, nämlich wenn
> das Ding mechanisch vibriert und nahe an der Schaltschelle ist, oder
> wenn Störeinstreuungen an der Schaltschwelle die Elektronik
> beeinflussen.

Näherungsschkater prellen die Tischplatte mit der Faust, wenn sie ein 
gutes Blatt haben. Insbesondere nahe an der Schaltschelle tritt der 
Effekt auf, wenn nicht "Schellen" Trumpf ist.

Skating away! (Spielt weiter Skat)

Herbert

von Volle22 (Gast)


Lesenswert?

Du hast den falschen Ansatz

definiere wie dein Nutzsignal aussieht
definiere welche Störsignale ohne Fehlerkennung verkraftet werden 
müssen.
Überlege wie du sie trenne kannst.

was du über Schalter schreibt gilt wenn sie vom Menschen betätigt 
werden.
Kein Mensch kann innerhalb von 20ms zwei Aktionen bewusst und 
reproduzierbar ausführen.
Wenn die Taste in diese Zeit zwei mal gedrückt wurde war das so nicht 
gewollt also prellen.
Das zweite Signal war eine Störung

Bei technisch erzeugten Betätigungen sieht das ganz anders aus.

von X4U (Gast)


Lesenswert?

Holger Wu. schrieb:

> Wenn ja, wie lange sollte die Entprellzeit sein? Intuitiv würde ich mal
> 1ms wählen.

Prellen ist das falsche Wort da Sensoren nun mal nicht prellen. Es kann 
aber immer Störungen gegeben die ein falsches Signal erzeugen. Woher 
spielt in diesem Zusammenhang keine Rolle.

Um es mal hochtrabend in Fremdworten für Uni oder Prospekt zu sagen. So 
etwas kann man lösen indem man das Signal in realtime oversampled. Das 
bedeutet nichts anders als das du das Signal mehrfach abtastest und die 
Ergebnisse zusammenzählst. Eine Art Stichwahl mit Mehrheitsentscheidung. 
Hat der Winner nicht mindestens eine 3/4 Mehrheit (oder auch weit mehr) 
liegt ein Fehler vor.

Etwas anderes macht entprellen auch nicht. Aber dort ist die Auswertung 
schwieriger. Das Verhalten eines mechanischen Kontaktes ist von Bauform 
und Art der Benutzung abhängig. Dann ändert sich das auch noch stark 
über die Lebensdauer.

Wie lange du abtastest ist von deinen sog. Echtzeitanforderungen 
abhängig.
Echtzeit gibt es eigentlich gar nicht. Das ist aus dem der etwas ungenau 
übersetzten Begriff Realtime entstanden was die tatsächlich benötigte 
Zeit meint. Das ist schlicht die maximale Zeit bis dein System auf ein 
Ereignis reagiert oder reagieren muss.

Diese Zeit ist bei der Ruderanlage eines Containerschiffes natürlich 
anders definiert als bei der Zeitsteuerung  einer 
Hochgeschwindigkeitskamera. Das Prinzip ist aber das gleiche.

Damit ist es möglich mit nur 2 Parametern ( die Antwortzeit und das 
Ergebnis des oversamplings ) dein System sicher und nachvollziehbar 
auslegen.

von Volle22 (Gast)


Lesenswert?

X4U schrieb:
> Echtzeit gibt es eigentlich gar nicht.

natürlich gibt es Echtzeit
und zwar genau so wie es definiert ist
Aber halt nicht das was die Unwissenden hinein interpretieren.

Was es nicht gibt ist "sofort"

von X4U (Gast)


Lesenswert?

Volle22 schrieb:
> natürlich gibt es Echtzeit

Zwar off topic aber:

Das hätte ich weglassen sollen. So etwas führt ja zu unnötigen 
Definitionsstreitereien. Echtzeit ist selbstverständlich ein definierter 
Begriff. Gemeint war das es dieser aber zur Verwirrung führen kann da er 
umgangssprachlich nicht existiert bzw. dort nicht definiert ist.

Das ist so ein wenig wie bei reguläre Ausdrücke (regular expressions). 
Das ist imho auch nicht gerade toll übersetzt. Besser wäre wohl 
regelbasierte Übereinstimmungen. wenn man das dann mal irgendwo anmerkt 
ruft man nur die "Hüter der Definitionsmacht" auf den Plan.

von Peter D. (peda)


Lesenswert?

Je nach Länge der Zuleitung kann es sinnvoll sein, Störungen zu filtern. 
Bessere Entprellroutinen machen beides, sie entprellen und filtern.

von Manfred (Gast)


Lesenswert?

Holger Wu. schrieb:
> Nun könnte es aber passieren, dass auf dem
> Schaltsignal des Sensors ein wenig Schmutz liegt

Ich würde es nicht "Entprellen" nennen. Ich sehe es aber generell als 
gute Idee, gerade bei externen Leitungen, eine gewisse Mindestzeit 
festzulegen, um eben Leitungspfurze zu unterdrücken.

Auf eine Zeit lege ich mich nicht fest, diese hängt von der Anwendung ab 
und kann auch mal ganze Sekunden oder mehr betragen.

von m.n. (Gast)


Lesenswert?

Zur Sicherheit würde ich zweifach entprellen. Es könnte ja schließlich 
sein, daß nach der ersten Entprellroutine noch mehr Schmutz vorhanden 
ist.

Grundsätzlich sollte man auch Gleichspannung zur Sicherheit immer noch 
einmal gleichrichten, damit man keinen Schmutz auf den Leitungen hat, 
die zur Sicherheit mit Batterien vor Spannungseinbrüchen gepuffert 
werden sollten.

Man kann ja nie vorsichtig genug sein :-(

von batman (Gast)


Lesenswert?

Wenns mal ohne klappt, ist das wohl eher ein Glücksfall. Ebenso, wenn 
ein Schmitt-Trigger, ohnehin meist schon ein- bis mehrfach im Signalpfad 
vorhanden, das Prellen unterdrückt. Das ist generell kein Gegenmittel.

In einem konkreten Fall funktionierte ein Drehzahlmesser mit 
Gabellichtschranke und Schlitzmaske nicht ohne "Entprellung", ohne daß 
ich die Ursache gefunden hätte. Davon gibt es haufenweise. Von 
unsauberem Maskenschnitt, Staub, Fusseln über mech. Schwingungen bis 
Rippel oder Spikes in Emitter oder Receiver. Ein kleiner 
"Software-Tiefpaß" neutralisiert (fast) alles.

von X4U (Gast)


Lesenswert?

Peter D. schrieb:
> Bessere Entprellroutinen machen beides, sie entprellen und filtern.

Ist ein prellen nicht das gleiche wie eine Störung mit einer anderen 
Frequenz?

von Analog OPA (Gast)


Lesenswert?

Michael B. schrieb:
> Auch Näherungsschkater oder Lichtschranken können prellen, nämlich wenn
> das Ding mechanisch vibriert und nahe an der Schaltschelle ist, oder
> wenn Störeinstreuungen an der Schaltschwelle die Elektronik
> beeinflussen.

Das ist kein Prellen von Kontakten sondern ein funktionell instabile 
Information. Dass man sie mit ähnlichen Mechanismen bekämpft, darf nicht 
zu Verwechslungen führen.

von M. K. (sylaina)


Lesenswert?

Prellen ist hier falsche Bezeichnung und solche Sensoren, die das 
beschriebene Verhalten zeigen, entprellt man auch nicht sondern man 
filtert sie mit einem passenden Tiefpass ( entweder analog oder digital) 
;)

von Peter (Gast)


Lesenswert?

Lothar M. schrieb:
> Schlimmer noch, wenn die Software im Verlauf den Eingang öfters abfragt,
> dann sieht ein Teil des Programms einen Impuls und der Rest nicht.

Besser ist es, die Eingangssignale an einer Stelle abzufragen, zu 
speichern und mit den gespeicherten Daten bis zur nächsten Abfrage zu 
arbeiten.

von Jacko (Gast)


Lesenswert?

Auch "nicht-prellende" Sensorsignale sollte man für die
Störsicherheit zumindest auf Plausibilität prüfen:

Wenn "Anschlag erreicht" nach einer ms plötzlich nicht
mehr gemeldet wird, hat man entweder den Näherungssensor
blitzschnell überfahren, oder es kam durch Übersprechen
ein falsches Signal auf die Leitung mit dem entprellten
Sensorsignal...

Zumindest in der Entwicklungsphase sollte man sowas SEHR
ernst nehmen, um Fehlinterpretationen zu minimieren!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.