Przejdź do głównej zawartości

Modbus TCP w VOOL LMC

Odczyt prądów i napięć przyłącza LMC przez Modbus TCP: aktywacja przez pomoc techniczną, ustawienia połączenia, pełna mapa rejestrów, zapis limitu prądu i rozwiązywanie problemów.

J
Napisane przez Juhan Harm

VOOL LMC ma serwer Modbus TCP do integracji lokalnych. System zarządzania budynkiem (BMS), system zarządzania energią (EMS), Home Assistant lub dowolny inny klient Modbus może odczytywać prądy i napięcia przyłącza na każdej fazie, a — przy dostępie do zapisu — ustawiać limit prądu przyłącza używany przez zarządzanie obciążeniem. Dostępne od oprogramowania LMC v6.4.0.

Jest to interfejs niezależny od interfejsu Modbus samej ładowarki (zob. instrukcję Modbus ładowarki). Mapa rejestrów LMC nie udostępnia pomiarów poszczególnych ładowarek, liczników energii ani rejestrów start/stop ładowarek — do tego służy interfejs ładowarki.

Pierwsze kroki

Modbus TCP jest domyślnie wyłączony w LMC i włącza go pomoc techniczna VOOL. Napisz do pomocy technicznej VOOL na czacie, podaj numer seryjny LMC i określ, czy potrzebujesz dostępu tylko do odczytu (monitorowanie), czy także do zapisu. Dostęp do zapisu jest również domyślnie wyłączony i włącza go pomoc techniczna. Aktywacji i ustawień portu nie można zmienić przez sam Modbus.

  1. Uzgodnij aktywację z pomocą techniczną — numer seryjny LMC, tylko odczyt czy odczyt/zapis.

  2. Potwierdź dane połączenia lokalnego. Lokalny adres IPv4 LMC uzyskasz od instalatora lub administratora sieci (albo z listy podłączonych urządzeń w routerze). Użyj połączenia Ethernet lub Wi-Fi; jeśli podłączone są oba, sprawdź, który adres obsługuje Modbus — serwer nasłuchuje jednocześnie tylko na jednym adresie.

  3. Skonfiguruj klienta Modbus zgodnie z poniższymi ustawieniami i odczytaj pierwszy pomiar.

Ustawienie

Wartość

Protokół

Modbus TCP — LMC jest serwerem, Twój system jest klientem

Adres serwera

Lokalny adres IPv4 LMC

Port TCP

Domyślnie 502 (użyj portu potwierdzonego przez pomoc techniczną)

Unit ID / ID urządzenia

Użyj 1, jeśli klient wymaga wartości. LMC ją ignoruje — nie wybiera ona podrzędnej ładowarki.

Format liczb

Float32, dwa rejestry na wartość, najpierw starsze słowo i starszy bajt (ABCD, „big-endian, bez zamiany słów”)

Konwencja adresów

Adresy dziesiętne liczone od zera (zob. „Adresy i kodowanie”)

Modbus TCP nie ma uwierzytelniania ani szyfrowania. Każde urządzenie, które ma dostęp do portu, może odczytywać interfejs. Ogranicz dostęp do zaufanych systemów i nigdy nie udostępniaj portu w internecie. Dostęp do zapisu dotyczy wszystkich rejestrów zapisywalnych — w tym poleceń urządzenia i list — i nie można go ograniczyć tylko do ustawienia limitu prądu.

Pierwszy pomiar

Odczytaj prąd na fazie L1: funkcja 03 (Read Holding Registers), adres początkowy 600 (dziesiętnie, od zera), liczba rejestrów 2, dekodowanie jako float32 ABCD. Jednostka: ampery.

Przykład: jeśli dwa rejestry zwracają 0x41A4 i 0x0000, wartość wynosi 20,5 A. Połącz oba rejestry w jedną 32-bitową liczbę zmiennoprzecinkową — nie traktuj żadnego rejestru jako osobnej wartości i nie stosuj współczynnika skalowania.

Rejestry pomiarowe (tylko odczyt)

Odczyt funkcją FC03 (holding registers) lub FC04 (input registers) pod tymi samymi adresami liczonymi od zera.

Rejestry

Pomiar

Jednostka

Pozycja w odczycie 26 rejestrów

600–601

Prąd przyłącza L1

A

0–1

602–603

Prąd przyłącza L2

A

2–3

604–605

Prąd przyłącza L3

A

4–5

606–619

Zarezerwowane — odczyt zwraca zero

—

6–19 (pomiń)

620–621

Napięcie przyłącza L1

V

20–21

622–623

Napięcie przyłącza L2

V

22–23

624–625

Napięcie przyłącza L3

V

24–25

Odczytaj wszystko naraz: start 600, liczba 26. Możesz też odczytać tylko prądy (start 600, liczba 6) lub tylko napięcia (start 620, liczba 6). Kolumna „pozycja” liczy od zera w zwróconej tablicy — nie jest to adres rejestru.

Co oznacza „prąd przyłącza”: to obliczony przez LMC całkowity prąd na fazę. Gdy licznik (przekładniki prądowe) jest na przyłączu głównym, wartość pochodzi z licznika. Jeśli licznik mierzy tylko pozostałe odbiory budynku, LMC dodaje prądy ładowarek. Konfiguracja pomiaru wykonana przez instalatora ma więc znaczenie przy porównywaniu odczytów z innym systemem. Sam odczyt zerowy lub niezmienny nie dowodzi, że licznik działa.

Ustawianie limitu prądu przyłącza (dostęp do zapisu)

Wymaga dostępu do zapisu włączonego przez pomoc techniczną VOOL. Nieprawidłowy limit prądu może dopuścić obciążenie przekraczające możliwości instalacji i spowodować zadziałanie zabezpieczeń. Używaj tylko limitów potwierdzonych przez instalatora i nigdy nie przekraczaj znamionowej mocy instalacji.

Limit prądu przyłącza to budżet prądu na fazę, z którym pracuje zarządzanie obciążeniem. Dotyczy całego przyłącza, w tym pozostałych odbiorów budynku — nie jest to prąd pojedynczej ładowarki.

Rejestry

Ustawienie

Jednostka

Format / dostęp

104–105

Limit prądu przyłącza

A

Float32 / odczyt-zapis

  1. Odczytaj obecną wartość — FC03, start 104, liczba 2. Zachowaj ją na wypadek konieczności przywrócenia.

  2. Zapisz uzgodniony limit jako jedną wartość float32 funkcją FC16 (Write Multiple Registers), dwa rejestry w jednym żądaniu. Przykład dla 32 A: rejestr 104 = 0x4200, rejestr 105 = 0x0000.

  3. Odczytaj ponownie i potwierdź, a następnie obserwuj instalację. Sama odpowiedź na zapis nie dowodzi, że zmiana zaczęła obowiązywać.

Zmiany konfiguracji są trwałe i wpływają na zarządzanie obciążeniem podczas pracy.

Adresy i kodowanie

Wszystkie adresy w tym artykule to dziesiętne adresy protokołu liczone od zera. Liczba (quantity) oznacza liczbę 16-bitowych rejestrów, a nie wartości — każda wartość liczbowa zajmuje dwa kolejne rejestry. Klienci stosują różne konwencje; przy odczycie prądu L1 wpisz:

Konwencja klienta

Wpisz

Adres / przesunięcie liczone od zera

600

Numer rejestru liczony od jedynki (rejestr 1 = adres 0)

601

Odwołanie do holding register (40001 = adres 0)

40601

Nie wysyłaj 40601 jako adresu protokołu.

  • Pomiary i ustawienia są w jednostkach fizycznych, bez skalowania.

  • Przełączniki: float32 0.0 = wyłączone, 1.0 = włączone (każda wartość niezerowa jest traktowana jako włączona).

  • Tryby: udokumentowana wartość całkowita zakodowana jako float32, np. 1.0.

  • Typowe wartości: 0.0 = 0x0000 0x0000; 1.0 = 0x3F80 0x0000; 20.5 = 0x41A4 0x0000; 32.0 = 0x4200 0x0000.

  • Polecenia list używają surowych liczb całkowitych — zob. niżej.

Zasady żądań

Funkcja

Zastosowanie

03 — Read Holding Registers

Dowolny obszar do odczytu

04 — Read Input Registers

Tylko pomiary (600–625)

16 (0x10) — Write Multiple Registers

Wartości zapisywalne i bloki poleceń

Funkcja FC06 (Write Single Register) nie jest obsługiwana i zwraca wyjątek 02 — używaj FC16 nawet dla pojedynczej wartości. Cewki (coils) nie są używane.

Obszar do odczytu (włącznie)

Zawartość

Funkcje

104–111

Limit przyłącza, tryby pracy, ustawienie anteny

FC03

240–283

Dostrajanie zarządzania obciążeniem

FC03

600–625

Pomiary i zarezerwowane zera

FC03, FC04

  • Każdy odczyt musi mieścić się w jednym obszarze. Odczyty poza nimi — w tym rejestrów poleceń — zwracają wyjątek 02.

  • Wartości liczbowe zapisuj od ich pierwszego rejestru i zapisuj oba rejestry. Kolejne wartości zapisywalne można połączyć w jednym żądaniu, ale nie przez niezmapowaną lukę.

  • Bloki poleceń zapisuj dokładnie od ich adresu początkowego i z dokładną liczbą rejestrów.

  • Interfejs nie wymusza zakresów uruchomieniowych podanych w tym artykule — sprawdzaj wartości w swoim kliencie i używaj liczb skończonych.

  • Zwykła odpowiedź na zapis jedynie potwierdza przyjęcie żądania. Odczytaj ustawienia ponownie i sprawdź, czy polecenia zostały wykonane, zanim ponowisz próbę.

Rozwiązywanie problemów

Objaw

Co sprawdzić

Połączenie odrzucone lub przekroczony czas

Potwierdź z pomocą techniczną, że Modbus jest włączony; sprawdź lokalny adres IPv4 i port LMC, osiągalność oraz reguły zapory. Jeśli podłączone są zarówno Ethernet, jak i Wi-Fi, sprawdź, który adres nasłuchuje. Modbus nie przechodzi między podsieciami ani sieciami VLAN.

Odczyt zwraca wyjątek 02

Sprawdź konwencję adresów, liczbę rejestrów i granice obszarów. FC04 odczytuje tylko 600–625. Rejestrów poleceń nie można odczytać.

Zapis zwraca wyjątek 02

Potwierdź dostęp do zapisu z pomocą techniczną. Użyj FC16, zapisywalnego adresu i pełnej wartości lub bloku. FC06 jest odrzucana.

Nieprawdopodobnie duże lub małe liczby

Dekoduj jako float32 ABCD, dwa rejestry na wartość, bez skalowania. Sprawdź, czy adres nie jest przesunięty o jeden.

Pomiary zerowe lub niezmienne

Sprawdź pozycje w odpowiedzi i zakres zarezerwowany. Poproś pomoc techniczną o sprawdzenie licznika i konfiguracji pomiaru.

Zapis się udaje, ale wartość się nie zmienia

Odczytaj ponownie, sprawdź kodowanie i dozwolone wartości. Samo potwierdzenie nie gwarantuje, że zmiana została zastosowana.

Integracja działała, a potem przestała

Lokalny adres IP LMC mógł się zmienić po wymianie routera lub aktualizacji — ustaw dla LMC (i ładowarek) statyczny adres IP lub rezerwację DHCP. Aktualizacja oprogramowania lub restart usługi również zrywa sesję; nie powtarzaj automatycznie polecenia aktualizacji po przekroczeniu czasu.

Wyjątki: 01 Illegal Function — nierozpoznana funkcja. 02 Illegal Data Address — błędy walidacji mapy rejestrów i wyłączony zapis. 03 Illegal Data Value — nieprawidłowa liczba rejestrów w protokole (np. zapis FC16 poza zakresem 1–123 rejestrów); nie oznacza, że sprawdzono zakres ustawienia.

Ustawienia zaawansowane (dostęp do zapisu — wartości uzgodnij z pomocą techniczną VOOL)

Zmieniają one działanie zarządzania obciążeniem lub konfigurację sprzętu. Wszystkie są wartościami float32 do odczytu i zapisu. Zakresy to limity uruchomieniowe, a nie zalecane ustawienia — przed jakąkolwiek zmianą odczytaj zainstalowane wartości.

Tryby pracy i antena

Rejestry

Ustawienie

Wartości

106–107

Tryb pomiaru przyłącza

0 = licznik na przyłączu głównym, łącznie z ładowarkami; 1 = licznik mierzy pozostałe odbiory budynku, LMC dodaje prądy ładowarek

108–109

Tryb zarządzania obciążeniem

0 = podział priorytetowy; 1 = równy podział mocy

110–111

Użyj zewnętrznej anteny Wi-Fi

0 = wył.; 1 = wł. Wymaga kompatybilnego sprzętu i anteny; działa po ponownym uruchomieniu LMC

Dostrajanie zarządzania obciążeniem

Rejestry

Ustawienie

Jednostka

Zakres / wartości

240–241

Ograniczenie szybkości zmian włączone (narastanie prądu)

—

0 = wył.; 1 = wł.

242–243

Szybkość ograniczenia zmian

A/s

0–32

244–245

Próg prądu zakończenia narastania przy starcie

A

0–32

246–247

Równy podział mocy: początkowy krok prądu

A

0.01–32

248–249

Równy podział mocy: domyślny krok prądu

A

0.01–32

250–251

Równy podział mocy: minimalny próg równego prądu

A

0–32

252–253

Równy podział mocy: opóźnienie przed wyłączeniem ładowania ładowarki

s

0–86400

254–255

Równy podział mocy: opóźnienie przed zezwoleniem na ładowanie ładowarki

s

0–86400

256–257

Zarządzanie obciążeniem faz włączone

—

0 = wył.; 1 = wł.

258–259

Opóźnienie przełączania faz

s

0–30

260–261

Próg prądu przełączania faz

A

0–1000

262–263

Próg asymetrii przełączania faz

%

0–100

264–265

Wstrzymywanie przy przeciążeniu fazy włączone

—

0 = wył.; 1 = wł.

266–267

Wymuś ładowanie jednofazowe podczas obsługi przeciążenia fazy

—

0 = wył.; 1 = wł.

268–269

Czas wyłączenia przy przeciążeniu fazy

s

0–86400

270–271

Unikanie wstrzymania włączone

—

0 = wył.; 1 = wł.

272–273

Próg prądu etapu wstrzymania 1

A

0–32

274–275

Czas podtrzymania etapu wstrzymania 1

s

0–600

276–277

Próg prądu etapu wstrzymania 2

A

0–32

278–279

Czas podtrzymania etapu wstrzymania 2

s

0–600

280–281

Próg prądu etapu wstrzymania 3

A

0–32

282–283

Czas podtrzymania etapu wstrzymania 3

s

0–600

Polecenia urządzenia i list (tylko zapis)

Polecenia wymagają dostępu do zapisu, nie można ich odczytać (wyjątek 02) i mogą przerwać pracę lub zmienić konfigurację instalacji — używaj ich tylko w ramach uzgodnionej procedury serwisowej lub uruchomieniowej.

Polecenia urządzenia

FC16, dokładnie dwa rejestry od adresu początkowego. Zapis wartości float32 1.0 (0x3F80 0x0000) — lub dowolnej wartości niezerowej — uruchamia polecenie; 0.0 nic nie robi.

Rejestry

Polecenie

Działanie

4–5

Aktualizuj oprogramowanie LMC

Uruchamia domyślną aktualizację oprogramowania. Zakończenie nie jest raportowane przez Modbus.

12–13

Uruchom ponownie usługę LMC

Ponownie uruchamia aplikację sterownika i zrywa połączenie Modbus.

Lista ładowarek

Zapisz dokładnie 7 rejestrów od adresu 8900 w jednym żądaniu FC16. Surowe liczby całkowite bez znaku, nie float32. Listy nie można odczytać przez Modbus.

Rejestr

Pole

Kodowanie / użycie

8900

Podpolecenie

1 = dodaj; 2 = usuń; 3 = aktualizuj; 4 = wyczyść

8901–8903

Numer seryjny ładowarki

6 bajtów, w każdym rejestrze najpierw starszy bajt. Numer 112233445566 → 0x1122, 0x3344, 0x5566

8904

ID punktu (multipoint)

0–255, tylko młodszy bajt — punkt, do którego przypisana jest ładowarka

8905

Flagi

Bit 0 włącza OCPP 1.6 dla ładowarki (użyj 1); pozostałe bity ustaw na zero

8906

Zarezerwowane

Zapisz 0

Usuwanie wykorzystuje tylko numer seryjny (w pozostałych polach zapisz zero). Czyszczenie przywraca listę domyślną i ignoruje dane. Nieznane podpolecenie jest potwierdzane, ale ignorowane.

Lista punktów (multipoint)

Punkt (multipoint) to punkt przyłączenia z własnym limitem prądu. Zapisz dokładnie 4 rejestry od adresu 8920 w jednym żądaniu FC16, jako surowe liczby całkowite bez znaku. Listy nie można odczytać przez Modbus.

Rejestr

Pole

Kodowanie / użycie

8920

Podpolecenie

1 = dodaj; 2 = usuń; 3 = aktualizuj; 4 = wyczyść

8921

ID punktu (multipoint)

1–255. Punkt 0 to przyłącze sieciowe i nie można go zmienić tymi poleceniami

8922

Limit prądu

Pełne ampery, uint16 (0–65535), w granicach uzgodnionej mocy instalacji

8923

ID punktu nadrzędnego

Zapisz 0 (brak nadrzędnego) — to polecenie nie obsługuje niezerowych punktów nadrzędnych

Usuwanie wykorzystuje tylko ID punktu. Przed usunięciem punktu usuń przypisane ładowarki i punkty podrzędne. Czyszczenie przywraca ustawienia domyślne. Potwierdź wynikową konfigurację z pomocą techniczną.

Kontakt z pomocą techniczną

W sprawie aktywacji, dostępu do zapisu lub pomocy przy integracji napisz do pomocy technicznej VOOL na czacie i podaj numer seryjny LMC. Zgłaszając problem, podaj też oprogramowanie klienta, lokalny adres IP i port LMC, kod funkcji, adres początkowy, liczbę rejestrów, odpowiedź lub wyjątek, czas wystąpienia oraz — jeśli znasz — wersję oprogramowania LMC.

Ten artykuł opisuje interfejs Modbus LMC wprowadzony w oprogramowaniu LMC v6.4.0. Przed uruchomieniem zaawansowanej integracji poproś pomoc techniczną o potwierdzenie funkcji dostępnych w zainstalowanym oprogramowaniu.

Czy to odpowiedziało na twoje pytanie?