Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi und RS485/Galvanische Trennung


von huzd (Gast)


Lesenswert?

Hallo,
ich möchte einen Raspberry 3 einsetzen, um Daten über Modbus RS485 
auszulesen. Ich möchte vier USB-to-RS485 Adapter einsetzen. Ist es 
möglich, diese gemeinsam über einen USB-Hub mit externer 
Spannungsversorgung zu betreiben?

Ist der Einsatz eines USB Isolators notwendig bzw. empfehlenswert? 
Reicht so etwas hier? 
https://www.ebay.de/itm/1500V-USB-to-USB-Isolator-Board-Protection-Isolation-ADUM4160-ADUM3160-Module/174605216709?hash=item28a7482bc5:g:BGQAAOSwy2tgCWyv

Sollte man davon nur einen holen, um den USB-Hub vom Raspberry 
galvanisch zu trennen oder sollte eher jeder USB-to-RS485 Adapter 
einzeln getrennt werden?


Danke!

von Frank K. (fchk)


Lesenswert?

Erstmal: RS485 hat die Besonderheit, dass vor dem Senden der Sender im 
Transceiver eingeschaltet und anschließend wieder abgeschaltet werden 
muss. Oft muss das die Software machen (über das RTS Signal), manche 
USB-UARTs können das auch selber, was dann natürlich deutlich besser ist 
(z.B. die von FTDI). Optimal wäre für Dich ein FT4232H, der vier UARTs 
enthält. Der funktioniert definitiv auch am Pi 3.

http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf

Du musst auch überlegen, ob beim Senden der Empfänger aktiv sein soll 
(d.h. Du empfängst auch Deine gesendeten Daten und weißt damit, dass die 
korrekt gesendet worden sind), oder ob der Empfänger beim Senden 
abgeschaltet sein soll. Das hängt auch von der verwendeten Applikation 
ab.

Ob eine galvanische Trennung erforderlich ist, hängt stark von der 
Umgebung ab. Bei kurzen Strecken mag das nicht erforderlich sein, in 
industrieller Umgebung und bei langen Strecken vielleicht schon.

Wenn Du Dich für eine galvanische Trennung entscheidest, ist der 
richtige Ort für die Isolation die Verbindung zwischen USB-UART und 
RS485-Transceiver. Damit kannst Du dann nämlich jeden Bus einzeln 
isolieren. Entweder nimmst Du dafür digitale Isolatoren oder isolierende 
Transceiver wie den hier:

https://www.analog.com/media/en/technical-documentation/data-sheets/adm2582e_2587e.pdf

USB-Isolatoren gehen nur bis Fullspeed, und damit würdest Du den FT4232H 
als Highspeed-Device bremsen. Das ist immer nur die zweitbeste Lösung.

fchk

von huzd (Gast)


Lesenswert?

Hallo fchk,
danke für deine Antwort. Im Endeffekt wird wohl der Raspberry wohl eh 
nur lesen. Der soll nur ein Smartmeter auslesen ... Highspeed wird wohl 
auch nicht benötigt?? RS485 kann doch nur max. 12 Mbps, damit würden 
doch die günstigeren USB-Isolatoren ausreichen??

von Georg (Gast)


Lesenswert?

huzd schrieb:
> Im Endeffekt wird wohl der Raspberry wohl eh
> nur lesen

Das hat seine eigenen Probleme: das heisst ja, die Sensoren senden ohne 
Aufforderung, und daher muss der Raspi "allzeit bereit" sein für alle 
vier Busse, es können ja jederzeit und gleichzeitig Daten eintreffen. 
Auch auf der Sensorseite besteht das Problem, dass die Sensoren an einem 
Bus ja keinesfalls gleichzeitig senden dürfen, wie soll das ohne den 
RasPi synchronisiert werden?

Georg

von Udo (Gast)


Lesenswert?

Eine frage etwas am Thema vorbei.

Ich habe ein Problem wo der usb isolator villeicht helfen könnte.
Ich habe eine Solaranlage mit Akku und messe alle möglichen werte mit 
dem Raspberry. Ich habe einige usb2serial und usb2485 dran. Problem wenn 
das Battery Management abschaltet dort wird Masse von dem Akku 
abgeschaltet dann läuft masse über den usb und alles geht kaputt.

wenn ich die Usb ports über so einen Isolator trenne könnte man das 
Problem damit doch umgehen oder?

von Frank K. (fchk)


Lesenswert?

huzd schrieb:
> Hallo fchk,
> danke für deine Antwort. Im Endeffekt wird wohl der Raspberry wohl eh
> nur lesen. Der soll nur ein Smartmeter auslesen ...

MODBUS ist immer und grundsätzlich eine bidirektionale Kommunikation.

Wenn Du nur EIN Smartmeter auslesen willst, warum brauchst Du dann vier 
Busse? Kannst Du nicht alle Geräte auf einen Bus hängen?

> Highspeed wird wohl
> auch nicht benötigt?? RS485 kann doch nur max. 12 Mbps, damit würden
> doch die günstigeren USB-Isolatoren ausreichen??

Wie gesagt, technisch gesehen ist die Isolation des USB-Interfaces immer 
nur die zweitbeste Lösung. Du hast dann auch nur eine funktionale 
Trennung, keine sicherheitsgerichtete Trennung.

fchk

ps: das wäre etwas brauchbares, wenn Du nicht basteln willst oder 
kannst:

https://www.delock.de/produkte/1012_USB-2-0---RS-422---RS-485--Industrie-/62501/merkmale.html

von huzd (Gast)


Lesenswert?

Georg schrieb:
> huzd schrieb:
>> Im Endeffekt wird wohl der Raspberry wohl eh
>> nur lesen
>
> Das hat seine eigenen Probleme: das heisst ja, die Sensoren senden ohne
> Aufforderung, und daher muss der Raspi "allzeit bereit" sein für alle
> vier Busse, es können ja jederzeit und gleichzeitig Daten eintreffen.
> Auch auf der Sensorseite besteht das Problem, dass die Sensoren an einem
> Bus ja keinesfalls gleichzeitig senden dürfen, wie soll das ohne den
> RasPi synchronisiert werden?
>
> Georg

Wenn man doch 4 einzelne USB-to-RS485 Adapter einsetzt, dann existieren 
ja auch 4 separate Kabelverbindungen zu den Smart Metern. Damit wäre 
doch alles separat und nichts würde "gleichzeitig" über das gleiche 
Kabel ankommen??

von Frank K. (fchk)


Lesenswert?

huzd schrieb:

> Wenn man doch 4 einzelne USB-to-RS485 Adapter einsetzt, dann existieren
> ja auch 4 separate Kabelverbindungen zu den Smart Metern. Damit wäre
> doch alles separat und nichts würde "gleichzeitig" über das gleiche
> Kabel ankommen??

Du hast aber nur einen USB-Host, und deswegen geht da eh nichts 
gleichzeitig. Und MODBUS arbeitet streng nach dem 
Request-Response-Verfahren, d.h. die Slaves antworten nur, wenn sie 
gefragt werden.

Um wieviele und welche Endgeräte geht es denn jetzt genau, und wie lang 
wären die Kabelverbindungen?

fchk

von huzd (Gast)


Lesenswert?

das sind drei Endgeräte, Kabellänge zu max. je 60m. Also 60m ist das 
Endgerät mit der größten Entfernung. Wenn das doch 4 seperierte RS485 
Kabel sind, da es ja über 4 USB-Adapter geht, dann gibt es doch pro 
Netzwerk nur einen Master und einen Slave??

von Bauform B. (bauformb)


Lesenswert?

huzd schrieb:
> das sind drei Endgeräte ... Wenn das doch 4 seperierte RS485
> Kabel sind, da es ja über 4 USB-Adapter geht, dann gibt es doch pro
> Netzwerk nur einen Master und einen Slave??

Ja. Aber dann müssen auf dem RPi auch 3 bis 4 Modbus-Master laufen. Also 
müsste eine normale Software 3 bis 4 mal getrennt gestartet werden. 
Macht man das so?

Und schreib bitte mal, was für Endgeräte das wirklich sind. Und warum 3 
davon 4 Adapter brauchen.

Dass du wegen der Isolation keinen Bus verwenden willst, würde ich bei 
60m Kabel gelten lassen. Aber dann muss auch jeder Adapter einzeln 
isoliert sein, dann wäre der Vorschlag erste Wahl:

Frank K. schrieb:
> ps: das wäre etwas brauchbares, wenn Du nicht basteln willst oder
> kannst:
> 
https://www.delock.de/produkte/1012_USB-2-0---RS-422---RS-485--Industrie-/62501/merkmale.html

von huzd (Gast)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Solange alle betroffenen im gleichen Haus an einem gemeinsamen 
Erdungspunkt angeschlossen sind, sehe ich keinen Bedarf für galvanische 
Trennung. Denn RS-485 erlaubt bereits Differenzen von etwas mehr als 5V, 
das muss reichen.

Anders sieht es aus, wenn zwei separat geerdete Gebäude verbunden 
werden. Da würde ich mich dann nicht mehr darauf verlassen, dass GND 
überall gleich GND ist.

von Georg (Gast)


Lesenswert?

huzd schrieb:
> Damit wäre
> doch alles separat und nichts würde "gleichzeitig" über das gleiche
> Kabel ankommen??

Wenn das so ist ja, aber das ist nicht die übliche Verwendung für einen 
Bus. Sonst hiesse er ja nicht Bus.

Georg

von Frank K. (fchk)


Lesenswert?

huzd schrieb:

> 3x SDM72DM
> 1x Eastron SDM630MCT

> Läuft alles über Modbus / RS485
und Modbus verwendet standardmäßig 9600bps/8n2 oder /7e1 (im originalen 
Standard von vor 30 Jahren). Damit kommst Du mit guten Kabeln 1km und 
mehr. Wenn das alles in einem einzigen Wohngebäude ohne große 
Störquellen und ohne Großverbraucher (z.B. 200kW-Frequenzumrichter) und 
an einem Hausanschluss mit einer gemeinsamen Erdung abläuft, dann 
brauchst Du keine galvanische Trennung. Weise jedem Zähler eine eigene 
MODBUS-Adresse von 1 bis 4 zu, und dann stimmt das so. 120 Ohm 1/2W 
Abschlusswiderstände an den Busenden nicht vergessen, 
Failsafe-Widerstände am Master anbringen, und dann läuft das.

Lies das hier:

https://air.unimi.it/retrieve/handle/2434/284647/408097/Relazione

Nimm diesen USB-Adapter

https://www.amazon.de/USB-RS485-Adapter-mit-Geh%C3%A4use/dp/B00I9H5J02/ref=sr_1_5

da kannst Du Terminierung, Failsafe-Widerstände und lokales Echo per 
DIP-Schalter konfigurieren.

Kabel z.B. sowas:
https://www.lappkabel.de/produkte/online-kataloge-shop/datenuebertragungssysteme/bussysteme-mit-schnittstelle-rs485rs422/feste-verlegung/unitronic-bus-ld.html

fchk

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.