Modbus ist ein einfaches Kommunikationsprotokoll, das häufig zur Integration von HVAC-Geräten verwendet wird. Es verwendet eine Master-Slave-Kommunikation, bei der an den gemeinsamen Bus mehrere Geräte angeschlossen sein können, wobei jedes eine eindeutige Slave-ID haben muss und das Master-Gerät stets einzelne Slave-Geräte abfragt, die ihm antworten.
Topologie Master - Slave
In den meisten Fällen wird TapHome in einem Modus verwendet, in dem die Steuereinheit TapHome Core als Modbus-Master fungiert und die angeschlossenen Geräte Modbus-Slaves sind. Dies wird im Abschnitt Hardware → Modbus RTU oder Modbus TCP konfiguriert. Es ist jedoch auch möglich, die Richtung umzukehren, wenn TapHome Core einem anderen übergeordneten System Informationen über seine Geräte bereitstellt. Dies wird im Abschnitt Geräte freigeben → Modbus RTU oder Modbus TCP definiert.
Physische Schichten
Modbus kann über verschiedene physische Schichten kommunizieren:
- über eine serielle Leitung, typischerweise RS485. Dies wird als Modbus RTU bezeichnet
- über ein LAN-Netzwerk mithilfe des TCP/IP-Protokolls
- über ein LAN-Netzwerk mithilfe des UDP-Protokolls – derzeit vom TapHome-System nicht unterstützt
Modbus-Register
Modbus definiert 4 Typen von Registern:
| Register | Code | Zugriff | Größe | Funktionscodes |
|---|---|---|---|---|
| Holding Registers | H | Lesen-Schreiben | 16-Bit | Lesen: 03, Schreiben mehrerer: 16 (0x10) |
| - Write Single Holding | SH | Lesen-Schreiben | 16-Bit | Schreiben eines: 06 |
| Coil (Discrete Output Coils) | C | Lesen-Schreiben | 1-Bit | Lesen: 01, Schreiben mehrerer: 15 (0xF) |
| - Write Single Coil | SC | Lesen-Schreiben | 1-Bit | Schreiben eines: 05 |
| Discrete Input Contacts | D | Nur Lesen | 1-Bit | Lesen: 02 |
| Analog Input Registers | A | Nur Lesen | 16-Bit | Lesen: 04 |
| Die Registernummer ist 16-Bit, das bedeutet, sie kann Werte von 0 bis 65535 haben. An Registern lassen sich folgende Operationen durchführen: |
- Mehrfachlesen von Registern
- Schreiben eines einzelnen Registers
- Schreiben mehrerer Register
Einige Modbus-Implementierungen fügen zusätzliche Befehle hinzu: Report Slave ID, Bitmaskierung, Schreiben und gleichzeitiges Lesen usw., aber diese werden von TapHome nicht unterstützt. {.is-warning}
Informationen darüber, was in welchem Register gespeichert ist und in welchem Format, sind Teil der vom Lieferanten oder Hersteller des Geräts bereitgestellten Dokumentation. Beispiel einer Modbus-Dokumentation des Lieferanten eines Modbus-Geräts:

Der Typ des Registers C (Coil), Index 58, da es nur zwei Werte hat (offen / geschlossen) und zusätzlich das Schreiben ermöglicht, entspricht in der TapHome-Gerätezusammenfassung dem digitalen Ausgang.
Zweck der Schnellstartanleitung zur Integration eines Modbus-Geräts in TapHome
- Schließen Sie das Gerät an den entsprechenden Bus (für Modbus RTU und ASCII) oder an LAN (für Modbus TCP) an. Für TCP-Geräte stellen Sie sicher, dass sie im gleichen Netzwerk wie der TapHome Core Controller sind, z. B. mit Fing (iOS, Android) oder IP Scanner (Windows).
- In TapHome → Hardware fügen Sie eine neue Modbus-RTU- oder Modbus-TCP-Schnittstelle hinzu und richten Sie die Kommunikationsparameter gemäß der Dokumentation ein. Für Modbus RTU sind dies Baudrate, Stoppbits, Parität, Datenbits; für Modbus TCP ist dies die IP-Adresse.
- In der Modbus-Gerätdokumentation erfahren Sie, welche Slave-ID verwendet wird. Beim Modbus TCP wird dies manchmal Unit ID genannt. Wenn Sie mehrere Geräte an einem Modbus-RTU-Bus nutzen möchten, müssen Sie die Slave-ID jedes Geräts so ändern, dass sie für diese Busverbindung eindeutig ist.
- Test der Kommunikation – verwenden Sie das Tool Manual Operations, um gemäß der Dokumentation (Modbus-Tabelle) einige Informationen des Geräts auszulesen. Wenn alles funktioniert, sollten Sie den gelesenen Wert sehen.
- Wenn der Kommunikationstest erfolgreich war, erstellen Sie ein Modul, das das Modbus-Gerät repräsentiert.
- Wählen Sie aus der Modbus-Dokumentation aus, welche Informationen im TapHome-System präsentiert werden sollen, und erstellen Sie entsprechende Geräte. Beginnen Sie mit dem Lesen von Werten (Read Script) und fahren Sie bei Aktoren mit dem Schreiben fort (Write Script).
- Wenn die Grundfunktionen des Geräts funktionieren, fügen Sie Fehler-, Warnungs- oder Informationsdefinitionen in die Skripte ein.
- Falls nötig, können Sie auch Service Attributes und Service Actions für TapHome-Geräte und -Module definieren.
- Wenn alles abgestimmt ist und korrekt kommuniziert, exportieren Sie das Modul in eine XML-Datei, damit Sie es beim nächsten Mal wiederverwenden können. Sie können auch der Community unter github.com/taphome-official/modbus_templates beitreten.
Implementierung in TapHome
Diese Dokumentation richtet sich an das Szenario, in dem der TapHome Core als Modbus-Master fungiert und die physischen Geräte, die im Abschnitt Hardware → Modbus RTU / TCP hinzugefügt wurden, Modbus-Slaves sind.
Schnittstelle
Hardware → Modbus RTU: Geräte sind an einen bestimmten Bus angeschlossen, grundlegende Parameter der RS485-Übertragung wie Baudrate, Parität, Stoppbits oder ob die Daten ASCII oder binär sind, sind festgelegt. An diesen Bus können nur Geräte mit denselben Kommunikationsparametern angeschlossen werden. Eine korrekte Kommunikation funktioniert nur, wenn A- und B-Leitungen korrekt verbunden sind. Hardware → Modbus TCP: Geräte sind im selben LAN wie der TapHome Core Controller verbunden. Es ist ein TCP-Port definiert, der von allen an diese Schnittstelle angeschlossenen Geräten gemeinsam genutzt wird.
Modul
Die Schnittstelle kann ein oder mehrere Module enthalten, die in den meisten Fällen die Kommunikation mit dem gesamten physischen Gerät abdecken. Aus Konfigurationssicht definiert das Modul die eindeutige Slave-ID des verbundenen Geräts für Modbus RTU und zusätzlich die IP-Adresse für Modbus TCP.
Gerät
Stellt eine spezifische Steuereinheit oder einen Sensor im TapHome-System dar. Muss immer Teil eines übergeordneten Moduls sein.
5 Klimageräte, die an einem gemeinsamen Bus angeschlossen sind, verwenden dieselbe Modbus-RTU-Schnittstelle, die den Busport, die Übertragungsgeschwindigkeit und weitere Kommunikationsparameter festlegt. Die Schnittstelle umfasst 5 Module, von denen jedes ein Klimagerät mit einer eindeutigen Slave-ID darstellt. Jedes Modul hat darunter Geräte definiert, wie Thermostat, Kühl-/Heizmodus, Ventilatorleistung oder Lamellenneigung. Die einzelnen Geräte haben Skripte zum Lesen und/oder Schreiben von Modbus-Werten.
Unterstützte Geräte:
- Digitalausgang
- Analogausgang
- Thermostat
- Mehrwert-Schalter
- Temperatursensor
- Energiezähler
- Statuskontakt
- Knopf
- Variable
Skripte zum Lesen und Schreiben von Modbus-Werten
TapHome-Geräte kommunizieren mit physischen Modbus-Geräten über Skripte.
Weitere Informationen zur Skriptsprache, insbesondere der Abschnitt Bit-Operationen
Für die Kommunikation mit Modbus-Geräten sind auf ihnen Skriptabschnitte definiert:
- Init-Skript: Wird ausgeführt, wenn sich das Gerät startet (z. B. nach einem Neustart der Steuereinheit)
- Read Script: Festlegung von Werten in globalen Variablen oder das Lesen von Fehlerzuständen
- Read Value Script: Skript zum Lesen eines bestimmten Werts (Menge) von einem Modbus-Gerät (z. B. eingestellte Temperatur am Thermostat oder gemessene Temperatur am Thermostat)
- Write Value Script: schreibt den Wert in das Modbus-Gerät
Funktionen zur Kommunikation mit Modbus-Geräten
MODBUSR (Modbus Read)
Funktion zum Lesen eines Registers aus dem Modbus. Abhängig vom Datentyp kann es 1 Register (für 16-Bit-Datentypen), 2 Register (für 32-Bit-Datentypen) oder mehr Register (für Datentypen String) sein.
MODBUSR(typ_registra, adresa_registra, dátový_typ, [VOLITEĽNÉ: počet_znakov ak data_type=String])
Beispiel: MODBUSR(H, 20, Int16)/100
Liest das Register H mit der Nummer (oder Adresse) 20 und interpretiert es als 16-Bit-Ganzzahl (vorzeichenbehaftet). Teilt am Ende diesen Wert durch 100 (verschiebt das Dezimaltrennzeichen um 2 Stellen nach links).
Die Registeradresse kann auch im hexadezimalen Format angegeben werden, z. B. kann der Wert 20 als 0x14 geschrieben werden.
MODBUSW (Modbus Write)
MODBUSW(typ_registra, adresa_registra, dátový_typ, hodnota_na_zápis)
Beispiel: MODBUSW(H, 20, Int16, Te * 100)
Schreibt in das Register H mit der Adresse 20 den Wert der Variable Te multipliziert mit 100 (Verschieben des Dezimalpunkts um 2 nach rechts).
MODBUSWNE (Modbus Write if Not Equal)
Gleich wie MODBUSW, mit dem Unterschied, dass der Wert aus dem Register vor dem Schreiben gelesen wird und nur geschrieben wird, wenn der zu schreibende Wert vom gelesenen abweicht. Der gesamte Vorgang dauert länger, und seine typische Anwendung besteht darin, Eigenschaften eines Modbus-Geräts zu konfigurieren, bei denen die Konfiguration in den EEPROM-Speicher mit begrenzter Anzahl von Schreibvorgängen geschrieben wird.
Die Funktionen MODBUSR, MODBUSW und MODBUSWNE können nur in Modbus-Skripten verwendet werden. Wenn sie in anderen Skripten verwendet werden, gelten sie als Fehler.
Modbus-Datentypen
Der Inhalt der Register ist in der Modbus-Tabelle definiert. Da die Größe eines einzelnen Modbus-Registers 16 Bit beträgt, werden am häufigsten 16-Bit-Werte Int16 oder UInt16 verwendet und Dezimalstellen ergeben sich durch Division durch 10 oder 100. Einige Modbus-Geräte verwenden jedoch auch 16-Bit-Register mit Zahlen mit Gleitkomma (Float), oder sie haben veränderte Byte-Reihenfolgen (Big Endian, Little Endian), speichern eine Zahl in zwei Registern (32-Bit-Varianten). Manchmal ist der einfachste Weg, den richtigen Datentyp zu bestimmen, das Tool direkt in der TapHome-Anwendung zu verwenden (Manuelle Operationen), wo Sie 1 oder mehr Register laden und dynamisch den Datentyp wechseln können.
Int16: -32.768 bis 32.767Uint16: 0 bis 65.535Int32: -2.147.483.648 bis 2.147.483.647Uint32: 0 bis 4.294.967.295Float: IEEE 754 Gleitkommazahl einfacher GenauigkeitBool: 0 = false, 1 = trueBigEndianInt16=Int16LittleEndianInt16BigEndianUint16=Uint16LittleEndianUint16BigEndianInt32/BigEndianInt32ByteSwapLittleEndianInt32/LittleEndianInt32ByteSwapBigEndianUint32/BigEndianUint32ByteSwapLittleEndianUint32/LittleEndianUint32ByteSwapBigEndianFloat/BigEndianFloatByteSwapLittleEndianFloat/LittleEndianFloatByteSwapString: Das BCD-Format kann ebenfalls verwendet werden dank der FunktionenTOBCD()undFROMBCD()
Intervall zur Aktualisierung und Abfrage
Jedes Gerät im Modbus-Interface hat das Attribut Poll Interval definiert. Dieses gibt an, wie oft die TapHome-Steuerung neue Werte des Modbus-Geräts abfragen soll. Die Modbus-Kommunikation ist Master-Slave, daher können Informationen aus dem Modbus-Gerät zu TapHome nur dann kommen, wenn TapHome sie anfordert. Je länger das Poll Interval, desto später wird der Wert in TapHome aktualisiert. Ein zu kurzes Poll Interval kann bedeuten, dass TapHome unnötig mit dem Abrufen nicht benötigter Werte belastet wird und möglicherweise nicht genug Zeit hat, alle Geräte im gegebenen Zeitfenster zu bedienen. Beispielsweise kann bei Modbus RTU und niedrigeren Baudraten, z. B. 9600, eine Anfrage/Antwort mehrere Dutzend Millisekunden dauern. Für Thermometer ist in den meisten Fällen ein Intervall von 15000 ms (15 s) ausreichend, für Tasten hingegen das kürzeste, z. B. 50 ms. Einige Modbus-Geräte erwarten, dass der Master regelmäßig den aktuellen Wert in das Register schreibt. Dazu dient das Attribut Periodic Write.
Definition von Fehlerzuständen aus Skripten
In einigen Skripten ist es möglich, einen Fehler / eine Warnung / eine Information auf dem Gerät basierend auf den aus Modbus-Registern gelesenen Informationen zu definieren. Diese Meldungen werden in TapHome genauso angezeigt wie interne Fehlermeldungen von TapHome. Optional ist es möglich, der Fehlermeldung einen numerischen Fehlercode hinzuzufügen, falls dies für den Modbus-Geräte-Service praktisch ist.
Auf dem Gerät kann jeweils nur eine Fehlermeldung ohne Code oder nur eine Fehlermeldung pro Fehlercode definiert werden.
ADDERROR(), ADDWARNING(), ADDINFO()
ADDERROR([Optional: custom_code], text)
Beispiel: Im Read Script des Analogausgangs-Geräts lautet der Code:
|
|
…was auf dem Gerät als Meldungen erscheint:

Servicemerkmale und Serviceaktionen
Neben dem Wert (oder mehreren Werten, wie z. B. Thermostat) des verbundenen Modbus-Geräts können Module und TapHome-Geräte auch Serviceattribute lesen oder Serviceaktionen durchführen. Diese sind dann nicht für andere Systemnutzer auf dem Desktop zugänglich, sondern dienen lediglich der detaillierteren Information zum Modbus-Gerät, ohne das System mit einer großen Anzahl von Variablen und Aktionen zu belasten.
Serviceattribute werden in den Serviceeinstellungen des Moduls oder Geräts in TapHome angezeigt. Typischerweise dienen sie dazu, Informationen über das Gerät anzuzeigen, wie Modell, Seriennummer, Firmware-Version, Hardwarerevision, Zeit seit dem letzten Neustart usw. Sie sind aus Servicersicht des Modbus-Geräts nützlich, aber es macht keinen Sinn, dafür eigene TapHome-Geräte zu erstellen.
Serviceaktionen werden in den Serviceeinstellungen des Moduls oder Geräts angezeigt, ganz unten als Knöpfe. Nach dem Drücken führen sie eine vordefinierte Modbus-Aktion aus, die die gewünschten Informationen in das Register schreibt. Beispielanwendung: Slave-ID einstellen oder ändern, Filter zurücksetzen, Zähler auf einen gewünschten Wert setzen, Gerät zurücksetzen usw.
Skripte und Hilfsvariablen am Modul
Globale Variablen des Moduls
Variablen, die auf dem Modul definiert sind, stehen in allen Skripten des Moduls zur Verfügung und werden mit allen Geräten, die diesem Modul zugeordnet sind, geteilt.
Init-Skript
Optional. Wird beim Start des Moduls ausgeführt. Falls ausgefüllt und noch nicht gelaufen, werden keine weiteren Skripte zugelassen.
- 💬 Rückgabewert: ignoriert
- ⚙️ Zugriff auf Variablen: Globale Variablen des Moduls
- ⚠️ Fehlerstatus-Unterstützung: Nein
Read-Skript
Wird bei jeder Abfrage des Moduls ausgeführt.
- 💬 Rückgabewert: ignoriert
- ⚙️ Zugriff auf Variablen: Globale Variablen des Moduls
- ⚠️ Fehlerstatus-Unterstützung: Ja
Write-Skript
Ausführung:
- bei Änderung der Gerätevariable
- falls das Attribut “Periodic Write” aktiviert ist, wird es automatisch ausgeführt
- 💬 Rückgabewert: ignoriert
- ⚙️ Zugriff auf Variablen: Globale Variablen des Moduls, Werte der Geräte, die zu diesem Modul gehören (Achtung, das sind keine globalen Gerätevariablen – das Skript des Moduls hat darauf keinen Zugriff). Dies wird verwendet, wenn Werte mehrerer Geräte des Moduls in einem Register geschrieben werden müssen.
- ⚠️ Fehlerstatus-Unterstützung: Nein
Servicemerkmale
Jedes Modul kann eine unbegrenzte Anzahl von Serviceattributen haben. Skripte werden immer ausgeführt, wenn ein Benutzer mit Service-Rechten die Serviceneinstellungen des Moduls in der App öffnet. Sie werden oben aufgeführt, direkt nach dem Auslesen des Modbus-Geräts.
- 💬 Rückgabewert: wird als Wert des jeweiligen Attributs angezeigt
- ⚙️ Zugriff auf Variablen: Globale Variablen des Moduls
- ⚠️ Fehlerstatus-Unterstützung: Nein
Serviceaktionen
Jedes Gerät kann eine unbegrenzte Anzahl von Serviceaktionen haben. Skripte werden ausgeführt, wenn der Benutzer mit Service-Rechten die App öffnet und auf dem Bildschirm der Servic-einstellungen des Geräts eine der vordefinierten Schaltflächen mit dem Namen der Serviceaktion drückt. Jede Serviceaktion ist durch ihren Namen, Parameter und ein ausführendes Skript definiert.
- 💬 Rückgabewert: ignoriert
- ⚙️ Zugriff auf Variablen: Globale Variablen des Moduls, globale Gerätevariablen, vom Benutzer eingegebene Parameter
- ⚠️ Fehlerstatus-Unterstützung: Nein
Nützliche Werkzeuge
Vom Template hinzufügen
Erlaubt die Konfiguration der Modbus-Kommunikation mit dem Gerät ohne jegliche Kenntnisse des Modbus-Protokolls oder wie man es in TapHome konfiguriert. Vorgefertigte Vorlagen finden Sie:
- direkt in der App: Von Vorlage hinzufügen → Wählen Sie das konkrete Gerät → Füllen Sie die Grundinformationen aus und bestätigen Sie. Alle diese Vorlagen werden im Community-Git-Projekt unter https://github.com/taphome/modbus_templates verwaltet, und jeder dort kann neue Modifikationen vorschlagen. Was in die Applikationen kommt, muss direkt vom TapHome-Team genehmigt werden.
- in Ihrer eigenen XML-Datei: Von Vorlage hinzufügen → Von Datei hinzufügen. Sie können eine eigene XML-Datei erstellen, die die gesamte Vorlage direkt auf dem Modbus-Modul definiert: im Kontextmenü (drei Punkte oben rechts), Aktion Als Vorlage speichern. Wir würden uns freuen, wenn Sie uns helfen, die Anzahl unterstützter Geräte zu erweitern und Ihre XML-Datei zum gemeinsamen Community-Git-Projekt beizusteuern.
Weitere Informationen zur Konfiguration der Modbus-Kommunikation über Vorlagen
Manuelle Operationen
Praktisches Tool für eine schnelle anfängliche Überprüfung der Modbus-Tabelle. Ermöglicht:
- Laden der folgenden X Register in die Tabelle von einem bestimmten Register und anschließend das dynamische Umstellen der gelesenen Werte in verschiedene Datentypen
- Schreiben eines Wertes in das angegebene Register
Slave-ID suchen
Gängige Praxis bei der Einrichtung der Kommunikation mit Modbus-Geräten ist, dass die werkseitig voreingestellte Slave-ID von 1 abweicht und es nicht einfach ist, die richtige Nummer herauszufinden. Dafür dient dieses Tool. Es kann den angegebenen Slave-ID-Bereich durchsuchen, indem es versucht, aus dem ausgewählten Register zu lesen – jeweils mit der getesteten Slave-ID.
Informationen zu Registern
Zu finden im unteren Teil des Modbus-Moduls. Für jedes verwendete Register finden sich Informationen zu:
- Name des TapHome-Geräts, das daraus liest oder in das es schreibt
- Datum und Uhrzeit der letzten erfolgreichen Abfrage aus dem Register
- Letzter gelesener Wert aus dem Register
- Datum und Uhrzeit der letzten erfolgreichen Registrierung im Register
- Letzter in das Register geschriebener Wert
Erweiterte Einstellungen
Prefetch
TapHome erstellt eine Liste von Registern zum Lesen und Schreiben von Modbus-Geräten in Abhängigkeit vom eingestellten Poll-Intervall. Prefetch ist der Prozess, durch den die Steuereinheit Werte in den Cache vorab lädt, die während der Aktualisierung benötigt werden. Ziel ist es, die Anzahl der Anfragen und Rückwege zu minimieren. Prefetch wird von zwei Einstellungen beeinflusst:
- Max prefetch register group size (im Modul-Service-Bereich platziert): Gibt die maximale Anzahl von Registern an, die mit einer einzelnen Modbus-Anfrage gelesen oder geschrieben werden können.
- Prefetch mode (für jedes Gerät einstellbar):
- No prefetch. Das Vorladen wird für dieses Gerät nicht durchgeführt. Das bedeutet, dass Werte einzeln und genau dann gelesen werden, wenn das Skript ausgeführt wird. Beispiel: Bei der Kommunikation mit einem DALI-Konverter kann der Wert eines bestimmten Lichts nicht direkt gelesen werden, muss aber so bald wie möglich angefragt werden; der Konverter bereitet ihn vor und gibt ihn dann zurück. Jegliches Prefetching ist hier unnötig.
- Isolated prefetch. Lädt mehrere Register gleichzeitig vor, aber nur diejenigen, die in diesem Gerät definiert sind. Zum Beispiel, wenn ich Register 3 und 4 im Thermostat-Gerät benötige, Register 1, 2, 5, 6 werden in anderen Geräten verwendet, daher wird die Abfrage der Register 3 und 4 separat nur für diese zwei Register ausgeführt. Einige Modbus-Geräte benötigen dies.
- Normal prefetch. Alle benötigten Register der Geräte, die aktualisiert werden sollen, werden mit minimalen Anforderungen gelesen. Bei einer nicht zusammenhängenden Registerfolge werden auch Register gelesen, die nicht verwendet werden, falls sie in der Vergangenheit erfolgreich gelesen wurden. Beispiel: Es werden Register 99 und 101 benötigt. Wenn Register 100 in der Vergangenheit erfolgreich gelesen wurde und Max prefetch register group size 3 oder mehr beträgt, liest es 3 Register in einer einzigen Anforderung ab Register 99. Wenn Register 100 nirgendwo verwendet wird und nie erfolgreich gelesen wurde, besteht das Risiko, dass das Lesen über ein solches Register eine Modbus-Ausnahme zurückgibt, z. B. “Illegal data address” als Antwort auf die Gesamtanfrage.
Prefetch kann auch direkt aus dem Skript beeinflusst werden: Wenn beim Lesen das Register SC oder SH (anstatt C oder H) verwendet wird, dann wird der Wert registerweise nacheinander während der Skriptausführung gelesen und nicht aus dem Cache gezogen. Ebenso beim Schreiben, wenn SC oder SH verwendet wird (anstatt C oder H), wird der Wert registerweise nacheinander geschrieben und mit einer anderen Modbus-Funktion. Das Modbus-Protokoll unterstützt 4 Schreibfunktionen: Schreiben mehrerer H, mehrerer C, Schreiben eines H- oder eines C-Registers auf einmal. Vorsicht: Nicht alle Geräte unterstützen alle diese Funktionen. Auf diese Weise ist es, falls notwendig, möglich, Lesen und Schreiben zu kombinieren und “eins nach dem anderen” auszuführen.
TCP-Port (Modbus TCP)
In den meisten Fällen ist der Standardwert 502, aber es kann sein, dass einige Geräte auf einem anderen Port lauschen.
Zeitlimit Lesen / Schreiben
Die Zeit, nach der TapHome das Warten auf eine Antwort abbricht und einen Fehler „Timeout“ meldet. Das bedeutet, dass das Gerät in diesem Intervall nicht geantwortet hat.
- Langsame Modbus-Geräte können längere Zeitlimits benötigen (1+ Sekunden).
- Hohe Zeitlimits können andere Modbus-Geräte, die auf eine Antwort warten, unnötig verzögern.
Verzögerung zwischen Anfragen
Verzögerung, die TapHome zwischen einzelnen Anfragen an das Modbus-Gerät einfügt.
| Modbus-Typ | Standard-Verzögerung |
|---|---|
| Modbus TCP | 0ms |
| Modbus RTU | Abhängig von der Kommunikationsgeschwindigkeit (Baudrate), typischerweise mindestens 3,5 Zeichen |
📌 Wichtige Informationen zu Geräten:
- Einige Modbus-TCP-Geräte erfordern zwischen Anforderungen bis zu 5000 ms.
- Einige Modbus-RTU-Geräte ermöglichen kürzere Verzögerungen und kommunizieren schneller.
ASCII-Kommunikation verwenden
Modbus ASCII ist ein weniger gängiger Standard, bei dem die Kommunikation nicht binär ist, sondern stattdessen ASCII-Zeichen verwendet.
- Diese Geräte erfordern typischerweise 7 Datenbits.