PV Self-Consumption KNX Logic: расчет избытка и приоритетное управление нагрузками
Максимизация коэффициента самопотребления требует KNX логики, которая непрерывно отслеживает генерацию солнечной энергии и импорт/экспорт сети, затем активирует гибкие нагрузки в порядке приоритета при наличии избытка. Это руководство охватывает полную реализацию — от схемы входных групповых адресов и расчета избытка до таблиц приоритетов нагрузок, гистерезиса, динамического управления током EV и нулевой инжекции для избежания штрафов за подачу в сеть.
Цель самопотребления и требования к входным данным
Коэффициент самопотребления (SCR) — это доля генерации PV, потребляемая непосредственно на месте, а не экспортируемая в сеть. Более высокий SCR означает меньшие счета за электроэнергию, когда тариф на подачу в сеть ниже розничного тарифа на импорт — что характерно для большинства европейских стран с 2022 года. KNX логика самопотребления улучшает SCR путем автоматического включения управляемых нагрузок при наличии избыточной солнечной энергии.
Для эффективной KNX логики самопотребления требуются два входных сигнала. Мощность генерации PV от инвертора через Modbus к KNX является опциональной — показания мощности сети от интеллектуального счетчика достаточны сами по себе, так как они напрямую показывают баланс импорта/экспорта. Использование мощности сети в качестве основного входного сигнала позволяет избежать ошибок калибровки из-за собственного потребления инвертора.
Схема входных групповых адресов для логики самопотребления
GA '6/0/1': PV Generation Power (W)
Source: inverter Modbus → KNX Modbus gateway
DPT: 9.001 (2-byte float, kW) or 13.010 (4-byte, W)
Update: every 10 seconds
Note: optional — grid power GA is sufficient for control
GA '6/0/2': Grid Power (W), signed
Source: Eastron SDM630 Modbus, or SOCOMEC Countis E14,
or inverter internal meter via Modbus
DPT: 9.001 (kW, signed: positive = import, negative = export)
Update: every 10 seconds
This is the PRIMARY control input
Surplus calculation:
When GA '6/0/2' < 0: abs(value) = export power = surplus
When GA '6/0/2' > 0: building is importing = no surplus
Smart meter options:
Eastron SDM630: Modbus TCP via RS485 converter
Register 53 (total import/export W, float32, FC4)
SOCOMEC Countis E14: Modbus TCP port 502
Register 0x0034 (active power signed, int32)
Huawei SUN2000 internal meter: register 32261 (grid power)Таблица приоритетов нагрузок и пороги активации
Управляемые нагрузки активируются в порядке приоритета по мере увеличения избытка. Приведенная ниже таблица приоритетов представляет типичную жилую установку с водонагревателем, зарядным устройством EV и аккумуляторным накопителем. Настройте пороги в соответствии с размерами ваших нагрузок и желаемой последовательностью активации.
| Приоритет | Нагрузка | Порог активации | Действие KNX |
|---|---|---|---|
| 1 (низший) | Водонагреватель погружной 3 кВт | Избыток 1500 Вт в течение 120 с | GA '6/1/1' = ON (relay) |
| 2 | Буст тока зарядной станции EV | Дополнительные 250 Вт на каждый 1 А выше базовых 6 А | GA '6/1/2' = current value (A) |
| 3 | Принудительный заряд батареи | Любой избыток после насыщения P1+P2 | GA '6/1/3' = ON (Modbus write) |
| 4 (наивысший) | Посудомоечная или стиральная машина | Избыток 2000 Вт в течение 300 с | GA '6/1/4' = ON (smart socket) |
Приоритет 1 активируется первым при самом низком пороге избытка — ТЭН водонагревателя мощностью 3 кВт обеспечивает отличное поглощение нагрузки. Зарядка EV при минимальных 6 А (1,38 кВт однофазно) требует избытка не менее 1,5 кВт для запуска, затем ток увеличивается по мере роста избытка. Принудительный заряд батареи действует как сборщик остаточного избытка после насыщения других нагрузок.
Реализация логики KNX ETS6 с контроллером логики MDT
Контроллер логики MDT SCN-LCRM.01 выполняет логику EibScript непосредственно в устройстве KNX без отдельного ПК или сервера. Для более простых установок альтернативой является Enertex EibPC, который запускает EibScript в выделенном Linux-устройстве. Оба поддерживают арифметические операции над значениями групповых адресов KNX, таймеры и условную отправку групповых телеграмм.
MDT Logic Controller EibScript — логика самопотребления
// EibScript runs on MDT SCN-LCRM.01
// GA '6/0/2' = grid power (kW, signed float, DPT 9.001)
// Negative = export (surplus available)
ON CHANGE OF GA("6/0/2"):
grid_kw = READ GA("6/0/2")
surplus_w = grid_kw * -1000 // convert to positive W if exporting
// Priority 1: water heater (3 kW, threshold 1.5 kW surplus)
IF surplus_w > 1500 AND TIMER_ELAPSED("wh_timer", 120) THEN
SEND GA("6/1/1") = TRUE // water heater relay ON
TIMER_RESET("wh_timer")
ELSE IF surplus_w < 1000 AND TIMER_ELAPSED("wh_off", 60) THEN
SEND GA("6/1/1") = FALSE // deactivate with hysteresis
TIMER_RESET("wh_off")
END IF
// Priority 2: EV charger current
IF surplus_w > 1500 THEN
ev_amps = MAX(6, MIN(32, surplus_w / 230)) // single-phase
SEND GA("6/1/2") = ev_amps // DPT 5.010 unsigned byte (amps)
ELSE IF surplus_w < 1000 THEN
SEND GA("6/1/2") = 0 // stop EV chargerРасчет тока трехфазной зарядной станции EV
// Three-phase EV charger (e.g. Alfen Eve, ABB Terra AC)
// Three-phase power: P = V * I * sqrt(3) ≈ I * 690W per amp
ev_amps_3ph = MAX(6, MIN(32, surplus_w / 690))
SEND GA("6/1/2") = ev_amps_3ph
// GA '6/1/2' → KNX Modbus gateway write:
// Alfen Eve register 316: max charge current (A, uint16)
// EVBox Elvi register 111: current limit (A, uint16)
// Weinzierl 5010 write task: GA '6/1/2' triggers Modbus FC6
// Update every 30 seconds — smooth out cloud-induced fluctuations
// Single-phase minimum: 6A = 1.38 kW
// Three-phase minimum: 6A = 4.14 kW (higher surplus required)Гистерезис для предотвращения дребезга реле
Без гистерезиса реле KNX, управляющее водонагревателем или зарядной станцией EV, может многократно включаться и выключаться в течение нескольких минут, когда облачность вызывает колебания солнечной генерации вокруг порога активации. Это сокращает срок службы реле и вызывает слышимые щелчки в распределительном щите. Двухпороговый гистерезис решает эту проблему.
Реализация гистерезиса — пороги активации и деактивации
Two-threshold hysteresis example (water heater):
Activate threshold: surplus > 1500W for 120 seconds
Deactivate threshold: surplus < 1000W for 60 seconds
This means:
- Load only activates if surplus stays above 1500W for 2 minutes
- Load only deactivates if surplus drops below 1000W for 60s
- 500W hysteresis band prevents rapid cycling
EibScript timer-based implementation:
// On each GA '6/0/2' update:
IF surplus_w > 1500 THEN
TIMER_START("wh_on_timer", 120) // 120s countdown
ELSE
TIMER_RESET("wh_on_timer") // reset if drops below threshold
END IF
IF TIMER_FIRED("wh_on_timer") THEN
SEND GA("6/1/1") = TRUE
END IF
// Mirror logic for deactivation with 1000W threshold and 60s timer
Real-world effect: a passing cloud lasting 90 seconds
does not cycle the water heater relay
Solar must be consistently low for 60s before deactivationУправление нулевой инжекцией в сеть
В некоторых странах, включая Испанию (с 2019 года, Королевский указ 244/2019 с изменениями) и некоторые зоны итальянских DSO, экспорт в сеть для жилых домов штрафуется, ограничивается нулем или требует отдельного разрешения. Логика KNX для нулевой инжекции немедленно снижает мощность гибких нагрузок при обнаружении экспорта, поддерживая почти нулевую инжекцию без потери генерируемой энергии.
Нулевая инжекция в сеть — логика KNX
Grid zero mode: GA '6/2/0' = TRUE (enabled by time schedule
or manually from touchpanel)
ON CHANGE OF GA("6/0/2") WHEN READ GA("6/2/0") = TRUE:
grid_w = READ GA("6/0/2") * 1000 // convert kW to W
IF grid_w < -100 THEN // exporting > 100W
// Step 1: reduce EV charger current by 1A
ev_curr = READ GA("6/1/2")
IF ev_curr > 6 THEN
SEND GA("6/1/2") = ev_curr - 1
ELSE IF ev_curr <= 6 THEN
// Step 2: switch off water heater
SEND GA("6/1/1") = FALSE
END IF
ELSE IF grid_w > 200 THEN // importing — can increase
// Re-enable water heater if surplus appeared
SEND GA("6/1/1") = TRUE
// Increase EV charger current
ev_curr = READ GA("6/1/2")
IF ev_curr < 32 THEN
SEND GA("6/1/2") = ev_curr + 1
END IF
END IF
Response time: under 15 seconds (one Modbus poll cycle)
Suitable for compliance with zero-export regulationsПроцедура пусконаладочных испытаний
Ввод в эксплуатацию логики самопотребления требует имитации условий избытка солнечной энергии без ожидания солнечной погоды. Регистр ограничения активной мощности инвертора позволяет программно снизить выходную мощность до нуля, создавая контролируемую тестовую среду.
Тест ввода в эксплуатацию логики самопотребления
Preparation:
Disconnect EV charger and water heater from load circuit
(or use test resistive loads that can tolerate cycling)
Simulate surplus — inverter active power limit:
Fronius GEN24: Modbus write reg 40233 = 0 (limit to 0W)
Activation: write reg 40236 = 1 (enable limit function)
SolarEdge: app → Advanced → Active Power Limit (installer only)
Huawei SUN2000: Modbus write reg 40119 = power limit %
With inverter output limited to 0W: building imports from grid
Grid power GA '6/0/2' shows positive value (import)
No surplus → loads should be OFF — verify GA '6/1/1' = OFF
Re-enable inverter output:
Fronius: write reg 40233 = 100 (100% = no limit)
Grid power GA '6/0/2' goes negative (export) = surplus
Verify load activation sequence:
At 1500W surplus for 120s: GA '6/1/1' should go TRUE
At 3000W surplus: GA '6/1/2' should show amps value
ETS6 Group Monitor confirms GA changes in real time
Re-enable inverter fully when test complete:
Write active power limit back to 100% or disable limit functionЦелевой коэффициент самопотребления
A well-configured KNX self-consumption system with water heater, EV charger, and battery storage typically achieves 70-85% SCR for a family home in Central Europe. Without flexible load control, SCR is typically 30-40% — the same hardware but without the KNX logic layer. Log GA '6/0/1' and '6/0/2' to InfluxDB for monthly SCR calculation.
EibPC как альтернатива MDT
Enertex EibPC работает на том же языке EibScript, что и логический контроллер MDT, но на выделенном устройстве Linux с сетевым подключением для ведения журналов InfluxDB и веб-панели управления. Предпочтителен для установок, требующих ведения журналов и визуализации наряду с управлением самопотреблением. Поддерживает MQTT для данных инвертора без отдельного шлюза Modbus.
Нужна солнечная панель с логикой самопотребления на KNX, изготовленная по спецификации?
Мы проектируем и изготавливаем низковольтные щиты с программами самопотребления на логическом контроллере MDT, шлюзами Modbus TCP для счетчиков и инверторов, управлением током зарядного устройства для электромобиля и полной документацией по вводу в эксплуатацию, которая поставляется протестированной на ваш объект.
Запросить цену →