Modbus Waveshare RS485 to ETH Umsetzer

Moin Leute,

ich habe exakt das gleiche Problem: DS100-00B und Waveshare Umsetzer. Die Gesamtkonfiguration läuft eigentlich, weil am gleichen RS485 Bus ein SDM230 hängt der problemlos alle Daten von sich gibt.
Der DS100 schickt nur Nullen. Hast Du jetzt den Zähler in einen SDM630 getauscht oder für den DS100 nur die B&G Instanz vom SDM630 verwendet. Das mit der Instanz habe ich nämlich auch ohne Erfolg auprobiert (andere funktionieren auch nicht).
Ich habe jetzt alle Varianten durch und komme auf keinen grünen Zweig - hat vielleicht jemand noch einen Tip für mich?

Gibt es sonst irgendwo eine Doku wie man spezifische Instanzen selbst anlegt oder kann das nur Michael?

Gruß Ralph

Neuer Weg wäre eigentlich die universelle Instanz ModBus Gerät und dort die Register eintragen.
Michael

ok, das kann ich mal versuchen. Es tauchen hier allerdings so viele neue Begriffe auf die angegeben werden müssen, dass ich mich da erst einmal einarbeiten muss, um zu verstehen was ich da mache :wink:

Hast Du vielleicht einen Auszug der Register/Angaben aus bestehenden Instanzen die in dem B&G Modul vorhanden sind, die man sich als Muster zur besseren Verständnis mal zu Gemüte führen kann, um nicht bei null anzufangen?

Gruß aus Hamburg
Ralph

Da ich mir die Vorlagen noch gar nicht angesehen habe; nix wirklich sinnvolles.
Sonst die Original Hersteller Doku nutzen. Die PDF mit Register sind da alle zum download.
Michael

Ich habe den Zähler ausgetauscht.

Die Modbusregister findest du auf der B+G Homepage.

Hallo,

Ich habe mittlerweile 1 SDM 630 und 2 SDM 120 am Waveshare laufen. Die Abschluss-Widerstände brauche ich tatsächlich nicht.
Der Timeout -Fehler war aufgrund der falschen ID im Splitter/modbus Gateway.
Mir war nicht bewusst, dass jedes Gerät einen eigenen Splitter/Gateway mit passender ID benötigt.

Die Modbus-Vorlage vom SDM 120 ist noch nicht vollständig und werde ich bei Gelegenheit erweitern.

Für den SDM 630 gibt es noch keine.

Aber mit dem Modul BG Tech läuft alles Bestens.

Grüße

Moin Leute,

um das Thema noch einmal aufzuwärmen: ich bin zu doof den DS100-00B zum Laufen zu bringen.

Zwischenzeitlich habe ich drei SDM630 und einen SDM230 jeweils über Waveshare am Start die alle wunderbar „gemolken“ werden können, nur der DS100 zickt noch rum und ich bin mit meiner Trial und Error Spielerei am Ende. Ich kann ein Modbus Gerät anlegen und offenbar wird der Zähler auch angesprochen aber es kommt nichts zurück. Das geht leider schon damit los anzugeben welche Adresse auszulesen ist. Was fordere ich an - Adresse 37 oder muss ich das Modbusregister 40C verwenden? Welche Endian Einstellung ist gültig?

Wenn ich debugge sehe ich, dass die Anforderung zurückgeschickt wird kann damit aber leider nichts anfangen.

Weiß jemand was bei diesem Zähler einzustellen ist oder muss ich in den sauren Apfel beißen und noch einen SDM630 shoppen damit endlich Ruhe ist?

Gruß aus Hamburg - Ralph

NOTFORUS → Not for us → Die Antwort kommt von einer anderen GeräteID und ist nicht für diese Instanz gedacht.
Also kommt da keine Antwort vom dem Zäher.
Adresse wäre 1036 (040C als Int). Oder halt 31037 - 30001 = 1036
Hier steht bei welchen Befehl man was abziehen muss:

Quelle:

Michael

Moin Michael,

vielen Dank für die lichtgeschwindigkeitschnelle Antwort. Das mit der Adresse habe ich jetzt kapiert!!
Auf dem Bus hängt noch der SDM230 auf Adresse 1, der DS100 hat die Adresse 2. Ich hatte den SDM230 im Symcon zwar deaktiviert aber wer weiß …
Auf jeden Fall sieht die Antwort jetzt schon etwas anders aus allerdings werden keine Werte angezeigt sondern lediglich eine 0,00 ausgegeben. Die Antworten hängen auch stark von der Intervallzeit ab die ich jetzt auf 10ms gesetzt habe. Längere Zeiten rufen sporadisch wieder NOTFORUS hervor.
Es kommt was zurück aber leider kann ich das nicht interpretieren, weil ich den Satzaufbau nicht kenne. Die Erste Adresse (40C) sollte die Spannung sein, die zweite (418) der aktuelle Strom der vermutlich wirklich 0 ist weil keine Last dran hängt.
Was kann ich noch vergessen haben einzustellen?

Gruß - Ralph

NACHTRAG: ich habe jetzt mal von Float auf INT32 umgestellt und siehe da - jetzt werden zumindest Zahlen angezeigt. Heißt das jetzt, dass der DS100 nur mit INT Zahlen umgehen kann und ich die Werte die da rauskommen entsprechend umrechnen muss? Wenn ich den Wert für Spannung durch 1.000 teilen lasse sieht das Ergebnis zumindest plausibel aus …

Nachtrag2: jetzt habe ich´s kapiert, die anderen Werte scheinen auch zu kommen. Ich mache das mal fertig und stelle das Teil dann als Vorlage zur Verfügung.

Besten Dank nochmal für die Hilfe!

2 „Gefällt mir“

Wenn ich die Beiträge richtig interpretiere, dann hast du den DS100-00B über Waveshare angebunden, korrekt?

Ich habe vorhin ziemlich viel ausprobiert, aber Daten über Modbus bekomme ich nicht. S0 liefern beide.

Moin Ralph,

bist du damit irgendwie weiter gekommen?

EIn kleines bischen Erfolg hatte ich immerhin, es kommen Werte, aber die meisten sind Quatsch.

Wenn ich die folgenden Daten richtig interpretiere

dann sollten die Werte entsprechend der Konfiguration

etwas sinnvolles liefern, aber die Spannungen sind falsch und auch „Active Power“ kann nicht so hoch sein. Laut S0 Zähler liege ich bei ca. 580-
590 Watt, was passen sollte.

Nur die Frequenzen passen.

Vielleicht hat der kleine Drache @Nall-chan noch eine Idee, falls sich @netuser nicht meldet.

Mein Bauchgefühl sagt mir die Endianess (LSB, MSB) ist falsch. Dafür gibt es in der Symcon Instanz irgendwo einen Schalter.

Zudem hast du UINT32 ausgewählt, aber das sieht bzgl. Registergröße (eine Adresse hat 1 Wort, 2 Adressen also zwei Wörter = 16bit) aus. Würde spaßeshalber auch mal mit UINT16 als Typ probieren.

Ich empfehle immer Online Modbus RTU Parser & Modbus TCP Parser

Nachtrag: Ein Wort hat natürlich 2 Byte = 16 bit. Ich habe hier eben was falsches geschrieben.

Kann auch sein das die Adresse immer einer weniger sind. Also statt 1025, 1024 was ja Hex 400 ist.
Michael

Danke, das funktioniert bei den Spannungen, bei den Leistungen nicht so richtig. Ich teste morgen weiter, auch Tobias Ansatz.

Update
Bei der Leistung geht es auch, das UINT war natürlich falsch, es kann ja negative Werte geben und mit dem Register eins kleiner kommt etwas sinnvolles, auch passend zu den S0 Zählern.

Danke :smiley:

Moin Ralf,

sorry, habe den Post erst jetzt gesehen.
Bei mir laufen folgende Einstellungen, maßgeblich waren die korrekte Umrechnung der Adresse und die Tatsache, dass der DS100 nur INT ausgibt. Weitere Register habe ich bislang nicht ausgelesen weil noch nicht notwendig. Vielleicht mache ich mich irgendwann mal an die Kür :wink:

Gruß - Ralph

1 „Gefällt mir“

Ach ja, das sieht dann so aus …

Gruß - Ralph

1 „Gefällt mir“

Danke für eure Hinweise, ich bin ein großes Stück weiter und kann bei Interesse auch die Modbus JSON für den DS100 in en-de bereitstellen, aber sie ist nicht vollständig.

Der DS100-00B ist ein Zweirichtungszähler und über S0 bekomme ich auch getrennte Impulse. Aber in den Modbus Registern finde ich nichts wirklich passendes.

„active power“ über die Phasen und Combined liefert positiv bzw. negativ, was auch von den Werten her passt.

Gemäß LCD Anzeige am Zähler gibt es in kWh

  • Wirkleistung Gesamt (Total)
  • Wirkleistung Bezug (Import)
  • Wirkleistung Abgabe (Export)

auch im Modbus
grafik

Aber die Wirkleistung in Watt gibt es scheinbar im Modbus nicht getrennt, nur als negativ oder positiv.

Vergleichbar in Watt finde ich nur

  • Combined Forward Active demand
  • Combined Reverse Active Demand
  • Combined Active Demand

Die Werte sind aber „sonderbar“, werden immer aktualisiert, ändern sich aber sehr langsam.

Was genau sind das für Werte bzw. was bedeutet das „demand“ dabei?

Aktuell z.B.
grafik

grafik

DIe Doku findet sich beim Hersteller
https://stromzähler.eu/stromzaehler/drehstromzaehler/fuer-hutschiene-geeicht/246/sdm72dm-v2-mid-3-phasen-zweirichtungs-drehstromzaehler-mit-rs485-und-s0

Wie meinst du das? Die Momentanleistung kann nur positiv oder negativ sein, aber nicht beides gleichzeitig. Das ist also Physik und keine Limitierung des Zählers.

Über S0 bekomme ich die Impulse, die entsprechend vom IPS-868 umgerechnet werden
grafik

Deshalb war eigentlich meine Erwartung, dass ich von so einem Hightech-Zähler auch die aktuellen Werte zu Import, Export und Total bekomme.

Das scheint aber nicht so zu sein.

Dann muss ich sie mir aus den drei Phasen im Sinne von positiv bzw. negativ selber berechnen.

Ich verstehe deinen Gedankengang nicht. Also aus elektrotechnischer Sicht, meine ich.

Der Strom jeder Phase ist die Summe aus Bezug und Einspeisung, diese beiden Anteile des Momentanstroms kann man nicht getrennt messen. Das geht einfach physikalisch nicht, man kann nur den resultierenden Strom messen, auch mit den teuersten Labormessgeräten.