Modbus & Direct Control
This section covers direct inverter communication via the Modbus protocol, including Remote Dispatch register control (real-time power dispatching), Time of Use (TOU) scheduling, and connection setup for both RTU and TCP variants.
Modbus Protocol Overview
Modbus is a master-slave communication protocol widely used in industrial automation and energy systems.
Communication Variants
| Variant | Medium | Best For |
|---|---|---|
| Modbus RTU | Serial cable (RS485) | Smaller, local installations with direct wiring |
| Modbus TCP | Ethernet / Wi-Fi (IP) | Larger, distributed networks |
Serial Settings (RTU)
| Parameter | Value |
|---|---|
| Baud Rate | 9600 bps |
| Data Bits | 8 |
| Stop Bit | 1 |
| Parity | None |
Supported Function Codes
| Code | Description |
|---|---|
03H | Read Holding Registers (settings) |
04H | Read Input Registers (information) |
06H | Write Single Register |
10H | Write Multiple Registers |
Frame Structure
Each Modbus frame consists of:
- Slave Address — target device identifier
- Function Code — action to perform
- Data — payload (register address, values, etc.)
- CRC Checksum — error detection
Physical Connection
Modbus RTU
Modbus RTU uses RS485 serial cable communication:
- S5 and earlier series: Connect to the Com port (Pin 3 & 4)
- S6 generation: Connect to the dedicated RS485 port
TIP
The S6 RS485 port is separate from the monitoring port, so cloud monitoring via SolisCloud is fully preserved during Modbus RTU communication.
Modbus TCP
Modbus TCP operates over IP networks. Place the controller and inverter on the same local network (LAN or Wi-Fi) — no extra cabling required.
Current TCP Support
Modbus TCP is currently available on the S2-WL-ST data logger (firmware ≥ 100101B4). Support will be extended to other data loggers in future firmware releases.
Reference: Solis Freshdesk Article
Remote Dispatch (Real-Time Control)
Remote Dispatch allows external software to control the inverter in real time via Modbus register writes. Controls must be refreshed every 5 minutes; otherwise the inverter exits external control mode automatically.
Prerequisites
Verify that Remote Dispatch is available:
Register 34502 = 0xAA55 → Remote Dispatch supportedWARNING
Always use Function Code 10H (Write Multiple Registers) for Remote Dispatch. Split commands into two blocks as described below.
Control Block 1 — Master Switch (Registers 44100–44104)
| Register | Name | Values |
|---|---|---|
44100 | Remote Dispatch Switch | 0 = OFF, 1 = ON |
44101 | Failsafe Timeout | 1–1440 min (default: 5 min) |
44102–44104 | System Limit Import/Export | 0 = OFF |
Control Block 2 — Real-Time Command (Registers 44105–44115)
| Register | Name | Description |
|---|---|---|
44105 (U16) | Control Mode | 1 Battery Standby, 2 Charge/Discharge Control, 3 Grid Import/Export, 4 AC Port Import/Export |
44106 (S32) | Power Value | Negative = discharge/import; Positive = charge/export (unit: W) |
44108 (U16) | Function Switch | BIT flags for PV shutdown, DO control, grid charge permission |
Register 44108 Bit Map
| Bits | Function | Values |
|---|---|---|
| BIT00–01 | PV Shutdown | 0 Invalid, 1 Disable, 2 Enable |
| BIT02–03 | DO Control | 0 Invalid, 1 Disable, 2 Enable |
| BIT04–05 | Allow Grid Charge | 0 Invalid, 1 Allow, 2 Not Allow |
Time of Use (TOU) Scheduling
TOU allows pre-programmed charge/discharge schedules stored in the inverter and executed based on time.
Determine TOU Version
Read register 33289:
| Value | TOU Version |
|---|---|
0xAA55 | TOU V2 (new logic) |
| Other | TOU V1 (legacy logic) |
TOU V1 — Legacy Registers
| Register | Description |
|---|---|
43141 | TOU Charge Current |
43142 | TOU Discharge Current |
43143–43146 | TOU Charge Time Slot 1 |
43147–43150 | TOU Discharge Time Slot 1 |
43143–43190 | Full TOU charge/discharge time slots |
