Ich versuche einen Zähler über eine Serielle Schnittstelle und Modbus auszulesen. Ich erhalte aber werte die ich so nicht verstehe. Ich möchte diese umwandeln oder anders auslesen.
Der Zähler sollte auf dem Register 3028 einen Float32 Wert zurückliefen. Also ca. 230V ich erhalte jedoch komplett andere Werte.
Code: Alles auswählen
#!/usr/bin/env python3
# modbusminirtu.py
import minimalmodbus
import serial
#Adapter für Modbus Anlegen
smartmeter = minimalmodbus.Instrument('/dev/ttyUSB0', 1) # port name, slave address (in decimal)
smartmeter.serial.baudrate = 9600 # Baud
smartmeter.serial.bytesize = 8
smartmeter.serial.parity = serial.PARITY_EVEN # vendor default is EVEN
smartmeter.serial.stopbits = 1
smartmeter.serial.timeout = 1 # seconds
smartmeter.mode = minimalmodbus.MODE_RTU # rtu or ascii mode
smartmeter.clear_buffers_before_each_transaction = False
smartmeter.debug = False # set to "True" for debug mode
L1Spannung= smartmeter.read_long(3028, 3, False, 0) #registeraddress, functioncode=3, signed=False, byteorder=0)
L2Spannung= smartmeter.read_float(3028, 3, 2, 0)
print(L1Spannung)
print(L2Spannung)
Ich erhalte folgende Werte zurück
Code: Alles auswählen
1852785511
1.8512100445240847e+28