Dokumentacja

odczyt i sterowanie cFos Charging Manager poprzez Modbus

Oprócz HTTP i MQTT, cFos Charging Manager zapewnia również interfejs API Modbus. Jest on wzorowany na SunSpec. W konfiguracji Charging Managera można określić parametr portu TCP lub COM oraz identyfikator Modbus ID w sekcji "Ustawienia adresu SunSpec". Powoduje to, że cFos Charging Manager nasłuchuje na porcie TCP lub COM zgodnie z określonymi parametrami oraz na Modbus ID i Modbus ID + 1. Ogólne wartości, parametry, flagi i zmienne Charging Managera są dostępne pod Modbus ID. Urządzenia skonfigurowane w Charging Manager (stacje ładowania i liczniki) mogą być odpytywane pod ID + 1. Jako funkcji Modbus można użyć 3 i 4 do odczytu oraz 6 i 16 do zapisu. Uwaga: Na Raspberry porty TCP poniżej 1024 są zarezerwowane dla programów z prawami administratora. Dlatego lepiej jest wybrać wyższy numer portu, np. 1502.

Specyfikacja SunSpec Modbus określa, że zakres adresów Modbus zaczyna się od identyfikatora "SunS", a następnie zawiera tak zwane modele SunSpec. Każdy model ma numer identyfikacyjny modelu w offsecie 0 i specyfikację długości pozostałych rejestrów należących do modelu w offsecie 1. Wartości modelu są następnie podawane od offsetu 2. Ważne: Należy skanować zakres adresów SunSpec i zawsze szacować długość przy offsecie 1. Nie należy zakładać stałych długości lub stałych adresów rejestrów, ponieważ jest bardzo prawdopodobne, że z czasem dodamy kolejne wartości do modeli. Model 1 (Common) jest zawsze pierwszy, ze szczegółami dotyczącymi producenta, numerów wersji itp. Prosimy o pobranie specyfikacji SunSpec Modbus ze strony SunSpec Alliance w celu uzyskania szczegółowych informacji. Zakres adresów SunSpec dla cFos Charging Manager zaczyna się od adresu 40000.

Menedżer ładowania cFos początkowo wyświetla następujące wartości jako Model 213 (licznik trójfazowy, pływak) pod identyfikatorem Modbus po modelu Common:
Zużycie sieci
Odbiorcy ogółem
Generatory ogółem
Nadwyżka PV
Wykorzystana moc stacji
Dostępna moc stacji
Moc awarii

Następnie wyświetlany jest "niestandardowy" model 60000 z parametrami ustawień cFos Charging Manager: 8 wartości zmiennoprzecinkowych aktualnie następujących po modelu i długości: Maksymalny prąd całkowity, rezerwa, przekroczenie, maksymalny prąd całkowity stacji w mA na fazę, maksymalne niezbilansowanie faz (w mA), zarządzanie obciążeniem aktywne (1 = aktywne, 0 = nieaktywne), niezbilansowanie w tym odbiorcy (1 = aktywne, 0 = nieaktywne), zarządzanie obciążeniem aktywne (1 = aktywne, 0 = nieaktywne), zarządzanie obciążeniem nieaktywne (1 = aktywne, 0 = nieaktywne), niezbilansowanie obciążenia w tym odbiorcy (1 = aktywne, 0 = nieaktywne). Obciążenie (1 = aktywne, 0 = nieaktywne), maksymalny prąd całkowity w procentach. Są to globalne parametry Charging Managera, które można również ustawić w interfejsie użytkownika. Zmiany tych wartości są zapisywane (z maksymalnym opóźnieniem 150 sekund). Całkowity prąd w procentach może być wykorzystany na przykład do dynamicznego dostosowania mocy ładowania na żądanie operatora sieci.

Po tym następuje "niestandardowy" model 60001. 32 rejestry (16-bitowe) następują po modelu i długości. Mogą one zawierać wartości 0 i 1 oraz odczytywać lub zapisywać do 32 flag Charging Manager. Stan tych flag można następnie sprawdzić w formułach przy użyciu CM._flag1 do CM._flag32 i wykorzystać do obliczeń.

Po tym następuje "niestandardowy" model 60002, a następnie możliwe zmienne Charging Manager po modelu i długości. Dla każdej zmiennej dostępne są 22 rejestry. Pierwsze 20 rejestrów to ciąg Modbus dla nazwy zmiennej (zbyt długie nazwy są obcinane). Kolejne 2 rejestry zawierają bieżącą wartość zmiennej. Jeśli zapiszesz wartość zmiennej Charging Manager, usuniesz wszelkie istniejące formuły i ustawisz zmienną na stałą wartość.

Pod Modbus ID + 1 liczniki i stacje ładowania skonfigurowane w Charging Manager są wyświetlane w następujący sposób. Stacje ładowania wymieniają się jako SunSpec model 113 rozszerzony o 2 16-bitowe rejestry. Przesunięcie 62 zawiera status stacji ładowania (1=oczekiwanie, 2=podłączona, 3=ładowanie, 4=ładowanie z wentylacją, 5=błąd), a przesunięcie 63 zawiera identyfikator urządzenia. 1 = E1, 2 = E2 itd. Liczniki są wyświetlane z modelem 213 rozszerzonym o 2 16-bitowe rejestry. Przesunięcie 126 zawiera rolę licznika (0=wyświetlanie, 1=zużycie, 2=generacja, 3=zużycie sieci, 4=zużycie samochodu elektrycznego, 5=przechowywanie w domu, 6=przechowywanie wszystkich), przesunięcie 127 zawiera identyfikator urządzenia (-1 dla M1, -2 dla M2 itd.). Jeśli licznik jest urządzeniem pamięci masowej (rola 5 lub 6), po modelu 213 następuje model 124, który jest rozszerzony o 16-bitowy rejestr. Przesunięcie 26 ponownie zawiera identyfikator urządzenia. Aby wyświetlać urządzenia pod Modbus ID + 1, należy aktywować opcję "Publish device information via Modbus" w ustawieniach urządzenia.

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.

Lista wartości dla modelu 213:
Przesunięcie 0: 213
Przesunięcie 1: Długość
Przesunięcie 2: Całkowite prądy L1-L3 (A)
Przesunięcie 4: Prąd L1 (A)
Przesunięcie 6: Prąd L2 (A)
Przesunięcie 8: Prąd L3 (A)
Przesunięcie 10: Napięcie (V)
Przesunięcie 12: Napięcie L1 (V)
Przesunięcie 14: Napięcie L2 (V)
Przesunięcie 16: Napięcie L3 (V)
Przesunięcie 26: 50 Hz
Przesunięcie 28: Moc (W)
Przesunięcie 30: Moc L1 (W)
Przesunięcie 32: Moc L2 (W)
Przesunięcie 34: Moc L3 (W)
Przesunięcie 36: Moc pozorna (VA)
Przesunięcie 38: Moc pozorna L1 (VA)
Przesunięcie 40: Moc pozorna L2 (VA)
Przesunięcie 42: Moc pozorna L3 (VA)
Przesunięcie 44: Moc bierna (VAr)
Przesunięcie 60: Eksport, moc czynna (Wh)
Przesunięcie 68: Import, moc czynna (Wh)
Offset 126: Rola (dla Modbus ID + 1)
Offset 127: ID urządzenia (dla Modbus ID + 1)

Lista wartości dla modelu 113:
Offset 0: 113
Offset 1: Długość
Offset 2: Suma prądów L1-L3 (A)
Offset 4: Prąd L1 (A)
Przesunięcie 6: Prąd L2 (A)
Przesunięcie 8: Prąd L3 (A)
Przesunięcie 16: Napięcie L1 (V)
Przesunięcie 18: Napięcie L2 (V)
Przesunięcie 20: Napięcie L3 (V)
Przesunięcie 22: Moc (W)
Przesunięcie 24: 50 Hz
Przesunięcie 26: Moc pozorna (VA)
Przesunięcie 32: Import, moc czynna (Wh)
Przesunięcie 62: Status (dla Modbus ID + 1)
Przesunięcie 63: ID urządzenia (dla Modbus ID + 1)

Lista wartości dla modelu 124:
Przesunięcie 0: 124
Przesunięcie 1: Długość
Przesunięcie 2: Maks. moc ładowania/rozładowania (W)
Przesunięcie 3: Procent aktualnego limitu mocy ładowania
Przesunięcie 4: Procent aktualnego limitu mocy rozładowania
Przesunięcie 8: Stan ładowania w procentach
Przesunięcie 18: Współczynnik skalowania dla przesunięcia 2
Przesunięcie 19: Współczynnik skalowania dla offsetu 3 i 4
Offset 26: Identyfikator urządzenia (dla Modbus ID + 1)

Lista wartości dla modelu 60000:
Wszystkie wartości w float, dostęp do odczytu/zapisu, powoduje aktualizację pamięci flash, tzn. nie zmieniaj często, aby uniknąć uszkodzenia.tzn. nie zmieniaj często, aby uniknąć uszkodzenia.
Offset 0: 60000 (unt16, tylko do odczytu)
Offset 1: Length (uint16, tylko do odczytu)
Offset 2: Max. Całkowity prąd (mA)
Przesunięcie 4: Rezerwa mocy (mA)
Przesunięcie 6: Nadmierny pobór (mA)
Przesunięcie 8: Maks. całkowity prąd Wallbox (mA)
Przesunięcie 10: Maks. Nierównowaga faz (mA)
Przesunięcie 12: 1 = Zarządzanie obciążeniem aktywne, 0 = nieaktywne
Przesunięcie 14: 1 = Dodaj zużycie domowe do nierównowagi, 0 = nieaktywne
Przesunięcie 16: Procent maks. prądu całkowitego, nie jest zapisywany, może być często zmieniany.

Lista wartości dla modelu 60001:
Wszystkie wartości 0 lub 1, int16, dostęp do odczytu/zapisu, nie są zapisywane, mogą być często zmieniane.
Offset 0: 60001 (uint16, tylko do odczytu)
Offset 1: Length (uint16, tylko do odczytu)
Offset 2: CM._flag1
....
Offset 33: CM._flag32

Lista wartości dla modelu 60002:
Wszystkie wartości float, dostęp do odczytu/zapisu, nie są zapisywane, mogą być często zmieniane. Offset 0: 60002 (uint16, tylko do odczytu)
Offset 1: Length (uint16, tylko do odczytu)
Offset 2..22: Name Charging Manager Variable 1
Offset 23..24: Value Charging Manager Variable 1
Offset 25..45: Name Charging Manager Variable 2
Offset 46..47: Value Charging Manager Variable 2
... ...