Forum: Mikrocontroller und Digitale Elektronik Welcher Kommunikationsweg zwischen Modulen (Platinen)


von Hans (net_hans)


Lesenswert?

Hallo,

ich habe vor mit einem Raspberry Pi auf dem Node-RED läuft, Sensoren und 
Aktoren anzusteuern. Jeder Sensor / Aktor, bzw. jede Gruppe dieser soll 
eine eigene Platine (Modul) mit µC auf Arduino-Basis bekommen. Die Idee 
dahinter ist das schnelle Austauschen und Erweitern der Komponenten 
(Module) sowie die Vereinfachung der Firmwarebestandteile, was 
hoffentlich wiederum zur Stabilität der Firmware beiträgt. Die Module 
sollen untereinander nicht kommunizieren. Jede Kommunikation soll vom 
Node-RED als Prozesssteuerinstanz ausgehen.

Für die Kommunikation zwischen Node-RED und den Modulen habe ich mir 
bisher die RS485 mit Modbus RTU ausgesucht. Bin mir aber nicht sicher, 
ob das für mein Vorhaben wirklich der ideale Ansatz ist. Funktionieren 
tut es auf jeden Fall in ersten Testaufbauten.

Die Module sind alle lokal beisammen und haben eine maximale 
Leitungslänge zum Raspberry von ca. 150 cm (maximale Buslänge).

Jetzt meine Frage an euch Wissende ... Bin ich mit dem RS485 und Modbus 
auf dem richtigen Weg der Umsetzung, oder gibt es bessere 
Kommunikationsmöglichkeiten für mein Vorhaben. Wichtig ist mir, dass 
alles drahtgebunden ist. Funk ist für mich keine Option.

Habt schon mal vielen Dank für eure Kommentare :-)

Danke! Grüße Hans

von Michael B. (laberkopp)


Lesenswert?

Hans schrieb:
> . Bin ich mit dem RS485 und Modbus auf dem richtigen Weg der

Passt schon, Video und Internet kannst du damit nicht übertragen, willst 
du aber auch nicht.

Vor allem wird es dazu kompatibel zu fertigen Geräten die RS485 MODBUS 
können.

Etwas Überlegung noch, wie die Sensoren zu ihrer Versorgungsspannung 
kommen, und ob du RS485 eventuell galvanisch isolieren musst.

Es geht auch CAN oder RS232 oder TTL seriell, aber MODBUS ist ein 
Standard.

von Hans (net_hans)


Lesenswert?

Danke für deine schnelle Antwort. Da bin ich doch schon mal beruhigt, 
dass ich mit meiner Idee nicht ganz auf dem Holzweg bin :-)

Es ist korrekt, dass ich keine großen Datenmengen übertragen möchte. Es 
wird sich alles im Bit- und Byte-Bereich bewegen.

In meiner Planung ist die RS485 galvanisch isoliert und die Erde will 
ich mit führen (3-Poliger RS485-Bus-Anschluss).

Die Spannungsversorgung der einzelnen Module soll über eine separate 
Verkabelung erfolgen. Die Stromversorgung soll nicht über den Bus 
erfolgen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> In meiner Planung ist die RS485 galvanisch isoliert
Wozu?

Oder andersrum: ist auch die Versorgung der Module potentialgetrennt? 
Denn nur dann wäre es sinnvoll, auch den Bus zu isolieren.

von Hans (net_hans)


Lesenswert?

Hmm die Frage nach dem "warum" ist eine gute Frage :-D
Ich habe es im I-Net so gelesen, dass man es trennen sollte. Alle Module 
werden rein von der Versorgungsspannung die selbe Masse bekommen.
Es wird ein großes 24V Netzteil geben, von wo aus dann auf die 
zusätzlich benötigten 12V, 5V und 3.3V runtergeregelt wird.

von Stefan F. (Gast)


Lesenswert?

Hans schrieb:
> Alle Module werden rein von der Versorgungsspannung die
> selbe Masse bekommen.

Dann wäre ja nur der Bus galvanisch getrennt, die Module jedoch nicht.

Ist dir bekannt, das (nicht galvanisch getrennter) RS485 bis zu 7 Volt 
Potentialdifferenz zwischen den Modulen toleriert? Reicht dir das nicht?

Beitrag #7373967 wurde vom Autor gelöscht.
von Hans (net_hans)


Lesenswert?

Stefan F. schrieb:
> Dann wäre ja nur der Bus galvanisch getrennt, die Module jedoch nicht.

Korrekt.

Stefan F. schrieb:
> Ist dir bekannt, das (nicht galvanisch getrennter) RS485 bis zu 7 Volt
> Potentialdifferenz zwischen den Modulen toleriert? Reicht dir das nicht?

Nein ist mir nicht bekannt. So detailliert habe ich mich mit der RS485 
nicht auseinandergesetzt. In einem I-Net-Beitrag wurde geschrieben, dass 
die RS485 von der jeweiligen Schaltung galvanisch isoliert worden ist, 
da dass Standard wäre. Warum die das gemacht haben und welche 
Auswirkungen das aus die RS485 hat, habe ich, zugegeben, nicht 
hinterfragt. Ich bin davon ausgegangen, dass die Isolation einfach zum 
RS485-Standard gehört und gemacht werden sollte, damit der Standard 
sauber umgesetzt ist.

Ist die galvanische Trennung trotz der "gleichen" Spannungsquelle jetzt 
so schlimm? Also abgesehen von dem Mehraufwand in der Schaltung.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Hans schrieb:
> Ist die galvanische Trennung trotz der "gleichen" Spannungsquelle jetzt
> so schlimm

Überflüssig aufwändig.

von Hans (net_hans)


Lesenswert?

OK, dann kann ich das erste PCB-Layout, was ich für den Test bereits 
anfertigen lasse beibehalten und reduziere dann die Schaltung für die 
anderen Module.

Vielen Dank für den Hinweis zur galvanischen Trennung. Spart mir Platz 
und etwas Geld ;-)

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Ich habe bei mir für meine aufwendige modulare (Eigenbau) Wetterstation 
ein 9600Bd RS-485 System mit fünf Busteilnehmern mit 100m Kabellänge 
seit 2001 erfolgreich in Betrieb. Ausfälle oder Probleme - keine. 
Allerdings nicht mit Modbus, sondern es wird ein eigenes Protokoll 
verwendet. Die meisten Slave Bustransceiver sind MAX483 und einen 
SN75176 beim Master. Als Kabel verwende ich CAT5 im PVC Rohr. Drei Paare 
sind für die 15V Stromversorgung reserviert und ein Paar für die 
Datenübertragung.

Die eigentliche Wetterstation hat einen eigenen Blitzschutzerder. 
Zwischen Haus und Station haben aber bis jetzt mögliche 
Potenzialdifferenzen niemals gestört. Deshalb verzichtete ich auf eine 
galvanische RS-485 Potenzialtrennung.

Gerhard

Nachtrag:

Es empfiehlt sich beim Master, 470 Ohm Widerstände von TR+ nach Vcc und 
von TR- auf Masse mitanzuschließen um eindeutige 
Busspannungsverhältnisse im Idle Zustand und gewissen Busfehlern zu 
schaffen. Die Begründung gibt es in der einschlägigen Fachliteratur.

Übrigens, die 120 Ohm Abschlußwiderstände sollte zwischen den 
entferntesten Punkten sein. Es ist anzustreben, eine lange Leitung 
zwischen Master und einigen Slaves zu haben, die entfernt dann 
sternförmig über viel kürzere Leitungen zusammengeschlossen sind.

Für ein anderes Batteriebetriebenes Wetterstationsprojekt mit "Billig" 
Elektronik verwende ich durchwegs China RS-485 Module mit MAX485 drauf 
und modifizierte Pro-Mini Bords für Sensoren. Mit diesem Konzept kann 
ich z.B. ferne Sensoren (Pro-Mini) über RS-485 zeitlich begrenzt 
aufwecken. Funktioniert gut.

: Bearbeitet durch User
Beitrag #7374005 wurde vom Autor gelöscht.
von Stefan F. (Gast)


Lesenswert?

Hans schrieb:
> Ich bin davon ausgegangen, dass die Isolation einfach zum
> RS485-Standard gehört und gemacht werden sollte, damit der Standard
> sauber umgesetzt ist.

Die überwiegende Mehrheit der RS485 Schnittstellenmodule ist nicht 
galvanisch getrennt. Sie ist in der Regel unnötig, weil die betroffenen 
Geräte ein gemeinsames GND Potential haben.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Du hast nicht geschrieben, wie schnell das Ganze reagieren muss. Ich 
habe gerade das Projekt eines Verkaufsautomaten abgeschlossen. Auch hier 
steuert ein Raspi zentral eine ganze Anzahl von Arduino-getriebenen 
Komponenten:

- Geldscheinleser ("note validator")
- 4x Münzrückgabe ("Hopper" MK4)
- Bondrucker
- RFID-Leser für Kundenkarten
- Block mit 8 farbig steuerbaren LED-Tastern
- EC-Reader Feig cVend (dieser ist ohne Arduino selber LAN-fähig)

Ich verwende Ethernet als Verbindungsmedium. Die einzelnen Komponenten 
werden per HTTP-GET-Request gesteuert bzw. abgefragt. Für ein Gerät, das 
auf menschliche Bedienung "wartet" ist das schnell genug ...

Dieser Protoyp arbeitet tasächlich mit Arduino Unos bzw. Megas und 
Ethernet-Shield. Das nächste Modell wird stat dessen WT32-ETH10 (ESP32 
mit LAN) enhalten.

Im "Zentrun" des gesamten Aufbaues befindet sich ein 8-Port-Switch, ein 
Minirouter beherbergt einen DHCP-Server und gestattet per VPN externe 
Zugriffe für Einstellungen/Wartung ...

von Hans (net_hans)


Lesenswert?

@Gerhard
vielen Dank für deinen Erfahrungsbericht und den Anmerkungen. Dieser 
werde ich in das Design mit einfließen lassen.

@Stefan
Da die überwiegende Meinung hier von einer galvanischen Trennung in 
meinem Fall abrät, werde ich auch darauf hören. Wäre ja sonst dumm von 
mir, wenn ich eure Meinung einhole, mich dann rumdrehe und sage ... "ach 
sollen die doch machen was sie wollen" ;-) ... Um Hinweise zu erhalten 
habe ich hier die Frage gestellt und ihr alle habt mir den Weg noch 
einmal erhellt. Vielen DANK dafür :-)

@Frank
Dein Projekt klingt auch sehr interessant, aber ich glaube Ethernet wäre 
für meinen Fall zu oversized. In meinem Projekt reicht eine RS485 mit 
9600Bd vollkommen aus. Es ist nichts wirklich zeitkritisches dabei. 
Selbst wenn ein Datenpaket auch mal fünf Sekunden braucht, würde das in 
meinem Fall nicht weiter stören. Ich bin doch ein gemütlicher Mensch, 
daran müssen sich meine Projekte auch halten :-P

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Hans schrieb:

> @Frank
> Dein Projekt klingt auch sehr interessant, aber ich glaube Ethernet wäre
> für meinen Fall zu oversized. In meinem Projekt reicht eine RS485 mit
> 9600Bd vollkommen aus. Es ist nichts wirklich zeitkritisches dabei.
> Selbst wenn ein Datenpaket auch mal fünf Sekunden braucht, würde das in
> meinem Fall nicht weiter stören. Ich bin doch ein gemütlicher Mensch,
> daran müssen sich meine Projekte auch halten :-P

Eigentlich wollte ich sagen, dass es in meinem Falle garnicht so 
besonders schnell ist. Die reine Datenübertragung schon, aber die 
Reaktionszeit ist durch das Auswerten und Beantworten der Requests auf 
dem Arduino gearde so (für meinen Zweck) ausreichend. Ansonsten ist m.E. 
der große Vorteil, dass es billig fertige Buchsen, Stecker, Kabel, 
Switche usw. gibt und man sich darum nicht auch noch Gedanken machen 
muss.

von Gerhard O. (gerhard_)


Lesenswert?

Ethernet Kabel Infrastruktur wäre eigentlich auch für RS-485 Bus Systeme 
nicht uninteressant, weil wie Frank schon aufführt, die Kabel und 
Verbinder billig und leicht in ausreichender Auswahl im Handel verfügbar 
sind.

Je nach Stromverbrauch könnte man dann auch noch die übrigen Paare für 
die Stromversorgung heranziehen. Um Verwechslungen mit Ethernet 
auszuschliessen, würde ich allerdings eine ungewöhnliche Farbe, wie z.B. 
Violett oder POE gekennzeichnete Farben verwenden. Auch die RJ-45 
Buchsen sind angenehm, weil es nämlich schon RJ-45 Buchsen auf 
Schraubterminal Adapter gibt.

Auch wäre die Möglichkeit gegeben, POE zur Stromversorgung der 
Sklavenmodule zu verwenden. Wenn man Standard 4-Paar POE nimmt, dann 
bleiben zwei Paare für RS-485 übrig und die Verbleibenden für die 
Stromversorgung. Die 44V@15W lassen sich leicht mit Step-Down Wandlern 
umwandeln. Ich erwähne das nur für den Fall der Fälle:-)

https://en.wikipedia.org/wiki/Power_over_Ethernet

Übrigens, es muß nicht unbedingt Modbus sein. Ich kommuniziere mit 
meiner Wetterstation über ein robustes eigenes ASCII Protokoll mit dem 
sich leicht steuern lässt. Modbus kann langsam werden wenn auf viele 
Register zugegriffen werden muß. Aber da führen viele Wege nach Rom.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> In einem I-Net-Beitrag
In Zahlen: 1? Ziemlich wenig Information als Grundlage...

Mein Tipp: sieh dir die Datenblätter und AppNotes der üblichen 
Treiberbausteine und die Beispielschaltungen darin mal genauer an. Denn 
für den dort beschriebenen Aufbau sind die Transceiver ausgelegt.

Gerhard O. schrieb:
> Ethernet Kabel Infrastruktur wäre eigentlich auch für RS-485 Bus Systeme
> nicht uninteressant ...
> die übrigen Paare für die Stromversorgung heranziehen.
Wenn man sowas macht, dann sollte man zwingend darauf achten, dass man 
nicht irgendwelche Adern nimmt, sondern wenigstens solche, die POE auch 
verwendet. Das ist nämlich so belegt, dass ein normaler versehentlich 
angeschlossener nicht POE-fähiger Ethernet-Teilenehmer dann nicht 
kaputtgeht.

Denn es ist wirklich ärgerlich, wenn jemand, der diese Andersartigkeit 
nicht kennt, aufgrund der Ähnlichkeit seinen 2k€ Laptop schrottet. Die 
Drähtchen in einem Ethernet-Trafo sind wirklich hauchdünn...

Hans schrieb:
> Ist die galvanische Trennung trotz der "gleichen" Spannungsquelle jetzt
> so schlimm? Also abgesehen von dem Mehraufwand in der Schaltung.
Der Witz ist: du musst die Masse der beteiligten RS485 Transceiver ja 
trotzdem verbinden. Denn sonst schaffst du es nicht, den 
Gleichtaktbereich für die Empfäanger sicher zu definieren.

Diejenigen, die den RS485-GND weglassen und nur die Datenleitungen 
verbinden und sich dabei auf die in den ICs integrierten 
"Balancerwiderstände" verlassen, gehen m.E. auf ziemlich glattem Eis. 
Wenn man sowas macht, sollte man unbedingt ein sehr robustes Protokoll 
mit Fehlerbehandlung und Retransmission verwenden.

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.