RS485 - ich verzweifle

OP (Firma: Brainit GmbH) #7676306
Lesenswert?

Hallo Leute,

meine Wärmepumpe spricht Modbus über RS485, und ich versuche verzweifelt mit ihr zu sprechen.

Eigentlich wäre der Plan, das über einen RS485-LAN-Adapter https://www.waveshare.com/wiki/RS485_TO_POE_ETH_(B) zu erledigen, welcher auch in der Lage ist Modbus-RTU in -TCP zu übersetzen, aber ich bekomme keine Kommunikation hin, bzw. keine Antwort.

Daraufhin habe ich mir einen (billigen) RS485-USB-Adapter besorgt, damit funktioniert es. Aber ich habe kein USB in meinem E-Verteiler.

Heute hab ich das mit dem Oszi beobachtet, und bin auf was seltsames gestoßen...

NewFile0.png ist ein Bild vom funktionierenden USB-Adapter... mit etwas Phantasie erkenne ich das erste Wort, die SlaveId 2 (Startbit, 0, 1, 0, ...)

Wenn ich das gleiche mit dem WaveShare mache, sieht das zwar ähnlich aus, aber ich habe vor dem Startbit ein "halbes" Bit "high" (NewFile4.png)

Ich kann nur vermuten dass dieser "Artefakt" die Kommunikation stört...

Oder ist das irgendeine Einstellung? Verstehe ich was falsch?

Ich wäre für jeden Hinweis dankbar...

Angehängte Dateien:
OP (Firma: Brainit GmbH) #7676318
Lesenswert?

Masse ist dabei (sollte aber keinen Unterschied machen), Terminierung zumindest einseitig (aber mein "Testaufbau" hat <100cm Leitung)

Was ich auch witzig finde: die Pegel des Waveshare sind "sauber", während der USB-Adapter das eher dreckig macht... trotzdem funktioniert das USB-Klump und das andere nicht :-(

#7676330
Lesenswert?

Kann man beim LAN Adapter oder der WP das Protokoll verstellen? Wikipedia:

"Im Gegensatz zu anderen Bussen sind bei EIA-485 nur die elektrischen Schnittstellenbedingungen definiert. Das Protokoll kann anwendungsspezifisch gewählt werden. Deshalb werden sich EIA-485-Geräte unterschiedlicher Applikationen oder Hersteller im Allgemeinen nicht verstehen. "

Gast #7676332
Lesenswert?

Wie genau hast du das Oszilloskop an die Leitung angeschlossen?

Das rechte Bild zeigt +/- 4V Pegel. Daraus schließe ich, dass du die Spitze des Tastkopfes an A angeschlossen hast und den Ring an B. Dabei bestand wohl eine galvanische Trennung zwischen der Masse vom Oszilloskop und der gemessenen Schaltung.

Beim ersten Impuls liegt A auf 4V und B auf 0V. Beim zweiten Impuls liegt A auf 0V und B auf 4V.

Im Linken Bild sehe ich einseitigen Hub um ca 3,5 Volt. Das lässt sich so erklären: Die Erdung vom PC und Oszilloskop sind durch die Steckdose miteinander verbunden. Deswegen hast du den Anschluss B effektiv kurz geschlossen. Du siehst hier nur noch das Signal von A, das zwischen 0 und 3,5V pendelt.

Wenn du den Kurzschluss entfernst, also nur eine der Beiden Leitungen (A/B) gegen GND misst, bekommst du bestimmt ein viel schöneres Bild.

OP (Firma: Brainit GmbH) #7676340
Lesenswert?

a) ich bin so blöd!

b) ich bin so blöd!

ad a) Wenn man schon extra den Trenntrafo rausräumt, um das Oszi potentialfrei zu betreiben, so ist es ggf. hilfreich, das Oszi auch am Trenntrafo anzustecken, und nicht parallel dazu an der normalen Schuko-Dose (ist euch sicher noch nie passiert, oder?)

b) wenn meine Wärmepumpe ~70 msec braucht, um auf ein Modbus-Kommando zu reagieren, dann ist es ggf. hilfreich, das "instruction timeout" am Modbus-Gateway auf >70 msec einzustellen...

Danke euch trotzdem, und "sorry for the noise"

#7676347
Lesenswert?

Michael R. schrieb:

ad a) Wenn man schon extra den Trenntrafo rausräumt, um das Oszi potentialfrei zu betreiben, so ist es ggf. hilfreich, das Oszi auch am Trenntrafo anzustecken, und nicht parallel dazu an der normalen Schuko-Dose (ist euch sicher noch nie passiert, oder?)

Tja, das Oszi potentialfrei zu betreiben ist in den allermeisten Fällen weder sinnvoll noch empfehlenswert. Entweder gleich richtig mit einem Differenztastkopf messen oder mit zwei Kanälen gegen normale Masse mit Differenzbildung im Oszi. Ist nicht perfekt, reicht aber meistens.

OP (Firma: Brainit GmbH) #7676351
Lesenswert?

Falk B. schrieb:

Tja, das Oszi potentialfrei zu betreiben ist in den allermeisten Fällen weder sinnvoll noch empfehlenswert.

Da hast du sicher recht. Ein Diff-Tastkop steht seit gefühlt 10 Jahren auf meiner Wunschliste (aber leider brauch ich mein Oszi zu selten, leider berufsbedingt wenig Zeit für mein Hobby)

Ich sollte das aber vielleicht zum Anlass nehmen... Empfehlungen (die a) leistbar und b) zu meinem eher Billig-Oszi Rigol DS1052E passen?)

Falk B. schrieb:

Differenzbildung im Oszi

boah... muss mal nachsehen ob meins das kann...

OP (Firma: Brainit GmbH) #7676355
Lesenswert?

Offensichtlich gibts noch ein Folgeproblem :-(

1
lizard:~/SmartPV/RS485 # mbpoll x2.reinelt.local -a 2 -0 -r 200 -c 1 -t 4:int -B -v -l 10000
2

3
Connecting to [x2.reinelt.local]:502
4

5
-- Polling slave 2... Ctrl-C to stop)
6
[00][01][00][00][00][06][02][03][00][C8][00][02]
7
Waiting for a confirmation...
8
<00><02><00><00><00><07><02><03><04><00><00><55><7A>
9
Invalid transaction ID received 0x2 (not 0x1)
10
Read output (holding) register failed: Invalid data

Das dürfte aber ein Fehler meines Gateways sein (wenigstens war er billig)

Mal sehen ob ich das (Modbus in Perl) hinbekomme...

#7676363
Lesenswert?

Michael R. schrieb:

Ich sollte das aber vielleicht zum Anlass nehmen... Empfehlungen (die a) leistbar und b) zu meinem eher Billig-Oszi Rigol DS1052E passen?)

Naja, die billigsten fangen bei 200 Euro an, fast so teuer wie ein Billigoszi.

Falk B. schrieb:

Differenzbildung im Oszi

boah... muss mal nachsehen ob meins das kann...

Bei mir steht das Gleiche, der MATH Kanal kann A+B, A-B, AxB und FFT.

Moderator (Firma: Titel) Persönliche Seite #7677264
Lesenswert?

Purzel H. schrieb:

Allenfalls goennt man sich eben einen isolierenden RS485-TTL konverter fuer das Oszilloskop.

Wofür dann ein Oszilloskop, wenn ich die analogen Originalsignale nicht mehr sehe, sondern nur ein digitales Abbild davon?

Bestenfalls ein Differenztastkopf könnte da noch brauchbar sein und z.B. Buskollisionen (zwei Sender gleichzeitig aktiv) anzeigen.

So richtig sinnvoll ist beim RS485 aber eigentlich vorrangig die Messung von A und B mit den "Masseklemmen" direkt am Massepin des Transceivers. Denn dann sieht man, ob die Werte und Pegel eingehalten werden, die im Datenblatt des Transceivers für eine verlässliche Funktion gefordert sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren