EZF Wiki/Integracje i API
Artykuł · PL

Modbus IP — konfiguracja i odczyt statusów

Uruchom Modbus TCP, sprawdź mapę rejestrów i bezpiecznie przetestuj oprawy AirBus.

Parametry połączenia

Centrala EZF jest serwerem Modbus TCP; BMS lub tester jest klientem. Opis dotyczy mapy v1, dostępnej od firmware 10.38.

Parametr Wartość
Host Bieżący adres IP centrali
Port 502
Protocol ID MBAP 0
Klienci jednocześnie Maksymalnie 2
Odczyt FC03 albo FC04, 1–125 rejestrów
Zapis polecenia FC16, dokładnie 7 rejestrów od 0x0100
Słowo 16 bitów, big endian
uint32 Starsze słowo, potem młodsze
Adresy w podręczniku Zerowe, bez prefiksu 4xxxx

Połączenie bez ruchu może zostać zamknięte po 3 sekundach; klient powinien umieć ponownie je otworzyć. Modbus nie ma uwierzytelniania — dostęp ogranicz do zaufanej sieci nadzorczej.

Włączenie w centrali

  1. Otwórz Ustawienia → Komunikacja zewnętrzna i włącz Modbus TCP. Dostęp wymaga odpowiednich uprawnień.
  2. Przy konfiguracji przez lokalną stronę WWW potwierdź zapis PIN-em serwisowym. Kody dostępu do centrali →
  3. Poczekaj na zaplanowany restart i powrót centrali.
  4. Uruchom tester, wpisz IP, port 502 i Unit ID zgodny z konfiguracją klienta.
  5. Odczytaj tożsamość. Rejestr 0 powinien mieć wartość 0x455A, a rejestr 1 — wersję mapy 1.
  6. Pobierz listę opraw i porównaj ją z centralą. Do samego nadzoru nie włączaj zdalnych testów.

TCP, RTU i zezwolenie na zdalne testy są domyślnie wyłączone. Skrót TCP używany przy wyniku oprawy oznacza także test czasu pracy/autonomii; kontekst odróżnia go od transportu Modbus TCP.

Pierwsze odczyty

Adres HEX (dziesiętny) Liczba słów Zawartość
0x0000 (0) 2 Sygnatura i wersja mapy
0x0002 (2) 1 Flagi stanu centrali
0x0007 (7) 1 Zezwolenie na zdalne testy 0/1
0x0008 (8) 2 Czas od uruchomienia w sekundach
0x0010 (16) 2 Identyfikator uruchomienia
0x0020 (32) 16 Numer seryjny ASCII, 2 znaki na słowo
0x0100 (256) 8 Ostatnie zadanie i jego stan
0x0200 (512) 16 Grupa AirBus A; B=0x0210, C=0x0220, D=0x0230

Flagi rejestru 0x0002: bit 0 awaria, 1 błąd komunikacji, 2 blokada, 3 wyszukiwanie, 4 inicjalizacja/konfiguracja, 5 błąd pamięci FRAM. Rejestru 0 nie wpisuj jako 40001, chyba że używany klient świadomie przelicza notację 4xxxx na adres zerowy.

Mapa opraw

BUS1 zaczyna się od 0x1000 (200 slotów), BUS2 od 0x3000 (200), AirBus od 0x5000 (500). Każdy slot zajmuje 16 słów. Adres slotu i, liczonego od 1, to baza + 16 × (i−1). Slot jest pozycją na liście, a nie fizycznym adresem oprawy. Pusty slot ma wszystkie słowa zerowe.

Offset w slocie Zawartość
0 / 1 / 2 Kanał / adres fizyczny / obecność 0 lub 1
3–7 Bajty statusu D1–D5
8 / 9 TF / test autonomii: 0 nieustalone, 1 trwa, 2 OK, 3 błąd
10 Błąd komunikacji 0/1
11 / 12 Typ oprawy / grupa
13 NVG: LED1 w bitach 0–1, LED2 w bitach 8–9; inne typy 0xFFFF
14 Blokada oprawy 0/1
15 Potwierdzony wynik AirBus: 0 OK; bity 0x20 bateria/czas, 0x40 LED/prąd, 0x80 komunikacja

W polu wyniku 0xFFFF oznacza stan nieznany, nieaktualny lub oprawę przewodową — nie wynik pozytywny. Przy zgłoszonym błędzie FRAM część statusów może być niepotwierdzona mimo odczytywalnej listy. Bieżący odczyt nie zastępuje archiwalnego raportu.

Zdalny test AirBus

Najpierw wykonaj odczyty. Następnie lokalnie zezwól na zdalne testy, a w testerze zaakceptuj zapis, potwierdź numer seryjny i wybrane polecenie. W tej mapie sterowanie dotyczy opraw i grup AirBus; BUS1/BUS2 udostępniają nadzór. Próba startu testu przewodowego zwraca wyjątek 01.

FC16 zapisuje od 0x0100 dokładnie siedem słów:

Słowa Znaczenie
0–1 Niezerowy, rosnący identyfikator zadania uint32
2 1 = TF, 2 = autonomia, 3 = STOP
3 0 = oprawa AirBus, 1 = grupa AirBus
4–5 UID oprawy lub numer grupy 0–3 (A–D)
6 Znacznik 0xA55A

Przykład TF dla AirBus 42, UID=196650, zadanie 1: 0000 0001 0001 0000 0003 002A A55A.

UID ma wzór kanał × 65536 + adres. Przed wysłaniem sprawdź aktualny UID. Wspólny system nadrzędny powinien nadawać ID zadań dla obu transportów. Identyczne ID i polecenie nie uruchamiają drugiego testu; zmiana treści przy tym samym ID jest błędem.

Po przyjęciu FC16 czytaj 0x0100–0x0107. Stan 1 = kolejka, 2 = przyjęte/trwa, 3 = zebrano wyniki, 4 = odrzucone, 5 = przyjęto STOP. Stan 3 nie oznacza, że wszystkie oprawy przeszły test. Sprawdź wyniki opraw i liczniki grup. Stan 5 nie dowodzi odbioru STOP przez każdą oprawę. Po restarcie odczytaj identyfikator uruchomienia i bieżący stan; nie odtwarzaj automatycznie starego polecenia.

Błędy i diagnostyka

Wyjątek Znaczenie Działanie
01 Nieobsługiwana funkcja Sprawdź FC i obsługiwany kanał
02 Nieprawidłowy adres Sprawdź adres zerowy i zakres
03 Nieprawidłowe dane Sprawdź 7 słów, ID, UID i znacznik
04 Błąd urządzenia / niedostępne dane Sprawdź komunikaty centrali; nie pokazuj OK
06 Zajętość Polecenie nie zostało przyjęte; można ponowić to samo ID

Przy braku połączenia sprawdź IP, port, włączenie TCP, restart, firewall i limit klientów. W testerze zapisz telegramy TX/RX oraz eksport JSON/CSV.

Opcjonalnie: Modbus RTU

RTU używa tej samej mapy: 19200 bit/s, 8E1, adres 1–247 (domyślnie 1). Wymaga wolnego BUS1 albo BUS2 bez zapisanych opraw. Nie łącz Modbus RTU i protokołu opraw EZF na tym samym porcie. Adres rozgłoszeniowy 0 nie wykonuje poleceń.

Zobacz testery Windows/macOS i ćwiczenie lokalne.

EZF Wiki · Wiedza pod ręką.