SunSpec SunSpec Model 63001 — SunSpec Test Model 1 Modbus TCP template

SunSpec Model 63001 — SunSpec Test Model 1

SunSpec Model 63001, also called SunSpec Test Model 1, is a protocol conformance and client-validation model published by the SunSpec Alliance. It is not a physical product but a synthetic Modbus TCP register block designed to exercise every SunSpec data type in one model. The template covers all read-only and read-write points: int16, uint16, int32, uint32, acc16, acc32, acc64, int64, enum16, enum32, bitfield16, bitfield32, float32, ipaddr, multi-register strings, and seven SunSpec scale factors. Both implemented and not-implemented (sentinel) variants of each type are present. Use this template to verify that your ModbusCloud Gateway and portal correctly parse and display every SunSpec data type before commissioning a production device.

Protocol
Modbus TCP
Connection
Ethernet, Modbus TCP
Registers
55, read and write
Brand
SunSpec
Last updated

Registers (55)

55 read, 8 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
idRead
lRead
sunssf_1Read
sunssf_2Read
sunssf_3Read
sunssf_4Read
int16_1Read
int16_2Read
int16_3Read
int16_4Read and write
int16_5Read
int16_uRead
uint16_1Read
uint16_2Read
uint16_3Read
uint16_4Read and write
uint16_5Read
uint16_uRead
acc16Read
acc16_uRead
enum16Read
enum16_uRead
bitfield16Read
bitfield16_uRead
int32_1Read
int32_2Read
int32_3Read and write
int32_4Read
int32_5Read
int32_uRead
uint32_1Read
uint32_2Read
uint32_3Read and write
uint32_4Read
uint32_5Read
uint32_uRead
acc32Read
acc32_uRead
enum32Read
enum32_uRead
bitfield32Read
bitfield32_uRead
ipaddrRead and write
ipaddr_uRead
int64Read and write
int64_uRead
acc64Read
acc64_uRead
float32Read and write
float32_uRead
stringRead and write
string_uRead
sunssf_5Read
sunssf_6Read
sunssf_7Read

Loading registers…

Send your device list

If a device is not in the library yet, we build the template for free as soon as we have the register data.

Number of installations (optional)

Use cases

  • Verify that the ModbusCloud portal correctly decodes all SunSpec data types before deploying a production integration.
  • Confirm that scale factor registers (sunssf_1 through sunssf_7) are applied correctly to paired numeric points.
  • Check that not-implemented sentinel values in _u registers are reported as absent rather than as zero or garbage.
  • Test write-path handling by writing to int16_4, uint16_4, int32_3, uint32_3, float32, ipaddr, int64, and string registers.
  • Track whether accumulator registers acc16, acc32, and acc64 increment monotonically to catch counter roll-over handling errors.

Installation

  1. Deploy or connect a SunSpec-compatible Modbus TCP simulator or test server that serves Model 63001; note its IP address and TCP port (default 502).

  2. In the ModbusCloud portal, add a new device, select Modbus TCP, enter the simulator IP address and port, and set the unit ID to match the test server configuration.

  3. Import the SunSpec Model 63001 template from the template library and assign it to the newly created device; no additional register mapping is required.

  4. Trigger a manual poll and verify that all implemented registers return numeric values while all _u (unimplemented) registers report a not-implemented status in the portal.

Things to watch for

Why do all _u registers show zero instead of unimplemented?

The _u registers carry the SunSpec not-implemented sentinel value for their data type, for example 0x8000 for int16 or 0xFFFF for uint16. If your portal displays zero, the template parser is not checking for sentinel values before converting raw register data. Confirm that the ModbusCloud Gateway firmware is current and the template is the latest revision.

Scale factor registers return garbage. What is wrong?

SunSpec scale factor registers (sunssf_1 through sunssf_7) are signed int16 values representing powers of ten. A raw value of 0xFFFE means -2, not 65534. If values look wrong, confirm the register type is read as int16, not uint16, and that the portal applies the exponent by multiplication rather than as a direct offset.

The gateway connects but string registers show corrupt data.

String registers span multiple Modbus addresses (the string register starts at address 100 and string_u at 116, each occupying 16 registers). Ensure the Modbus read request covers the full register block in one transaction. Partial reads split across multiple requests can produce misaligned character data.

Is it safe to write to the writable registers in this test model?

This is a test or simulator model with no live hardware, so writes carry no physical risk here. However, if you adapt write-register testing to a production SunSpec device, exercise caution: writing to registers such as ipaddr or int32_3 on real equipment may change network configuration or operational setpoints and could require a device restart or invalidate the device warranty. Always confirm the target register's effect in the manufacturer documentation before writing.

Want to see how it works?

Electrician working in an open distribution board