
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
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| id | Read | ||||
| l | Read | ||||
| sunssf_1 | Read | ||||
| sunssf_2 | Read | ||||
| sunssf_3 | Read | ||||
| sunssf_4 | Read | ||||
| int16_1 | Read | ||||
| int16_2 | Read | ||||
| int16_3 | Read | ||||
| int16_4 | Read and write | ||||
| int16_5 | Read | ||||
| int16_u | Read | ||||
| uint16_1 | Read | ||||
| uint16_2 | Read | ||||
| uint16_3 | Read | ||||
| uint16_4 | Read and write | ||||
| uint16_5 | Read | ||||
| uint16_u | Read | ||||
| acc16 | Read | ||||
| acc16_u | Read | ||||
| enum16 | Read | ||||
| enum16_u | Read | ||||
| bitfield16 | Read | ||||
| bitfield16_u | Read | ||||
| int32_1 | Read | ||||
| int32_2 | Read | ||||
| int32_3 | Read and write | ||||
| int32_4 | Read | ||||
| int32_5 | Read | ||||
| int32_u | Read | ||||
| uint32_1 | Read | ||||
| uint32_2 | Read | ||||
| uint32_3 | Read and write | ||||
| uint32_4 | Read | ||||
| uint32_5 | Read | ||||
| uint32_u | Read | ||||
| acc32 | Read | ||||
| acc32_u | Read | ||||
| enum32 | Read | ||||
| enum32_u | Read | ||||
| bitfield32 | Read | ||||
| bitfield32_u | Read | ||||
| ipaddr | Read and write | ||||
| ipaddr_u | Read | ||||
| int64 | Read and write | ||||
| int64_u | Read | ||||
| acc64 | Read | ||||
| acc64_u | Read | ||||
| float32 | Read and write | ||||
| float32_u | Read | ||||
| string | Read and write | ||||
| string_u | Read | ||||
| sunssf_5 | Read | ||||
| sunssf_6 | Read | ||||
| sunssf_7 | Read |
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.
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
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).
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.
Import the SunSpec Model 63001 template from the template library and assign it to the newly created device; no additional register mapping is required.
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.
Knowledge base articles for this device

SunSpec Modbus: one register map for many inverters
SunSpec Modbus is the open register map SMA, Fronius, SolarEdge and Kostal share. Learn the layout, int+SF vs float, ports, and reading a mixed fleet.
Fronius Modbus: read a Symo GEN24 over Modbus TCP
Fronius Modbus explained: enable Modbus TCP on the Symo GEN24 on port 502, choose between int+SF and float, read the right SunSpec registers and scale them correctly. Practical guide for solar installers.
SMA Modbus: reading a Sunny Boy over Modbus TCP (installers)
SMA Modbus explained: enable the Modbus TCP server on port 502, choose between the SMA profile (unit ID 3) and SunSpec (unit ID 126), read the right registers, and handle the NaN values at night. Practical guide for installers.
Want to see how it works?








