NEWS
Modbus RTU ORNO auslesen
-
Kann mir jemand helfen. Ich möchte mit dem Modbusadapter einen Stromzähler von Orno auslesen.
Ich bekomme das mit den Registern nicht hin. Am PC funktioniert es:
Write: 01 03 01 10 00 01 84 33 wird gesendet. 1. Byte 01 ist die ID, 03 steht für Holding Register, 0110 sind die Registernr, steigen dann an 0112,0113
Was danach folgt verstehe ich nicht. Wie bildet man das mit dem Modbusadapter nach?
Mod-Edit: Thema von Forum nach Allgemein verschoben!
-
@cbund said in Modbus RTU ORNO auslesen:
. Byte 01 ist die ID
Hey, welcher ORNO Zähler ist es denn? Ich habe den ORNO OR-WE-517 mit einem Raspberry PI Python Skript ausgelesen. Vielleicht hilft es dir weiter...
https://forum.iobroker.net/topic/30953/abfrage-orno-or-we-516-517-modbus-evtl-script-vorhanden/3
Kenne den Modbus Adapter leider nicht, Aber da gibt es hier bestimmt auch Profis
Gruß Martin
Hier sind die Einstellungen und Register für den 517 (Register Adresse wird hier in Dezimal angeben):
#Funktion zum umwandeln def umwandeln_ieee(Wert): #Umwandlung Array of int ( 4 byte) in float nach IEEE 754 Wert2=str(hex(Wert)) Wert2=Wert2.replace('0x', '') if Wert2=='0': Wert2='00000000' Wert3=struct.unpack('>f', binascii.unhexlify(Wert2))[0] return (Wert3) #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 = 0.6 # 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 #Adresse = smartmeter.read_register(2, 0, 3, False) # registeraddress, number_of_decimals=0, functioncode=3, signed=False L1Spannung= umwandeln_ieee(smartmeter.read_long(14, 3, False, 0)) #registeraddress, functioncode=3, signed=False, byteorder=0) L2Spannung= umwandeln_ieee(smartmeter.read_long(16, 3, False, 0)) L3Spannung= umwandeln_ieee(smartmeter.read_long(18, 3, False, 0)) Frequency= umwandeln_ieee(smartmeter.read_long(20, 3, False, 0)) L1Strom= umwandeln_ieee(smartmeter.read_long(22, 3, False, 0)) L2Strom= umwandeln_ieee(smartmeter.read_long(24, 3, False, 0)) L3Strom= umwandeln_ieee(smartmeter.read_long(26, 3, False, 0)) Strom_gesamt=L1Strom+L2Strom+L3Strom Leistung_gesamt= umwandeln_ieee(smartmeter.read_long(28, 3, False, 0)) L1Leistung= umwandeln_ieee(smartmeter.read_long(30, 3, False, 0)) L2Leistung= umwandeln_ieee(smartmeter.read_long(32, 3, False, 0)) L3Leistung= umwandeln_ieee(smartmeter.read_long(34, 3, False, 0)) L1PowerFactor=umwandeln_ieee(smartmeter.read_long(54, 3, False, 0)) L2PowerFactor=umwandeln_ieee(smartmeter.read_long(56, 3, False, 0)) L3PowerFactor=umwandeln_ieee(smartmeter.read_long(58, 3, False, 0)) Verbrauch_gesamt=umwandeln_ieee(smartmeter.read_long(256, 3, False, 0)) #L1Verbrauch=umwandeln_ieee(smartmeter.read_long(258, 3, False, 0)) #L2Verbrauch=umwandeln_ieee(smartmeter.read_long(260, 3, False, 0)) #L3Verbrauch=umwandeln_ieee(smartmeter.read_long(262, 3, False, 0))
-
@charakterkopf Danke. Ich hab den Fehler gefunden. Die Registernr sind in HEX. Problem war noch der Raspberry den ich zum Testen hatte. An dem ging die Schnittstelle nicht, habe den neu aufgesetzt jetzt ging die dort auch, gestern habe ich noch an meinem Nuc getestet.
Danke noch.
-
Hallo
Habe auch den ORNO OR-WE-517 , die PC-Software läuft, Hardware also OK.
über den Modbus Adapter (3.0.1) gehts nicht, wird nur kurz grün.
Hatte die Register Adresse 0 ( ID-Nummer) genommen , um dem Problem mit evt. hex / dez zu umgehen.
Wäre nett wenn du mir deine Einstellungen /Eingangsregister zeigen könntest. -
Hallo,
den Orno habe ich rausgeworfen. Er verwendet wohl nicht die Standardregister. Da brauche ich mehr Zeit fürs umsetzen wie es wert ist.
Der Modbus von B +G Tech kostet kaum mehr und ist sauber dokumentiert. Kann den nur empfehlen. Gibt es ungeeicht und geeicht als 1 und 3 Phasen Zähler.Die Einstellungen vom Orno weiß ich leider nicht mehr genau und hab den auch zurück gesendet.
-
Hab's dann doch noch hinbekommen hier noch zum importieren, wenns jemand braucht:
OR-WE-517 3 Phasen / OR-WE-514 1 Phasen
OR-WE-517 3 Phasen Holding Registers: address name description unit type len factor offset role room poll wp 14 U_L1 Spannung L1 V floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 16 U_L2 Spannung L2 V floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 18 U_L3 Spannung L3 V floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 22 A_L1 Strom L1 A floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 24 A_L2 Strom L2 A floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 26 A_L3 Strom L3 A floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 28 Power Wirkleistung kW floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 36 Power_R Blindleistung VA floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 44 Power_A Scheinleistung VA floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 52 Power_F Leistungsfaktor (cos φ) % floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 256 Energie_Total_aktiv Zählerstand aktuell floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 264 Energie_Total_aktiv_for Zählerstand vorwärts floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 272 Energie_Total_aktiv_rev Zählerstand rückwärts floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 280 Energie_Total_reaktiv_for Blindleistung vor floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 288 Energie_Total_reaktiv_rev Rückspeisung floatbe 2 1 0 level enum.rooms.Hauptverteilung true false 296 Energie_Total_reaktiv_reserve Blindleistung zur floatbe 2 1 0 level enum.rooms.Hauptverteilung true false OR-WE-514 1 Phasen Holding Registers: address name description unit type len factor offset role room poll wp 305 U_L1 Spannung L1 V uint16be 1 0.01 0 level true false 313 A_L1 Strom L1 A int32be 2 0.001 0 level true false 320 Power Leistung kW int32be 2 0.001 0 level true false 328 Power_R Blindleistung VA int32be 2 0.001 0 level true false 336 Power_A Scheinleistung VA int32be 2 0.001 0 level true false 40960 Energie_Total_aktiv Zähler kWh int32be 2 0.01 0 level true false
-
@Bernd_M Danke schon mal für die Adressen, welche Einstellungen hast du beim Adapter verwendet, ID des ORNO, ich bekomme den nicht zum laufen.
-
Hi, ich habe den ORNO OR-WE-517 mit DSD TECH SH-U10 USB zu RS485 Konverter mit CP2102 Chip mit folgenden Einstellungen zum laufen bekommen, die oben angeführte Datei der dreiphasigen Version habe ich als CSV noch zum importieren angefügt! orno.csv !
-
@Bernd_M
Mit der Basis, die du hier gepostet hast, habe ich versucht zu beginnen, aber bekomme es nicht zum laufen. Habe immer folgende Fehlermeldung:
Dabei habe ich versucht den Modbus-Adapter zu nutzen und folgender Maßen konfiguriert:
Der Adapter möchte ja die Adressen um die 40001 erweitert haben.
ergänzend noch mal die Auswertung, die ich mit derSoftware von Orne gemacht habe: (Die kommunikation als solche funktioniert also über den USB-Adapter hin zum ORNO 1P Zähler)
Habe ich dabei noch etwas falsch gemacht?
-
@bernd_m Wo hast du denn die Registerbelegung her? da gibt es doch bestimmt noch mehr, insbesondere habe ich zwei der Dinger und muss die Modbusadresse einstellen …