EZF Wiki/Integrationen und API
Artikel · DE

Modbus IP — Konfiguration und Zustände auslesen

Modbus TCP aktivieren, die Registertabelle prüfen und AirBus-Leuchten testen.

Verbindungsparameter

Die EZF-Zentrale ist Modbus-TCP-Server; GLT/BMS oder Tester sind Clients. Diese Beschreibung gilt für Registertabelle v1 ab Firmware 10.38.

Parameter Wert
Host Aktuelle IP-Adresse der Zentrale
Port 502
MBAP Protocol ID 0
Gleichzeitige Clients Maximal 2
Lesen FC03 oder FC04, 1–125 Register
Befehl schreiben FC16, genau 7 Register ab 0x0100
Wort 16 Bit, Big Endian
uint32 Höherwertiges Wort zuerst
Adressen Nullbasiert, ohne Präfix 4xxxx

Eine Verbindung ohne Datenverkehr kann nach 3 Sekunden geschlossen werden. Der Client muss sie erneut öffnen können. Modbus besitzt keine Authentifizierung; den Zugriff auf ein vertrauenswürdiges Überwachungsnetz begrenzen.

In der Zentrale aktivieren

  1. Einstellungen → Externe Kommunikation öffnen und Modbus TCP aktivieren. Entsprechende Berechtigungen sind erforderlich; die genaue Menübezeichnung hängt von der Bildschirmversion ab.
  2. Bei Konfiguration über die lokale Webseite das Speichern mit der Service-PIN bestätigen. Zugangscodes der Zentrale →
  3. Den geplanten Neustart und die erneute Erreichbarkeit abwarten.
  4. Im Tester IP-Adresse, Port 502 und die zum Client passende Unit ID eintragen.
  5. Identität lesen: Register 0 muss 0x455A, Register 1 die Version der Registertabelle 1 liefern.
  6. Leuchtenliste lesen und vergleichen. Für reine Überwachung keine Ferntests aktivieren.

TCP, RTU und die Freigabe von Ferntests sind standardmäßig ausgeschaltet. In Leuchtenergebnissen bezeichnet TCP auch den Betriebsdauertest; dies ist vom Netzwerktransport Modbus TCP zu unterscheiden.

Erste Lesezugriffe

HEX-Adresse (dezimal) Wörter Inhalt
0x0000 (0) 2 Signatur und Version der Registertabelle
0x0002 (2) 1 Zustandsflags der Zentrale
0x0007 (7) 1 Ferntests erlaubt: 0/1
0x0008 (8) 2 Laufzeit seit Start in Sekunden
0x0010 (16) 2 Kennung des aktuellen Starts
0x0020 (32) 16 Seriennummer als ASCII, 2 Zeichen je Wort
0x0100 (256) 8 Letzter Auftrag und Zustand
0x0200 (512) 16 AirBus-Gruppe A; B=0x0210, C=0x0220, D=0x0230

Register 0x0002: Bit 0 Störung, 1 Kommunikationsfehler, 2 Sperre, 3 Suche, 4 Initialisierung/Konfiguration, 5 FRAM-Speicherfehler. Register 0 nicht als 40001 eingeben, außer der Client rechnet die 4xxxx-Notation ausdrücklich in eine nullbasierte Adresse um.

Leuchtenregister

BUS1 beginnt bei 0x1000 (200 Slots), BUS2 bei 0x3000 (200), AirBus bei 0x5000 (500). Ein Slot umfasst 16 Wörter. Adresse von Slot i, ab 1 gezählt: Basis + 16 × (i−1). Der Slot ist eine Listenposition, nicht die physische Leuchtenadresse. Ein leerer Slot enthält ausschließlich null.

Offset im Slot Inhalt
0 / 1 / 2 Kanal / physische Adresse / vorhanden 0 oder 1
3–7 Statusbytes D1–D5
8 / 9 TF / Betriebsdauertest: 0 unbekannt, 1 läuft, 2 OK, 3 Fehler
10 Kommunikationsfehler 0/1
11 / 12 Leuchtentyp / Gruppe
13 NVG: LED1 in Bits 0–1, LED2 in Bits 8–9; sonst 0xFFFF
14 Leuchtensperre 0/1
15 Bestätigtes AirBus-Ergebnis: 0 OK; Bits 0x20 Akku/Dauer, 0x40 LED/Strom, 0x80 Kommunikation

0xFFFF im Ergebnis bedeutet unbekannt, veraltet oder drahtgebundene Leuchte — kein positives Ergebnis. Bei gemeldetem FRAM-Fehler können Zustände unbestätigt sein, obwohl eine Liste lesbar ist. Ein aktueller Lesezugriff ersetzt keinen archivierten Prüfbericht.

AirBus-Test aus der Ferne

Zuerst lesen. Danach Ferntests lokal freigeben und im Tester Schreibzugriff, Seriennummer sowie den einzelnen Befehl bestätigen. Diese Registertabelle unterstützt die Steuerung von AirBus-Leuchten und -Gruppen. BUS1/BUS2 dienen der Überwachung; ein Teststart für drahtgebundene Leuchten liefert Ausnahme 01.

FC16 schreibt ab 0x0100 genau sieben Wörter:

Wörter Bedeutung
0–1 Nichtnull, aufsteigende Auftrags-ID uint32
2 1 = TF, 2 = Betriebsdauer, 3 = STOP
3 0 = einzelne AirBus-Leuchte, 1 = AirBus-Gruppe
4–5 Leuchten-UID oder Gruppe 0–3 (A–D)
6 Bestätigungswert 0xA55A

Beispiel: TF für AirBus 42, UID=196650, Auftrag 1: 0000 0001 0001 0000 0003 002A A55A.

UID = Kanal × 65536 + Adresse. Vor dem Senden die aktuelle UID prüfen. Ein gemeinsames übergeordnetes System sollte Auftrags-IDs für beide Transportwege vergeben. Eine identische ID mit identischem Befehl startet keinen zweiten Test; veränderter Inhalt mit derselben ID ist ein Fehler.

Nach Annahme von FC16 0x0100–0x0107 lesen. Zustand 1 = Warteschlange, 2 = angenommen/läuft, 3 = Ergebnisse gesammelt, 4 = abgelehnt, 5 = STOP angenommen. Zustand 3 bedeutet nicht, dass alle Leuchten bestanden haben. Leuchtenergebnisse und Gruppenzähler auswerten. Zustand 5 bestätigt nicht den Empfang von STOP durch jede Leuchte. Nach einem Neustart Startkennung und aktuellen Zustand lesen; alte Befehle nicht automatisch erneut ausführen.

Fehler und Diagnose

Ausnahme Bedeutung Maßnahme
01 Funktion nicht unterstützt FC und unterstützten Kanal prüfen
02 Ungültige Adresse Nullbasierte Adresse und Bereich prüfen
03 Ungültige Daten 7 Wörter, ID, UID und Bestätigungswert prüfen
04 Gerätefehler / Daten nicht verfügbar Meldungen der Zentrale prüfen; kein OK anzeigen
06 Beschäftigt Befehl wurde nicht angenommen; dieselbe ID darf erneut gesendet werden

Bei Verbindungsproblemen IP, Port, TCP-Freigabe, Neustart, Firewall und Clientlimit prüfen. TX/RX-Telegramme und JSON-/CSV-Export im Tester sichern.

Optional: Modbus RTU

RTU verwendet dieselbe Registertabelle: 19200 Bit/s, 8E1, Adresse 1–247, standardmäßig 1. Dafür ist ein freier BUS1 oder BUS2 ohne gespeicherte Leuchten erforderlich. Modbus RTU und EZF-Leuchtenprotokoll nicht auf demselben Port mischen. Broadcast-Adresse 0 führt keine Befehle aus.

Siehe Windows-/macOS-Tester und lokale Übung.

EZF Wiki · Wiedza pod ręką.