Modbusabfrage mit Bit &*6

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kiaralle
User
Beiträge: 132
Registriert: Donnerstag 19. August 2021, 19:11

Hallo,
ich habe mal wieder ein kleines Problem und möchte dies mit eurer Hilfe lösen.
In den Unterlagen steht bei der Modbusadresse 44 folgendes:
44 DTC Device Type Code &*6
weiter unten steht für &*6
001xx Inverter1 tracker and 1phase Grid connect PV inverter TL
002xx Inverter2 tracker and 1phase Grid connect PV inverter TL
003xx Inverter1 tracker and 1phase Grid connect PV inverter HF
004xx Inverter2 tracker and 1phase Grid connect PV inverter HF
Wie rufe ich die Inhalt aus &*6 mit meinem Code unten auf?

Ich erhalte aktuell die Ausgabe 20105

Danke :-)

Code: Alles auswählen

from pymodbus.client import ModbusSerialClient
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("adresse", type=int, help="Inverter Adresse")
parser.add_argument("register", type=int, help="Input-Register")
args = parser.parse_args()


inverter_adresse = args.adresse
modbus_register = args.register


client = ModbusSerialClient(port="/dev/ttyUSB0", parity="N", bytesize=8, stopbits=1, baudrate=9600, timeout=1)

client.connect()

result = client.read_input_registers(modbus_register, 1, inverter_adresse)
print(result.registers[0])
Benutzeravatar
sparrow
User
Beiträge: 4525
Registriert: Freitag 17. April 2009, 10:28

@kiaralle: Warum kommen die Werte denn aus dem argparse? Du könntest da auch einen falschen Wert übergeben und niemand würde es merken, weil die Quelle außerhalb deines Programms liegt, das du hier präsentierst.

Es wäre in meinen Augen auch korrekt, einfach die Spezifikation zu verlinken, aus der du die Daten hast. Oder zumindest alle Daten zu liefern, statt nur die ersten 4 Zeilen einer Tabelle mit 20 Zeilen.

Die Antwort auf deine Frage lautet: So wie du es tust.
kiaralle
User
Beiträge: 132
Registriert: Donnerstag 19. August 2021, 19:11

Hallo sparrow,

Wie oben beschrieben, rufe den Wechselrichter mit der Adresse 1 auf und frage das Regsiter 44 ab.
Aus meiner Sicht, kann da ja nicht viel schief gehen. Ich gebe die Daten ja ein. Ich könnte das sicher ausbauen und hinterlegen ob die eingegebenen Daten plausible sind.
Die Antwort auf deine Frage lautet: So wie du es tust.
Also liege ich so richtig?



Die PDF zu meinem Unterfangen.

https://watts247.com/manuals/gw/Growat ... tocol.pdf
Antworten