Forum: Mikrocontroller und Digitale Elektronik Pollen von schwankenden Sensorwerten


von Mike (Gast)


Lesenswert?

Hallo,

Ich habe mir aus einigen uCs ein auf RS485 basierendes Sensornetz 
gebastelt. Ein ebenfalls vernetzer PC soll nun diese Sensoren abfragen.

Um das Problem Multimaster zu umgehen, möchte ich ausschließlich den PC 
als Master einsetzen. Die Frage ist nun wie:

Gehen wir z. B. von einem Sensor aus der nur zwei Zustände kennt. 
Wechselt der Zustand nun schneller als der PC pollt, dann würde ein 
zustandswechsel verloren gehen.

Gibt es für dieses Problem eine Lösung? (Mal abgesehen vom aktiven 
benachrichtigen des Masters?)

von VomGlaubenAbgefallener (Gast)


Lesenswert?

Der Mülleimer ist offen. Gibt es eine Möglichkeit ihn zu schließen? (mal 
abgesehen davon, den Deckel zuzuklappen?)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Mike schrieb:
> Gibt es für dieses Problem eine Lösung? (Mal abgesehen vom aktiven
> benachrichtigen des Masters?)

 Jeder Sensor erhöht bei Zustandswechsel seinen internen Zähler und
 sendet Zählerstand mit.
 Master merkt sich Sensorzähler, wenn Sensor eine Meldung überspringt,
 wird diese von Master extra angefördert.

von foo (Gast)


Lesenswert?

Mike schrieb:
> Wechselt der Zustand nun schneller als der PC pollt, dann würde ein
> zustandswechsel verloren gehen.
>
> Gibt es für dieses Problem eine Lösung?

Ein Fifo am Sensor.

Das funktioniert natürlich auch nur, wenn der PC im Mittel schnell genug 
ist um alle Sensoren zu bedienen.
Die Länge des Fifos (bei seriellen Schnittstellen sind z.B. 3..6Bytes 
üblich) richtet sich danach wie schnell die Werte anfallen und wie lange 
der PC sich nicht um das Abholen kümmert.

von Oldie (Gast)


Lesenswert?

Die Frage ist doch, ob es überhaupt sinnvoll ist, Sensoren
mit einem Takt zu pollen, der viel zu langsam für mögliche
Ereignisse auf der Sensorseite ist.

Wer pollt, muss damit leben, dass er nur die Zustände im
Zeitraster des Poll-Zyklus erfassen kann!

Man könnte einen Zwischenspeicher im Sensor haben, der dann
bei jeder Abfrage alle seit der letzten Abfrage gesammelten
Zustandswechsel ausgibt.

Aber - wie willst du das auf PC-Seite in den zeitlichen Ablauf
der Meldungen von allen anderen Sensoren einfügen?
- Da wird wahrscheinlich nur Unsinn bei herauskommen.

Die einzige sinnvolle Überlegung wäre:
Ist es bei einem Sensor wichtig, auch kurze Ausnahmezustände
zu erfassen, sollte er bei einer Abfrage nicht den aktuellen,
sondern den seit der letzten Abfrage aufgetretenen
Ausnahmezustand melden.
- Das muss dem Sensor einprogrammiert werden.
- Und dem Auswerte-Programm im PC "bewusst" sein.

von Werner (Gast)


Lesenswert?

Mike schrieb:
> Gehen wir z. B. von einem Sensor aus der nur zwei Zustände kennt.
> Wechselt der Zustand nun schneller als der PC pollt, dann würde ein
> zustandswechsel verloren gehen.
>
> Gibt es für dieses Problem eine Lösung? (Mal abgesehen vom aktiven
> benachrichtigen des Masters?)

Lass den Sensor Integralwerte an den Master übertragen. Dann schadet es 
nichts, wenn man eine Zustandsänderung nicht mitbekommt.

Beim Bankkonto weiss man auch immer, wieviel Geld drauf ist, auch wenn 
man nicht jeden einzelnen Kontoauszug mitplottet.

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.