Forum: Mikrocontroller und Digitale Elektronik Sensoren überwachen nach Master-Slave-Prinzip


von Marion (Gast)


Lesenswert?

Hallo Leute ich stecke in einem kleinen Dilema.
ich möchte Durch einem Bus meinen Sensoren überwachen.
Es geht um den RS485-bus. Ein Master und mehrere Slave.
Jede Slave hat sein eindeutiger ID. Der Master hat eine Reihenfolge wie 
er die anspricht in einem Register gespeichert, die er jedes mal 
inkrementiert und dem nächten anspricht.

Jeder angesprochene Sensor wird dann aktiv, es wird dann an der stelle 
ein Metal dose hingestellt. Erkennt er diese, sendet er ein ACK an dem 
Master zurück. und der nächste wird dann aktiv und so weiter.

So ist der reale und erwünschte zustand.

Nun möchte ich bei diesem Vorgang Fehler detektieren und entsprechend 
darauf ein Signal am einem Pin-Ausgang senden.

Wenn zum beispiel der Master Slave 1 aktiviert, und wartet auf sein Ack, 
wird statt dessen eine Dose bei der unaktivierte Slave 2 hingestellt.
Diese kann aber keine Verbindung mit der Master herstellen, da der 
Master him nicht angesprochen hat.

Da  steckt nun  der Dilema. wie kann  ich auf dem Bus(in meinem System) 
diese Fehler erkennen und entsprechend  ein Ton oder ein Lämpschen 
leuschten Lassen.


ich bedanke mich für jede Idee


lg
Marion

von spess53 (Gast)


Lesenswert?

Hi

>Wenn zum beispiel der Master Slave 1 aktiviert, und wartet auf sein Ack,
>wird statt dessen eine Dose bei der unaktivierte Slave 2 hingestellt.
>Diese kann aber keine Verbindung mit der Master herstellen, da der
>Master him nicht angesprochen hat.

Dann sollte der Slave ihm das bei der nächsten Abfrage mitteilen.

MfG Spess

von Marion (Gast)


Lesenswert?

hi

spess53 schrieb:
> Hi
>
>
>
>>Wenn zum beispiel der Master Slave 1 aktiviert, und wartet auf sein Ack,
>
>>wird statt dessen eine Dose bei der unaktivierte Slave 2 hingestellt.
>
>>Diese kann aber keine Verbindung mit der Master herstellen, da der
>
>>Master him nicht angesprochen hat.
>
>
>
> Dann sollte der Slave ihm das bei der nächsten Abfrage mitteilen.
>
>
>
> MfG Spess


Die würze in der Sache ist , dass das system den Mitarbeiter führen 
soll, so dass er vor dem richtigen sensor die Dose hinstellt.  Und bei 
falsche handlung das Lämpschen-signal anmachen, bis er auf die richtige 
stelle die Dose hingelegt hat.

Lg
Marion

von Andre I. (dex) Benutzerseite


Lesenswert?

Willst du Affen trainieren? :/

von spess53 (Gast)


Lesenswert?

Hi

>Die würze in der Sache ist , dass das system den Mitarbeiter führen
>soll, so dass er vor dem richtigen sensor die Dose hinstellt.  Und bei
>falsche handlung das Lämpschen-signal anmachen, bis er auf die richtige
>stelle die Dose hingelegt hat.

Na und. Der µC ist mit Sicherheit 1000mal schneller als dein 
Mitarbeiter.

MfG Spess

von H.Joachim S. (crazyhorse)


Lesenswert?

Dann brauchst du ein Multimastersystem (das geht einfacher mit CAN) oder 
du pollst alle slaves mit einer deutlich höheren Geschwindigkeit. Also 
reirum abfragen, wie der aktuelle Stand ist. Bei deinem Problem ist das 
kein Problem :-)

von Marion (Gast)


Lesenswert?

Andre I. schrieb:
> Willst du Affen trainieren? :/

man nennt das Fehlerminimierung.

Bitte auf eine nette Frage freue ich mich auf nette Antworten

danke
Marion

von Andre I. (dex) Benutzerseite


Lesenswert?

Na du hast deine Antwort ja schon und bei solchen Anforderungen:

"so dass er vor dem richtigen sensor die Dose hinstellt.  Und bei
falsche handlung das Lämpschen-signal anmachen, bis er auf die richtige
stelle die Dose hingelegt hat."

liegt der Vergleich halt nahe. Fehlt nur noch die Züchtigung durch 
Elektroschock. Nicht gleich alles ernst nehmen ;)

von Uwe (Gast)


Lesenswert?

Hi!
Wo ist das Problem? Über ein Timeout die Verbindung kappen und alle 
anderen Sensoren abfragen. Wehe wenn da woanders was gemeldet wird.....
Du musst dir nur merken welcher Sensor eigentlich drann ist.

Viel Erfolg, Uwe

von Marion Kirsch (Gast)


Lesenswert?

Danke für die Ideen.

Uwe schrieb:
> Hi!
>
> Wo ist das Problem? Über ein Timeout die Verbindung kappen und alle
>
> anderen Sensoren abfragen. Wehe wenn da woanders was gemeldet wird.....
>
> Du musst dir nur merken welcher Sensor eigentlich drann ist.

Da versteht ich nicht so ganz.

>Über ein Timeout die Verbindung kappen

meinst du ein Timer anbauen, die nach der Anfrage an einem Sensor laufen 
soll und nach dem Ablauf des Zeitsinterval ohne eine Rückmeldung vom 
Slave die Lämpchen zum leuchten bringen soll?


> und alle anderen Sensoren abfragen.
welche sensor noch.

ich wollte so implementieren , dass bei jedem Sensor, die kommunikation 
erst startet wenn diesem angesprochen wird.

von Uwe (Gast)


Lesenswert?

Hi!
>> und alle anderen Sensoren abfragen.
>welche sensor noch.

>Jeder angesprochene Sensor wird dann aktiv,
ähmm, das sind bei mir mehrere, bei dir nicht?

>es wird dann an der stelle ein Metal dose hingestellt.
>Erkennt er diese, sendet er ein ACK an dem Master zurück.
Und wenn nicht? Warten...... oder eben Timeout
>und der nächste wird dann aktiv und so weiter.

>meinst du ein Timer anbauen, die nach der Anfrage an einem Sensor laufen
>soll und nach dem Ablauf des Zeitsinterval ohne eine Rückmeldung vom
>Slave die Lämpchen zum leuchten bringen soll?
Nicht ganz, Timer ja, aber dann erstmal die anderen Sensoren abfragen.
Das Lämpchen aber erst an wenn auf einem anderen ein ACK kommt.
Du kannst auch ständig den Bus scannen und nachschauen was so bei den 
Sensoren los ist. Tastzeit je Sensor 1ms? Wenn kein ACK ab zum nächsten.
Damit lässt sich zb. "falsches Abstellen" und bummeln erfassen.

>ich wollte so implementieren , dass bei jedem Sensor, die kommunikation
>erst startet wenn diesem angesprochen wird.
Ist doch alles richtig, nur nach zb. 1ms darf er nichts mehr sagen bis 
er erneut gefragt wird.

Viel Erfolg, Uwe

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.