NEWS
Modbus Adapter: Holding Register schreiben
-
Laut der Doku meines Stromzählers https://stromzähler.eu/media/pdf/0e/ca/1d/SDM230-Modbus.pdf ist das Holding Register 40019 für die Network Parity verantwortlich. Es ist angegeben: Data Format:float(length:4 byte)
Wenn ich das im Adapter unter Holding Register eintrage erscheint zwar ein Objekt in den Objekten, als Wert aber immer "(null)". Wie zeigt man so einen Wert in den Objekten richtig an?
Wie ist das zu verstehen, dass die Länge 4 Byte ist, das nächste Register aber schon bei 40021 anfängt?
Weiter unten (Seite 17) sind dann Register mit der Adresse 462721 und höher angegeben. Ich hatte das so verstanden, dass die Holding Register"nur" von 40001 bis 50000 gehen.
-
@wolfgangfb offtopic
-
@wolfgangfb Noch ein Thread??
die ganzen Feinheiten regelt der Adapter, wenn du die Register und Typen korrekt eingibst.
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wenn ich das im Adapter unter Holding Register eintrage erscheint zwar ein Objekt in den Objekten, als Wert aber immer "(null)". Wie zeigt man so einen Wert in den Objekten richtig an?
willst du jetzt schreiben oder anzeigen?
entsprechend konfigurieren
-
@homoran sagte in Modbus Adapter: Holding Register schreiben:
@wolfgangfb Noch ein Thread??
Ja, der letzte Thread war "Einstieg gesucht", den habe ich ja, jetzt geht es um Details. Sonst bekommt man immer einen nschiß, wenn man keinen aussagekräftigen Betreff wählt.
die ganzen Feinheiten regelt der Adapter, wenn du die Register und Typen korrekt eingibst.
Kannst Du mir (und vielleicht auch anderen die das auch nicht wissen) sagen, wie man das korrekt eingibt?
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wenn ich das im Adapter unter Holding Register eintrage erscheint zwar ein Objekt in den Objekten, als Wert aber immer "(null)". Wie zeigt man so einen Wert in den Objekten richtig an?
willst du jetzt schreiben oder anzeigen?
Ich hätte jetzt erwartet, dass so ein Register, dass zum Lesen und Schreiben geeignet ist (so verstehe ich read/write) sowohl den bestehenden Wert anzeigt als auch geeändert werden kann. Bitte korrigiere mich wenn ich da falsch liege.
entsprechend konfigurieren
Toll, wenn ich wüsste wie das geht hätte ich nicht hier nachgefragt. Wenn Du weißt, wie man das entsprechend konfiguriert fände ich es nett, wenn Du es anderen und mir auch mitteilen würdest.
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
wie man das korrekt eingibt?
was?
Adresse und Typ gemäß Dokumentation des Geräts, die du mit dem Gerät bekommen hast.@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wenn Du weißt, wie man das entsprechend konfiguriert fände ich es nett, wenn Du es anderen und mir auch mitteilen würdes
wenn du mir deinen Screenshot zeigst mach ich das.
Hab auf dem Handy keine ioBroker Installation.@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Ich hätte jetzt erwartet, dass so ein Register, dass zum Lesen und Schreiben geeignet ist (so verstehe ich read/write) sowohl den bestehenden Wert anzeigt als auch geeändert werden kann.
nicht unbedingt.
ich habe Geräte, da gibst du die Adresse des Holding registers nochmal unter Inputregister ein und bekommst die Werte, nachdem du unter Holdingregister etwas eingegeben hast. Dort erscheint null
Oder du aktivierst dort Auslesen (o.ä.)
dachte das wäre selbsterklärend -
@homoran sagte in Modbus Adapter: Holding Register schreiben:
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
wie man das korrekt eingibt?
was?
Adresse und Typ gemäß Dokumentation des Geräts, die du mit dem Gerät bekommen hast.Na ja, mit dem Gerät kommt ein Faltzettel auf dem keine Adresse steht. Im Internet finde ich eine deutschsprachige Anleitung mit Input-Registern, in der englischsprachigen Anleitung sind zusätzlich die Holding Register.
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wenn Du weißt, wie man das entsprechend konfiguriert fände ich es nett, wenn Du es anderen und mir auch mitteilen würdes
wenn du mir deinen Screenshot zeigst mach ich das.
Hier die Holding Register laut Anleitung:
Meie Holding Einstellungen:
Meine Objekte
(Da ich über die Baudrate 9600 mit dem Teil kommunizieren kann hätte ich erwartet, dass da 2 für 9600 steht)
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Ich hätte jetzt erwartet, dass so ein Register, dass zum Lesen und Schreiben geeignet ist (so verstehe ich read/write) sowohl den bestehenden Wert anzeigt als auch geeändert werden kann.
nicht unbedingt.
ich habe Geräte, da gibst du die Adresse des Holding registers nochmal unter Inputregister ein und bekommst die Werte, nachdem du unter Holdingregister etwas eingegeben hast. Dort erscheint null
Oder du aktivierst dort Auslesen (o.ä.)
dachte das wäre selbsterklärendFür mich nicht. Wie aktiviert man "Auslesen"
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wie aktiviert man "Auslesen"
indem man die Checkbox "Abfragen" (sorry, nicht "Auslesen") aktiviert.
Aber nochmal, warum brauchst duvdas wenn du Schreiben willst?
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Da ich über die Baudrate 9600 mit dem Teil kommunizieren kann hätte ich erwartet, dass da 2 für 9600 steht)
wieso 2?
Aber anscheinend funktioniert es hier nicht Holdingregister über die Inputregister auszulesen
der Wert ist in orange gehalten, was bedeutet, dass ed der initiale Wert ist und noch nie angepasst wurde. -
@homoran sagte in Modbus Adapter: Holding Register schreiben:
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Wie aktiviert man "Auslesen"
indem man die Checkbox "Abfragen" (sorry, nicht "Auslesen") aktiviert.
OK, habe ich gemacht, hat nicht funktioniert.
Aber nochmal, warum brauchst duvdas wenn du Schreiben willst?
Im Endeffekt brauche ich nur schreiben, hätte eben gedacht, dass ich da auch die eingestellten WErte sehen kann. Einige der Parameter kann man z.B. nicht über das Menü erreichen.
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Da ich über die Baudrate 9600 mit dem Teil kommunizieren kann hätte ich erwartet, dass da 2 für 9600 steht)
wieso 2?
40029
Write the network port baud rate
for MODBUS Protocol, where:
0 = 2400 bps( default). 1 =
4800 bps.
2 = 9600 bps.
5=1200 bps
Data Format:float(length:4
byte)Und 9600 sind eingestellt und damit funktioniert es. Ich habe mal den Wert auf 1 geändert (sollte dann 4800 baud sein), aber das kommt im Zähler nicht an, der kommuniziert immer noch mit 9600.
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
OK, habe ich gemacht, hat nicht funktioniert.
und nichts im debug-log?
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Einige der Parameter kann man z.B. nicht über das Menü erreichen.
dann glaube ich auch erst recht nicht, dass sie per Modbus verstellbar sind.
aber dann sollte/könnte/müsste was im debug-log stehen.@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
aber das kommt im Zähler nicht an,
und was steht im debug-log?
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Write the network port baud rate
for MODBUS Protocolist das die Anleitung für exakt diesen Zähler?
Du hast einen Zoo verschiedenster Zähler. Warum nimmst du nicht alles gleiche vernünftige Zähler mit ordentlicher Dokumentation und ggf. Support beim Händler?
-
@homoran sagte in Modbus Adapter: Holding Register schreiben:
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
OK, habe ich gemacht, hat nicht funktioniert.
und nichts im debug-log?
Hier der Log:
2023-06-23 13:04:37.244 - [32minfo[39m: host.raspberrypi instance system.adapter.modbus.0 started with pid 28838 2023-06-23 13:04:38.768 - [34mdebug[39m: modbus.0 (28838) Redis Objects: Use Redis connection: 127.0.0.1:9001 2023-06-23 13:04:38.864 - [34mdebug[39m: modbus.0 (28838) Objects client ready ... initialize now 2023-06-23 13:04:38.867 - [34mdebug[39m: modbus.0 (28838) Objects create System PubSub Client 2023-06-23 13:04:38.869 - [34mdebug[39m: modbus.0 (28838) Objects create User PubSub Client 2023-06-23 13:04:39.080 - [34mdebug[39m: modbus.0 (28838) Objects client initialize lua scripts 2023-06-23 13:04:39.092 - [34mdebug[39m: modbus.0 (28838) Objects connected to redis: 127.0.0.1:9001 2023-06-23 13:04:39.176 - [34mdebug[39m: modbus.0 (28838) Redis States: Use Redis connection: 127.0.0.1:9000 2023-06-23 13:04:39.264 - [34mdebug[39m: modbus.0 (28838) States create System PubSub Client 2023-06-23 13:04:39.266 - [34mdebug[39m: modbus.0 (28838) States create User PubSub Client 2023-06-23 13:04:39.410 - [34mdebug[39m: modbus.0 (28838) States connected to redis: 127.0.0.1:9000 2023-06-23 13:04:39.897 - [34mdebug[39m: modbus.0 (28838) Plugin sentry Initialize Plugin (enabled=true) 2023-06-23 13:04:41.476 - [32minfo[39m: modbus.0 (28838) starting. Version 4.0.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.17.1, js-controller: 4.0.23 2023-06-23 13:04:41.909 - [34mdebug[39m: modbus.0 (28838) Initialize Objects for disInputs: [] 2023-06-23 13:04:41.910 - [34mdebug[39m: modbus.0 (28838) Initialize Objects for coils: [] 2023-06-23 13:04:41.911 - [34mdebug[39m: modbus.0 (28838) Initialize Objects for inputRegs: [{"_address":30001,"name":"Spannung","description":"","unit":"Volt","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":0,"deviceId":1,"id":"inputRegisters.1.30001_Spannung"},{"_address":30007,"name":"Stromstärke","description":"","unit":"A","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":6,"deviceId":1,"id":"inputRegisters.1.30007_Stromstärke"},{"_address":30013,"name":"Wirkleistung","description":"","unit":"W","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":12,"deviceId":1,"id":"inputRegisters.1.30013_Wirkleistung"},{"_address":30019,"name":"Scheinleistung","description":"","unit":"VA","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":18,"id":"inputRegisters.1.30019_Scheinleistung"},{"_address":30025,"name":"Blindleistung","description":"","unit":"VAr","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":24,"id":"inputRegisters.1.30025_Blindleistung"},{"_address":30071,"name":"Frequenz","description":"","unit":"Hz","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":70,"id":"inputRegisters.1.30071_Frequenz"},{"_address":30073,"name":"Import active energy","description":"","unit":"kWh","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":72,"id":"inputRegisters.1.30073_Import_active energy"},{"_address":30075,"name":"Export active energy","description":"","unit":"kWh","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":74,"id":"inputRegisters.1.30075_Export_active energy"},{"_address":30085,"name":"Total system power demand","description":"","unit":"W","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":84,"id":"inputRegisters.1.30085_Total_system power demand"},{"_address":30087,"name":"Maximum total system power demand","description":"","unit":"W","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","deviceId":1,"address":86,"id":"inputRegisters.1.30087_Maximum_total system power demand"},{"_address":40029,"deviceId":1,"name":"Baud Rate","description":"","unit":"","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":10028,"id":"inputRegisters.1.40029_Baud_Rate"},{"_address":40087,"deviceId":1,"name":"Pulse1 Energy Type","description":"","unit":"","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":10086,"id":"inputRegisters.1.40087_Pulse1_ Energy Type"}] 2023-06-23 13:04:41.924 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30001_Spannung: {"_id":"inputRegisters.1.30001_Spannung","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"Volt"},"native":{"regType":"inputRegs","address":0,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.925 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30007_Stromstärke: {"_id":"inputRegisters.1.30007_Stromstärke","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"A"},"native":{"regType":"inputRegs","address":6,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.926 - [34mdebug[39m:modbus.0 (28838) Add inputRegisters.1.30013_Wirkleistung: {"_id":"inputRegisters.1.30013_Wirkleistung","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"W"},"native":{"regType":"inputRegs","address":12,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.928 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30019_Scheinleistung: {"_id":"inputRegisters.1.30019_Scheinleistung","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"VA"},"native":{"regType":"inputRegs","address":18,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.931 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30025_Blindleistung: {"_id":"inputRegisters.1.30025_Blindleistung","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"VAr"},"native":{"regType":"inputRegs","address":24,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.932 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30071_Frequenz: {"_id":"inputRegisters.1.30071_Frequenz","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"Hz"},"native":{"regType":"inputRegs","address":70,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.935 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30073_Import_active energy: {"_id":"inputRegisters.1.30073_Import_active energy","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"kWh"},"native":{"regType":"inputRegs","address":72,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.936 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30075_Export_active energy: {"_id":"inputRegisters.1.30075_Export_active energy","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"kWh"},"native":{"regType":"inputRegs","address":74,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.938 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30085_Total_system power demand: {"_id":"inputRegisters.1.30085_Total_system power demand","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"W"},"native":{"regType":"inputRegs","address":84,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.940 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.30087_Maximum_total system power demand: {"_id":"inputRegisters.1.30087_Maximum_total system power demand","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":"W"},"native":{"regType":"inputRegs","address":86,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.941 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.40029_Baud_Rate: {"_id":"inputRegisters.1.40029_Baud_Rate","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10028,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.942 - [34mdebug[39m: modbus.0 (28838) Add inputRegisters.1.40087_Pulse1_ Energy Type: {"_id":"inputRegisters.1.40087_Pulse1_ Energy Type","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10086,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1}} 2023-06-23 13:04:41.944 - [34mdebug[39m: modbus.0 (28838) Initialize Objects for holdingRegs: [{"_address":40029,"deviceId":1,"name":"Baud Rate","description":"","unit":"","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"state","room":"","poll":true,"wp":"","cw":"","isScale":"","address":28,"id":"holdingRegisters.1.40029_Baud_Rate"},{"_address":40087,"deviceId":1,"name":"Pilse","description":"","unit":"","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"state","room":"","poll":true,"wp":"","cw":"","isScale":"","address":86,"id":"holdingRegisters.1.40087_Pilse"}] 2023-06-23 13:04:41.946 - [34mdebug[39m: modbus.0 (28838) Add holdingRegisters.1.40029_Baud_Rate: {"_id":"holdingRegisters.1.40029_Baud_Rate","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":28,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1,"poll":true}} 2023-06-23 13:04:41.947 - [34mdebug[39m: modbus.0 (28838) Add holdingRegisters.1.40087_Pilse: {"_id":"holdingRegisters.1.40087_Pilse","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":86,"deviceId":1,"type":"floatbe","len":2,"offset":0,"factor":1,"poll":true}} 2023-06-23 13:04:43.044 - [34mdebug[39m: modbus.0 (28838) connect to serial /dev/ttyUSB2 with 9600 2023-06-23 13:04:43.053 - [32minfo[39m: modbus.0 (28838) Connected to slave 2023-06-23 13:04:43.054 - [34mdebug[39m: modbus.0 (28838) [DevID_1] Poll start --------------------- 2023-06-23 13:04:43.056 - [34mdebug[39m: modbus.0 (28838) Initialization of scale factors done! 2023-06-23 13:04:43.057 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 0 - 26 registers 2023-06-23 13:04:43.175 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 0 DONE 2023-06-23 13:04:43.179 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 70 - 18 registers 2023-06-23 13:04:43.253 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 70 DONE 2023-06-23 13:04:43.258 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 10028 - 2 registers 2023-06-23 13:04:48.257 - [33mwarn[39m: modbus.0 (28838) Poll error count: 1 code: "App Timeout" 2023-06-23 13:04:48.260 - [33mwarn[39m: modbus.0 (28838) Error: undefined 2023-06-23 13:04:48.264 - [31merror[39m: modbus.0 (28838) Request timed out. 2023-06-23 13:04:49.267 - [32minfo[39m: modbus.0 (28838) Disconnected from slave 2023-06-23 13:04:49.274 - [34mdebug[39m: modbus.0 (28838) Clearing timeout of the current request. 2023-06-23 13:04:49.275 - [34mdebug[39m: modbus.0 (28838) Cleaning up request fifo. 2023-06-23 13:04:58.796 - [34mdebug[39m: modbus.0 (28838) state Changed ack=false: modbus.0.holdingRegisters.1.40029_Baud_Rate: {"val":1,"ack":false,"ts":1687518298789,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1687518298789} 2023-06-23 13:05:49.270 - [34mdebug[39m: modbus.0 (28838) connect to serial /dev/ttyUSB2 with 9600 2023-06-23 13:05:49.280 - [32minfo[39m: modbus.0 (28838) Connected to slave 2023-06-23 13:05:49.282 - [34mdebug[39m: modbus.0 (28838) [DevID_1] Poll start --------------------- 2023-06-23 13:05:49.282 - [34mdebug[39m: modbus.0 (28838) [DevID_1/inputRegs] Poll address 0 - 26 registers 2023-06-23 13:05:54.286 - [33mwarn[39m: modbus.0 (28838) Error: undefined 2023-06-23 13:05:54.287 - [31merror[39m: modbus.0 (28838) Request timed out. 2023-06-23 13:05:54.287 - [31merror[39m: modbus.0 (28838) Cannot write multiple registers [28]: {"err":"timeout","timeout":5000} 2023-06-23 13:05:54.483 - [33mwarn[39m: modbus.0 (28838) Poll error count: 2 code: "App Timeout" 2023-06-23 13:05:55.288 - [32minfo[39m: modbus.0 (28838) Disconnected from slave 2023-06-23 13:05:55.292 - [34mdebug[39m: modbus.0 (28838) Clearing timeout of the current request. 2023-06-23 13:05:55.292 - [34mdebug[39m: modbus.0 (28838) Cleaning up request fifo.
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Einige der Parameter kann man z.B. nicht über das Menü erreichen.
dann glaube ich auch erst recht nicht, dass sie per Modbus verstellbar sind.
aber dann sollte/könnte/müsste was im debug-log stehen.Ich habe z.B. im Menü nichts gefunden wie man den "Measurement mode" einstellt. Laut Anleitung kann man das aber über das Register 463776 (wie geht das überhaaupt 6-stellig?) einstellen:
0001:mode 1(total = import)
0002:mode 2(total = import- export) (default)
0003:mode 3 (total = import -
export)
Data Format:Hex(length:2
byte)
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
aber das kommt im Zähler nicht an,
und was steht im debug-log?
siehe oben.
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Write the network port baud rate
for MODBUS Protocolist das die Anleitung für exakt diesen Zähler?
Ja, das ist der SDM230 und genau davon ist die Anleitung.
Du hast einen Zoo verschiedenster Zähler. Warum nimmst du nicht alles gleiche vernünftige Zähler mit ordentlicher Dokumentation und ggf. Support beim Händler?
Genau das habe ich ja gemacht. Ich hatte den DDS548 und den DDM18 und nichts vernünftige darüber gefunden, deshalb habe ich mir den SDM230 gekauft für den es die Anleitung im Netz gibt. Da ich die DDS und DDM eben jetzt auch habe würde ich die ungern wegwerfen sondern verwendeen.
Den SDM230 und den DDS548 könnte ich von Hand auf "even" Parität umstellen so dass die zusammen mit dem DDM (da gibt es am Gerät keine Einstellmöglichkeit) am gleichen Bus arbeiten. Was aber dann immer noch nicht gehen würde ist die Adresse der DDM zu ändern (bei den DDS und SDM kann man die per Menü oder theoretische über die Holding Register ändern, ich habe hier 3 DDM18 und die sind dummerweise alle auf die gleiche Adresse eingestellt).
Von daher war mein Gedanke erstmal bei dem dokumentierten Gerät (SDM230) über die Holding Register so eine Einstellung wie Parität oder Adresse zu ändern und wenn das gelingt nach dem Holding Register des DDM18 für die Adresse zu suchen und diese dann auf unterschiedliche Adressen zu stellen. Wenn man die DDM18 an die Stromversorgung anschließt zeigen die im Display zuerst die Baudrade und die Adresse an. - export) (default)
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
2023-06-23 13:04:43.054 - [34mdebug[39m: modbus.0 (28838) [DevID_1] Poll start -------------------
ab da wird es interessant
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
2023-06-23 13:04:48.260 - [33mwarn[39m: modbus.0 (28838) Error: undefined
und
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
2023-06-23 13:04:48.264 - [31merror[39m: modbus.0 (28838) Request timed out.
kann ich keinen Adressen zuordnen, da anscheinend sehr viele Adressen abgefragt werden.
Man fängt mit einer Adresse an und wartet bis das stabil läuft.
Dann fügt man eine nach der anderen zu und beobachtet jedesmal das log, bis eine Fehlermeldung auftritt.
Dann weiss mannzu welchem Eintrag die gehört.@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Da ich die DDS und DDM eben jetzt auch habe würde ich die ungern wegwerfen sondern verwendeen.
die kenne ich nicht.
Ich vermute mal dass das ganz billige abgespeckte Geräte sind, die womöglich nichtmal die allgemeinen Spezifikationen erfüllen.
Was sagt denn der Händler dazu?@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Den SDM230 und den DDS548 könnte ich von Hand auf "even" Parität umstellen
ich hab keine Ahnung, ob dann überhaupt noch was läuft.
-
@homoran sagte in Modbus Adapter: Holding Register schreiben:
Man fängt mit einer Adresse an und wartet bis das stabil läuft.
Dann fügt man eine nach der anderen zu und beobachtet jedesmal das log, bis eine Fehlermeldung auftritt.
Dann weiss mannzu welchem Eintrag die gehört.OK, neue Instanz installiert, nur ein Input Register (30071 = Frequenz) und ein Holding Register (40029 = Baud Rate) eingestellt (wobei ich nicht weiß, was man da richtigerweise als "Typ" einträgt. Bei den Input Registern steht: Each parameter is held in two consecutive16 bit register.
Beim Holding Register steht: Data Format:float(length:4 byte)Jedenfalls wird jetzt bei den Objekten beim Holding Register die 2 für 9600 Baud angezeigt.
Nur ändern kann ich das nicht:
Fehler Log:
2023-06-23 17:43:04.660 - [31merror[39m: modbus.3 (24868) Error response for FCx16: Illegal Function 2023-06-23 17:43:04.661 - [31merror[39m: modbus.3 (24868) Error response: Function code received in the query is not recognized or allowed by slave 2023-06-23 17:44:10.632 - [32minfo[39m: modbus.3 (24868) Connected to slave 2023-06-23 17:44:15.634 - [33mwarn[39m: modbus.3 (24868) Error: undefined 2023-06-23 17:44:15.635 - [31merror[39m: modbus.3 (24868) Request timed out. 2023-06-23 17:44:15.636 - [31merror[39m: modbus.3 (24868) Cannot write multiple registers [28]: {"err":"timeout","timeout":5000} 2023-06-23 17:44:15.834 - [33mwarn[39m: modbus.3 (24868) Poll error count: 2 code: "App Timeout" 2023-06-23 17:44:16.636 - [32minfo[39m: modbus.3 (24868) Disconnected from slave
Nebenbei: Wie kann man eigentlich bei der Logdatei sinnvoll auf die Zeilen filtern, die z.B. "modbus.3" enthalten?
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Da ich die DDS und DDM eben jetzt auch habe würde ich die ungern wegwerfen sondern verwenden.
die kenne ich nicht.
Ich vermute mal dass das ganz billige abgespeckte Geräte sind, die womöglich nichtmal die allgemeinen Spezifikationen erfüllen.Für den DDS habe ich ja inzwischen eine Beschreibung gefunden, der DDM war tatsächlich der einfachste Moddbus Zähler den ich damals finden konnte.
Was sagt denn der Händler dazu?
Bei Ali gekauft, den Händler gibt es nicht mehr.
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
ein Holding Register (40029 = Baud Rate) eingestellt (wobei ich nicht weiß, was man da richtigerweise als "Typ" einträgt.
dann float natürlich
dazu könnte passen
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Cannot write multiple register
liest er denn aus?
außerdrm
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
nur ein Input Register (30071 = Frequenz) und ein Holding Register
das sind schon 2
-
@homoran sagte in Modbus Adapter: Holding Register schreiben:
dazu könnte passen
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Cannot write multiple register
liest er denn aus?
Ja, siehe Bild! Als Baudrate wird 2 angezeigt (was ja 9600 entspricht) und als Frequenz 49,95
außerdrm
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
nur ein Input Register (30071 = Frequenz) und ein Holding Register
das sind schon 2
OK, die Frequenz wieder gelöscht, Ergebnis gleich (Wert kann nicht geändert werden).
2023-06-23 18:55:48.081 - [32minfo[39m: host.raspberrypi "system.adapter.modbus.3" enabled 2023-06-23 18:55:48.713 - [32minfo[39m: host.raspberrypi instance system.adapter.modbus.3 started with pid 3571 2023-06-23 18:56:24.542 - [32minfo[39m: modbus.3 (3571) starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.17.1, js-controller: 4.0.23 2023-06-23 18:56:25.439 - [32minfo[39m: modbus.3 (3571) Connected to slave 2023-06-23 18:56:49.856 - [31merror[39m: modbus.3 (3571) Error response for FCx16: Illegal Function 2023-06-23 18:56:49.857 - [31merror[39m: modbus.3 (3571) Error response: Function code received in the query is not recognized or allowed by slave 2023-06-23 18:56:54.828 - [33mwarn[39m: modbus.3 (3571) Error: undefined 2023-06-23 18:56:54.829 - [31merror[39m: modbus.3 (3571) Request timed out. 2023-06-23 18:56:54.831 - [31merror[39m: modbus.3 (3571) Cannot write multiple registers [28]: {"err":"timeout","timeout":5000} 2023-06-23 18:56:55.677 - [33mwarn[39m: modbus.3 (3571) Poll error count: 1 code: "App Timeout" 2023-06-23 18:56:55.831 - [32minfo[39m: modbus.3 (3571) Disconnected from slave
-
@wolfgangfb sagte in Modbus Adapter: Holding Register schreiben:
Ergebnis gleich (Wert kann nicht geändert werden).
jetzt bin ich mit meinem Latein am Ende.
Da müsste jemand helfen, der sich mit dem Modbus Protokoll auskennt. -
@WolfgangFB
Hallo der SDM230 akzeptiert Schreibvorgänge nur wenn er entsperrt wurde.
Den Sperrzustand erkennst Du am angezeigten Schloß Symbol
Zum Entsperren die Entertaste solange drücken bis das Symbol verschwindet.
Dann kannst Du mit Modbus Single Write (0xF) die Holding Register beschreiben.
Der SDM230 unterstützt wohl keinen Multi Write.
Achtung stellt sich nach einiger Zeit wieder zurück wenn keine weiteren Schreibzugriffe erfolgen.