MPM3PM und Modbus
Verfasst: Sa Mai 18, 2019 6:07 pm
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