Produkte/M-Center/M-Bus zu Modbus TCP

M-CenterAnwendung

M-Bus zu Modbus TCP: alle Zähler über eine Registertabelle

Steuerungen, SPS und Leitsysteme sprechen fast immer Modbus TCP. Mit der Modbus-TCP-Server-Lizenz stellt das EMU M-Center die Werte aller M-Bus-Zähler über Modbus TCP bereit. Die Registeradressen folgen einer festen Tabelle nach OBIS-Code.

Das Wichtigste in Kürze

  • Port 502, eine Modbus-Geräteadresse je Zähler, Big Endian.
  • Jeder Wert ist als float32 und als uint64 abrufbar.
  • Mit hinterlegtem OBIS-Code liegt jeder Messwert an einer festen Adresse, unabhängig vom Zählerhersteller.
  • Statusregister zeigen, ob die letzte Auslesung eines Zählers geklappt hat.
  • Lizenz Modbus-TCP-Server (M-Bus zu Modbus TCP): Artikelnummer 210.300.04.
2885.6Professional IIGerät 9 · SN 22090156
1412.3Professional IIGerät 10 · SN 22090157
3207.9Professional IIGerät 11 · SN 22090158
EMU M-CenterM-Bus-Master · Modbus-TCP-Server · 10:2C:EF:02:6C:B9
EMU M-CenterModbus-TCP-Server
OBIS 1-0:1.8.0 → Register 1000
Gerät 9SN 22090156–
Gerät 10SN 22090157–
Gerät 11SN 22090158–
SPS / LeitsystemModbus-TCP-Client · 192.168.1.20
Werte in der SPS
Gerät 9Bezug total–
Gerät 10Bezug total–
Gerät 11Bezug total–
M-Bus-Abfrage

Das M-Center fragt jeden Professional II über die Zweidrahtleitung ab (REQ_UD2). Der Zähler antwortet mit seinen Messwerten (RSP_UD).

Darstellung vereinfacht. Seriennummern, Adressen und Werte sind Beispiele. Im Betrieb liest das M-Center ab Werk alle 15 Minuten aus.

Verbindungsparameter

ParameterWert
TCP-Port502
Geräteadresse (Slave-ID)die «Modbus TCP Server Gerätenummer» des Zählers im M-Center
Byte-ReihenfolgeBig Endian
Wort-ReihenfolgeMSB → LSB
Registerzählungab 1

Jeder Zähler im M-Center bekommt eine eigene Geräteadresse. Das Zielsystem fragt also nicht einen grossen Registerblock ab, sondern spricht jeden Zähler über seine Adresse an, wie bei einem Modbus-Strang mit vielen Teilnehmern.

Die Registernummern im Handbuch zählen ab 1. Manche Programme erwarten die Adresse ab 0, also 1029 statt 1030. Prüfen Sie die Zählweise einmal mit einem bekannten Zählerstand.

Zwei Wege zum Messwert

Nach Registernummer des Zählers

Das n-te Register eines Zählers liegt bei 12000 + 30 × n (float32) und 12002 + 30 × n (uint64). Register 0 liegt also bei 12000, Register 3 bei 12090. Das funktioniert ohne weitere Einstellung, die Lage hängt aber vom Zählermodell ab.

Nach OBIS-Code

Hinterlegen Sie im M-Center bei den Registern den OBIS-Code. Dann liegt jeder Messwert an einer festen Adresse, egal welcher Zähler ihn liefert. Ein Auszug aus der Tabelle:

OBIS-CodeMesswertfloat32uint64
1-0:1.8.0Wirkenergie Bezug, total10001002
1-0:1.8.1Wirkenergie Bezug, Tarif 110301032
1-0:1.8.2Wirkenergie Bezug, Tarif 210601062
1-0:2.8.0Wirkenergie Lieferung, total11501152
1-0:3.8.0Blindenergie Bezug, total13001302
1-0:4.8.0Blindenergie Lieferung, total14501452
1-0:1.7.0Wirkleistung Bezug, total17501752
1-0:2.7.0Wirkleistung Lieferung, total18701872
1-0:11.7.0Strom, total23502352
1-0:32.7.0Spannung Phase 124702472
1-0:14.7.0Frequenz26502652
8-0:1.0.0Volumen Kaltwasser30003002
9-0:1.0.0Volumen Warmwasser30303032
7-0:3.0.0Volumen Gas30603062
5-0:1.0.0Energie Kältezähler40004002
4-0:1.0.0Zählerstand Wärmezähler40604062
Auszug. Die vollständige Tabelle mit Tarifen, Phasen und Temperaturen steht im Handbuch M-Center, Kapitel Modbus Server.

Die Einheit entspricht der Einheit, die im M-Center für das Register eingestellt ist. Ein dort hinterlegter Divisor ist bereits eingerechnet.

Statusregister: hat die Auslesung geklappt?

Informationfloat32uint64
Ausleseintervall1188011882
Statuscode1191011912
Zeitstempel des letzten Ausleseversuchs1194011942
Zeitstempel der letzten erfolgreichen Auslesung1197011972

Diese Register lesen Sie als uint64, weil float32 grosse Zahlen nur angenähert darstellt. Statuscode 1 heisst: letzte Auslesung erfolgreich. 2: letzte Auslesung nicht erfolgreich. 3: Auslesung erfolgreich, aber der Zähler meldet selbst eine Störung. Wer diese Register mitliest, merkt sofort, wenn ein Zähler nicht mehr antwortet.

Beispiel mit modpoll

Ein EMU Professional II hat im M-Center die Geräteadresse 9. Sein Register 3 trägt den OBIS-Code 1-0:1.8.1. Beide Abfragen liefern den Zählerstand Bezug Tarif 1 als Fliesskommazahl:

modpoll -1 -m tcp -t 4:float -i -f -r 1030 -a 9 -c 1 -p 502 <M-Center-IP>
modpoll -1 -m tcp -t 4:float -i -f -r 12090 -a 9 -c 1 -p 502 <M-Center-IP>

Nicht verwechseln: Modbus-TCP-Client

Die Lizenz 210.300.04 macht das M-Center zum Modbus-TCP-Server: Andere Systeme lesen Werte aus dem M-Center. Die Lizenz 210.200.03 ist die umgekehrte Richtung. Damit liest das M-Center selbst bis zu 20 Geräte über Modbus TCP aus, zum Beispiel Ladestationen oder Wechselrichter.

Bestellnummern

ArtikelArtikelnummerIm Shop
M-Center für 20 M-Bus-Geräte210.000.00Im Shop: EMU M-Center 210.000.00 →
M-Bus-Lizenz 20 → 250 Geräte210.020.03Im Shop: M-Center M-Bus-Lizenz 20 → 250 Geräte 210.020.03 →
Modbus-TCP-Lizenz (M-Bus zu Modbus TCP)210.300.04Im Shop: M-Center Modbus-TCP-Server-Lizenz 210.300.04 →
Modbus-TCP-Lizenz 20 Geräte (Client)210.200.03Im Shop: M-Center Modbus-TCP-Lizenz 20 Geräte 210.200.03 →

Bestellen im B2B-Shop kwh-meter.com. Preise sehen Sie dort nach der Anmeldung.

Häufige Fragen


Warum float32 und uint64?

float32 ist bequem, rundet aber grosse Zählerstände. uint64 liefert den Wert ohne Rundung. Für Abrechnung und Statusregister nehmen Sie uint64.

Muss ich für jeden Zähler die Registerlage kennen?

Nein, wenn Sie OBIS-Codes hinterlegen. Dann liegt zum Beispiel der Zählerstand Bezug Tarif 1 bei jedem Zähler an Adresse 1030, nur die Geräteadresse wechselt.

Kann ich auch Modbus-RTU-Zähler über Modbus TCP abfragen?

Das M-Center liest über seine zwei RS-485-Schnittstellen bis zu 64 Modbus-RTU-Geräte aus. Mit hinterlegtem OBIS-Code liegen deren Werte in derselben Registertabelle.

Weiterlesen


SEITEEMU M-CenterProdukt SEITEM-Center in LoxoneAnleitung SEITEM-Center in Home AssistantAnleitung PDFHandbuch M-CenterPDF

Zähler an eine SPS anbinden?


Schicken Sie uns die Zählerliste. Wir helfen bei Adressen, OBIS-Codes und Lizenzen.

Telefon
+41 (0)41 545 03 00

Technischer Support
helpdesk [at] emuag.ch
Supportformular →