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.
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.
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
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
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.
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
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.
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.
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"
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.
Je nach Länge der Zuleitung kann es sinnvoll sein, Störungen zu filtern. Bessere Entprellroutinen machen beides, sie entprellen und filtern.
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.
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 :-(
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.
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?
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.
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) ;)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.