TapHome

Eastron SDM120

Modbus RTU
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Eastron SDM120

Der Eastron SDM120 ist ein einphasiger Energiezähler für die Hutschienenmontage, der über Modbus RTU per RS-485 kommuniziert. Die TapHome-Vorlage stellt 4 Geräte bereit, die Gesamtenergie mit konfigurierbaren Messmodi, bidirektionale Import-/Export-Messung und einen eigenständigen Stromsensor abdecken. Alle Registerwerte liegen im IEEE 754 Float32-Format in Big-Endian-Bytereihenfolge vor und werden über Modbus-Funktionscode FC04 (Eingangsregister) gelesen.

Die Vorlage stellt außerdem Service-Attribute und Service-Aktionen auf Modulebene zum Lesen und Ändern der Slave-ID, Baudrate und Stop-Bit/Paritäts-Konfiguration direkt aus TapHome bereit — ohne externe Werkzeuge.

Hardwareanschluss

RS-485-Verkabelung

Der SDM120 verfügt über eine 2-Draht-RS-485-Schnittstelle am unteren Klemmenblock. Verbinden Sie in Daisy-Chain-Topologie:

  • A+ (Klemme 4) an A+/D+ am TapHome RS-485
  • B- (Klemme 5) an B-/D- am TapHome RS-485

Verwenden Sie ausschließlich eine Daisy-Chain-Verkabelungstopologie. Stern- und Stub/Tee-Topologien verursachen Signalreflexionen und Datenverfälschung. Terminieren Sie jedes Busende mit einem 120-Ohm-Widerstand (mindestens 0,25 W).

Kabelspezifikation:

  • Typ: Verdrilltes Adernpaar, geschirmt (Belden 8761 oder gleichwertig)
  • Impedanz: 120 Ohm
  • Maximale Kabellänge: 1200 m
  • Maximale Teilnehmeranzahl am Bus: 32

Konfiguration

Kommunikationsparameter

Baudrate-Abweichung: Die TapHome-Vorlage verwendet standardmäßig 9600 bps, aber die Werkseinstellung des SDM120 beträgt 2400 bps. Die Kommunikation schlägt fehl, sofern nicht die Baudrate des Zählers auf 9600 geändert oder die Baudrate der TapHome-Vorlage auf 2400 angepasst wird. Die empfohlene Vorgehensweise ist, die Baudrate des Zählers über die Tasten am Frontpanel auf 9600 zu ändern (die Tastensequenz zum Zugriff auf Parameter P05 finden Sie in der Bedienungsanleitung des Zählers).

ParameterZähler-StandardVorlage-StandardOptionen
Baudrate240096001200, 2400, 4800, 9600
Datenbits88Fest
ParitätKeineKeineKeine, Gerade, Ungerade
Stoppbits111 (mit oder ohne Parität), 2 (ohne Parität)
Slave-ID111-247

Die Kommunikationsparameter können entweder über die Tasten am Frontpanel des Zählers oder per Fernzugriff über Modbus-Holding-Register geändert werden. Die TapHome-Vorlage bietet Service-Aktionen zum Ändern der Baudrate (H:28), des Stop-Bits/der Parität (H:18) und der Slave-ID (H:20) direkt aus der TapHome-App.

Slave-ID

Beim Anschluss mehrerer SDM120-Zähler am selben RS-485-Bus muss jeder Zähler eine eindeutige Slave-ID haben (Bereich 1-247). Nach dem Import der TapHome-Vorlage passen Sie die Slave-ID in den Modulverbindungseinstellungen an den Zähler an. Die aktuelle Slave-ID ist über das Modul-Service-Attribut auslesbar.

Modbus-Kommunikation aktivieren

Beim SDM120 ist Modbus RTU werksseitig aktiviert — es sind keine Aktivierungsschritte erforderlich. Der Zähler reagiert sofort nach dem Einschalten auf Modbus-Anfragen mit seiner konfigurierten Baudrate und Slave-ID. Um die Einstellungen der TapHome-Vorlage abzugleichen, ändern Sie die Baudrate des Zählers von der Werkseinstellung 2400 auf 9600 bps mit einer der folgenden Methoden:

  1. Tasten am Frontpanel — navigieren Sie zum Parameter P05 (Baudrate) über die Tastensequenz des Zählers und stellen Sie 9600 ein
  2. TapHome-Service-Aktion — wenn zunächst die Kommunikation bei 2400 bps hergestellt wird, verwenden Sie die Service-Aktion „Baud Rate" am Modul, um den neuen Wert zu schreiben. Passen Sie anschließend die Baudrate-Einstellung der TapHome-Vorlage an.

Gerätefunktionen

Die Vorlage erstellt 4 Geräte: einen Gesamtenergiezähler mit konfigurierbaren Messmodi, bidirektionale Import-/Export-Energiezähler und einen eigenständigen Stromsensor.

Gesamtenergiemessung
  • Total Energy — einphasige Gesamtwirkenergie (A:342, kWh) und Wirkleistung (A:12, W umgerechnet in kW). Dies ist das einzige Gerät in der Vorlage mit Lese- und Schreibzugriff — es unterstützt eine Messmodus-Aktion, die steuert, wie die Gesamtenergie akkumuliert wird. Sieben Service-Attribute bieten Echtzeitüberwachung: Spannung (V), Strom (A), Netzfrequenz (Hz), Leistungsfaktor, Scheinleistung (VA), Blindleistung (VAr) und gesamte Blindenergie (kVArh). Ein Modus-Service-Attribut zeigt den aktuell aktiven Messmodus an.

Die Messmodus-Aktion schreibt in das Holding-Register H:4111 und akzeptiert vier Werte:

ModusBeschreibung
To GridNur Exportenergie
From GridNur Importenergie
To Grid + From GridSumme aus Import- und Exportenergie
To Grid - From GridNettoenergie (Import minus Export)
Bidirektionale Energiemessung

Zwei Geräte erfassen die Energieflussrichtung, nützlich für Solar-PV-Anlagen oder bidirektionale Lastüberwachung:

  • Export Energy — ins Netz eingespeiste Energie (A:74, kWh) und momentane Exportleistung, abgeleitet aus negativen Wirkleistungswerten (A:12). Enthält ein Service-Attribut für die Export-Blindenergie (A:78, kVArh).
  • Import Energy — aus dem Netz bezogene Energie (A:72, kWh) und momentane Importleistung, abgeleitet aus positiven Wirkleistungswerten (A:12). Enthält ein Service-Attribut für die Import-Blindenergie (A:76, kVArh).

Die Import-/Export-Aufteilung wird durch Auslesen des vorzeichenbehafteten Wirkleistungsregisters (A:12) erreicht. Positive Werte zeigen Netzbezug (Import) an, negative Werte zeigen Netzeinspeisung (Export) an. Dies ist besonders nützlich zur Überwachung des Solar-PV-Eigenverbrauchs und der Netzinteraktion.

Stromüberwachung
  • Electric Current — eigenständiger Stromsensor (A:6, A) zur Echtzeit-Stromüberwachung. Enthält ein Spannungs-Service-Attribut, ausgelesen aus Holding-Register H:305 mit 0,01-Skalierung — dieses Register ist nicht im offiziellen Protokoll dokumentiert, bietet aber eine schnelle Spannungsreferenz.
Weitere Funktionen

Der SDM120 stellt auch Register für bedarfsgemittelte Leistung (Gesamt, Import und Export mit aufgezeichneten Maximalwerten), aktuelle Stromnachfrage mit Maximalwert-Tracking und Phasenwinkelmessung bereit. Diese können in einem zukünftigen Vorlagenupdate hinzugefügt werden.

Fehlerbehebung

Keine Kommunikation
  1. Überprüfen Sie, dass die RS-485-Verkabelung als Daisy-Chain ausgeführt ist (keine Sterntopologie)
  2. Prüfen Sie die A/B-Klemmenanschlüsse (Klemmen 4 und 5) — tauschen Sie A und B, wenn die Kommunikation fehlschlägt
  3. Bestätigen Sie die Busterminierung: 120-Ohm-Widerstand an jedem Busende
  4. Prüfen Sie die Baudrate — das häufigste Problem ist die Abweichung zwischen der Werkseinstellung des Zählers von 2400 bps und der Standardeinstellung der TapHome-Vorlage von 9600 bps. Ändern Sie entweder den Zähler auf 9600 oder passen Sie die TapHome-Vorlage auf 2400 an.
  5. Überprüfen Sie, ob die Slave-ID in TapHome mit dem Zähler übereinstimmt (Standard 1)
Fehlerhafte Messwerte
  1. Wenn die Gesamtenergiewerte falsch erscheinen, prüfen Sie den Messmodus (Service-Attribut am Gerät Total Energy) — der Modus beeinflusst die Art der Energieakkumulation
  2. Überprüfen Sie die korrekte Stop-Bit/Paritäts-Einstellung — das Modul-Service-Attribut zeigt die aktuelle Konfiguration
Register-Bytereihenfolge

Der SDM120 verwendet standardmäßig die Big-Endian-Bytereihenfolge (höchstwertiges Register zuerst). Wenn Messwerte als extrem große oder kleine Zahlen erscheinen, prüfen Sie die Bytereihenfolge-Konfiguration. Die TapHome-Vorlage verwendet Float32 Big Endian, was der Standardeinstellung des Zählers entspricht.

Verfügbare Geräte

Eastron SDM120 Modul
Serviceattribute
Slave-ID
Baudrate
Stoppbit / Parität
Serviceaktionen
Slave-ID
Anzeigedauer Scrollanzeige
Baudrate
Stoppbit / Parität

Eastron SDM120

Serviceattribute
${device_SlaveId}
modbusr(H, 20, Float)
${baud_rate} [bps]
switch(modbusr(H, 28, Float),0,2400,1,4800,2,9600,5,1200,"Invalid")
${xml_stop_bit} / ${xml_parity}
switch(modbusr(H, 18, Float),0,"1/none",1,"1/even",2,"1/odd",3,"2/none","unknown")
Serviceaktionen
Slave ID
Parameter: Slave ID (1–247 ID)
modbusw(H, 20, Float, ID)
Time of scroll display
Parameter: Time [s] (0–30 t)
modbusw(H, 63744, Uint16, t)
${baud_rate}
Parameter: Baud rate
modbusw(H, 28, Float, Br)
${xml_stop_bit} / ${xml_parity}
Parameter: ${xml_stop_bit} / ${xml_parity}
modbusw(H, 18, Float, sp)
Gesamtenergie Stromzähler

Einphasige Energie und Leistung — Gesamtwirkenergie (kWh) und momentane Leistung (kW), mit konfigurierbarem Messmodus und 7 Service-Attributen für Spannung, Strom, Frequenz, Leistungsfaktor, Schein-/Blindleistung und Blindenergie

Register: A:342 (readtotalconsumption), A:12 (readdemand) Float Einheit: kWh / kW
Serviceattribute
MessmodusAktueller Energieakkumulationsmodus — To Grid (nur Export), From Grid (nur Import), To Grid + From Grid (kombiniert) oder To Grid - From Grid (netto)
Spannung
Strom
Netzfrequenz
Leistungsfaktor
Scheinleistung
Blindleistung
Gesamte Blindenergie
Serviceaktionen
MessmodusLegt fest, wie die Gesamtenergie akkumuliert wird — steuert, ob der Zähler nur Import, nur Export, kombinierte oder Nettoenergie zählt

Gesamtenergie

Gesamtverbrauch lesen
MODBUSR(A, 342, Float)
Bedarf lesen
MODBUSR(A, 12, Float)/1000
Serviceattribute
${xml_mode}
switch(modbusr(H, 63776, uint16), 1, "From Grid", 2, "To Grid + From Grid", 3, "From Grid - To Grid", "Unknown")
${electric_voltage} [V]
tostring(modbusr(A, 0, Float), "F2")
${electric_current} [A]
tostring(modbusr(A, 6, Float), "F2")
${grid_frequency} [Hz]
tostring(modbusr(A, 70, Float), "F2")
${power_factor}
tostring(modbusr(A, 30, Float), "F2")
${apparent_power} [VA]
tostring(modbusr(A, 18, Float), "F2")
${reactive_power} [VAr]
tostring(modbusr(A, 24, Float), "F2")
${total_reactive_energy} [kVArh]
tostring(modbusr(A, 344, Float), "F2")
Serviceaktionen
${xml_mode}
Parameter: ${xml_mode}
modbusw(H, 0x100f, uint16, mode)
Exportenergie Stromzähler Nur lesen

Ins Netz eingespeiste Energie — Exportenergie (kWh) und momentane Exportleistung aus negativen Wirkleistungswerten

Register: A:74 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Einheit: kWh / kW
Serviceattribute
Export-Blindenergie

Exportenergie

Gesamtverbrauch lesen
MODBUSR(A, 74, Float)
Bedarf lesen
var demand := MODBUSR(A, 12, BigEndianFloat) / 1000;
if (demand < 0, return(demand * -1), return(0));
Serviceattribute
${total_reactive_energy} [kVArh]
tostring(modbusr(A, 78, Float), "F2")
Elektrischer Strom Variable Nur lesen

Eigenständiger Stromsensor — Echtzeit-Strom (A) mit Spannungsdiagnose über Service-Attribut

Register: A:6 Float Einheit: A
Serviceattribute
Spannung

Elektrischer Strom

Lesen
MODBUSR(A, 6, Float)
Serviceattribute
Voltage [V]
round(modbusr(H, 0x131, uint16)*0.01)
Importenergie Stromzähler Nur lesen

Aus dem Netz bezogene Energie (Verbrauch) — Importenergie (kWh) und momentane Importleistung aus positiven Wirkleistungswerten

Register: A:72 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Einheit: kWh / kW
Serviceattribute
Import-Blindenergie

Importenergie

Gesamtverbrauch lesen
MODBUSR(A, 72, Float)
Bedarf lesen
var demand := MODBUSR(A, 12, BigEndianFloat) / 1000;
if (demand < 0, return(0), return(demand));
Serviceattribute
${total_reactive_energy} [kVArh]
tostring(modbusr(A, 76, Float), "F2")
Verbindung: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Mögliche Verbesserungen (9)
  • A:36 Phase Angle — Present in sdm_modbus library but NOT in official PDF register map — may be undocumented or firmware-version dependent
  • A:84 Total System Power Demand — Demand-averaged system power (W) — template uses A:12 (instantaneous active power) instead
  • A:86 Maximum Total System Power Demand — Maximum recorded system power demand (W)
  • A:88 Import System Power Demand — Demand-averaged import power (W)
  • A:90 Maximum Import System Power Demand — Maximum recorded import power demand (W)
  • A:92 Export System Power Demand — Demand-averaged export power (W)
  • A:94 Maximum Export System Power Demand — Maximum recorded export power demand (W)
  • A:258 Current Demand — Demand-averaged current (A)
  • A:264 Maximum Current Demand — Maximum recorded current demand (A)

Quellen