Suche
MENU
  • Ausdrücke
  • Systemarchitektur nach Projekttyp
  • Benutzer und Berechtigungen
  • Aufbau

    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.com/support/15695874 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.

    Ausdrücke

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