Solar plant inverters are integrated into the SCADA and the plant controller almost always over Modbus, either directly or through the manufacturer's data logger at each station. Modbus only carries 16-bit registers; what each register means is defined by the manufacturer's map or, if the inverter supports it, by the SunSpec information models, which arrange data in blocks with an identifier, a length and scale factors. The integration is closed with point-to-point tests, setpoint write tests and loss-of-communication tests.
What is integrated and why
In a solar plant, each inverter delivers measurements (power, voltage, current, energy, temperature), statuses and alarms, and receives active and reactive power limiting setpoints. Two systems with different demands use that information:
- The plant SCADA, to supervise, alarm and keep historical records.
- The power plant controller (PPC), which distributes setpoints to meet at the point of interconnection what the grid code and the system operator require. Its control loop demands short response times; see PPC of a solar plant.
The most common protocol at this level is Modbus, as RTU over RS-485 or as TCP over Ethernet. How the protocol works, its frames and its limits are in Modbus RTU and TCP.
Two architectures
| Architecture | How it works | In favor | To watch |
|---|---|---|---|
| Through the manufacturer’s data logger | Each station has a data logger that reads its inverters and exposes the data to the SCADA and the PPC | Less traffic on the ring; manufacturer control functions built in | One more hop with its timing; the logger’s own map |
| Direct | The SCADA or the PPC reads each inverter over Modbus TCP, or through a serial-to-Ethernet converter | Full integrator control over the map and the polling | More traffic; the PPC must handle many devices |
In both, the plant network and its timing are covered in solar plant communications. If the data logger offers a manufacturer plant-control profile, check how it coexists with a PPC from another vendor before deciding.
The register map problem
Modbus defines four data types (coils, discrete inputs, input registers and holding registers) and 16-bit registers. It does not say what each register means, how a 32-bit integer or a float is represented, or in what order the two words go. The manufacturer decides all of that in its register map. That is why integrating inverters from two brands, or two firmware versions of the same one, may require two different maps.
What is checked for each point of the map:
- Read or write function and address (with the manufacturer’s numbering convention, from 0 or from 1).
- Data type, sign and word order.
- Unit and scale.
- Whether the value is instantaneous, accumulated or a status coded in bits.
- For setpoints: allowed range, whether they are lost on restart, and whether the inverter returns to a default value when communication is cut.
What SunSpec provides
The SunSpec Alliance publishes information models that arrange the Modbus registers of inverters, meters and batteries. An inverter that supports them presents its data as a chain of blocks: each starts with its model identifier and its length, so the master can walk through them and know what is there without a custom map. Some models from the official repository:
| Model | Content |
|---|---|
| 1 | Common: manufacturer, model, version, serial number; must be first |
| 101, 102, 103 | Single-phase, split-phase and three-phase inverter |
| 111 to 113 | The same measurements in floating point |
| 160 | Extension for inverters with several MPPTs |
| 701 to 714 | Distributed energy resources (DER): AC measurements, capacity, enter service, AC controls, volt-var, volt-watt, voltage and frequency trips, frequency droop, watt-var, storage and DC measurements |
| 802 | Battery |
The 700 series models cite IEEE 1547-2018, the US standard for interconnecting distributed resources, as their reference. Their functions (volt-var, trips, droop) are not necessarily the requirements of your market, which are set by the local grid code and the utility or system operator at the point of interconnection.
Scale factors. In the integer models, many measurements come with a scale factor register (for example, W_SF for the power of model 103). The real value is the register multiplied by ten raised to that factor. Forgetting it produces values ten or a hundred times larger or smaller.
SunSpec does not remove testing: an inverter can declare support and not implement every point, or implement the controls with its own nuances. The specification of each model is in the SunSpec Alliance public repository.
Integration tests
- Manufacturer map or SunSpec models of the installed firmware
- Reading each point. Compared with the inverter display and with a known value
- Scales, signs and word order
- Writing active and reactive power setpoints. Checking the effect on measured power
- Loss of communication. Quality flag in the SCADA and the inverter's fallback value
- Cycle time measured and signals ready for the PPC
- Point to point. Each measurement, status and alarm is compared with the device display and, when possible, with a known value. See point-to-point signal tests.
- Scales and signs. Power with its sign, accumulated energy that does not reset or overflow, scale factors applied.
- Setpoints. Each write is verified by its effect, not just by the protocol response: the inverter may accept the message and limit for another reason.
- Loss of communication. The link is cut to see the communication-lost flag in the SCADA and the inverter’s fallback behavior.
- Cycle time. The time the master takes to scan all the inverters is measured; the PPC needs it for its control loop.
Frequent mistakes
- Map for a different firmware version than the one installed.
- Crossed word order in 32-bit values.
- Scale factor read from another block or not applied.
- Addresses shifted by one because of the numbering convention.
- Setpoints that the inverter forgets on restart and nobody writes again.
- Many masters polling the same inverter (SCADA, PPC, manufacturer monitoring) without coordinating the polling.
The security of these accesses, which Modbus does not provide by itself, is reviewed in the network design.
When closing the integration, it helps to document the map used with its firmware version, the list of points tested with their result, the measured cycle time and the fallback behavior of each inverter model. That record avoids repeating the work when the manufacturer updates the firmware.
We help with your integration
At Tiza Group we integrate inverters, data loggers, PPCs and SCADA with its gateways, and we test the signals through to the control center. Depending on your case we recommend which tests to run and with which equipment, and include them in the quotation. Remote work is worldwide; field testing is in Colombia, or elsewhere on request. Tell us which inverters you have. What to include when specifying a SCADA or BMS that supervises motor control centers is summarised in SCADA and BMS Specification for Motor Control Centers.
Related guides
- Modbus RTU and TCP
- Solar plant communications
- Solar plant controller (PPC)
- Central or string inverter in solar plants
- Tests before commercial operation of solar plants
- PPC tests: setpoints, ramps and the grid-operator link
- Inverter tests on site: start-up and grid functions
- Fiber network tests in a solar farm: OTDR and losses
- SCADA and BMS Specification for Motor Control Centers
References
- Modbus Organization, MODBUS Application Protocol Specification V1.1b3.
- Modbus Organization, MODBUS Messaging on TCP/IP Implementation Guide.
- SunSpec Alliance, information models (public repository sunspec/models): models 1, 101 to 103, 111 to 113, 160, 701 to 714 and 802.
- IEEE 1547-2018: interconnection and interoperability of distributed energy resources with associated electric power system interfaces.
Frequently asked questions
What is SunSpec in an inverter?
It is a set of information models published by the SunSpec Alliance that arranges the Modbus registers of inverters, meters and batteries into standardized blocks. Each block starts with its identifier and its length; model 1 is the common one with manufacturer, model and serial number, and 103 is the three-phase inverter.
Why does the SCADA show a power ten or a hundred times higher than the real one?
Almost always because of the scale factor. In SunSpec, many measurements come as integers accompanied by a scale factor register, which is a power of ten; if the master does not apply it, or reads it from another block, the value comes out shifted.
Is it better to read the inverters directly or through the manufacturer's data logger?
It depends on the architecture. The data logger reduces traffic and usually brings the manufacturer's control functions, but it adds a hop and its own timing. Direct reading gives the integrator more control, with more load on the network. What matters is that the PPC receives measurements and sends setpoints within the time its control loop requires.