Dokumentacja NexBlue

Obsługiwane modele Edge 2 , Edge Max, Point 2 (Wielka Brytania)
Minimalna wersja oprogramowania układowego 03.09.88
Dostępne modele Delta, Delta Max, Delta Max (Wielka Brytania)
Minimalna wersja oprogramowania układowego 03.08.59

1. Kanał komunikacyjny

  • Typ kanału: TCP/IP
  • Interfejs fizyczny: połączenie za pomocą kabla Ethernet RJ45 / połączenie Wi-Fi

2. Komunikacja w protokole TCP/IP

2.1 Konfiguracja sieci

  • Tryb sieciowy: dynamiczne przydzielanie adresów IP przez protokół DHCP
  • Tryb awaryjny: adres IP statyczny skonfigurowany w aplikacji
Wymagania wstępne: Przed nawiązaniem połączenia Modbus TCP należy włączyć obsługę protokołu Modbus TCP w aplikacji „ NexBlue ”. Przejdź do ustawień ładowarki i włącz obsługę protokołu Modbus TCP.

W trybie DHCP urządzenie automatycznie żąda adresu IP od serwera DHCP. Po pomyślnym uzyskaniu adresu urządzenie rozgłasza swoje informacje za pośrednictwem protokołu mDNS. Nazwa usługi rozgłaszanej to:

_nexblue_modbus._tcp.local

Może to zostać automatycznie wykryte przez systemy EMS obsługujące protokół mDNS, takie jak Home Assistant i Tibber.


2.2 Port komunikacyjny

  • Port Modbus TCP: 502

2.3 Identyfikator jednostki

  • Wartość domyślna: 200
  • Zakres ustawień: 1–247

W protokole Modbus TCP identyfikator urządzenia (Unit ID) jest identyfikatorem logicznym zachowanym w celu zapewnienia zgodności z protokołem RTU. Wykorzystuje on ten sam parametr konfiguracyjny, co adres urządzenia podrzędnego stosowany w trybie RTU.


2.4 Definicje rejestrów

2.4.1 Typy rejestrów

Typ rejestru Funkcja Kod funkcji Opis
Rejestry wejściowe Odczyt rejestrów wejściowych 0x04 Rejestry tylko do odczytu, które zwracają pomiary lub informacje o stanie, takie jak napięcie, prąd, moc, temperatura, skumulowana energia itp.
Rejestry posiadania Odczyt rejestrów przechowujących 0x03 Rejestry do odczytu i zapisu. Urządzenie nadrzędne może odczytać aktualną konfigurację, aktualne wartości graniczne, stan trybu pracy itp.
Rejestry posiadania Zapisz do pojedynczego rejestru buforującego 0x06 Urządzenie nadrzędne wysyła pojedynczy parametr konfiguracyjny lub polecenie, takie jak ustawienie maksymalnego natężenia prądu lub rozpoczęcie/zakończenie ładowania.
Rejestry posiadania Zapis do wielu rejestrów buforowych 0x10 Program główny zapisuje jednocześnie wiele kolejnych rejestrów, co służy do zbiorczej aktualizacji konfiguracji lub ustrukturyzowanych grup parametrów.

Te cztery kody funkcji stanowią podstawowe kody rozpoznawane przez normy IEC 61131-3, EN 61107 oraz specyfikację ISO Modbus i są domyślnie obsługiwane przez niemal wszystkie urządzenia nadrzędne, sterowniki PLC i systemy EMS.

2.4.2 Planowanie adresów rejestru (mapa adresów)

Zasada Opis
Długość Pole adresu w ramce Modbus jest 16-bitową liczbą całkowitą bez znaku.
Podział warstwowy Podział według funkcji: Identyfikacja → Poziom stacji → Na złącze. Logika powinna być przejrzysta i łatwa do rozszerzenia.
Jednolity punkt wyjścia Wszystkie rejestry wykorzystują adresy logiczne. Adresowanie logiczne zazwyczaj zaczyna się od 0. W dokumencie przedstawiono zarówno format dziesiętny, jak i szesnastkowy.
Zasada wyrównania Dane 32-bitowe muszą zaczynać się od adresu parzystego, aby uniknąć przekraczania granic rejestrów.
Zarezerwowana przestrzeń na rozbudowę W każdym obszarze pozostawiono wolne miejsca, aby w przyszłych wersjach można było dodawać pola bez naruszania zgodności.
Kodowanie znaków Każdy rejestr ma rozmiar 2 bajtów. Ciągi znaków mają stałą długość i nie są uzupełniane wartością 0x00 w przypadku niewykorzystanych bajtów.
Kolejność bajtów/słów Wartości pojedynczych rejestrów stosują kolejność bajtów typu Big-Endian.
Wartości wielu rejestrów stosują pełny format Little-Endian (DCBA): kolejność bajtów typu Little-Endian w obrębie każdego 16-bitowego rejestru oraz kolejność słów typu Little-Endian (najpierw słowo o najniższej wartości).
Metody dostępu Do wprowadzania danych służy kod 0x04. Rejestry buforowe są odczytywane za pomocą kodu 0x03, a zapisywane za pomocą kodu 0x06 (pojedynczy zapis) lub 0x10 (wielokrotny zapis).

2.4.3 Identyfikator, wersja i czas (dane wejściowe, 0x04)

Adres Nazwa Typ Jednostka Dostęp Opis
0000–0007 / 0x0000–0x0007 Marka STRING(16) RO 2 bajty na rejestr, UTF-8/ASCII.
0008–0015 / 0x0008–0x000F Model STRING(16) RO Model urządzenia.
0016–0027 / 0x0010–0x001B Numer seryjny STRING(24) RO Numer seryjny urządzenia.
0028–0035 / 0x001C–0x0023 Wersja oprogramowania układowego STRING(16) RO Na przykład: 04.00.19.
0036 / 0x0024 Wersja mapowania Modbus UINT16 RO

Górny bajt oznacza wersję główną, a dolny bajt – wersję podrzędną.

Przykłady: 0x0100 = wersja 1.0; 0x0102 = wersja 1.2.

0037 / 0x0025 Liczba złączy UINT16 RO Liczba złączy: 1 lub 2.
0038–0039 / 0x0026–0x0027 Data UINT32 RRRRMMDD RO 32-bitowe wyrównanie do parzystej pozycji. Przykład: 20251202.
0040–0041 / 0x0028–0x0029 Czas UINT32 HHMMSS RO Przykład: 155630 oznacza 15:56:30.
0042 / 0x002A Strefa czasowa UINT16 protokoły RO Przykład: UTC+2 → +120.
0044 Wersja sprzętowa STRING(16) RO Wersja sprzętowa.
0043–0099 Zarezerwowane Zarezerwowane na potrzeby przyszłej identyfikacji, certyfikatów, informacji produkcyjnych itp.

2.4.4 Stan i pomiary w czasie rzeczywistym (wejście, 0x04)

Adres Nazwa Typ Jednostka Dostęp Opis
0100 / 0x0064 Stan Chargepoint UINT16 RO
  • 0: Dostępne
  • 1: Przygotowanie
  • 2: Ładowanie
  • 3: Zawieszone EVSE
  • 4: ZawieszoneEV
  • 5: Wykończenie
  • 6: Zarezerwowane
  • 7: Niedostępne
  • 8: Uszkodzony
0102–0103 / 0x0066–0x0067Obecny poziom L1FLOAT32ARO32-bitowe wyrównanie do parzystej pozycji.
0104–0105 / 0x0068–0x0069Obecny poziom L2FLOAT32ARO
0106–0107 / 0x006A–0x006BObecny poziom L3FLOAT32ARO
0108–0109 / 0x006C–0x006DNapięcie L1-NFLOAT32VRO
0110–0111 / 0x006E–0x006FNapięcie L2-NFLOAT32VRO
0112–0113 / 0x0070–0x0071Napięcie L3-NFLOAT32VRO
0114–0115 / 0x0072–0x0073Kąt fazowy L1FLOAT32°ROKąt fazowy względem L1-N.
0116–0117 / 0x0074–0x0075Kąt fazowy L2FLOAT32°ROKąt fazowy względem L1-N.
0118–0119 / 0x0076–0x0077Kąt fazowy L3FLOAT32°ROKąt fazowy względem L1-N.
0120–0121 / 0x0078–0x0079Moc czynna L1FLOAT32WRO
0122–0123 / 0x007A–0x007BMoc czynna L2FLOAT32WRO
0124–0125 / 0x007C–0x007DMoc czynna L3FLOAT32WRO
0126–0127 / 0x007E–0x007FMoc czynna ogółemFLOAT32WRO
0128–0129 / 0x0080–0x0081Energia sesjiFLOAT32kWhROBieżąca sesja.
0130–0133 / 0x0082–0x0085Energia na całe życieUINT64CoROEnergia skumulowana. 64-bitowa, 4 rejestry.
0134–0135 / 0x0086–0x0087Prąd rezerwowyFLOAT32AROPrąd rezerwowy ustawiany za pomocą NexBlue lub w chmurze.
0136–0137 / 0x0088–0x0089Maksymalny prąd ładowaniaFLOAT32AROMaksymalny prąd ładowania ustawia się za pomocą NexBlue lub w chmurze.
0138 / 0x008A Ładowanie fazowe UINT16 RO
  • 0: Adaptacyjne
  • 1: Tryb jednofazowy
  • 2: Zasilanie trójfazowe
0137–0399 / 0x0088–0x018F Zarezerwowane Przeznaczone do pomiaru napięcia, współczynnika mocy, częstotliwości, mocy na fazę itp.

2.4.5 Sterowanie i bezpieczeństwo (stan aktywny, odczyt 0x03 / zapis 0x06 lub 0x10)

Uwagi: W przypadku zaniku i przywrócenia zasilania sieciowego ładowarki urządzenie automatycznie przywróci wartości domyślne i konieczne będzie ponowne wprowadzenie danych.
Adres Nazwa Typ Jednostka Dostęp Opis
1000–1001 / 0x03E8–0x03E9 Ograniczenie prądu FLOAT32 A RW Ograniczenie prądu na poziomie stacji. Wartość domyślna: 16 A. Zakres: 0–32 A.
1002–1003 / 0x03EA–0x03EB Limit awaryjny FLOAT32 A RW Prąd odłączania awaryjnego można ustawić wyłącznie w zakresie 0–16. Wartości poniżej 6 są traktowane jako 0.
1004–1005 / 0x03EC–0x03ED Limit czasu rezerwy UINT32 s RW Próg limitu czasu dla sygnału pulsacyjnego. Wartość domyślna: 5 minut. Minimum: 30 sekund. Maksimum: 30 minut.
1006 / 0x03EE IF_START UINT16 RW

Wartości:

  • 0: STOP
  • 1: START

Ograniczenia dotyczące uprawnień:

  • Jeśli ładowarka jest obecnie sterowana za pomocą protokołu OCPP, nie można rozpocząć ani zatrzymać ładowania za pomocą tego rejestru.
  • Prosimy również o uwzględnienie ewentualnych konfliktów z innymi metodami autoryzacji, takimi jak NexBlue , portal lub OpenAPI.
  • Zaleca się korzystanie tylko z jednej metody autoryzacji ładowania naraz.
1007 / 0x03EF Tryb fazy wykonania UINT16 RW

Wartości:

  • 0: Adaptacyjne
  • 1: Tryb jednofazowy
  • 2: Zasilanie trójfazowe

Ograniczenia dotyczące przełączania:

  • Zalecany minimalny odstęp czasowy między zmianami faz: 10 minut
  • Maksymalnie 2 przełączenia faz w dowolnym okresie 1 godziny
  • Maksymalnie 6 przełączeń fazowych podczas jednej sesji ładowania
1008–1999 Zarezerwowane Zarezerwowane dla rozszerzeń.

2.4.6 Alarmy i błędy (błąd / ostrzeżenie)

Adres Nazwa Typ Jednostka Dostęp Opis
0400 / 0x0190 Zestaw bitów błędów UINT16 RO
  • Bit 0: Nieprawidłowe napięcie CP
  • Bit 1: upływ prądu w linii fazowej
  • Bit 2: nieprawidłowy prąd / nadprąd
  • Bit 3: nieprawidłowe napięcie / przepięcie lub zbyt niskie napięcie
  • Bit 4: nieprawidłowa temperatura / zbyt wysoka lub zbyt niska
  • Bit 5: zablokowany przekaźnik
  • Bit 6: Nieudany autotest wyłącznika różnicowoprądowego (RCD)
  • Bit 7: Zwarcie diody CP
  • Bit 8: PEN otwarty
  • Bit9: Wyciek pamięci PE
  • Bit10: Otwarcie sesji PE
  • Bit11: Nieprawidłowość PP
  • Bity 12–15: zarezerwowane
0401 / 0x0191 Zestaw bitów ostrzegawczych UINT16 RO
  • Bit 0: nieprawidłowe działanie układu pomiarowego
  • Bit 1: nieprawidłowa komunikacja między płytkami
  • Bit 2: Nieprawidłowości w sygnale RF RFID
  • Bit 3: nieprawidłowa częstotliwość radiowa 868
  • Bit 4: Nieprawidłowe działanie modułu 4G
  • Bit 5: nieprawidłowe otwarcie pokrywy
  • Bit 6: zarezerwowany
  • Bit 7: Nieprawidłowa utrata fazy w systemie TN
  • Bit 8: neutralny prąd nadmierny w układzie IT
  • Bit9: nieprawidłowości w sieci
  • Bit10: Tryb MID
  • Bity 11–15: zarezerwowane
0402 / 0x0192 Zestaw bitów oczekiwania UINT16 RO
  • Bit 0: tryb awaryjny z powodu braku połączenia z CT
  • Bit 1: tryb awaryjny z powodu braku połączenia z jednostką główną
  • Bit2: wstrzymane z powodu błędu o niskim poziomie ważności / prąd profilu ładowania wynosi 0 zgodnie z OCPP
  • Bit3: regulator zmniejsza natężenie prądu w trakcie ładowania
  • Bit 4: wysłano pierwsze żądanie, ale host nie odpowiedział
  • Bit 5: aktywna ochrona przed wyłączeniami awaryjnymi
  • Bit 6: tryb awaryjny uruchomiony przez Modbus
  • Bity 6–15: zarezerwowane

Załącznik

Kody funkcji

Kod funkcji w protokole Modbus wskazuje, jaką operację urządzenie nadrzędne chce wykonać na urządzeniu podrzędnym. Każda ramka zawiera 1-bajtowy kod funkcji.

Hex Znaczenie Cel
0x01Odczyt cewekWyjścia bitowe
0x02Odczyt wejść dyskretnychWejścia bitowe
0x03Odczyt rejestrów przechowywania16-bitowy
0x04Odczyt rejestrów wejściowych16-bitowy
0x05Napisz „Single Coil”Bit
0x06Zapis do rejestru pojedynczego przytrzymania16-bitowy
0x0FZapisz wiele cewekBit
0x10Zapis do wielu rejestrów buforowych16-bitowy

Podsumowanie typów danych stosowanych w protokole Modbus

Typ danych Wykorzystane rejestry Szerokość bitowa Typ C Znaczenie i zastosowanie Typowe przykłady
UINT16 1 16-bitowy uint16_t Liczba całkowita bez znaku Kody stanu, wyliczenia, liczniki, liczba złączy.
INT16 1 16-bitowy int16_t Liczba całkowita ze znakiem Temperatura, wartości przesunięcia, strefa czasowa.
UINT32 2 32-bitowy uint32_t Niepodpisana liczba całkowita typu long Znaczniki czasu, pomiary zużycia energii, liczniki sekund.
INT32 2 32-bitowy int32_t Liczba całkowita typu signed long Moc, wartości kierunkowe.
FLOAT32 2 32-bitowy float Liczba zmiennoprzecinkowa o pojedynczej precyzji, standard IEEE 754. Prąd, napięcie, moc, energia itp.
UINT64 4 64-bitowy uint64_t Bardzo duża liczba całkowita Energia ogółem, pomiar skumulowany.
STRING[n] n/2 n × 8 bitów char[] Informacje tekstowe Marka, model, numer seryjny, numer wersji.