Manche exotischen Modbus-Slaves implementieren nicht standardisierte Function Codes oder herstellerspezifische Verhaltensweisen (z. B. liefert Read Coil ein uint16 statt eines einzelnen Bits); deshalb sollte vor jeder Annahme zur Standardkonformität die Herstellerdokumentation geprüft werden.
Richtig
Häufige Hersteller-Abweichungen vom Standard: Read Coils liefert teilweise ein uint16, weil manche Hersteller den Coil-Wert (0/1) auf 16 Bit ablegen; eigene Function Codes im Bereich 65-72 sind bei Schneider und anderen verbreitet, da dieser Bereich für 'user-defined' reserviert ist; manche Energiezähler packen mehrere Werte in ein einzelnes Register. Lösung: vor der Integration die Doku gründlich lesen ('RTFM') und das reale Verhalten mit Wireshark oder mbpoll gegen die Doku verifizieren, statt blind auf Standardkonformität zu vertrauen.
Praxistipp: Bei jedem neuen Slave-Modell zuerst einen Read-Coils- und einen Read-Holding-Register-Test gegen ein bekanntes Register fahren - so fallen non-standard-Antwortformate sofort auf.
Modbus-Bank in Vorbereitung
Die vollständige Modbus-Bank ist noch nicht verfügbar. Hinterlassen Sie Ihre E-Mail, um beim Start benachrichtigt zu werden und einen Early-Bird-Rabatt zu erhalten.
Der Warteliste beitreten →Die 9 weiteren Modbus-Übungsfragen ansehen
Verwandte Fragen
- Ein Modbus-RTU-Bus auf RS-485 unterstützt bis zu 32 Knoten pro Segment (mit Repeatern erweiterbar), benötigt Abschlusswiderstände (typischerweise 120 Ohm) an beiden Busenden sowie Polarisationswiderstände, um den Ruhepegel zu definieren.3. Modbus RTU · RS-485 Multi-Drop
- Welcher Modbus-Funktionscode wird zum LESEN der Holding Registers (16-Bit-Register, Lese-/Schreibzugriff) eines Slaves verwendet?4. Function codes · Lesen Coils/Register
- Die Funktion 0x06 'Write Single Register' schreibt ein einzelnes 16-Bit-Holding-Register in einem Modbus-Slave; Adresse und Wert sind in der Anfrage jeweils 16 Bit lang.4. Function codes · Write Single Register (0x06)
- Um einen 32-Bit-Gleitkommawert nach IEEE 754 über Modbus (16-Bit-Register) zu übertragen, werden typischerweise zwei aufeinanderfolgende Register verwendet, wobei die Bytereihenfolge in der Slave-Dokumentation festgelegt ist.5. Data encoding · 32-Bit-Float
- Modpoll (focus-sw.com) und mbpoll (Linux/macOS) sind kostenfreie Kommandozeilenwerkzeuge, um einen Modbus-Slave vom PC aus abzufragen, und sind für Diagnose und Inbetriebnahme einer Modbus-Integration unverzichtbar.6. Practical · Modpoll / mbpoll