Накопители · BYD Battery-Box · Modbus TCP · KNX · 9 мин чтения

BYD Battery-Box HVM: SOC и мощность в KNX через Modbus TCP инвертора

Как получить SOC и мощность заряда/разряда BYD Battery-Box HVM через Modbus TCP инвертора (SolarEdge StorEdge, Fronius Symo Gen24, SMA Sunny Boy Storage) и передать в KNX для автоматизации самопотребления в латвийских домах.

Почему у BYD нет прямого порта Modbus

BYD Battery-Box HVM (высоковольтная система 403,2 В, 2,76–22,1 кВт·ч на стек) обменивается данными с инвертором через проприетарный протокол CAN-bus / EnergyLink по CAN-порту между батареей и инвертором. BYD не предоставляет пользовательски доступный порт Modbus TCP или RS485 на самой батарее. Все данные батареи должны считываться косвенно через сертифицированного партнёра-инвертора.

SolarEdge StorEdge + BYD: карта регистров

SolarEdge SE5K-RWS00BNN4 (StorEdge) с BYD Battery-Box HVM: Modbus TCP порт 1502, unit ID 1.

Специфичные для батареи holding-регистры (FC3, uint16 / int16):

РегистрОписаниеТип / Масштаб
62784 (0xF540)Средняя температура батареи 1int16, °C x10
62786 (0xF542)Напряжение DC батареи 1uint16, В x100
62794 (0xF54A)Мгновенная мощность батареи 1int16, Вт – положительное=заряд, отрицательное=разряд
62798 (0xF54E)Уровень заряда батареи 1 (SOC)uint16, %
62800 (0xF550)Состояние здоровья батареи 1 (SOH)uint16, %
62852 (0xF584)Битовая маска статуса батареи 1uint16: бит 3=заряд, бит 4=разряд, бит 11=ошибка

Привязка KNX: регистр 62794 (int16, Вт) делённый на 1000 соответствует KNX DPT 9.001 (мощность батареи кВт), регистр 62798 – KNX DPT 5.001 (SOC %). Примечание: регистр 62794 – знаковый integer, шлюз MDT Modbus должен быть настроен на тип данных signed int16 для этого регистра.

Fronius Symo Gen24 + BYD: SunSpec Model 802

Fronius Symo Gen24 5.0-1 с BYD Battery-Box HVM: Modbus TCP порт 502, unit ID 1. Регистры SunSpec начинаются с 40001 (базовый адрес).

SunSpec Model 802 (Battery Base Model) добавляется после Model 103 (Inverter). Для динамического определения Model 802: сканировать список блоков SunSpec с базы. На практике для Fronius Gen24 с прошивкой 1.24.x регистры батареи начинаются примерно с 40331:

Fronius Gen24 SunSpec Model 802 – ключевые регистры

Register 40331: SunSpec Model 802 ID (value 802)
Register 40333: Battery SOC (uint16, SF from register 40372)
Register 40337: Battery instantaneous power (int16, W – positive=charging)
Register 40341: Battery status (enum16: 1=off, 3=charging, 4=discharging, 7=fault)
Register 40361: Battery SOC (float32 alternative, direct %)

Для производственного использования: шлюз MDT Modbus считывает регистр 40361 (2 регистра, float32 big-endian) для SOC и регистр 40337 (int16) для мощности. Привязка к групповым адресам KNX.

SMA Sunny Boy Storage + BYD: адреса регистров

SMA SBS6.0-10 с BYD Battery-Box: Modbus TCP порт 502, unit ID 3 (SMA обычно использует unit ID 3 для накопительных инверторов).

РегистрОписаниеТип
30845-30846SOC батареи (0–100 %)uint32
30851-30852Состояние здоровья батареи (0–100 %)uint32
30775-30776Мощность заряда батареи (Вт – положительное=заряд, отрицательное=разряд)int32
30843-30844Рабочий статус батареи (2291=пусто, 2292=заряд, 2293=разряд, 2294=полный)uint32

Примечание: SMA использует тип uint32 (по 2 регистра) даже для процентных значений. Шлюз MDT Modbus: тип данных 'unsigned 32-bit integer', порядок байт 'big-endian', значение регистра SOC делить на 1 (уже в процентах, масштабирование не нужно).

Поток опроса Node-RED

Установите пакеты Node-RED: node-red-contrib-modbus (Modbus TCP polling). Структура потока:

Node-RED поток – SolarEdge BYD SOC и мощность в KNX

Inject (30s interval)
 Modbus Read (server: 192.168.1.100, port 1502, unit 1,
 FC3, start 62798, count 1, datatype INT)
 Function: msg.payload = msg.payload[0]; return msg;
 KNX-Classic Out (GA: 6/4/1, DPT 5.001 – Battery SOC %)

Second branch from inject (register 62794 – battery power):
 Modbus Read (same server, start 62794, count 1, datatype INT)
 Function:
 var value = msg.payload[0];
 if (value > 32767) { value = value - 65536; }
 msg.payload = value / 1000;
 return msg;
 KNX-Classic Out (GA: 6/4/2, DPT 9.001 – Battery power kW,
 positive = charging)

Автоматизация самопотребления KNX

Логический контроллер ETS6 (MDT Logic Controller или Weinzierl IP 731): правило – если GA 6/4/1 (SOC батареи) выше 85 И GA 7/0/0 (экспорт PV, DPT 9.001) выше 0,5 кВт, активировать выход KNX GA 1/5/4 (нагрев воды, таймер 30 мин). Правило – если GA 6/4/1 (SOC) опускается ниже 20, деактивировать выход KNX GA 1/6/1 (разрешение зарядки EV, DPT 1.001). Гистерезис: SOC должен подняться выше 30 для повторного включения зарядки EV.

Обработка знаковых целых чисел: Регистр SolarEdge 62794 (мощность батареи) является знаковым 16-битным integer. При считывании как беззнакового значения некоторыми шлюзами мощность заряда отображается как большое положительное число (например, 65436 вместо -100Вт). Всегда настраивайте шлюз MDT SCN-MOD.02 или аналогичный на signed int16 для этого регистра, либо применяйте формулу вычитания (если значение больше 32767: вычесть 65536) в Node-RED или логическом контроллере.

Нужен щит KNX с интеграцией Modbus батареи BYD под ваш проект?

Мы разрабатываем щиты низкого напряжения с интеграцией Modbus батарей SolarEdge, Fronius и SMA, логикой самопотребления KNX и полной документацией – поставляем протестированными и готовыми к вводу в эксплуатацию на вашем объекте в Латвии.

Запросить предложение
Загрузка ...
Наверх