Skip to content

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

VariantMediumBest For
Modbus RTUSerial cable (RS485)Smaller, local installations with direct wiring
Modbus TCPEthernet / Wi-Fi (IP)Larger, distributed networks

Serial Settings (RTU)

ParameterValue
Baud Rate9600 bps
Data Bits8
Stop Bit1
ParityNone

Supported Function Codes

CodeDescription
03HRead Holding Registers (settings)
04HRead Input Registers (information)
06HWrite Single Register
10HWrite Multiple Registers

Frame Structure

Each Modbus frame consists of:

  1. Slave Address — target device identifier
  2. Function Code — action to perform
  3. Data — payload (register address, values, etc.)
  4. 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 supported

WARNING

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)

RegisterNameValues
44100Remote Dispatch Switch0 = OFF, 1 = ON
44101Failsafe Timeout1–1440 min (default: 5 min)
44102–44104System Limit Import/Export0 = OFF

Control Block 2 — Real-Time Command (Registers 44105–44115)

RegisterNameDescription
44105 (U16)Control Mode1 Battery Standby, 2 Charge/Discharge Control, 3 Grid Import/Export, 4 AC Port Import/Export
44106 (S32)Power ValueNegative = discharge/import; Positive = charge/export (unit: W)
44108 (U16)Function SwitchBIT flags for PV shutdown, DO control, grid charge permission

Register 44108 Bit Map

BitsFunctionValues
BIT00–01PV Shutdown0 Invalid, 1 Disable, 2 Enable
BIT02–03DO Control0 Invalid, 1 Disable, 2 Enable
BIT04–05Allow Grid Charge0 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:

ValueTOU Version
0xAA55TOU V2 (new logic)
OtherTOU V1 (legacy logic)

TOU V1 — Legacy Registers

RegisterDescription
43141TOU Charge Current
43142TOU Discharge Current
43143–43146TOU Charge Time Slot 1
43147–43150TOU Discharge Time Slot 1
43143–43190Full TOU charge/discharge time slots