Forum: Mikrocontroller und Digitale Elektronik RS485 (Modbus Protokoll) mit mehreren Slaves


von David (daddy2024)


Lesenswert?

Hallo Experten,
ich strebe eine RS485 Kommunikation mit mehreren Slaves (diverse 
Laborgeräte,3-4 an der Zahl)  an - Master ist ein µC, Modbus ist das 
Protokoll. Hat jemand Erfahrung damit, ob Abschlusswiderstände nötig 
sind und wenn ja, wo und wie groß ? Was wäre sonst noch zu beachten 
gegenüber einer 1:1 Verbindung, die bislang problemlos läuft?

Länge der Leitungen (A,B) zwischen den Slaves und dem Master max. 2-3 
Meter, 3 Slaves werden angestrebt. Manche empfehlen 2 Widerstände zu je 
120 Ohm am Ende der A/B Leitung zwischen A und B und am µC Anschluss.

Wer hat Erfahrung und kann hierzu was sagen damit das Ganze möglichst 
unproblematisch von 1:1 auf 1:n erweitert werden kann?

von Rainer W. (rawi)


Lesenswert?

David schrieb:
> Hat jemand Erfahrung damit, ob Abschlusswiderstände nötig sind und wenn
> ja, wo und wie groß ?

Es gibt Datenblätter, Applikationsschriften und diverse Beschreibungen 
zum RS485-Bus. Wie kritisch das alles ist, hängt von der von dir 
verwendeten Übertragungsgeschwindigkeit ab.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

David schrieb:
> ob Abschlusswiderstände nötig
> sind und wenn ja, wo und wie groß ?

RS485 selbst (und seine Komponenten) sind hervorragend dokumentiert!
Selbst Wikipedia liefert die allgemeinen Grundlagen zu deiner 
allgemeinen Frage.

von Frank K. (fchk)


Lesenswert?

Lies das:
https://d1.amobbs.com/bbs_upload782111/files_48/ourdev_700533NAUWXP.pdf
https://www.ti.com/lit/an/slla272d/slla272d.pdf

und den offiziellen Standard:
https://www.mikrocontroller.net/attachment/428561/eia485.pdf

Und denke daran: RS485 ist ein Bus, eine Linie. Am Anfang muss ein 
Abschluss hin, um Reflektionen zu vermeiden, dann kommen die einzelnen 
Geräte ohne Stichleitungen und ohne Abzweigungen, und am Ende muss 
wieder ein Abschluss. Dazu irgendwo Failsafe-Widerstände, und dem Bus in 
Ruhe auf logisch 1 zu halten.

fchk

von David (daddy2024)


Lesenswert?

Danke alle für die Antworten, RS485 ist noch Neuland für mich, gelesen 
hatte ich einiges darüber und auch eine 1:1 Verbinung/Kommunikation 
lauffähig ohne Probleme bekommen (9600 Baud) - aber die 1:1 
Kommunikation war ohne jegliche Abschlusswiderstände. Insofern die 
Frage, ob man diese überhaupt braucht oder ob diese sogar u.U. eher 
"schädlich" sein können.

von N. M. (mani)


Lesenswert?

David schrieb:
> und auch eine 1:1 Verbinung/Kommunikation lauffähig ohne Probleme
> bekommen (9600 Baud)

Vermutlich kurze Strecken. Dann ist es eine niedrige Datenrate, was auch 
unkritischer ist. Man kann Glück haben. Muss aber nicht. Wenn man es 
stabil haben will nimmt man paarweise Verdrillte Leitungen mit Schirm. 
Linien Topologie. Anfang und Ende mit Abschlusswiderstand. Aber das hat 
Frank ja auch schon alles erklärt.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

David schrieb:
> Insofern die
> Frage, ob man diese überhaupt braucht oder ob diese sogar u.U. eher
> "schädlich" sein können.

Du willst es gar nicht wissen!

von Rainer W. (rawi)


Lesenswert?

David schrieb:
> RS485 ist noch Neuland für mich
> ...
> Insofern die Frage, ob man diese überhaupt braucht oder ob diese sogar
> u.U. eher "schädlich" sein können.

Mit RS485 speziell hat das wenig zu tun.

Das sind Grundlagen der HF-Technik für die Ausbreitung von Signalen auf 
Leitungen. Impedanzstoßstellen erzeugen Signalreflektionen und die 
Reflektionen überlagern sich deinem Nutzsignal als Störung. Wie die sich 
auswirken hängt von der Signallaufzeit und damit vom Abstand ab.

von Harald K. (kirnbichler)


Lesenswert?

Rainer W. schrieb:
> Das sind Grundlagen der HF-Technik für die Ausbreitung von Signalen auf
> Leitungen.

Wenn man den Bus a) nicht allzulang macht (also eher nur ein paar Meter 
als ein paar hundert Meter) und b) sich bei der Baudrate zurückhält, 
dann kann man die HF-Technik eine ganze Zeit lang ignorieren.

Modbus kann man auch mit 9600 Baud betreiben. Das ist dann sehr 
gutmütig, was Abweichungen vom Ideal angeht.

von Rainer W. (rawi)


Lesenswert?

Harald K. schrieb:
> Wenn ..., dann kann man die HF-Technik eine ganze Zeit lang ignorieren.

Ach nee (1. Antwort).

Rainer W. schrieb:
> ... Wie kritisch ...

Schädlich ist ein ordentlicher Aufbau aus technischer Sicht allerdings 
nie.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

David schrieb:
> Manche empfehlen 2 Widerstände zu je 120 Ohm am Ende der A/B Leitung
> zwischen A und B und am µC Anschluss.
> Wer hat Erfahrung und kann hierzu was sagen damit das Ganze möglichst
> unproblematisch von 1:1 auf 1:n erweitert werden kann?

Du nutzt EINE lange Leitung mit Terminierung an beiden Enden und hängst 
die Controller daran auf wie Bushaltestellen auf der Strecke, ohne 
weitere Widerstände.

Baue KEINEN Stern.

Achte auf ähnliches GND Potential, sonst funktioniert es nicht. Du musst 
also GND sämtlicher Busteilnehmer über eine dritte Ader verbinden können 
ohne dass es funkt (und wenn das geht, kann die dritte Ader wieder weg).

von Harald K. (kirnbichler)


Lesenswert?

Rainer W. schrieb:
> Schädlich ist ein ordentlicher Aufbau aus technischer Sicht allerdings
> nie.

Nein. Aber man muss sich auch nicht unnötig verkrampfen oder eine 
Wissenschaft draus machen. Man kann natürlich auch damit anfangen, dann 
aber sollte man sich auch mit Augendiagrammen beschäftigen.

von David (daddy2024)


Lesenswert?

Michael B. schrieb:
> Achte auf ähnliches GND Potential, sonst funktioniert es nicht. Du musst
> also GND sämtlicher Busteilnehmer über eine dritte Ader verbinden können
> ohne dass es funkt (und wenn das geht, kann die dritte Ader wieder weg).

Welchen GND meinst du - den vom Gehäuse der Slaves? Von den jeweiligen 
RS485 Slave Schnittstellen gibt es selber nur die A/B-Anschlüsse, keine 
expliziten Massenanschluss der RS485 Schnittstelle.

von Nemopuk (nemopuk)


Lesenswert?

David schrieb:
> Welchen GND meinst du - den vom Gehäuse der Slaves?

Er meint den elektrischen GND aller Busteilnehmer, auf den sich die 
Signale A und B beziehen.

von Michael B. (laberkopp)


Lesenswert?

David schrieb:
> Welchen GND meinst du - den vom Gehäuse der Slaves?

Den GND Anschluss der Treiber-ICs.

Ja, RS485 hat meist nur 2 Adern. Das funktioniert dank der Widerstände 
auch wenn alle Busteilnehmer galvanisch unabhängig sind oder auf 
gleichem Potential liegen.

Doch manchmal ist das nicht der Fall und der Anwender wundert 
sich,,warum es nicht funktioniert.

Zum Test eine Masseleitung zu verlegen zeigt, ob es ohne gehen würde 
oder nicht. Es knallt dann nämlich, wenn es nicht gehen würde.

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.