Forum: Mikrocontroller und Digitale Elektronik RS485 - Übertragungsprobleme


von Man in the middle (Gast)


Lesenswert?

Hallo zusammen

Es ist mal wieder soweit: ich bin der Dödel in der Mitte und soll etwas 
retten.
Das folgende ist gegeben:
- - - - -
Ein Datenlogger mit RS485 > sitzt in der Mitte und ist zugänglich. Hat 
nur einen RS485 Port
-
Zwei Wetterstationen per RS485 angebunden; Kabellänge einmal ca. 20 und 
einmal ca. 50 Meter. Die IDs sind unterschiedlich. Gemäss Hersteller 
haben die keine Abschlusswiderstände integriert und können nicht 
geöffnet werden um einen nachzurüsten. Sind nicht zugänglich montiert 
und Kabel aufschneiden ist nicht gewünscht (Wetter und so).
-
Ein CH4 Sensor mit ca. 20 Meter Kabel, ebenfalls am RS485. Dieser ist 
zugänglich und ein Abschlusswiderstand kann integriert werden.
- - - -

Der Loger ist als Sternpunkt verkabelt - schon das gefällt mir nicht. 
Von dieser einen RS485 gehen die Kabel in verschiedene Richtungen weg.
Die RS485 läuft auf 9600k, abgefragt wird mit UMB

Das Problem ist, dass...
- Der CH4 Sensor funktioniert
- Sobald eine Wetterstation zugeschaltet wird kommt es zu 
Übertragungsfehlern
- Die Wetterstation übermittelt nur die Temperatur, egal wie viele 
Kanäle abgefragt werden. Die Temperatur wird immer beim letzten Kanal 
angezeigt, auch wenn der letzte zB. Windgeschwindigkeit ist!! Die 
anderen Kanäle zeigen Übertragungsfehler.
- Das Kabel für die zweite Station ist noch nicht angeschlossen; da soll 
ich am Montag vorbei...

Frage: Da ich bei zwei der Geräte keine Abschlusswiderstände einpflanzen 
kann UND die Verkabelung der Wetterstationen auch nicht ändern kann. 
gibt es hier noch (wenn auch schmutzige) Tricks für einen RS485 
Sternaufbau?
Nochmals: mir ist bewusst, dass Stern und RS485 nicht gut ist! Ich sitze 
nur in der Mitte (zwischen Elektriker der verkabelt hatte, Hersteller 
der Wetterstation, Logger-Hersteller und Kunde)...

Vielen Dank
The man in the middle

von A. S. (Gast)


Lesenswert?

Man in the middle schrieb:
> Der Loger ist als Sternpunkt verkabelt

Hat denn der logger einen Abschlusswiderstand? Falls nein, einbauen.

von Meiko (Gast)


Lesenswert?

Wenn die Übertragungsfehler wirklich auf der physischen Ebene entstehen 
und nicht z.B. dadurch, das zwei Geräte gleichzeitig senden, dann 
könntest du einen vielleicht einen Signal Splitter mit einen Abgang für 
jeden Sensor bauen.
1
                        +---+  RS485
2
               RS485    |   +----------> Sensor 
3
[Controller] ---------->|   +----------> Wetterstation #1
4
                        |   +----------> Wetterstation #2
5
                        +---+

von Dietrich L. (dietrichl)


Lesenswert?

Wie sieht es mit den Erdungsverhältnissen und GND-Verbindungen aller 
Komponenten aus?
RS485 ist ja nicht potenzialgetrennt und die Datenleitungen dürfen den 
Bereich −7V bis +12V gegenüber GND nicht verlassen.

von Man in the middle (Gast)


Lesenswert?

A. S. schrieb:
> Hat denn der logger einen Abschlusswiderstand? Falls nein, einbauen.

Nope. Hab ich aber schon bereit zum mitnehmen.
Anfangs hatte ein Ex-Kollege nur den CH4 Sensor angeschlossen - ohne 
Widerstände.

Es war geplant wie Wetterstationen per WiFi auszulesen - hat aber nur 
maximal 2 Stunden funktioniert, dann war ein Neustart nötig.

Meiko schrieb:
> Wenn die Übertragungsfehler wirklich auf der physischen Ebene entstehen
> und nicht z.B. dadurch, das zwei Geräte gleichzeitig senden, dann
> könntest du einen vielleicht einen Signal Splitter mit einen Abgang für
> jeden Sensor bauen.

Die Geräte haben individuelle IDs und sollten erst senden wenn der 
Logger eine Anfrage schickt. So habe ich mir das aus den Dokus zumindest 
zusammengereimt.
Splitter muss ich mal schauen, ob ich etwas finde.

Dietrich L. schrieb:
> Wie sieht es mit den Erdungsverhältnissen und GND-Verbindungen aller
> Komponenten aus?

Die Geräte haben einen gemeinsamen GND aber alle seperate Netzteile. 
Erdung ist zumindest am Sternpunkt nicht vorhanden.

Eine Idee ist bei uns noch aufgekommen: RS232/RS485 Konverter - RS232 
haben wir nämlich noch zwei über. Ich renn gleich mal ins Lager; 
angeblich sollten da noch ein paar davon liegen...

von Georg (Gast)


Lesenswert?

Man in the middle schrieb:
> Gemäss Hersteller
> haben die keine Abschlusswiderstände integriert und können nicht
> geöffnet werden um einen nachzurüsten. Sind nicht zugänglich montiert
> und Kabel aufschneiden ist nicht gewünscht

Dann kann man eben keine RS485-Verbindung einsetzen, schon garnicht über 
50m - so einfach ist das. Wenn man Spezifikationen missachtet 
funktioniert es eben nicht. Auch nicht wenn der Vorgesetzte das 
anordnet.

Georg

von Man in the middle (Gast)


Lesenswert?

Georg schrieb:
> Wenn man Spezifikationen missachtet
> funktioniert es eben nicht. Auch nicht wenn der Vorgesetzte das
> anordnet.

Ach, wem sagst Du das!
Da haben erst mal (zu viele) andere etwas gebastelt (und nicht 
dokumentiert) - ich soll die Suppe jetzt mit einer Gabel auslöffeln :-(

von A. S. (Gast)


Lesenswert?

Man in the middle schrieb:
> Ach, wem sagst Du das!
> Da haben erst mal (zu viele) andere etwas gebastelt (und nicht
> dokumentiert) - ich soll die Suppe jetzt mit einer Gabel auslöffeln :-(

Aber irgendwas stimmt doch auch nicht.

Eine Wetterstation mit RS485 und 50m Kabel gibt es doch sicherlich nicht 
zu kaufen.

Und wieso klemmst Du nicht erstmal nur eine Wetterstation an, und 
bringst die zum laufen?

Hast Du ein Oszi? Pegel hier einstellen?

von (Gast)


Lesenswert?

Gibt es ein "failsafe-bias" am Bus, so dass immer ein definierter 
Zustand gewährleistet ist? Ich habe die Erfahrung gemacht, dass ohne ein 
failsafe eventuell Start-Bits nicht richtig erkannt werden und das erste 
Zeichen untergehen kann.

Wichtig ist auch ein gemeinsames Null-Potential aller angeschlossenen 
Geräte ("Masse"). Nur die 2 RS485 Leitungen reichen nicht! Es wird zwar 
die Differenz der Ubertragungsleitungen ausgewertet, die einzelnen 
Spannungen müssen aber lokal bei den Transceivern innerhalb -7V / +12V 
vom lokalen "0" sein.

Ich würde Sternverkabelungen bei RS485 mit CAT5 oder besser ausführen, 
am besten geschirmt. Da kann man jeweils ein Paar vom Stern zum Gerät 
und ein Paar vom Gerät zurück zum Stern verwenden, die anderen beiden 
Paare zur Stromversorgung des Geräts. Elektrisch kann man auf diese Art 
einen konformen Bus aufbauen, von der Verkabelung her bleibts ein Stern. 
Bus-Failsafe und Terminierung kann man auf diese Art auch zentral 
ausführen.

Die gesamte Leitungslänge muss man im Auge behalten, aber bei 9600bps 
geht wenns sauber ausgeführt wird ein Kilometer und mehr.

von Stefan F. (Gast)


Lesenswert?

Lass dich nicht dazu verleiten, das Unmöglich möglich zu machen. Selbst 
wenn du es jetzt scheinbar hinbekommst, wird es dir später wieder vor 
die Füße fallen.

Es gibt Momente, wo man Arbeitsaufträge ablehnen muss, auch wenn sie vom 
Chef kommen.

von Man in the middle (Gast)


Lesenswert?

A. S. schrieb:
> Eine Wetterstation mit RS485 und 50m Kabel gibt es doch sicherlich nicht
> zu kaufen.

Da hatte der, der die Kabel verlegt hat schon gebastelt... das schwarze 
Kabel verschwindet in die Wand und in ein Rohr - am anderen Ende kommt 
dann ein graues Kabel raus... Wie das da zusammengetüdelt wurde will ich 
gar nicht wissen!!
Original hat sie 15 Meter Kabel.

Das habe ich vergessen zu schreiben. nur eine Wetterstation alleine am 
Bus macht auch was sie soll.
Pegel kann ich nirgends einstellen...

rµ schrieb:
> Wichtig ist auch ein gemeinsames Null-Potential aller angeschlossenen
> Geräte ("Masse").

Gemeinsame Masse haben sie.

rµ schrieb:
> Ich würde Sternverkabelungen bei RS485 mit CAT5 oder besser ausführen,
> am besten geschirmt.

Ich auch. Aber die Kabel sind schon da :-(

von mkn (Gast)


Lesenswert?

@TO
Schau Dir die

Man in the middle schrieb:
> Der Loger ist als Sternpunkt verkabelt - schon das gefällt mir nicht.
> Von dieser einen RS485 gehen die Kabel in verschiedene Richtungen weg.
> Die RS485 läuft auf 9600k,

RS485 soll ohne Stichleitung verkabelt werden, also ist das so i.O.
Bei 9600 und über so kurze Leitungen ist RS485 eigentlich ziemlich 
unkaputtbar. Da haben wir auch mal 100 Geräte angechlossen ohne das der 
Kunde eine saubere Verkabelung mit Abschlusswiderständen hinbekommen 
hätte.

Schau Dir mal zuerst das Bustelegramm am Logger und an beiden Geräten 
mit dem Oszi an. Vielleicht findest Du da schon Auffälligkeiten.
Störungen wegen nicht mitgeführten GND, konkurrierende Übertragungen 
etc. pp. sieht man deutlich.
Das Oszi sollte Erdfrei / Potentialgetrennt sein oder Du misst 
differentiel mit beiden Kanälen.

Es gibt natürlich immer wieder echte Experten, die das Softwaremässig 
kaputtmachen.
Bei uns hat sich mal ein Vorschlag durchgesetzt, bei dem jedes Gerät das 
einen Prüfsummenfehler erkannt hat, ein NAK geschickt hat.
Das hat natürlich dazu geführt das EIN Gerät das nicht gemeint war auf 
eine fehlerhafte Prüfsumme reagiert hat, anstatt das Paket einfach zu 
verwerfen.
Dieses NAK zernagelt dann die nächste Übertragung, 20 weitere Geräte 
senden NAK, was aber auch zernagelt wird und so geht es weiter bis man 
den Stecker zieht.

Also wenn das Protokoll robust ist, kommt es auch mit 
Übertragungsfehlern zurecht die eine armseelig ausgeführte RS485 
Implementierung verursacht.
9600 und 50m bringen RS485 nicht ins Schwitzen, ob mit oder ohne 
Terminierung.

von Man in the middle (Gast)


Lesenswert?

mkn schrieb:
> Also wenn das Protokoll robust ist, kommt es auch mit
> Übertragungsfehlern zurecht die eine armseelig ausgeführte RS485
> Implementierung verursacht.
> 9600 und 50m bringen RS485 nicht ins Schwitzen, ob mit oder ohne
> Terminierung.

Das klingt ja schon mal gut :-)

Jetzt wo Du es ansprichst machen mir die Implementationen der Protokolle 
eher Sorgen..
- Der Logger-Hersteller sagt "Just connect all cables in parallel, it 
will work"
- Der von den Wetterstationen sagt "Das passt schon", macht aber keinen 
zu motivierten Eindruck (die Verkaufen Wetterstationen mitt WiFi - und 
wenn man beklagt, dass die Vervindung nach 30-120 Minuten abbricht, dann 
lachen die "Ich weiss nicht, warum alle die Daten per WLAN wollen, das 
ist nur zur Konfiguration gedacht")...
- Der Support vom CH4 Sensor meint "I don't know"

Bei uns im Lager hab ich noch zwei ATEN IC-485SI gefgunden - RS232/RS485 
Konverter. Ich schau jetzt mal mit dem Logger-Typen, ob die miteinander 
harmonieren. Das scheint mir der stabilste Weg bei den Gegebenheiten...

von mkn (Gast)


Lesenswert?

Schau Dir die Signale an.
Achte auch auf Timing Fehler.
Wenn die Oszillatoren nicht stabil genug sind, läuft die Baudrate weg.

Eigentlich hast Du momentan keine Ahnung was eigentlich das Problem ist 
und willst mit Schnittstellenkonvertierung das unbekannte Problem lösen.
Vielleicht gelingt Dir das, vielleicht nicht.
Zumindest siehst Du nicht sehr gut aus wenn denn nach x Stunden die 
Frage kommt was denn das Problem ist und warum Du das auf diese Art 
lösen willst.

So löst man meist keine Probleme sonder man schafft neue.
Selbst wenn es danach läuft weist Du nicht ob das nur daran liegt das 
eines der Geräte MOMENTAN etwas relaxter ist was die Verletzung der min 
/ max Parameter angeht.

Also tu Dir einen Gefallen und analysiere das Problem anstatt wildem 
herumgebastel und blindem herumprobieren.

Du hast zwei stabile Zustände die mal funktionieren und mal nicht.
Du kannst einen super vorher / nachher Vergleich machen.
Also noch einfacher gehts doch nicht.

von Man in the middle (Gast)


Lesenswert?

mkn schrieb:
> Eigentlich hast Du momentan keine Ahnung was eigentlich das Problem ist
> und willst mit Schnittstellenkonvertierung das unbekannte Problem lösen.

Da gebe ich Dir vollkomen recht! Schön wäre es gewesen, wenn mein 
Vorgänger dies gemacht hätte als alles bei uns stand. Jetzt ist die 
Installation über einem Kuhstall, kaum Platz zum Arbeiten, kalter 
Luftzug mit tollem Aroma...

Ich probiere da mal so gut wie möglich zu analysieren. Vielleicht finde 
ich ja etwas raus. Die Protokollkonverter haben wir ja schon - die 
kommen als Notlösung mit ins Gepäck...


Vielen Dank für all die tollen Inputs! Ihr bringt mich hier weiter!


... jetzt bereite ich aber mal was anderes vor: morgen häng ich einen 
Tag 20 Meter ab Boden am Kamin für Emmissionsmessung... ich hoffe, das 
Wetter dort wird passen...

von mkn (Gast)


Lesenswert?

Nehm Dir mal Akkupacks für den Betrieb der Wetterstation mit, um 
versuchsweise das Netzteil zu ersetzen.
Würde mich nicht wundern wenn es darüber kommt.

Gemeinsamer GND aber nicht auf PE.
Netzteile wahrscheinlich ohne PE, vieleicht an unterschiedlichen 
Stromkreisen und jetzt fliessen Ausgleichsströme über GND.
Nur so eine Vermutung.

Also Schaltnetzteile durch Akku oder Trafo/ Gleichrichtergedöns ersetzen 
und sehen was passiert.

von Man in the middle (Gast)


Lesenswert?

mkn schrieb:
> Gemeinsamer GND aber nicht auf PE.

Das ist klar.

> Netzteile wahrscheinlich ohne PE

Natürlich nicht. Der Logger hat zwei chinesische Wandwarzen (eine für 
die RS232 Erweiterungsbox), die Sensoren haben Hutschiennetzteile - aber 
vermutlich auch ohne PE (hab die weder gekauft noch von näher als 3.5 
Metern gesehen - angeblich hat sie der Hauswart da im dümmsten Eck 
montiert).

Die Idee ist gut - ich kann zwei LiPo Packs von meinen Dronen in Serie 
schalten, das sollte passen (16-36 Volt wollen die Wetterstationen 
soweit ich mich erinnere).

Vielen Dank für den Input!

von Peter D. (peda)


Lesenswert?

Man in the middle schrieb:
> Das habe ich vergessen zu schreiben. nur eine Wetterstation alleine am
> Bus macht auch was sie soll.

Das klingt dann sehr nach Softwarefehlern, die Slaves kommen sich 
gegenseitig in die Quere.
Das habe ich mit Fremdgeräten selber schon erlebt, eine Slaveadresse 
wurde zwar vorgesehen, nur hat niemand getestet, ob das auch sauber 
funktioniert.
Teilweise liegt das auch daran, daß viele MCs keine saubere 9Bit-UART 
implementieren, sondern diesen unsäglichen PC kompatiblen 16550 Schrott. 
Dagegen war ja jeder 80C51 moderner.

Nimm als Logger eine CPU mit entsprechend vielen UARTs und schließe 
jeden Slave an eine eigene RS-485 an. Alles andere ist nur 
Zeitverschwendung.

: Bearbeitet durch User
von Man in the middle (Gast)


Lesenswert?

Peter D. schrieb:
> Das klingt dann sehr nach Softwarefehlern, die Slaves kommen sich
> gegenseitig in die Quere.

Das ist auch meine Befürchtung. Nach dem die Wetterstationen schon kein 
funktionierendes WiFi hinkriegen - und das war dann wohl der selbe 
Softwarefuzzy...

Peter D. schrieb:
> Nimm als Logger eine CPU mit entsprechend vielen UARTs und schließe
> jeden Slave an eine eigene RS-485 an.

Wenn ich den selber bauen könnte... aber die Blackbox existiert schon - 
mit Software zum auswerten der Daten, Web-Portal, Onlie-Datenbank etc. 
Da darf ich nichts ändern :-( Zu vieles ist hier schon stur 
vorgegeben...
Zumindest meint der Logger-Mann, dass die RS232/RS485 Konverter aus der 
Staubigen Ecke in unserem Lager funktionieren sollten.

Immer nach dem Microsoft-Motto: Bug & pray ;-)

Ich werde probieren, was hier an Vorschlägen kan und möglich ist. Letzte 
Möglichkeit sind dann die RS232/RS485 Konverter und sonst ein beschämter 
Abgang...

von Busfahrer (Gast)


Lesenswert?

Man in the middle schrieb:
> Ein Datenlogger mit RS485 > sitzt in der Mitte und ist zugänglich. Hat
> nur einen RS485 Port

> Der Loger ist als Sternpunkt verkabelt - schon das gefällt mir nicht.

Sitzt der Logger nun in der Mitte oder nicht? Was heißt, als Sternpunkt 
verkabelt? Stichleitungen bis zu 5m sind keine Problem.

> Zwei Wetterstationen per RS485 angebunden; Kabellänge einmal ca. 20 und
> einmal ca. 50 Meter.

Bei diesen geringen Kabellängen und 9600 Baud funktioniert der Bus auch 
mit einseitiger Terminierung, RS485 ist unglaublich fehlertolerant.

von Wolfgang (Gast)


Lesenswert?

Busfahrer schrieb:
> Sitzt der Logger nun in der Mitte oder nicht? Was heißt, als Sternpunkt
> verkabelt? Stichleitungen bis zu 5m sind keine Problem.

Ob eine Stichleitung stört, hängt von deren Länge UND der 
Übertragungsgeschwindigkeit ab. Eine Stichleitung die bei 9600Bd bestens 
funktioniert, kann bei 10MBb ein ernstes Hindernis für die Übertragung 
sein.

von Dietrich L. (dietrichl)


Lesenswert?

rµ schrieb:
> Gibt es ein "failsafe-bias" am Bus, so dass immer ein definierter
> Zustand gewährleistet ist?

An den Hinweis von rµ möchte ich erinnern, da bis jetzt keine Reaktion 
zu diesem Punkt erfogte:
Auch unabhängig vom Vorhandensein eines Abschlusswiderstands kann es 
Probleme geben, da der Bus zwischen 2 Übertragungen hochohmig ist und 
eine Störung in dieser Zeit einen Empfänger auf den falschen Ruhepegel 
umschalten kann. Dann wird die Startflanke der nächsten Übertragung 
nicht mehr erkannt und der Datensatz ist kaputt.

von Man in the middle (Gast)


Lesenswert?

Busfahrer schrieb:
> Sitzt der Logger nun in der Mitte oder nicht? Was heißt, als Sternpunkt
> verkabelt?

Der Logger ist die Mitte. die eine RS485 hat Anschlussklemmen, an 
welchen die Kabel von beiden Wetterstationen und dem CH4 Sensor 
zusammengeführt werden.

Dietrich L. schrieb:
> An den Hinweis von rµ möchte ich erinnern, da bis jetzt keine Reaktion
> zu diesem Punkt erfogte

Zwei Tage habe ich Emmission am Kamin gemacht - Montags gleich nochmal. 
Den Logger und die Installation kann ich erst am Dienstag wieder 
besuchen gehen. Dann werde ich möglichst wiele der Vorschläge hier 
durchprobieren.

Busfahrer schrieb:
> Stichleitungen bis zu 5m sind keine Problem.

Nix Stichleitung: Der Logger ist der Stern-Mittelpunkt. Von dem einen 
Anschluss gehen 20-50 Meter Kabel in drei verschiedene Richtungen :-/

Naja. Dienstag werd ich klären was es zu klären gibt...

Für den Moment: Vielen Dank und ein schönes Wochenende an alle!

von Wolfgang (Gast)


Lesenswert?

Man in the middle schrieb:
> Naja. Dienstag werd ich klären was es zu klären gibt...

Nimm dir ein Oszi und ein paar Widerstände mit, damit du klären kannst, 
wer wann was sendet.

von derwildearmin (Gast)


Lesenswert?

Hi,

grundsätzlich haben meine Vorredner natürlich recht, erst einmal den 
Fehlergrund genau lokalisieren.

Wenn es nicht anders geht, schau mal hier:
https://shopdelta.eu/rs-485-splitter-mit-opto-isolierung-ors-8_l3_p4066.html

Lg

von Hmmm (Gast)


Lesenswert?

Man in the middle schrieb:
> Nix Stichleitung: Der Logger ist der Stern-Mittelpunkt. Von dem einen
> Anschluss gehen 20-50 Meter Kabel in drei verschiedene Richtungen :-/

Den Stern mit 3 Leitungen kann man auch als Bus mit einer 
20m-Stichleitung sehen.

Etwas ähnlich Ekliges (mit einer Buslänge von mehreren 100m) hatte ich 
vor Jahren in den Fingern, läuft bis heute problemlos.

Meine Vermutungen zur Ursache in absteigender Reihenfolge: 
Softwareproblem (Geräte senden durcheinander), fehlende 
Bias-Widerstände, fehlende Terminierung.

derwildearmin schrieb:
> Wenn es nicht anders geht, schau mal hier

Ist das ein ernstgemeinter Vorschlag, oder bist Du ein Spammer?

Da steht explizit "Kommunikation: Simplex", mit der Kiste  dazwischen 
würde also gar nichts mehr funktionieren.

von derwildearmin (Gast)


Lesenswert?

Hmmm schrieb:
> derwildearmin schrieb:
>> Wenn es nicht anders geht, schau mal hier
> Ist das ein ernstgemeinter Vorschlag, oder bist Du ein Spammer?

Nein, bin ich nicht :-) Ja, war erst gemeint. Simplex hatte ich auf dem 
Smartphone nicht gesehen, aber ich weiss, dass es diese Geräte auch in 
Duplex gibt (habe in der Firma eins liegen) - ich hatte vor ein paar 
Jahren ein ähnliches Problem und musste eine "Y-Konstruktion" 
"auflösen".
Das wäre grundsätzlich eine Option.

Grüße

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.