MENU

Konfiguration

Modbus ist ein offenes Kommunikationsprotokoll. Es wird normalerweise für die Integration in HLK-Geräte verwendet.

Core kommt mit drei Busklemmen. Neben dem internen TapHome-Bus unterstützen sie auch Modbus RTU. Der LAN-Port am Core unterstützt Modbus TCP. Dies bedeutet, dass Sie kein zusätzliches Gerät von TapHome kaufen müssen, um eine Verbindung zu Modbus-Geräten herzustellen.

Konfiguration

Definieren Sie unter Einstellungen → Hardware → Modbus die neue Schnittstelle:

  • Modbus RTU (Klemme definieren: BUS1, BUS2 oder BUS3)
  • Modbus TCP (IP-Adresse für jedes Gerät festlegen)

Wenn Sie Modbus RTU (über RS485-Kabel) verwenden, stellen Sie sicher, dass das Terminal, an dem Ihr Modbus-Gerät angeschlossen ist, nicht für TapHome Bus verwendet wird. Denken Sie daran, dass Sie mehr als ein Modbus-Gerät an demselben BUS verwenden können, diese müssen jedoch für jedes angeschlossene Gerät die gleichen allgemeinen Modbus-Einstellungen (Baudrate, Parität, Datenbits, Stoppbits) und die gleiche Slave-ID verwenden.

Es ist nicht möglich, Modbus RTU-Geräte mit TapHome Bus-Geräten an einem Terminal zu kombinieren. Beide Schnittstellen sind elektrisch kompatibel, verwenden jedoch ein völlig anderes Kommunikationsprotokoll.


Allgemeine Modbus-Kommunikationseinstellungen (vom Hersteller im Handbuch angegeben)

Implementierung in Taphome:

Modbus-Kommunikationstabelle vom Hersteller bereitgestellt

Implementierung in Taphome

Wenn die Kommunikation im folgenden Test nicht funktioniert, versuchen Sie, die Adressen der Register im Vergleich zu den Werten in der Tabelle um -1 oder +1 zu ändern. Dies hilft normalerweise.

In der Modbus RTU- oder Modbus TCP-Schnittstelle können Sie entweder eine Reihe von Geräten aus der Vorlage hinzufügen: https://taphome.atlassian.net/wiki/spaces/SUP/pages/15695874/Simple+configuration+using+templates oder Ihre eigenen definieren :

Unterstützte Modbus-Gerätetypen

Verwenden Sie generische Gerätetypen, um die benutzerdefinierte Modbus-Integration zu definieren:

Gerätetyp

Visualisierung

Variable für Schreibausdrücke

Temperatursensor


-- schreibgeschützt --

Thermostat


Se

Schalter


St

Multi-Value-Schalter

 

Mu

Dimmer / Analogausgang


Le

Stromzähler


-- schreibgeschützt --

Modbus-Wrapper


-- schreibgeschützt --

Reedkontakt


-- schreibgeschützt --

Variable

Va

Werte lesen und schreiben

Arten von Modbus-Registern

  • C - Spule (1 Bit, Lesen / Schreiben)
  • SC - Single Coil (1 Bit, Lesen / Schreiben)
  • D - Digitaleingang (1 Bit, schreibgeschützt)
  • H - Halteregister (16 Bit, Lesen / Schreiben)
  • SH - Single Holding Register (16 Bit, Lesen / Schreiben)
  • A - Analogeingang (16-Bit, schreibgeschützt)

Die Registertypen 'S' sind nur für Schreibfunktionen vorgesehen und sollten für Geräte verwendet werden, die das gleichzeitige Schreiben in mehrere Register nicht unterstützen.

Datentypen

  • Int16 (-32,768 to 32,767)
  • Uint16 (0 to 65,535)
  • Int32 (-2,147,483,648 to 2,147,483,647)
  • Uint32 (0 to 4,294,967,295)
  • Float (IEEE 754 Single precision floating point)
  • Bool – (-inf, 0> = false, (0, inf) = true
  • BigEndianInt16
  • LittleEndianInt16
  • BigEndianUint16
  • LittleEndianUint16
  • BigEndianInt32
  • LittleEndianInt32
  • BigEndianUint32
  • LittleEndianUint32
  • BigEndianFloat
  • LittleEndianFloat

BigEndian ist die Standardeinstellung für jeden Datentyp, z. B. ist Int32 identisch mit BigEndianInt32.

MODBUSR (MODBUS READ)

MODBUSR(register_type, register_address, data_type)
Example: MODBUSR(H, 20, Int16)/100

Gibt den Wert des Halteregisters an Adresse 20 im Int16-Format zurück und dividiert ihn durch 100.

MODBUSW (MODBUS WRITE)

MODBUSW(register_type, register_address, data_type, value_to_write)
Example: MODBUSW(H, 20, Int16, Te/100)

Schreibt die Temperatur des Sensors geteilt durch das Format 100 int int16 in das Halteregister 20.

MODBUSWNE (MODBUS WRITE NOT EQUAL)

Schreibt nur in das Register, wenn der aktuelle Wert unterschiedlich ist. Liest den Wert, prüft, ob er gleich ist und schreibt, wenn nicht. Nützlich zum Speichern des EEPROM-Speichers.

MODBUSWNE(register_type, register_address, data_type, value_to_write)
Example: MODBUSWNE(H, 20, Int16, Te/100)

Liest zuerst den Wert aus dem Halteregister auf der Adresse 20 im Int16-Format, vergleicht ihn mit der Temperatur des Temperatursensors geteilt durch 100 und schreibt die Temperatur des Sensors geteilt durch 100 im Int16-Format in das Halteregister 20.

Registeradressen können auch hexadezimal geschrieben werden, z. B. 20 entspricht 0x14.

Expressions

Ausdrücke

Folgen Sie diesem Link, um weitere Informationen zu Ausdrücken zu erhalten: https://taphome.com/de/support/41123985