MPM3PM und Modbus
-
- Beiträge: 11
- Registriert: Mo Apr 15, 2019 11:19 am
MPM3PM und Modbus
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.
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:
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.
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:
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."
Ich bitte um Hilfe und Ideen.
Viele Grüße
Thomas
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.
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:
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.
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:
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."
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.
-
- Beiträge: 7780
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 24 times
- Been thanked: 36 times
Re: MPM3PM und Modbus
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
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
-
- Beiträge: 11
- Registriert: Mo Apr 15, 2019 11:19 am
Re: MPM3PM und Modbus
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 ....
Könnte auf dem Konverter die +5V suchen und einen Pullup auf A+ anschließen, wenn mich jemand überzeugt ....
-
- Beiträge: 7780
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 24 times
- Been thanked: 36 times
Re: MPM3PM und Modbus
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
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
-
- Beiträge: 11
- Registriert: Mo Apr 15, 2019 11:19 am
Re: MPM3PM und Modbus
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.
-
- Beiträge: 11
- Registriert: Mo Apr 15, 2019 11:19 am
Re: MPM3PM und Modbus
Kann es sein, dass der RS485-Modbus auf Seiten des RS485/USB-Konverters schon fest mit 120 Ohm terminiert ist?
R5 = 121 = 120 Ohm, in der Nähe von A und B gesichtet
R5 = 121 = 120 Ohm, in der Nähe von A und B gesichtet
-
- 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
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?
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
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
-
- Beiträge: 7780
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 24 times
- Been thanked: 36 times
Re: MPM3PM und Modbus
Ja - das wäre möglich.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
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
-
- Beiträge: 11
- Registriert: Mo Apr 15, 2019 11:19 am
Re: MPM3PM und Modbus
So, neuer Tag, neues Glück.
Ich habe mir den von snaptec gelieferten Konverter angesehen. Das dürfte die Schaltung nach dem MAX485 sein:
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:
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:
Das Ergebnis auf der Leitung (vgl. mit oben):
Und am Bildschirm:
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?
@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
Ich habe mir den von snaptec gelieferten Konverter angesehen. Das dürfte die Schaltung nach dem MAX485 sein:
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:
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:
Das Ergebnis auf der Leitung (vgl. mit oben):
Und am Bildschirm:
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?
@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
-
- Beiträge: 7780
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 24 times
- Been thanked: 36 times
Re: MPM3PM und Modbus
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
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