NEWS
Modbus RS485 Tutorial/Einstieg gesucht
-
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Dummerweise stehen die da nicht.
doch!
https://stromzähler.eu/media/pdf/0e/ca/1d/SDM230-Modbus.pdf -
@homoran sagte in Modbus RS485 Tutorial/Einstieg gesucht:
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Dummerweise stehen die da nicht.
doch!
https://stromzähler.eu/media/pdf/0e/ca/1d/SDM230-Modbus.pdfOoooh, danke, damit werde ich es später probieren. Beim Zähler selbst ist nur ein ca. Din-A3 Blatt großes gefaltetes "User Manual V1.8" dabei.
Auf Seite 20 des Manuals V1.4 sehe ich, dass man wohl mehrere Modbus Geräte in Reihe schalten kann.
Beim Modbus Adapter kann man zwar "mehrere Geräte IDs" aktivieren, aber unter "Allgemein" "Geräte ID" kann ich nur eine ID angeben. Wie gebe ich da mehrere Geräte ein?
Beim SDM230 kann man ja die seriellen Parameter wie Baudrate, Parität ändern sowie die ID ändern. Beim DDM180 (falls ich für den auch so eine Anleitung finde) scheinen diese Parameter fest vorgegeben zu sein (jedenfalls gibt es keinen Knopf auf dem Zähler wo ich etwas ändern kann und beim Einschalten steht "Add 013" was wohl die Adresse ist).
Ich vermute mal, dass man keine zwei Geräte zusammenschalten kann, die entweder (fest) die gleiche Adresse haben oder (fest) unterschiedliche seriellen Parameter haben. -
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
dass man wohl mehrere Modbus Geräte in Reihe schalten kann.
Beim Modbus Adapter kann man zwar "mehrere Geräte IDs" aktivieren, aber unter "Allgemein" "Geräte ID" kann ich nur eine ID angeben. Wie gebe ich da mehrere Geräte ein?nicht in Reihe!!!
die müssen parallel geschaltet werden. Ist ja ein Bus.wenn du mehrere IDs aktivierst erscheint eine Spalte ID
Die Geräte müssen aber vor der Anbindung an den Bus richtig konfiguriert sein.
-
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
falls ich für den auch so eine Anleitung finde
finden setzt Suchen voraus!
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Beim DDM180
den finde ich gar nicht.
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
scheinen diese Parameter fest vorgegeben zu sein
mag sein, dürfte der Nummer nach auch extrem lowcost sein.
Dann müssen alle anderen im Bus auf die selben Übertragungsparameter eingestellt werden
-
@homoran sagte in Modbus RS485 Tutorial/Einstieg gesucht:
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
falls ich für den auch so eine Anleitung finde
finden setzt Suchen voraus!
Ich habe gesucht.
Gefunden habe ich bisher folgendes:
https://www.aggsoft.com/serial-data-logger/tutorials/modbus-data-logging/noname-ddm18sd-mmd18sd.htmDa weiß ich aber noch nicht wie ich aus dem Modbus Offset auf die Adressen komme.
https://www.re-innovation.co.uk/docs/talking-to-a-ddm18sd-energy-meter/
Da scheint es jemand geschafft zu haben, wie die Adressen lautet sehe ich darin aber auch nicht.
In
https://github.com/re-innovation/DDM_Energy_Meterfangen die Adressen auch bei 0 an.
https://github.com/digimp/DDM18SD
hat etwas mit Tasmota gemacht.
https://registry.platformio.org/libraries/reaper7/SDM
Macht das auch irgendwie ohne diese Adressen.
Aber auf
https://www.aggsoft.com/serial-data-logger/tutorials/modbus-data-logging/eastron-sdm230.htmFinde ich auch die Adressen des 230 als Offset und hier kenne ich ja die Absolutadressen.
Der Strom des 230 ist ja 30007 und als 2Offset" wird 6 angegeben. Beim DDM118 ist der Offset für den Strom 8, kann ich dann einfah daon ausgehen, dass die Adresse dann 30009 ist?Bei einigen anderen Zählern habe ich noch Low und High Adressen gefunden. Kann man die in "Gesamtadressen" umrechnen?
-
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Beim DDM118
ist das der vorhin als
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
DDM180
bezeichnete, den ich nirgends finden konnte?
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Da weiß ich aber noch nicht wie ich aus dem Modbus Offset auf die Adressen komme.
was ist das jetzt?
Wo hast du Offset her?
Wie willst du alleine aus einem Offset eine Adresse erraten?@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
fangen die Adressen auch bei 0 an.
wäre möglich. muss aber nicht
üblich für Inputregister
Adresse 1 offset 30001 -> 30002
das kann aber auch +/- 1 sein@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Der Strom des 230 ist ja 30007 und als 2Offset" wird 6 angegeben
wo steht das denn?
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Kann man die in "Gesamtadressen" umrechnen?
gib einfach die Adressen aus der Liste ein und gut ist
EDIT:
Das hier sind jetzt dreiphasige Zähler
1 ist SDM630 und 2 ist SDM72
-
@wolfgangfb gibt es noch eine Antwort auf
@homoran sagte in Modbus RS485 Tutorial/Einstieg gesucht:
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Beim DDM118
ist das der vorhin als
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:DDM180
bezeichnete, den ich nirgends finden konnte?
ich kann unter beiden Bezeichnungen keine Stromzähler finden.
-
@homoran
So, ich war jetzt insgesamt ziemlich erfolgreich.
Zuerst habe ich mich um den SDM230 gekümmert (von dem stehen ja die Adressen in der Doku).
In der Konfiguration vom Modbus Adapter habe ich folgende Einstellungen gemacht:Den Port habe ich über den Befehl
pi@raspberrypi:~ $ ls -l /dev/serial/by-id insgesamt 0 lrwxrwxrwx 1 root root 13 19. Jun 21:13 usb-FTDI_FT232R_USB_UART_AB0LZNDF-if00-port0 -> ../../ttyUSB2 lrwxrwxrwx 1 root root 13 10. Mai 13:19 usb-Silicon_Labs_WiMOD_iM871A-usb_00919907-if00-port0 -> ../../ttyUSB1
herausgefunden.
Zuerst gab es keine Verbindung, dann habe ich zusätzlich den empfohlenen Widerstand ib die Leitung gelötet (100 Ohm, 120 habe ich nicht gehabt). Dann hat der Adapter auch gleich auf gelb und dann auf grün geschaltet. In die Objekte geschaut, die Datenpunkte sind da, aber keine Werte (alle 0), wieder in die Instanzen geschaut und der Adapter war auf einmal gelb. Dann die beiden Kabel am RS485 auf USB Adapter getauscht und der erste Erfolg war da, der Adapter blieb grün und die Werte vom Stromzähler wurden übermittelt (wobei Blind und Wirkleistung meiner Meinung nach vertauscht sind, eine alte Glühbirne mit Wolframfaden hat meiner Meinung nach keine Blind sondern nur Wirkleistung, es wird aber nur Blindleistung angezeigt).
Das ist für mich der erste echte Knackpunkt dass der Adapter kurzzeitig grün anzeigt, und dann nach ein paar Sekunden auf gelb springt. Wenn man bei grün sofort denkt "alles OK" leigt man falsch.
Was mich auch verwundert ist, dass es auch die Polarität des Anschlusses ankommt. Ich hätte jetzt gedacht, da es bei RS485 nur um die Spannungsdifferenz zwischen A und B geht, dass die Polarität egal ist, aber ok.
Dann als nächstes versucht einen DDS548 anzuschprechn.
Den also an die gleiche Leitung gehängt und zusätzlich bei den Objekten die Spannung 30001 mit der Adresse 12 anzuzeigen. Erstes Ergebnis: Adapter bleibt rot.
Dann eine zweite Instanz des Modbus Adapters instlliert und nur diesen Zähler eingerichtet. Ergebnis: Adaper wird gelb, dann grün und dann wieder gelb.
Also wieder die Adern vertauscht und der Adapter wurde grün! Wenn also auf dem gesamten Bus nur ein einziger Zähler falsch angeschlossen ist wird der Adapter rot bleiben. Also am besten erestmal jedes Gerät für sich richtig einrichten und dann kann man auch mehrere IDs in einer Instanz auslesen.
Da ich zu diesem Zähler absolut nichts braucbares im Netz gefunden habe, habe ich mal mit den Werten ausaus dem Abschnitt REGISTERS LIST FOR DDM DEVICE experimentiert (DDS gibt es dort nicht).
Dort steht z.B.#define DDM_PHASE_1_VOLTAGE 0x0000 // V | 1 | #define DDM_PHASE_1_CURRENT 0x0008 // A | 1 | #define DDM_PHASE_1_POWER 0x0012 // W | 1 | #define DDM_PHASE_1_REACTIVE_POWER 0x001A // VAr | 1 | #define DDM_PHASE_1_POWER_FACTOR 0x002A // | 1 | #define DDM_FREQUENCY 0x0036 // Hz | 1 | #define DDM_IMPORT_ACTIVE_ENERGY 0x0100 // kWh | 1 | #define DDM_IMPORT_REACTIVE_ENERGY 0x0400 // kVArh | 1 |
also habe ich mal zu allen Werten 30001 dazugezählt (also 30009 für den Strom) und siehe da, das ganze funktioniert.
Jetzt zum Problemkind DDM18SD
Da musste ich die Parität von "none" auf "even" ändern. Da die Github Seite ja nur von DDM devices spricht habe ich einfach mal die gleichen Adressen wie beim DDS genommen und auch das hat funktioniert.
Jetzt weiß ich nur noch nicht, wie ich bei diesem Gerät intern die Parität ändern kann. Beim SDM230 git es die Adresse "40019 Write the network port parity/stop bits for MODBUS
Protocol". Aber selbst wenn ich diese Adresse für DDM Devices kennen würde, wie schreit man da etwas? Kann ich die bei "Diskrete Ausgänge" alegen und dann ändern? Das muss ich noch herausfinden.Was mir noch beim DDM18 aufgefallen ist, ist dass das ganze nicht sonderlich stabil ist. Mal war der Adapter minutenlang grün und schön die Werte angezeigt, dass ist er wieder mal 5 Minuten auf gelb gegangen und hat nichts aktualisiert, dann ging er plötzlich wieder.
Die Maximale Kabellänge soll ja im Kilometerbereich liegen und da bin ich weit davon entfernt. -
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Was mich auch verwundert ist, dass es auch die Polarität des Anschlusses ankommt.
siehe von mir verlinkte Anleitung.
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
dass der Adapter kurzzeitig grün anzeigt, und dann nach ein paar Sekunden auf gelb springt.
dann hat er Verbindung, läuft aber in ein Timeout und bekommt nichts zurück.
steht dann aber im log@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Da musste ich die Parität von "none" auf "even" ändern
dann kannst du ihn nicht am selben Bus betreiben.
-
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Was mich auch verwundert ist, dass es auch die Polarität des Anschlusses ankommt. Ich hätte jetzt gedacht, da es bei RS485 nur um die Spannungsdifferenz zwischen A und B geht, dass die Polarität egal ist, aber ok.
Hatte ich Dir doch schon am 31.05. https://forum.iobroker.net/post/808027 geschrieben.
Es gibt mittlerweile aber tatsächlich Bausteine von TI, die eine Vertauschung erkennen und korrigieren. Sind aber nicht in den billigen Zählern eingebaut. Wahrscheinlich auch nicht in den teuren.
-
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
wie schreit man da etwas?
steht in der Anleitung
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
40019 Write t
40000er sind Holdingregister
-
@homoran sagte in Modbus RS485 Tutorial/Einstieg gesucht:
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
Was mich auch verwundert ist, dass es auch die Polarität des Anschlusses ankommt.
siehe von mir verlinkte Anleitung.
Welche Anleitung meinst Du? Die des SDM230?
@wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:
dass der Adapter kurzzeitig grün anzeigt, und dann nach ein paar Sekunden auf gelb springt.
dann hat er Verbindung, läuft aber in ein Timeout und bekommt nichts zurück.
steht dann aber im logIch könnte mir vorstellen, dass es anderen so wie mir ergeht, ich sehe "grün", freue mich, dass alles klappt und klicke auf den nächsten Brower-Tab mit den Objekten und wundere mich, dass da nichts passiert, deshalb habe ich diesen (aus meiner Sicht vorhandenen) Stolperstein hier erwähnt.