device library

CPS 14-36kW SC/SCA inverter

Register map(s) for this device, with a note of how far each has been checked. Addresses are 0-based, as on the wire. Scale and byte order are confirmed only at the hardware-verified rung.

coherence-checked

Round-trips through a real Modbus stack with no overlapping addresses and a word-order-sensitive codec — the map is internally coherent and wire-decodable. Does NOT prove byte-order or scaling match a real device: the emulator is seeded from the map's own types, so a uniformly wrong byte-order still round-trips. Only hardware-verified confirms byte-order/scale on the wire.

pointaddress (0-based)typescaleunit
inverter_firmware_version5U160.01
total_lifetime_energy22U32BE1kWh
daily_energy24U160.1kWh
power_factor26I160.001
max_active_power_daily27U160.1kW
active_power29U160.1kW
apparent_power30U160.1kVA
grid_voltage_uab31U160.1V
grid_voltage_ubc32U160.1V
grid_voltage_uca33U160.1V
grid_a_phase_current34U160.1A
grid_b_phase_current35U160.1A
grid_c_phase_current36U160.1A
dc_voltage_mppt137U160.1V
dc_current_mppt138U160.1A
dc_voltage_mppt239U160.1V
dc_current_mppt240U160.1A
grid_frequency43U160.1Hz
heatsink_temperature44I160.1C
internal_temperature45I160.1C
inverter_state47U161
permanent_fault_alarm52U161
warning_alarm53U161
fault0_alarm54U161
fault1_alarm55U161
fault2_alarm56U161
fault3_alarm57U161
fault4_alarm58U161
power_on_off_cmd4096U161
temporary_active_power_setting4097U160.1%
temporary_power_factor_setting4098I160.001
temporary_reactive_power_setting4099U160.1%

link settings as documented (unverified): RTU; baud 9600/19200; FC 03,04,06,16; Half-Duplex, Data Bits: 8

bench facts as documented (unverified)
connectorRS485
sentinel valuesNot Implemented for an int16 is 0x8000. Not Implemented for a uint16 is 0xFFFF. Not Implemented for an int32 is 0x80000000. Not Implemented for a uint32 is 0xFFFFFFFF. Not Implemented for a string is 0x00.
model register0x000A
serial register0x0006
firmware register0x0005
doc revision1.0
field reports — community-sourced, unverified (checked 2026-06-11)
  • confirmed: comms defaults (baud rates [9600, 19200], RTU framing, parity N, stop bits 1, half-duplex, 8 data bits) — confirmed by 'CPS Modbus Communications For Inverter Models CPS 14-36kW Version 1.0' manual
  • confirmed: function codes (3, 4, 6, 16) — confirmed by 'CPS Modbus Communications' manual sections 2.1 and 2.3
  • confirmed: identification registers (firmware_register 0x0005, model_register 0x000A, serial_register 0x0006) — confirmed by 'CPS Modbus Communications' manual register tables
  • confirmed: sentinel values for un-implemented data types (int16: 0x8000, uint16: 0xFFFF, int32: 0x80000000, uint32: 0xFFFFFFFF, string: 0x00) — confirmed by 'CPS Modbus Communications' manual section 1.3
  • confirmed: register map addresses (e.g., daily_energy @ 24, active_power @ 29, grid_voltage_uab @ 31, heatsink_temperature @ 44, inverter_state @ 47, power_on_off_cmd @ 4096) — confirmed by 'CPS Modbus Communications' manual register tables and AGG Software Chint Power mapping

The trust ladder

Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.

Device not here? Upload its manual and get a checked map back. It's free.

Want it confirmed against your own device? Order hardware verification. If it doesn't check out, you don't pay.

Building on a lot of devices? License the library — machine-readable maps, the firmware matrix, and API access.