MPM3PM und Modbus

Stabilostick
Beiträge: 11
Registriert: Mo Apr 15, 2019 11:19 am

MPM3PM und Modbus

Beitrag von Stabilostick »

Hi,
ich versuche einen openWB-Bausatz zum Laufen zu bekommen. Mein Problem ist, dass der MPM3PM keine Werte über den Modbus liefert. Das EVSE-Modul funktioniert. Die Logdateien zeigen einen Kommunikationsfehler. Die Anschlüsse A und B sind nicht vertauscht. Um den Fehler einzugrenzen, habe ich den MPM3PM über den mitgelieferten RS485/USB-Konverter an meinem PC angeschlossen. Mit der in der Anleitung des MPM3PM beschriebenen Java-Anwendung erhalte ich bei korrekter ID=5 bei der Einstellung 9600n nach dem Connect die Antwort MPM: 00. Wenn etwas falsch eingestellt ist, fehlt die MPM-Antwort komplett.
2019-05-18_19-31-50.png
2019-05-18_19-31-50.png (122.24 KiB) 7950 mal betrachtet

snaptec war so freundlich, mir einen weiteren MPM3PM zum Test zur Verfügung zu stellen. Dieser verhält sich identisch und löst somit nicht das Problem.

Ich habe, um etwas mehr zu sehen, ein Oszilloskop angeschlossen. Versuchsaufbau:
IMG_3556.JPG
(3.38 MiB) 1878-mal heruntergeladen

Jetzt sende ich die Befehlssequenz zur Abfrage aller Register mit dem Java-Testprogramm. Zu Beginn sieht man die Anfrage mit etwa 5Vpp und anschließend die Antwort des MPM3PM mit etwa 2,2Vpp, allerdings aber nur mit negativer Spannung.
IMG_3551.JPG
(3.77 MiB) 1878-mal heruntergeladen

Das Java-Testprogramm zeigt dann tatsächlich (manchmal) auch eine Antwort mit mehreren Bytes an. Allerdings keine vollständige Antwort und wenn, dann mit falscher CRC. Also nochmal kurz zur Verdeutlichung: Antwort in der Java-App (wenn auch falsch) gibt es nur, wenn der Anschluss B mit der Masse des Oszilloskops verbunden ist. Nein, ich nutze keinen Trenntransformator, aber das Notebook, an dem der RS485/USB-Konverter angeschlossen ist und von dem es seine Versorgungsspannung bekommt, läuft auf Batterie.

Herr Bernecker, der Entwickler des MPM3PM hat zum Test das Programm QModMaster empfohlen, mit dem man selbst Telegramme zusammenstellen kann. Das Programm meldet leider je nach Laune "Timeout Error", "CRC Error" oder "Answer from wrong ID".

Zum Punkt Terminierung. Ich habe zum Test auch den Bus an den Enden (na ja, es sind ja nur zwei Geräte vorhanden) mit je 120Ohm terminiert. Das sollte aufgrund der geringen Leitungslänge auch eigentlich gar nicht nötig sein. Die Spannung sinkt jetzt auf ca. 4,8Vpp für High bei der Anfrage und auf etwa 1,5Vpp (nur negativ) für die Antwort. Natürlich bleibt der Fehler der nicht vorhandenen Antwort.

Beispiel für Signalform bei der Antwort:
IMG_3555.JPG
(3.6 MiB) 1878-mal heruntergeladen

Nachdem bestimmt schon viele andere den MPM3PM in Betrieb haben, frage ich mich, was ich falsch mache. Die physikalische Verbindung ist ein einfaches ungeschirmtes aber verdrilltes Aderpaar mit ca 30cm Länge.

Ist ggf. ein Pullup-Wiederstand eine Lösung? Hat der RS485/USB-Konverter einen Schuss?

RS485:
"In der Regel wird ein passiver Abschluss durch Verbinden der Signalleitungen über jeweils einen 120-Ω-Widerstand an den beiden Busenden verwendet. Ein optionales Bias-Netzwerk (die 720-Ohm-Widerstände im Bild) verbessert für den Fall inaktiver Leitungstreiber durch eine von null verschiedene Spannung den Störabstand, der sonst lediglich durch die Hysterese des Empfängers gegeben ist."
220px-Rs485-bias-termination.svg.png
220px-Rs485-bias-termination.svg.png (2.47 KiB) 7934 mal betrachtet

Ich bitte um Hilfe und Ideen.

Viele Grüße
Thomas
Zuletzt geändert von Stabilostick am Sa Mai 18, 2019 7:12 pm, insgesamt 1-mal geändert.
aiole
Beiträge: 7780
Registriert: Mo Okt 08, 2018 4:51 pm
Has thanked: 24 times
Been thanked: 36 times

Re: MPM3PM und Modbus

Beitrag von aiole »

Hey,
schön, dass hier echte Entwickler unterwegs sind. Vielleicht läuft man sich zukünftig öfter über den Weg ;-).

Die 120 Ohm passen, allerdings würde ich testweise mal den vom USB-RS485 wegnehmen. Ich habe so einen ganz billigen aus China dran und der geht nur ohne Terminierung (am SDM630 verbleibt dabei der Widerstand).
Wenn das nicht hilft, den Adapter wechseln.

Da Du schon 2 MPM... probiert hast, denke ich nicht, dass dort der bug vorliegt (es sei denn Chargenfehler). Das sehe ich als sehr unwahrscheinlich.

GND und Pullup sind unnötig.

VG aiole
Stabilostick
Beiträge: 11
Registriert: Mo Apr 15, 2019 11:19 am

Re: MPM3PM und Modbus

Beitrag von Stabilostick »

Habe wie geschrieben beides versucht, mit und ohne Terminierung, ein- und beidseitig. Was mir halt auffällt ist die unsymmetrische Antwort des MPM3PM. Kann das so korrekt sein?

Könnte auf dem Konverter die +5V suchen und einen Pullup auf A+ anschließen, wenn mich jemand überzeugt .... ;-)
aiole
Beiträge: 7780
Registriert: Mo Okt 08, 2018 4:51 pm
Has thanked: 24 times
Been thanked: 36 times

Re: MPM3PM und Modbus

Beitrag von aiole »

Mit pullups/pulldowns musste ich bis dato noch nie arbeiten. Probiert habe ich das natürlich schon, aber es war immer unnötig.

Jetzt würde ich einen anderen Adapter - am besten anderen Typ - verwenden.

update
Sag mal - da steht Com5 und ID1. Ist nicht ID5 voreingestellt?

VG aiole
Stabilostick
Beiträge: 11
Registriert: Mo Apr 15, 2019 11:19 am

Re: MPM3PM und Modbus

Beitrag von Stabilostick »

Ja, ID5 ist korrekt und der MPM3PM zeigt die auch als Konfig an. Das Bild stammt aus der Doku des MPM3PM und ist nur zur Veranschaulichung.
Stabilostick
Beiträge: 11
Registriert: Mo Apr 15, 2019 11:19 am

Re: MPM3PM und Modbus

Beitrag von Stabilostick »

Kann es sein, dass der RS485-Modbus auf Seiten des RS485/USB-Konverters schon fest mit 120 Ohm terminiert ist?
292D5A25-CF36-4400-A101-16DE51124EB8.jpeg
(500.71 KiB) 1853-mal heruntergeladen

R5 = 121 = 120 Ohm, in der Nähe von A und B gesichtet :-)
openWB
Site Admin
Beiträge: 8542
Registriert: So Okt 07, 2018 1:50 pm
Has thanked: 2 times
Been thanked: 32 times

Re: MPM3PM und Modbus

Beitrag von openWB »

Grundsätzlich ist exakt nichts nötig.
Kein PullUp, kein sonstiger Widerstand, keine Terminierung. A auf A und B auf B des Modbusses.
Da du 2 MPM3PM hast, die ich beide vorab bei mir konfiguriert habe, möchte ich diese mal ausschließen.
Mal einen anderen USB / RS485 Adapter probiert?
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
aiole
Beiträge: 7780
Registriert: Mo Okt 08, 2018 4:51 pm
Has thanked: 24 times
Been thanked: 36 times

Re: MPM3PM und Modbus

Beitrag von aiole »

Stabilostick hat geschrieben: Sa Mai 18, 2019 9:29 pm Kann es sein, dass der RS485-Modbus auf Seiten des RS485/USB-Konverters schon fest mit 120 Ohm terminiert ist?
292D5A25-CF36-4400-A101-16DE51124EB8.jpeg
R5 = 121 = 120 Ohm, in der Nähe von A und B gesichtet :-)
Ja - das wäre möglich.
Ein extra 120-er parallel würde dann 60 Ohm ergeben - also Richtung 0 gehen, was bei kurzen Strecken meist funktioniert.
Ich denke aber, dass jetzt ein USB/RS485-Konverterwechsel zielführender für die Problemlösung ist.
VG aiole
Stabilostick
Beiträge: 11
Registriert: Mo Apr 15, 2019 11:19 am

Re: MPM3PM und Modbus

Beitrag von Stabilostick »

So, neuer Tag, neues Glück. ;-)

Ich habe mir den von snaptec gelieferten Konverter angesehen. Das dürfte die Schaltung nach dem MAX485 sein:
FCC1BFD9-5BB3-413D-B5B9-D3FB7E364010.jpeg
(3.34 MiB) 1832-mal heruntergeladen
Also A und B haben getrennte Pulldown-Widerstände mit 4,7K Ohm auf Masse. Und der fixe 120 Ohm Terminierungswiderstand ist bestätigt. Ist auch nicht schlimm. Heißt nur, der Konverter ist Busmaster und gehört an ein Ende des Modbus. Und nicht in die Mitte.

Damit der MPM3PM zuverlässig funktioniert (d.h. seine Antwort vom Receiver im MAX485 richtig interpretiert wird), war die folgende Modifikation des Konverters erforderlich:
A0365BE5-BC2A-4D43-A2C6-678CFBEB9B22.jpeg
(199.47 KiB) 1832-mal heruntergeladen
Also die beiden 4,7K Ohm Wiederstände entfernt und stattdessen die Buspegel mit einem +5V - 680Ohm - A - 120Ohm - B - 680Ohm - 0V Spannungsteiler auf definierte Werte bei offenen Bustreibern eingestellt.

Das sieht dann so aus: ;-)
34BC4F50-DF68-4C5D-A632-B1E0FE62C775.jpeg
(243.36 KiB) 1832-mal heruntergeladen

Das Ergebnis auf der Leitung (vgl. mit oben):
DB84CFF4-E686-4193-B642-114A41C68FBF.jpeg
(3.52 MiB) 1832-mal heruntergeladen

Und am Bildschirm:
3311E721-6D2A-4533-BABD-A90D4F00CBB5.jpeg
(3.83 MiB) 1832-mal heruntergeladen

Ohne Änderung an der Schaltung hat der Receiver im MAX485 einfach nicht zuverlässig auf das Signal des MPM3PM reagiert und damit keine Datenbits in Richtung FD232 signalisiert.

Ob mit der Modifikation das EVSE auch noch funktioniert? 8-)

@snaptec, nachdem der RS485/USB-Konverter aus Deinem Bausatz war, willst Du mir einen zweiten zusenden? :?
Ich würde den zweiten MPM3PM gegen Unkostenerstattung gerne behalten, wenn Du damit einverstanden bist.

Viele Grüße, Thomas
aiole
Beiträge: 7780
Registriert: Mo Okt 08, 2018 4:51 pm
Has thanked: 24 times
Been thanked: 36 times

Re: MPM3PM und Modbus

Beitrag von aiole »

Hallo Thomas,
das ist eine sehr solide Aufarbeitung des Innenlebens vom verwendeten USB/RS485-Konverter. Danke!
Kannst Du bitte noch 1...2 Bilder von diesem Konverter einstellen (ev. auch mit Gehäuse, damit man weiß, was für ein Teil das ist.)?

Dass der Terminierungswiderstand 120Ohm häufig in den Konvertern fest verbaut ist, war mir bewusst, aber die 2x4,7k pulldown kannte ich noch nicht.
Mit Deinen beiden neuen 680Ohm (pullup/pulldown) entspricht der RS485 auf jeden Fall dem Standard.

Wo es bei mir noch hakt - der USB-Adapter ist doch bei openWB immer an einem Ende als Modbusmaster (RPi) platziert.
Wie kommst Du auf Platzierung "in der Mitte"? Bei der openWB-Verkabelung muss es eine chain mit Beginn am RPi sein.
Eine alternative Sternverkabelung vom RPi zu den Modbusteilnehmern geht nur, wenn der USB/RS485-Konverter garantiert keinen Termininierungswiderstand hat.

Die EVSE sollte mit der Konverterschaltung auch zurecht kommen - ist ja der Standard.

VG aiole

ps
Für Modbus-Tests verwende ich gern diesen Konverter, der zwar teurer ist, aber alle Widerstände schaltbar ausgeführt hat. Für den Betrieb selbst ist er aber fast zu schade, da recht teuer:
https://shop.in-circuit.de/product_info ... ucts_id=81

pullup/pulldown je 390Ohm
Terminierung 220Ohm
s. hier:
http://wiki.in-circuit.de/images/d/da/610000191A.pdf
Antworten