В дополнение к HTTP и MQTT менеджер зарядки cFos также предоставляет Modbus API. Он создан по образцу SunSpec. В конфигурации Charging Manager можно указать параметр TCP-порта или COM-порта и Modbus ID в разделе "Настройки адреса SunSpec". В результате Менеджер зарядки cFos будет прослушивать TCP-порт или COM-порт с указанными параметрами, а также Modbus ID и Modbus ID + 1. Под Modbus ID доступны общие значения, параметры, флаги и переменные Менеджера зарядки. Устройства, настроенные в Charging Manager (настенные ящики и счетчики), могут быть запрошены по ID + 1. В качестве функции Modbus можно использовать 3 и 4 для чтения и 6 и 16 для записи. Внимание: на Raspberry порты TCP ниже 1024 зарезервированы для программ с правами администратора. Поэтому лучше выбрать более высокий номер порта, например, 1502.
Согласно спецификации SunSpec Modbus, диапазон адресов Modbus начинается с идентификатора "SunS" и далее содержит так называемые модели SunSpec. Каждая модель имеет идентификационный номер модели по смещению 0 и спецификацию длины остальных регистров, принадлежащих модели, по смещению 1. Значения модели следуют далее по смещению 2. Важно: Необходимо просканировать диапазон адресов SunSpec и всегда оценивать длину по смещению 1. Не следует предполагать фиксированную длину или фиксированные адреса регистров, так как вполне вероятно, что со временем мы будем добавлять в модели дополнительные значения. Модель 1 (Common) всегда идет первой, в ней указываются сведения о производителе, номера версий и т.д. Для получения подробной информации загрузите спецификации SunSpec Modbus с сайта SunSpec Alliance. Диапазон адресов SunSpec для cFos Charging Manager начинается с адреса 40000.
Первоначально cFos Charging Manager отображает следующие значения как модель 213 (трехфазный счетчик, поплавковый) под идентификатором Modbus после модели Common:
Потребление в сети
Всего потребителей
Всего генераторов
Избыток фотоэлектричества
Используемая мощность настенного блока
Доступная мощность настенного блока
Мощность при неисправности
Затем следует "пользовательская" модель 60000 с параметрами настройки cFos Charging Manager: 8 плавающих значений в настоящее время следуют после модели и длины: максимальный общий ток, резерв, перерасход, максимальный общий ток настенного блока в мА на фазу, максимальный перекос фаз (в мА), управление нагрузкой активно (1 = активно, 0 = неактивно), перекос вкл. потребителей (1 = активно, 0 = неактивно), управление нагрузкой активно (1 = активно, 0 = неактивно), управление нагрузкой неактивно (1 = активно, 0 = неактивно), перекос вкл. потребителей (1 = активно, 0 = неактивно). Нагрузка (1 = активно, 0 = неактивно), максимальный суммарный ток в процентах. Это глобальные параметры Charging Manager, которые также могут быть установлены в пользовательском интерфейсе. Изменения этих значений сохраняются (с максимальной задержкой в 150 секунд). Суммарный ток в процентах может быть использован, например, для динамической регулировки мощности зарядки по запросу оператора сети.
Далее следует "пользовательская" модель 60001. После модели и длины идут 32 регистра (16 бит). Они могут содержать значения 0 и 1, а также считывать или записывать до 32 флагов менеджера зарядки. Состояние этих флагов может быть запрошено в формулах с использованием CM._flag1 - CM._flag32 и использовано для расчетов.
Далее следует "пользовательская" модель 60002, а после модели и длины - возможные переменные Charging Manager. Для каждой переменной предусмотрено 22 регистра. Первые 20 регистров представляют собой строку Modbus для имени переменной (слишком длинные имена усекаются). Следующие 2 регистра содержат текущее плавающее значение переменной. При записи плавающего значения переменной Charging Manager удаляются все существующие формулы и переменная принимает фиксированное значение.
Под Modbus ID + 1 счетчики и настенные боксы, установленные в Charging Manager, отображаются следующим образом. Настенные боксы обмениваются как SunSpec модель 113, расширенная 2 16-битными регистрами. Смещение 62 содержит статус настенного блока (1=ожидание, 2=подключен, 3=зарядка, 4=зарядка с вентиляцией, 5=ошибка), а смещение 63 - идентификатор устройства. 1 = E1, 2 = E2 и т.д. Счетчики отображаются с помощью модели 213, расширенной на 2 16-битных регистра. Смещение 126 содержит роль счетчика (0=дисплей, 1=потребление, 2=генерация, 3=сетевое потребление, 4=потребление электромобилей, 5=хранение дома, 6=хранение всего), смещение 127 содержит идентификатор устройства (-1 для M1, -2 для M2 и т.д.). Если счетчик является запоминающим устройством (роль 5 или 6), то за моделью 213 следует модель 124, которая расширена 16-разрядным регистром. Смещение 26 снова содержит идентификатор устройства. Для отображения устройств под Modbus ID + 1 необходимо активизировать в настройках устройства функцию "Публиковать информацию об устройстве по Modbus".
Aufstellung Start-Addressen der Modelle:
Modbus ID:
Model: 1, Addr: 40002
Model: 213, Addr: 40070, Netzbezugszähler
Model: 213, Addr: 40196, Summe Verbraucher
Model: 213, Addr: 40322, Sume Erzeuger
Model: 213, Addr: 40448, PV Überschuss
Model: 213, Addr: 40574, Genutzte Wallboxleistung
Model: 213, Addr: 40700, Verfügbare Wallboxleistung
Model: 213, Addr: 40826, Fehler-Leistung
Model: 60000, Addr: 40952
Model: 60001, Addr: 40970
Model: 60002, Addr: 41004
Die konkreten Start-Addressen können bei späteren Versionen des cFos Charging Managers variieren, daher sollte der Register-Bereich, wie oben beschrieben, gescannt werden.
Modbus ID + 1:
Modelle und Startadressen hängen von den eingeblendeten Geräten ab.
Список значений для модели 213:
Смещение 0: 213
Смещение 1: Длина
Смещение 2: Суммарные токи L1-L3 (A)
Смещение 4: Ток L1 (A)
Смещение 6: Ток L2 (A)
Смещение 8: Ток L3 (A)
Смещение 10: Напряжение (В)
Смещение 12: Напряжение L1 (В)
Смещение 14: Напряжение L2 (В)
Смещение 16: Напряжение L3 (В)
Смещение 26: 50 Гц
Смещение 28: Мощность (Вт)
Смещение 30: Мощность L1 (Вт)
Смещение 32: Мощность L2 (Вт)
Смещение 34: Мощность L3 (Вт)
Смещение 36: Видимая мощность (ВА)
Смещение 38: Видимая мощность L1 (ВА)
Смещение 40: Видимая мощность L2 (ВА)
Смещение 42: Видимая мощность L3 (ВА)
Смещение 44: Реактивная мощность (ВАр)
Смещение 60: Экспорт, активная мощность (Втч)
Смещение 68: Импорт, активная мощность (Втч)
Смещение 126: Роль (для Modbus ID + 1)
Смещение 127: ID устройства (для Modbus ID + 1)
Список значений для модели 113:
Смещение 0: 113
Смещение 1: Длина
Смещение 2: Суммарные токи L1-L3 (A)
Смещение 4: Ток L1 (A)
Смещение 6: Ток L2 (A)
Смещение 8: Ток L3 (A)
Смещение 16: Напряжение L1 (В)
Смещение 18: Напряжение L2 (В)
Смещение 20: Напряжение L3 (В)
Смещение 22: Мощность (Вт)
Смещение 24: 50 Гц
Смещение 26: Видимая мощность (ВА)
Смещение 32: Импорт, активная мощность (Втч)
Смещение 62: Статус (для Modbus ID + 1)
Смещение 63: ID устройства (для Modbus ID + 1)
Список значений для модели 124:
Смещение 0: 124
Смещение 1: Длина
Смещение 2: Максимальная мощность зарядки/разрядки (Вт)
Смещение 3: Процент от текущего предела мощности зарядки
Смещение 4: Процент от текущего предела мощности разрядки
Смещение 8: Состояние зарядки в процентах
Смещение 18: Масштабный коэффициент для смещения 2
Смещение 19: Масштабный коэффициент для смещения 3 и 4
Смещение 26: ID устройства (для Modbus ID + 1)
Список значений для модели 60000:
Все значения в плавающих значениях, доступ на чтение/запись вызывает обновление флэш-памяти, т.е. не меняйте часто, чтобы избежать повреждения.т.е. не меняйте часто, чтобы избежать повреждений.
Смещение 0: 60000 (unt16, только для чтения)
Смещение 1: Длина (uint16, только для чтения)
Смещение 2: Макс. Общий ток (мА)
Смещение 4: Резерв мощности (мА)
Смещение 6: Перерасход (мА)
Смещение 8: Макс. общий ток Wallbox (мА)
Смещение 10: Макс. Дисбаланс фаз (мА)
Смещение 12: 1 = Управление нагрузкой активно, 0 = неактивно
Смещение 14: 1 = Добавить потребление дома к дисбалансу, 0 = неактивно
Смещение 16: Процент от макс. общего тока, не сохраняется, может часто изменяться.
Список значений для модели 60001:
Все значения 0 или 1, int16, доступ для чтения/записи, не сохраняются, могут часто изменяться.
Смещение 0: 60001 (uint16, только для чтения)
Смещение 1: Length (uint16, только для чтения)
Смещение 2: CM._flag1
...
Смещение 33: CM._flag32
Список значений для модели 60002:
Все значения плавающие, доступ для чтения/записи, не сохраняются, могут быть часто изменены. Смещение 0: 60002 (uint16, только для чтения)
Смещение 1: Length (uint16, только для чтения)
Смещение 2..22: Имя переменной менеджера зарядки 1
Смещение 23..24: Значение переменной менеджера зарядки 1
Смещение 25..45: Имя переменной менеджера зарядки 2
Смещение 46..47: Значение переменной менеджера зарядки 2
...