Карта регистров SunSpec Modbus: AC мощность, SOC батареи и энергия для разных брендов солнечных инверторов
SunSpec определяет стандартную карту регистров Modbus для солнечных инверторов, что позволяет использовать одну конфигурацию шлюза KNX Modbus для работы с разными брендами. Понимание того, какие регистры содержат AC мощность, состояние заряда батареи и общую энергию, а также знание различий в портах и Unit ID для каждого бренда — основа любой интеграции солнечных инверторов с KNX.
SunSpec Alliance и стандартная карта регистров
SunSpec Alliance — это консорциум производителей солнечной отрасли, определяющий стандартные карты регистров Modbus. Любой инвертор с маркировкой SunSpec-compliant использует одни и те же адреса регистров для основных измерений, независимо от бренда. Эта стандартизация значительно упрощает настройку шлюза KNX Modbus при интеграции нескольких брендов инверторов на одном объекте.
Базовая модель SunSpec начинается с Modbus holding register 40001 (1-базовая адресация Modbus) или адреса регистра 40000 (0-базовая). Этот блок содержит название производителя, строку модели и версию прошивки в виде ASCII-текста — полезно для проверки правильности подключения устройства при вводе в эксплуатацию.
Модель SunSpec 103 — ключевые регистры трехфазного инвертора
All registers: Holding Registers (FC3), 1-based addressing
40001-40002: SunSpec ID (0x5375 0x6e53 = "SunS") — verify connectivity
40003: Base model length
40004-40021: Manufacturer name (ASCII, 32 chars)
40022-40037: Model string (ASCII, 32 chars)
SunSpec Model 103 (Three-Phase Inverter):
40083: AC Power (int16, W) — current output power
40085: AC Power Scale Factor (int16, typically -1 or -2)
Apply: actual_W = reg40083 * 10^(reg40085)
40089: AC Frequency (uint16, Hz, scale factor at 40090)
Typical value: 5000 = 50.00 Hz with SF -2
40093-40094: AC Energy (uint32, Wh) — lifetime production
40095: AC Energy Scale Factor (int16)
40101: DC Voltage (uint16, V, scale factor at 40102)
Typical: 3500 with SF -1 = 350.0V
40107: Operating state (uint16):
1=Off, 2=Sleeping, 3=Starting, 4=Running, 5=Throttled
6=ShuttingDown, 7=Fault, 8=StandbyСправочник портов и Unit ID по брендам
Хотя SunSpec стандартизирует адреса регистров, порт Modbus TCP и Unit ID различаются в зависимости от бренда. Использование неправильного порта или Unit ID — самая частая причина неудачной настройки шлюза KNX. Таблица ниже охватывает наиболее распространенные бренды, устанавливаемые в Германии, Нидерландах и Бенилюксе.
| Бренд / Модель | TCP порт | Unit ID | Примечания |
|---|---|---|---|
| SolarEdge HD-Wave | 1502 | 1 | Включить в приложении SE: Communication → Modbus TCP |
| KOSTAL PLENTICORE | 1502 | 71 | Modbus TCP включен по умолчанию |
| Fronius GEN24 Plus | 502 | 1 | Включение: Настройки → Modbus → TCP |
| GoodWe ES / ET | 502 | 247 | ID устройства по умолчанию 247 — в некоторых версиях прошивки используется 1 |
| SMA Sunny Boy Storage | 502 | 3 | Включение через SMA Sunny Portal → Modbus |
| Sungrow SH series | 502 | 1 | Включение в приложении iSolarCloud или локальном веб-интерфейсе |
| Huawei SUN2000 | 6607 | 0 | Требуется Smart Dongle — НЕ порт 502 |
| Шлюз Enphase IQ8 | 80 (HTTP/JSON) | Н/Д | Enphase использует HTTP API Envoy, а не Modbus |
Важное примечание по Huawei SUN2000: Huawei SUN2000 использует порт 6607 (не стандартный 502) и ID устройства 0 (не 1). Это самая распространенная ошибка конфигурации при интеграции инверторов Huawei с KNX-шлюзами. Всегда проверяйте с помощью Modbus Poll перед настройкой шлюза.
SunSpec Model 802 — регистры аккумуляторных накопителей
SunSpec Model 802 определяет стандартные регистры для систем аккумуляторного хранения. Не все бренды инверторов реализуют Model 802 — проверьте руководство по инвертору или сканирование моделей SunSpec (начиная с регистра 40001), чтобы подтвердить наличие модели батареи. Если нет, используйте фирменные регистры бренда, описанные ниже.
SunSpec Model 802 — ключевые регистры аккумуляторных накопителей
SunSpec Model 802 (Battery Storage):
40255: Battery SOC (uint16, %) — state of charge 0-100
40258-40259: Battery Power (int32, W)
Positive = charging, Negative = discharging
40261: Battery Voltage (uint16, 0.01V)
40263: Battery Current (int16, 0.01A)
40265: Battery Temperature (int16, 0.1°C)
40267: Battery State (uint16):
1=Disconnected, 2=Initialising, 3=Connected
4=Standby, 5=SOC Protection, 6=Fault, 7=Charging
8=Discharging
Proprietary battery registers (where Model 802 absent):
SolarEdge: reg 0xE140 (battery level %), 0xE18D (battery power W)
Fronius GEN24: reg 40352 (today generation float32 Wh)
reg 40358 (grid power float32 W)
KOSTAL PLENTICORE: register 154 (battery SOC, uint16, 1%)
Configure 2-register reads for int32 values:
In KNX gateway: set data type to 32-bit signed integer
High word first (big-endian) for all SunSpec int32 registersКонфигурация KNX Modbus шлюза
Weinzierl 5010 и MDT SCN-MIG.01 — наиболее часто используемые KNX Modbus TCP шлюзы в европейских KNX-проектах. Оба поддерживают несколько Modbus-устройств и гибкое сопоставление DPT. Настройте каждый инвертор как отдельное Modbus-устройство с его фирменным IP-адресом, портом и ID устройства.
Конфигурация Weinzierl 5010 для инвертора SolarEdge
Weinzierl KNX Modbus Gateway 5010 — ETS5/6 plug-in config: Device 1 — SolarEdge HD-Wave: IP: 192.168.1.50 Port: 1502 Unit ID: 1 Protocol: Modbus TCP Poll task 1 — AC Power: Register: 40082 (0-based = 40083 - 1) Type: int16, signed Scale: read register 40084 (SF), apply: value * 10^SF KNX GA: 6/0/1 DPT: 9.001 (2-byte float, kW — divide by 1000 in gateway) Poll interval: 10 seconds Poll task 2 — Battery SOC: Register: 0xE140 (SolarEdge proprietary, 0-based) Type: uint16 KNX GA: 6/0/3 DPT: 5.001 (1-byte %, 0-100) Poll interval: 60 seconds Poll task 3 — AC Energy lifetime: Registers: 40092-40093 (2 registers, uint32) Type: 32-bit unsigned integer, big-endian KNX GA: 6/0/4 DPT: 13.013 (4-byte signed, Wh) Poll interval: 300 seconds
Масштабные коэффициенты — самая распространенная ошибка интеграции
SunSpec определяет регистры масштабного коэффициента, которые должны применяться к сырым значениям регистров. Масштабный коэффициент — это целое число со знаком, представляющее множитель степени 10. Неприменение масштабного коэффициента приводит к ошибкам в 10 или 100 раз в значениях мощности и энергии — введенная в эксплуатацию система будет работать, но передавать неверные данные.
Применение масштабного коэффициента — пример для мощности переменного тока
Register 40083 raw value: 3500 (int16) Register 40085 SF value: -1 (int16) Actual AC power = 3500 * 10^(-1) = 350.0 W Without SF: gateway would report 3500W (10x error) With SF correctly applied: 350W (correct) Weinzierl 5010 auto-SF option: Enable "Read Scale Factor register" in poll task config Gateway reads SF register automatically, applies to value Outputs scaled float to KNX DPT 9.001 MDT SCN-MIG.01: Manually enter the SF value as a fixed divisor If SF is always -1 for your inverter: enter divisor 10 Not suitable if SF value changes dynamically Best practice: verify SF value with Modbus Poll tool first Read register 40085 — confirm it returns -1 or -2 Only then configure gateway with that fixed SF Most residential inverters have fixed SF values
Проверка ввода в эксплуатацию с помощью Modbus Poll
Перед настройкой шлюза KNX проверьте Modbus TCP-соединение инвертора и значения регистров с помощью Modbus Poll (бесплатное ПО для Windows). Этот шаг выявляет ошибки соединения, порта, ID устройства и адреса регистра до того, как они перейдут в конфигурацию шлюза KNX.
Шаги проверки ввода в эксплуатацию с Modbus Poll
1. Open Modbus Poll → Connection → Connect Mode: Modbus TCP/IP IP: <inverter IP or Smart Dongle IP> Port: <brand-specific port from table above> Slave ID: <brand-specific unit ID> 2. Setup → Read/Write Definition: Function: 03 (Read Holding Registers) Start address: 40000 (0-based = reg 40001) Quantity: 130 (reads registers 40001-40130) Click OK 3. Verify register 40001-40002 contains SunSpec ID: Should read: 21843 and 28243 (0x5375 and 0x6E53) Confirms SunSpec-compliant device at this address 4. Find register 40083 — AC Power raw value Compare with inverter display ± 5W Read register 40085 for scale factor 5. Apply scale factor: raw * 10^SF = actual watts Verify result matches inverter LCD or app display 6. Only configure KNX gateway after confirming: - Correct IP, port, unit ID connects successfully - AC power register matches inverter display - Battery SOC register (40255 or brand-specific) is correct
Совет по чтению 32-битных регистров
Для 32-битных регистров (энергия переменного тока, мощность батареи) читайте 2 последовательных регистра хранения. Modbus Poll отображает их отдельно — объедините: (reg_n * 65536) + reg_n+1 для uint32 с прямым порядком байт. Большинство шлюзов KNX обрабатывают это автоматически при настройке как 32-битный тип.
Включение Modbus на инверторах
Большинство инверторов поставляются с отключенным Modbus TCP для безопасности. Включите через приложение производителя или локальный веб-интерфейс перед попыткой подключения. SolarEdge требует установщика в приложении SE installer. Fronius GEN24 включает Modbus в локальном веб-интерфейсе в разделе Settings.
Нужна солнечная панель с интеграцией KNX Modbus, изготовленная по спецификации?
Мы проектируем и изготавливаем низковольтные щиты со шлюзами Modbus TCP, проверенными по SunSpec, отображением DPT KNX для мощности переменного тока и SOC батареи, а также полной документацией по вводу в эксплуатацию, протестированной на вашем объекте.
Запросить расчёт →