Modbus überträgt Zahlen ohne jede Bedeutung. Register 40071 ist eine 16-Bit-Zahl — was sie darstellt, in welcher Einheit und mit welchem Skalierungsfaktor, steht in einem Hersteller-PDF und nicht im Protokoll.
| Roh-Tag der Steuerung | Kanonisches Feld | |
|---|---|---|
ActivePower | → | active_power_kw |
Amps_Avg | → | line_current_a |
DisplacementPF | → | power_factor |
AC_Frequency | → | grid_frequency_hz |
AC_Energy_WH | → | energy_delivered_kwh |
Modbus kennt keine Datentypen jenseits des 16-Bit-Wortes, keine Einheiten, keine Namen und keine Discovery. Zwei Geräte desselben Herstellers, zwei Firmware-Stände, zwei Registerkarten.
Bei SunSpec-Geräten kommt der Skalierungsfaktor hinzu: der Exponent steht in einem eigenen Register. Wer den Wert liest und den Faktor vergisst, liegt um eine Zehnerpotenz daneben — und der Wert sieht dabei völlig normal aus.
Forge normalisiert Modbus TCP, Modbus RTU und die SunSpec-Modelle gegen dasselbe kanonische Schema. Die Skalierungsfaktoren werden angewendet, Einheiten konvertiert, und das Ergebnis wird gegen Physikgrenzen geprüft, bevor es gespeichert wird.
active_power_kw line_current_a power_factor grid_frequency_hz energy_delivered_kwh