Dokumentacja NexBlue

Miejsce zastosowania: SDU

Obsługiwane modele: Edge 2, Edge Max oraz Point (Wielka Brytania)

Obowiązująca wersja oprogramowania sprzętowego: 03.09.61 i nowsze

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

W trybie DHCP po włączeniu zasilania urządzenie automatycznie wysyła żądanie uzyskania adresu IP do serwera DHCP. Po pomyślnym uzyskaniu adresu urządzenie rozgłasza swoje informacje za pośrednictwem protokołu mDNS. Nazwa usługi rozgłaszanej brzmi:

_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 rejestruFunkcjaKod funkcjiOpis
Rejestry wejścioweOdczyt rejestrów wejściowych0x04Rejestry tylko do odczytu, które zwracają pomiary lub informacje o stanie, takie jak napięcie, prąd, moc, temperatura, skumulowana energia itp.
Rejestry posiadaniaOdczyt rejestrów przechowujących0x03Rejestry do odczytu i zapisu. Urządzenie nadrzędne może odczytać aktualną konfigurację, aktualne wartości graniczne, stan trybu pracy itp.
Rejestry posiadaniaZapisz do pojedynczego rejestru buforującego0x06Urzą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 posiadaniaZapis do wielu rejestrów buforowych0x10Program 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 oraz systemy EMS.

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

ZasadaOpis
DługośćPole adresu w ramce Modbus jest 16-bitową liczbą całkowitą bez znaku.
Podział warstwowyPodział według funkcji: Identyfikacja → Poziom stacji → Na złącze. Logika powinna być przejrzysta i łatwa do rozszerzenia.
Jednolity punkt wyjściaWszystkie rejestry wykorzystują adresy logiczne. Adresowanie logiczne zazwyczaj zaczyna się od 0. W dokumencie przedstawiono zarówno format dziesiętny, jak i szesnastkowy.
Zasada wyrównaniaDane 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ówKaż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łówKolejność bajtów w przypadku pojedynczego rejestru to Big-Endian. Dane dotyczące wielu rejestrów wykorzystują kolejność słów Little-Endian DCBA.
Metody dostępuDo 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)

AdresNazwaTypJednostkaDostępOpis
0000–0007 / 0x0000–0x0007MarkaSTRING(16)RO2 bajty na rejestr, UTF-8/ASCII.
0008–0015 / 0x0008–0x000FModelSTRING(16)ROModel urządzenia.
0016–0027 / 0x0010–0x001BNumer seryjnySTRING(24)RONumer seryjny urządzenia.
0028–0035 / 0x001C–0x0023Wersja oprogramowania układowegoSTRING(16)RONa przykład: 04.00.19.
0036 / 0x0024Wersja tabeli ModbusUINT16RONumer wersji mapowania, na przykład 0x0100.
0037 / 0x0025Liczba złączyUINT16ROLiczba złączy: 1 lub 2.
0038–0039 / 0x0026–0x0027DataUINT32RRRRMMDDRO32-bitowe wyrównanie do parzystej pozycji. Przykład: 20251202.
0040–0041 / 0x0028–0x0029CzasUINT32HHMMSSROPrzykład: 155630 oznacza 15:56:30.
0042 / 0x002AStrefa czasowaUINT16protokołyROPrzykład: UTC+2 → +120.
0044Wersja sprzętowaSTRING(16)ROWersja sprzętowa.
0043–0099ZarezerwowaneZarezerwowane na potrzeby przyszłej identyfikacji, certyfikatów, informacji produkcyjnych itp.

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

AdresNazwaTypJednostkaDostępOpis
0100 / 0x0064Stan ChargepointUINT16RO
  • 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 fazoweUINT16RO
  • 0: Adaptacyjne
  • 1: Tryb jednofazowy
  • 2: Zasilanie trójfazowe
0137–0399 / 0x0088–0x018FZarezerwowanePrzeznaczone 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 przerwy w zasilaniu sieciowym ładowarki urządzenie automatycznie przywróci wartości domyślne i konieczne będzie ponowne wprowadzenie ustawień.
AdresNazwaTypJednostkaDostępOpis
1000–1001 / 0x03E8–0x03E9Ograniczenie prąduFLOAT32ARWOgraniczenie prądu na poziomie stacji. Wartość domyślna: 16 A. Zakres: 0–32 A.
1002–1003 / 0x03EA–0x03EBLimit awaryjnyFLOAT32ARWPrą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–0x03EDLimit czasu rezerwyUINT32sRWPróg limitu czasu dla sygnału pulsacyjnego. Wartość domyślna: 5 minut. Minimum: 30 sekund. Maksimum: 30 minut.
1006 / 0x03EEIF_STARTUINT16RW
  • Sterowanie uruchamianiem/zatrzymywaniem
  • 0: STOP
  • 1: START
1007 / 0x03EFTryb fazy wykonaniaUINT16RW

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–1999ZarezerwowaneZarezerwowane dla rozszerzeń.

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

AdresNazwaTypJednostkaDostępOpis
0400 / 0x0190Zestaw bitów błędówUINT16RO
  • 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 / 0x0191Zestaw bitów ostrzegawczychUINT16RO
  • 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 / 0x0192Zestaw bitów oczekiwaniaUINT16RO
  • 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.

HexZnaczenieCel
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 danychWykorzystane rejestrySzerokość bitowaTyp CZnaczenie i zastosowanieTypowe przykłady
UINT16116-bitowyuint16_tLiczba całkowita bez znakuKody stanu, wyliczenia, liczniki, liczba złączy.
INT16116-bitowyint16_tLiczba całkowita ze znakiemTemperatura, wartości przesunięcia, strefa czasowa.
UINT32232-bitowyuint32_tNiepodpisana liczba całkowita typu longZnaczniki czasu, pomiary zużycia energii, liczniki sekund.
INT32232-bitowyint32_tLiczba całkowita typu signed longMoc, wartości kierunkowe.
FLOAT32232-bitowyfloatLiczba zmiennoprzecinkowa o pojedynczej precyzji, standard IEEE 754.Prąd, napięcie, moc, energia itp.
UINT64464-bitowyuint64_tBardzo duża liczba całkowitaEnergia ogółem, pomiar skumulowany.
STRING[n]n/2n × 8 bitówchar[]Informacje tekstoweMarka, model, numer seryjny, numer wersji.