Forum: Mikrocontroller und Digitale Elektronik Modbus RTU Broadcast zum adressieren


von Mathias O. (m-obi)


Lesenswert?

Hallo,

ich bin dabei ein Modbus RTU Slave zu entwickeln. Zum einstellen der 
Adresse kann ich keine DIP-Schalter einplanen, da dafür kein Platz ist.
Nun ist mir die Idee gekommen dafür die Broadcast-Adresse zu verwenden. 
Also alle Slaves haben vom Werk aus eine voreingestellte Adresse, z.B. 
10. Nun schick der Master eine Nachricht mit der Adresse 0, also 
Broadcast und dem Inhalt, dass in ein Holding-Register z.B. eine 42 
eingetragen wird. Wenn die Nachricht bei den Slaves ankommt, schaltet 
das Slave intern um in den Adressiermodus und signalisiert es durch 
blinken. Um nun die Adresse, die im Holding-Register steht als feste 
Adresse zu übernehmen muss man nur einen Taster für z.B. 2 Sekunden 
drücken. Wenn man nix drückt geht nach 10 Sekunden das Blinken wieder 
aus und das Slave geht wieder in den Normalzustand über, mit der alten 
Adresse.
Kann man das so machen, also dafür Broadcast ausnutzen oder ist das für 
andere Sachen gedacht?

von c-hater (Gast)


Lesenswert?

Mathias O. schrieb:

> Kann man das so machen, also dafür Broadcast ausnutzen

Natürlich, es ist sogar in vielen Protokollstacks ein recht übliches 
Verfahren, Adressierungen per Broadcast vorzunehmen. Wie sollte das auch 
anders gehen, da es ja noch keine Adresse gibt, unter dem man die 
Targets gezielt ansprechen könnte?

Reine Frage der Logik...

von Mathias O. (m-obi)


Lesenswert?

Mathias O. schrieb:
> Also alle Slaves haben vom Werk aus eine voreingestellte Adresse, z.B.
> 10.

Aber halt alle dann im Bus, deswegen über Broadcast, weil man ja sonst 
auch Antworten zurückbekommen würde. Und das ist blöd, wenn alle mit der 
selben Adresse amtworten. Dann lieber nicht Antworten lassen.

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.