Zusammenfassung: Modbus Hilfe erbeten - SDM630 Zähler auslesen | Elektrotechnikforum auf energiesparhaus.at
« Elektrotechnik & Smarthome  |

Modbus Hilfe erbeten - SDM630 Zähler auslesen (Zusammenfassung)

Gesamte Original-Diskussion anzeigen
   
  •  kraweuschuasta
  •   Gold-Award
16.2.2022 - 1.1.2023
Zusammenfassung aus 14 Antworten von 6 Autoren
Mahlzeit allerseits,
Bitte um Hilfe, werd noch ganz narrisch, wie lese ich richtig die Werte aus meinem neuen SDM630 Zähler aus?

Bin irgendwie zu blöd, um das mit den Registern Variablen und LSB und MSB zu kapieren....

Ich hab meinen SDM630 Zähler in einer Teststellung, L1 und N angehängt, als Verbraucher hängt das Notebook dran. Das funkt, Notebook braucht grad 0,02 kW.

An meinem Linux Notebook hab ich einen RS485 - USB Adapter dran, verkabelt ists auch. Serielle Einstellungen funken auch (Slave Adresse1, 19200 Baud, no parity, 1 Stopbit) also modbus RTU...

Nachdem ich mich gestern mit 3 verschiedenen, nicht funktionierenden Python Bibliotheken herumgeärgert hab, hab ich kurzerhand modpoll installiert (https://www.modbusdriver.com/modpoll.html)

Ich bekomm sogar Werte zurück (Hurra) d.h. das Auslesen funkt grundsätzlich. Aber jetzt stehe ich irgendwie an, ich bekomme irgendwelche Hausnummern zurück, die für mich keinen Sinn ergeben und komm nicht weiter....

wenn ich abfrage mit:
modpoll -1 -b 19200 -s 1 -p none -m rtu -a 1 -r 1 -c 100 /dev/ttyUSB0
(also 1...100. register)
bekomm ich paar Werte zurück (Auszug):

modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 1, start reference = 1, count = 100
Communication.........: /dev/ttyUSB0, 19200, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table

-- Polling slave...
[1]: 17008
[2]: 0
[3]: 17008
[4]: 0
[5]: 0
[6]: 0
[7]: 17244
[8]: 0
[9]: 16672
[10]: 0
[11]: 16448
[12]: 0
[13]: 17096
[14]: 0
[15]: 0
[16]: 0
[17]: 0
[18]: 0
[19]: 0
[20]: 0
[21]: 16256
[22]: 0
[23]: 0
[24]: 0
[25]: 17530
[26]: 0
[27]: 0
[28]: 0
[29]: 16448
[30]: 0
[31]: 0
[32]: 0
[33]: 0
[34]: 0
[35]: 0
[36]: 0
[37]: 17870
[38]: 16384
[39]: 0
[40]: 0
[41]: 17669
[42]: -12288
[43]: 25953
[44]: 29556
[45]: 0

Der este Wert sollte Laut SDM630 Registerbeschreibung die Spannung zwischen L1 und N sein - also irgendwas bei 232,9V laut SDM360 Anzeige....

d.h. die [1]: 17008 muss ich jetzt "irgendwie" konvertieren bzw. richtig definieren, was lt. Hilfe mit dem -t Parameter geht... allerdings muss ich da an Variablentypen angeben, in der SDM630 Protokollbeschreibung find ich nur infos zu Hi und Lo - Byte, deren Zusammenhang mir irgendwie entgeht....

Hat wer bitte einen Tip für mich, wie ich richtig z.b. die Spannung und momentane Leistung an L1 auslesen kann?
(Ich möchte, wenn möglich so wenig externe Bibliotheken wie möglich verwenden und am liebsten in der BASH bleiben, also ohne Umwege über Python, C# etc...)

Vielen Dank!
LG Wolfgang

In der Diskussion werden technische Probleme und Lösungen im Zusammenhang mit der Abfrage von Modbus-Registerwerten besprochen. Ein Nutzer erklärt die Unterschiede zwischen aktuellen Messwerten und Einstellungsparametern, während ein anderer Nutzer Schwierigkeiten hat, korrekte Werte über Modbus auszulesen. Es werden spezifische Modbus-Kommandos vorgestellt, um Werte zu erhalten, jedoch treten bei einigen Versuchen Fehler auf. Diskussionsteilnehmer geben einander Tipps zur Fehlersuche und zur korrekten Parameteranpassung für die Modpoll-Anfragen. Schließlich wird erkannt, dass die Registeradressen möglicherweise um eine Stelle modifiziert werden müssen, um richtige Ergebnisse zu erzielen.

Bitte helfen Sie uns mit einem kurzen Klick: Ich finde diese Zusammenfassung
  

Gesamte Original-Diskussion anzeigen

Hinweis: Diese Zusammenfassung wurde maschinell generiert. Original anzeigen