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...
Könnte es sein, dass entweder Masse nicht mitgenommen wurde, oder die Terminierung des Busses nicht passt? In Summe müssen 60 Ohm raus kommen,beide Enden mit 120 Ohm.
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 :-(
Wie genau hast du das Oszilloskop an die Leitung angeschlossen? Hast du einen 1:1 Tastkopf verwendet, oder einen anderen?
@Falk Nö... deswegen Oszi :-) Außerdem - frag nicht wie oft ich die schon gedreht habe... PS nett wenn das USB-Viech die Anschlüsse als A+ und B- bezeichnet :-)
:
Bearbeitet durch User
Michael R. schrieb: > Masse ist dabei (sollte aber keinen Unterschied machen) Ohne Masse spielst du Lotto.
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. "
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.
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"
:
Bearbeitet durch User
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.
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...
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...
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.
Allenfalls goennt man sich eben einen isolierenden RS485-TTL konverter fuer das Oszilloskop.
:
Bearbeitet durch User
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.