Hallo Ich habe mir einige Hutschienen Messgeräte mit Modbus bestellt DDM18SD https://de.aliexpress.com/item/33003316323.html Leider antworten sie mir noch nicht und ich weiß grade nicht mehr was ich noch versuchen könnte. Also wie in der Beschreibung bei ali sende ich dem Gerät mit Hterm Hex 02 04 00 00 00 02 71 F8 Die Adresse des Gerätes ist 2 Zeigt es beim Starten. Die 71 F8 habe ich mir nach Modbus https://crccalc.com/ ausrechnen lassen. Angeschlossen ist das Gerät über Usb Rs485 Adapter. Ich habe mittlerweile 2 Adapter dran und sehe auch das Daten gesendet werden. Hat jemand eine Idee was falsch sein könnte?
Heiko schrieb: > Hat jemand eine Idee was falsch sein könnte? MODBUS (über serielle Schnittstellen) impliziert Timing-Constraints. Kein übliches Terminalprogramm kümmert sich irgendwie darum. Du brauchst ein MODBUS-Terminal.
Heiko schrieb: > Bedeutet zwischen den Bytes muss das Timing passen? Was das genau bedeutet, steht natürlich im MODBUS-Standard. Wie wäre es denn, wenn du den einfach mal lesen würdest? Unzumutbar?
Das habe ich bereits gelesen aber von Timing (Außer der Standard Serial Timings) habe ich da nix gesehen.
Heiko schrieb: > Das habe ich bereits gelesen aber von Timing (Außer der Standard Serial > Timings) habe ich da nix gesehen. Nunja, und wie hast du das alles hterm beigebracht? Also: ich kann programmieren und für mich wäre das schon nicht ganz einfach.
Ich verstehe noch nicht worauf du hinaus willst. Aktuell sende ich 8 Byte (02 04 00 00 00 02 71 F8) direkt nacheinander. Vom Timing als eine Serielle Nachricht. Mittlerweile habe ich im Nodered ein Modbus installiert allerdings mit Exakt gleichem Ergebnis. Auch da zeigt das Parallele Hterm 02 04 00 00 00 02 71 F8 und das Messgerät antwortet nicht.
So falsch scheint mein Ansatz nicht zu sein. https://info.kmtronic.com/raspberry-pi-modbus-energy-meter-2.html Woran könnte es noch liegen?
Modbus Poll Klappt Besten Dank :) Merkwürdigerweise sehe ich im Terminal Genau was ich erwartet und auch vorher von Hand gesendet hatte. Auch das Modbus teil für nodered scheint zu versagen. Scheinbar doch ein Timings Problem. Dann muss ich morgen wohl oder übel mal mit logic anal dran gehen und messen was da los ist.
Heiko schrieb: > Scheinbar doch ein Timings Problem. Dann muss ich morgen wohl oder übel > mal mit logic anal dran gehen und messen was da los ist. Bei Modbus RTU darf zwischen den Zeichen keine Pause auftreten, die länger als 1.5 Zeichen ist, ansonsten ist die Nachricht zu verwerfen. Um das auf einem PC halbwegs sicher hinzubekommen, solltest Du die Nachrichten als ein Paket rausschicken, also z.B. unter Windows mit einem einzelnen WriteFile()-Aufruf.
Schau Dir libmodbus an https://libmodbus.org/ und dazu mbrtu https://github.com/gitaeuber/mbrtu fchk
Irgendwie scheint der Modbus Standard über die Jahre etwas aufgeweicht zu sein. Ich habe Jetzt noch ein Modbus Tcp Wandler (also ein Stück Hardware) raus gekramt und auch der sendet die Daten "Simple" Seriel raus und das Messgerät antwortet nicht. Ein Siemes Pac 3200 Hat damit kein Problem und antwortet sofort. Das kommt aber auch mit den Daten aus dem Programm Modbus Pol zurecht. Anbei mal zwei Bilder der Daten. Bislang ist modbus pol das einzige Programm was es wohl Richtig macht.
Oh man da hat es mir die Hand vor den Kopf... Parity. Na klar. Man hätte auch darauf kommen können. Parity auf Even und schon antwortet das ding :) Vielen Lieben dank für diesen hinwies. Ich glaub ich habe die Parity Einstellung bei Seriell in all meiner zeit noch nie gebraucht und einfach vergessen Also nochmal wer Probleme mit einem DDM18SD hat das ist die Lösung.
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.