Forum: Mikrocontroller und Digitale Elektronik RS485 Bus Analyseren - Teilnehmer werden nicht gefunden


von Christian S. (chris02)


Lesenswert?

Hallo zusammen,

folgendes Problem.
Bei einer größeren Solaranlage sind die Wechselrichter (SMA) per RS485 
verbunden.
Diese hängen an einer SMA Webbox, welche aber aktuell einige Geräte 
nicht mehr findet.
Es ging mal alles, nun nicht mehr. Verkabelung wurde geprüft, 
Wechselrichter laufen und speisen auch sauber ein etc.
Einstellungen für den Bus (Baudrate, Stopp Bits etc) können keine 
vorgenommenwerden, sind alle fix. (BAUD 1200). Erstes uns letztes Gerät 
sind terminiert. Terminierungswiderstände sind bereits im Wechselrichter 
verbaut und werden per Jumper zugeschaltet.

Um den ganzen gezielt auf die Spur zu gehen suche ich nun eine 
Möglichkeit den RS485 Bus zu untersuchen, warum es nicht klappt.

Für die ersten Test hätte ich ganz gerne etwas kostengünstiges. Es gibt 
zwar ein paar Sniffer, aber nichts als Freeware.
HTerm wäre mir noch eingefallen, aber vielleicht gibt es noch was 
eleganteres?

Was gäbe es noch für sinnvolle Möglichkeiten?
Folgendes ist aktuell bei mir vorhanden:
Scope Rigol DS1052, (hat keinen BUS Decoder) um ggf. Signale an zu 
gucken
8CH Logikanalyzer vom Chinamann (Saleae Clone)
RS485 <> USB Adapter
Arduino mit RS485 Shield

Kann man die Signalgüte oder Dämpfung messen? Bin auch gerne bereit 
etwas zu kaufen, wenn es wirklich weiter hilft.

Danke & Gruß
Chris

von Max M. (Gast)


Lesenswert?

RS485 Signalegüte kannst Du vortrefflich mit dem Oszi messen und mit 
einem simplen RS485 USB Konverter + Hterm siehst Du was da los ist.
Was mehr willst Du denn?

von Hmmm (Gast)


Lesenswert?

Christian S. schrieb:
> Erstes uns letztes Gerät
> sind terminiert.

Gibt es Bias-Widerstände? Ansonsten hast Du keinen sauberen Ruhepegel, 
was insbesondere in Umgebungen mit Störungen zu Datenmüll führt.

Christian S. schrieb:
> Scope Rigol DS1052

Erstmal damit A gegen GND und B gegen GND angucken.

Christian S. schrieb:
> 8CH Logikanalyzer vom Chinamann (Saleae Clone)

Wenn die gemessenen Pegel im Rahmen dessen sind, was der verträgt, an A 
haengen (gegen GND) und einen UART-Decoder darauf loslassen.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Mit dem Multimeter Masseschleifen oder Potentialverschiebung und/oder 
Spannungsfall der Adern über die Strecke messen. Bus-Ground und Erde 
vergleichen. Vielleicht korrodiert auch nur irgendwas wegen Sturm und 
Hitze. Oder vom Blitz (teil-)getroffen!? Aber das wurde ja geprüft, 
schreibst du... (Fallen denn eigentlich nur die gleichen aus?) Danach 
mit dem Scope die Spannungen und Flanken anschauen - dass es auch nur 
RS485 Pegel ohne Offsets Fremdeinwirkungen oder Spikes sind. Damit 
kannst du dir die "Dämpfung" auf dem Kabel zusammen-reimen. Und erst 
anschließend weiter ins Protokoll gehen... Bis zu Logicanalizer u. 
Hterm. Aber immer wissend was du machst und vorsichtig.
> Bei einer größeren Solaranlage

: Bearbeitet durch User
von Klaus S. (kseege)


Lesenswert?

Christian S. schrieb:
> Für die ersten Test hätte ich ganz gerne etwas kostengünstiges. Es gibt
> zwar ein paar Sniffer, aber nichts als Freeware.

Das sehe ich anders. Ich benutze seit Jahren mit gutem Erfolg den 
free-serial-port-monitor, für den ich 0,0 Euro bezahlt habe. Es gibt 
aber einen Namensgleichen, der kostenpflichtig ist. Ich bin z.Zt. auf 
Linux, kann daher gerade nicht die aktuelle Version checken, der Sniffer 
läuft bei mir unter XP bis Win10. Solltest Du ihn nicht finden, reicht 
eine PM an mich und ich schaue für Dich nach.

Gruß Klaus (der soundsovielte)

von Christian S. (chris02)


Lesenswert?

Danke für die ganzen Rückmeldungen. Das gibt mir schonmal viel Input.

Hmmm schrieb:
> Gibt es Bias-Widerstände? Ansonsten hast Du keinen sauberen Ruhepegel,
> was insbesondere in Umgebungen mit Störungen zu Datenmüll führt.

Weiß ich nicht, gucke ich nach. Aber ich gehe davon aus, dass ein 
Hersteller wie SMA sowas implementiert. Allerdings muss ich auch 
eingestehen, dass ich mit der Begrifflichkeit nichts anfangen kann. 
Werde mich aber nochmals dazu einlesen.

Tim S. schrieb:
> Mit dem Multimeter Masseschleifen oder Potentialverschiebung und/oder
> Spannungsfall der Adern über die Strecke messen.

Masseschleifen, bzw. Brummschleifen kennt man ja im Audiobereich. Aber 
wie aufm dem RS485 Bus prüfen bzw. messen?

Tim S. schrieb:
> Vielleicht korrodiert auch nur irgendwas wegen Sturm und
> Hitze.

Korrossion ist sicherlich nicht ausgeschlossen. Bei einem Blitzschlag 
geht gar nichts mehr, das ist definetiv nicht passiert.

Klaus S. schrieb:
> free-serial-port-monitor

Du meinst diesen?
https://freeserialanalyzer.com/
Da steht was mit 20 Minuten und 5 Ausführungen pro Tag. Daher habe ich 
den gleich wieder abgehakt. Wenn es ein Anderer ist und gerne nochmal 
gucken magst, wäre das top!




Ein Teil der Kommunikation geht wieder. Das Kabel war durch einen 
Fadenschneider beschädigt, aber ohmsch noch in Ordnung. Aber alle Geräte 
sind immernoch nicht da. Es geht also weiter :)


Eine Überlegung von mir einen kleinen RS485 Tester mit einem Arduino zu 
bauen. Zwei Arduino, einer sendet, der andere Empängt. Was er sendet ist 
fast egal. Ich würde einen String senden und den am anderen Ende mit dem 
zweiten Arduino empfangen. Und dieser String wird dann auf einem LCD 
ausgegeben.

Wäre dies auch möglich, das ganze zu der Kommunikation der WR auf den 
Bus hinzu zu fügen? D.h. das die WR nicht abgeklemmt werden müssen?

von Harfner (Gast)


Lesenswert?

Kennst Du einen String, der sicher keinen Busteilnehmer stört?

von Achim H. (pluto25)


Lesenswert?

Christian S. schrieb:
> Eine Überlegung von mir einen kleinen RS485 Tester mit einem Arduino zu
> bauen. Zwei Arduino,

Nicht zwei, einer reicht, der kann alle Wechselrichter abfragen und 
feststellen welche nicht oder undeutlich antworten. Damit läßt sich die 
fehlerhafte Leitung "einkreisen".

von Rüdiger B. (rbruns)


Lesenswert?

Ich benutze:
http://www.simplymodbus.ca/MasterManual8.htm
als Demo um ein paar abfragen zu testen und dann das Programm neu 
starten.
Ich hab damit meinen Modbus Zähler getestet und den Fehler gefunden.

von Christian S. (chris02)


Lesenswert?

Harfner schrieb:
> Kennst Du einen String, der sicher keinen Busteilnehmer stört?

Teilweise ja, aber nicht immer. Manchmal ist es ein ganzer String an WR, 
manchmal auch nur einzelne Geräte

A. H. schrieb:
> Christian S. schrieb:
>> Eine Überlegung von mir einen kleinen RS485 Tester mit einem Arduino zu
>> bauen. Zwei Arduino,
>
> Nicht zwei, einer reicht, der kann alle Wechselrichter abfragen und
> feststellen welche nicht oder undeutlich antworten. Damit läßt sich die
> fehlerhafte Leitung "einkreisen".

Wie soll der Arduino denn alle WR abfragen? Bzw. feststellen, dass das 
Signal nicht deutlich ist. Für undeutlich bräuchte ich meines Erachtens 
ein Scope?!

von Herbert K. (avr-herbi)


Lesenswert?

Warum so kompliziert ?
Und erst noch herumprogrammieren auf Arduino ?
Es gibt doch fertige RS-485 auf USB Konverter.
Klemm die WR mal vorübergehend alle ab von RS-485.
Lass da in einer Schleife auf einem PC/NB(/Arduino) Hex:  AA,55,00,FF 
laufen und mit einem 2. gehst Du zu jedem WR und klemmst Dich da auf das 
RS-485 Kabel drauf mit einem Terminalprogramm - oder/und eine definierte 
ASCII Folge: "ABCDEF", "123456" gleich noch mit. Gegebenfalls noch mal 
die Gegenrichtungen prüfen.

ABER

Wenn da mit einem Fadenschneider was zerfetzt wurde, dann gibts da nicht 
nur eine Stelle. Bei youtube gibts auch ein Video von einem großen 
Solarpark, wo die so nett waren, beim Grasmähen so einiges beschädigt 
haben.
Viel Erfolg !

von Achim H. (pluto25)


Lesenswert?

Christian S. schrieb:
> Wie soll der Arduino denn alle WR abfragen? Bzw. feststellen, dass das
> Signal nicht deutlich ist.

Das Protokoll ist da übersichtlich. Er fragt, bediehnt den der 
geantwortet hat und fragt wieder so lange bis sich keiner mehr meldet. 
Dann sollten alle da sein. Er könnte auch geziehlt einen ansprechen, 
vielleicht scheller wenn man schon weiß in Reihe 17 ist was nicht gut.
Die hängen am Ende eine Checksumme an, stimmt die nicht spicht er 
undeutlich.
Wie undeutlich erkennt man daran ob nur einzelne Werte nicht stimmen 
oder nur Müll ankommt.
Alle abklemmen scheint mir da zu aufwendig zumal damit nicht klar wird 
ob sein Traceiver vielleicht "nen Schlach weg" hat. Da sie teilweise 
(alle) durchgeschliffen sind würde so einer direkt auffallen wenn die 
dahinter korrekt antworteten.
@Christian Wie viele hängen daran?

: Bearbeitet durch User
von Klaus S. (kseege)


Lesenswert?

Christian S. schrieb:
> Wenn es ein Anderer ist und gerne nochmal
> gucken magst, wäre das top!

Google liefert mir bei free-serial-port-monitor als 2.Link:
https://www.heise.de/download/product/free-serial-port-monitor-26030
und das ist der, den ich benutze.
HHD-Software, Version 3.31

von Anselm (Gast)


Lesenswert?

Ist denn die Erdung aller Wechselrichter geprüft?
Wenn ein paar davon "in der Luft hängen" hast du potentialunterschiede, 
und davon ist abzuraten.
Im Prinzip jedes Gerät einzeln von allen Anschlüssen befreien und 
Erdkontakt prüfen.

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.