SunSpec SunSpec Model 601 — Tracker Controller DRAFT 2 Modbus TCP template

SunSpec Model 601 — Tracker Controller DRAFT 2

SunSpec Model 601 is the SunSpec Alliance's open standard information model for solar tracker controllers, used in utility-scale and commercial PV plants to monitor and command single-axis or dual-axis panel arrays over Modbus TCP. This template reads the controller's identity block, local date and time, tracker type, and global alarm status, and exposes two writable setpoint registers: global elevation angle and global azimuth angle. The global control mode register determines whether all linked trackers follow automatic sun-tracking or a manual override position. A degree scale factor register applies to all angle values. Importing this template into the ModbusCloud Gateway gives operators a single polling profile that works with any SunSpec-certified tracker controller implementing model 601.

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

Registers (13)

13 read, 3 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
idRead
lRead
namRead
typRead
dtlocYYYYMMDDRead
tmlochhmmssRead
dayRead
glblelctlDegreesRead and write
glblazctlDegreesRead and write
glblctlRead and write
glblalmRead
dgr_sfRead
nRead

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

  • Monitor the global alarm register to detect tracker faults before they cause sustained energy loss.
  • Verify that the controller's local date and time registers match site time to confirm log timestamp accuracy.
  • Track the global control mode register to confirm trackers switch from manual override back to automatic at sunrise.
  • Alert on unexpected elevation or azimuth setpoint deviations to identify stalled actuators or misconfigured control logic.
  • Compare the reported tracker count register against commissioned units to spot controllers with dropped tracker segments.

Installation

  1. Enable Modbus TCP on the tracker controller under the communication or network settings section of its configuration interface, and note the assigned IP address and TCP port (default 502).

  2. Connect the tracker controller to the same LAN segment as the ModbusCloud Gateway, or route TCP port 502 between the controller's network and the Gateway's network.

  3. In the ModbusCloud portal, add the Gateway, import the SunSpec Model 601 template, and set the unit ID to match the controller's configured Modbus slave address.

  4. Trigger a single poll and verify that register id reads 601 and that nam returns a non-empty string, confirming correct model alignment before enabling continuous logging.

Things to watch for

Why do glblelctl and glblazctl always read zero?

Zero is a valid scaled value. Apply the dgr_sf scale factor before interpreting angle registers. If dgr_sf is -1, a raw value of 450 means 45.0 degrees. Check the scale factor register first; zero raw plus any negative scale factor still yields zero, which may be correct at night when a stow position of 0 degrees is commanded.

The gateway connects but the id register returns unexpected values. What now?

SunSpec model blocks are not always at a fixed absolute address. Model 601 is located by walking the SunSpec device map from the well-known base address. Confirm the template base address matches where model 601 actually sits in your controller's map by reading the id register at the configured offset and checking it equals 601.

Is it safe to write to glblelctl, glblazctl, or glblctl remotely?

Writing to these registers overrides the controller's automatic sun-tracking algorithm for all trackers simultaneously. An incorrect elevation or azimuth setpoint can drive panels into stow conflicts, mechanical limits, or shading rows. Always verify the control mode in glblctl, test with a small angle offset during low-wind conditions, and confirm with your tracker manufacturer whether remote writes require a local-override interlock.

Modbus TCP connection is refused on port 502. How do I fix this?

Most tracker controllers ship with Modbus TCP disabled by default. Enable it in the communication section of the controller's web or HMI interface. Also confirm there is no firewall or VLAN rule blocking TCP 502 between the ModbusCloud Gateway and the controller's IP address, and that no other Modbus client is holding the single available TCP connection.

Want to see how it works?

Electrician working in an open distribution board