---
title: "Noname Generic 8DI/8DO module"
description: "8 Schalter und 8 Kontakte aus einem generischen Modbus RTU I/O-Modul über RS-485, gelesen als Bitmasken zweier Holding-Register. Registertabelle prüfen."
url: "https://taphome.com/de/compatibility/noname-generic-8di-8do-module/"
language: de
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","i/o-module","digital-io","holding-registers","bitmask"]
  questions: ["Wie integriere ich ein generisches 8DI/8DO-Modul mit Modbus RTU in TapHome?","Was steuert die TapHome-Vorlage Generic 8DI/8DO module?","Wie schließe ich ein 8DI/8DO-Modul für RS-485 über Modbus RTU an TapHome an?","Funktioniert die Vorlage Generic 8DI/8DO mit Modulen, die Coils und Discrete Inputs verwenden?","Welche Registeradressen gebe ich für DO Register und DI Register ein?","Warum antwortet das 8DI/8DO-Modul mit Illegal data address?"]
---

# Noname Generic 8DI/8DO module

Kommunikation: Modbus RTU

## Integrationsanleitung

Diese Vorlage bindet ein generisches Modbus RTU I/O-Modul ohne Markenbezeichnung mit **8 digitalen Ausgängen und 8 digitalen Eingängen** über RS-485 in TapHome ein. Sie erstellt acht Geräte **Schalten** (DO1–DO8) und acht Geräte **Reedkontakt** (DI1–DI8). Die Vorlage hat keinen festen Hersteller und kein festes Modell: Sie passt nur zu einem Modul, dessen Registertabelle dem unten beschriebenen Aufbau entspricht. Prüfen Sie deshalb die Registertabelle des Moduls, bevor Sie die Vorlage verwenden.

## Bevor Sie diese Vorlage verwenden

Die Vorlage liest und schreibt **ausschließlich Holding-Register** (Modbus-Funktion 03 zum Lesen, Funktion 06 zum Schreiben). Sie erwartet folgenden Registeraufbau:

| Daten | Registertyp | Register | Inhalt |
|---|---|---|---|
| Ausgänge DO1–DO8 | Holding | ein Register, Importparameter **DO Register** | Bits 0–7 = Zustand von DO1–DO8 |
| Eingänge DI1–DI8 | Holding | ein Register, Importparameter **DI Register** | Bits 0–7 = Zustand von DI1–DI8 |

> [!WARNING]
> Viele günstige 8DI/8DO-Module für RS-485 dokumentieren ihre Ausgänge als **Coils** (Funktionen 01, 05, 0F) und ihre Eingänge als **Discrete Inputs** (Funktion 02) und nutzen Holding-Register nur für die Konfiguration. Ein solches Modul lässt sich mit dieser Vorlage ohne Änderungen nicht steuern. Prüfen Sie vor der Installation in der Registertabelle des Moduls, dass die Ausgänge als Bitmaske in einem Holding-Register und die Eingänge als Bitmaske in einem Holding-Register verfügbar sind.

Der Registertyp ist in den Skripten der Vorlage fest vorgegeben; beim Import lassen sich nur die beiden Registeradressen und die Slave ID ändern.

## Hardware-Anschluss

Das Modul wird an den RS-485-Bus der Steuereinheit Core angeschlossen:

- **A an A, B an B.** Die Klemmenbezeichnungen unterscheiden sich je nach Hersteller (A/B, A+/B−, D+/D−). Wenn das Modul nicht antwortet, tauschen Sie die beiden Adern.
- **Gemeinsame Masse:** Verbinden Sie bei längeren Leitungen GND des Moduls mit GND des Busses, sofern das Modul dafür eine Klemme hat.
- **Bustopologie:** Linienbus mit Abschluss an beiden Enden. Ob das Modul einen eingebauten Abschlusswiderstand hat und wie er eingeschaltet wird, hängt vom Modul ab — prüfen Sie es am Modul.
- **Eindeutige Slave ID:** Jedes Gerät an derselben RS-485-Leitung braucht eine eigene Slave ID.

Prüfen Sie vor der Verdrahtung am Modul: Versorgungsspannung, Eingangstyp (potenzialfreier Kontakt, NPN oder PNP, Spannungseingang) und Ausgangstyp (Relais oder Transistor) sowie deren Nennwerte. Die Vorlage hängt davon nicht ab, die Verdrahtung von Lasten und Sensoren aber schon.

## Konfiguration

### Kommunikationseinstellungen am Modul

Die Vorlage schlägt für die Schnittstelle Modbus RTU in TapHome diese Leitungsparameter vor:

| Parameter | Wert |
|---|---|
| Baudrate | 9600 |
| Datenbits | 8 |
| Parität | Keine |
| Stoppbits | 1 |

Das Modul muss dieselbe Baudrate und dasselbe Datenformat verwenden, und seine Slave ID muss dem Importparameter entsprechen. Wo diese Werte eingestellt werden — über DIP-Schalter, ein Konfigurationsregister oder die Konfigurationssoftware des Herstellers —, hängt vom Modul ab; prüfen Sie es in der Dokumentation des Moduls oder am Modul selbst.

### Importparameter

| Parameter | Standardwert | Bedeutung |
|---|---|---|
| **DO Register** | `1` | Adresse des Holding-Registers mit den Ausgangsbits |
| **DI Register** | `2` | Adresse des Holding-Registers mit den Eingangsbits |
| **Slave ID** | `1` | Modbus-Adresse des Moduls |

TapHome sendet die Registeradresse unverändert an das Modul und zählt ab 0. Wenn die Registertabelle des Moduls die Register ab 1 nummeriert (zum Beispiel 40001, 40002), ziehen Sie 1 ab — siehe [Adressierung von Modbus-Registern](https://taphome.com/de/docs/integration/modbus/). Der Importparameter **IP-Adresse** hat bei einer Schnittstelle Modbus RTU keine Wirkung und kann auf dem Standardwert bleiben.

Fügen Sie in TapHome eine Schnittstelle Modbus RTU mit den obigen Leitungsparametern hinzu und importieren Sie die Vorlage mit der Slave ID und den beiden Registeradressen des Moduls.

## Gerätefunktionen

### Digitale Ausgänge DO1–DO8

Jeder Ausgang ist ein Gerät **Schalten**. Sein Zustand wird alle 1000 ms aus Bit 0 (DO1) bis Bit 7 (DO8) des **DO Register** gelesen. Das Schalten übernimmt das Schreibskript des Moduls in TapHome, nicht jeder einzelne Ausgang: Ändert sich ein beliebiger Ausgang, schreibt TapHome die Bitmaske aller acht Ausgänge in einem einzigen Schreibvorgang (Funktion 06) in das **DO Register**, und zwar nur, wenn sich der Wert ändert. Die Bits 8–15 des geschriebenen Werts sind immer 0.

### Digitale Eingänge DI1–DI8

Jeder Eingang ist ein Gerät **Reedkontakt**, das Bit 0 (DI1) bis Bit 7 (DI8) des **DI Register** anzeigt, gelesen alle 1000 ms. Es eignet sich für Tür- und Fensterkontakte, Schwimmerschalter oder Hilfskontakte von Relais, die an die Eingänge des Moduls angeschlossen sind.

> [!NOTE]
> Prüfen Sie am Modul, dass Bit 0 tatsächlich dem ersten Kanal entspricht und dass das Modul eine mit Funktion 06 in das Ausgangsregister geschriebene Bitmaske akzeptiert.

## Fehlerbehebung

### Keine Antwort vom Modul

1. Prüfen Sie die RS-485-Verdrahtung und tauschen Sie bei Bedarf A und B.
2. Prüfen Sie, dass die Slave ID des Moduls dem Importparameter **Slave ID** entspricht.
3. Prüfen Sie, dass Baudrate, Parität und Stoppbits des Moduls mit der Schnittstelle Modbus RTU übereinstimmen (vorgeschlagen 9600, 8N1).
4. Prüfen Sie den Abschluss an beiden Enden des Busses.

### Fehler „Illegal data address“

Die Registeradresse ist um 1 verschoben (die Dokumentation des Moduls nummeriert die Register ab 1), oder das Modul hat diesen Registeraufbau gar nicht — zum Beispiel, wenn seine Ausgänge Coils und seine Eingänge Discrete Inputs sind. Vergleichen Sie die Importparameter mit der Registertabelle des Moduls.

### Ausgänge oder Eingänge sind den falschen Kanälen zugeordnet

Die Bitreihenfolge des Moduls weicht von der Vorlage ab (Bit 0 = Kanal 1). Prüfen Sie die Bitzuordnung in der Registertabelle des Moduls.

## Verfügbare Geräte 16

Diese Geräte erscheinen nach dem Import in TapHome.

Generic 8DI/8DO module Modul

Schreiben (Modul)

```taphome
MODBUSWNE(SH, $[DORegister], Int16, St2 | (St3 << 1) | (St4 << 2) | (St5 << 3) | (St6 << 4) | (St7 << 5) | (St8 << 6) | (St9 << 7))
```

DO1 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
MODBUSR(H, $[DORegister], Int16) & 1
```

DO2 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 2 )>>1
```

DO3 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 4)>>2
```

DO4 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 8)>>3
```

DO5 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 16)>>4
```

DO6 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 32)>>5
```

DO7 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 64)>>6
```

DO8 Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
(MODBUSR(H, $[DORegister], Int16) & 128)>>7
```

DI1 Reed-Kontakt

Lesen

```taphome
MODBUSR(H, $[DIRegister], Int16) & 1
```

DI2 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 2)>>1
```

DI3 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 4)>>2
```

DI4 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 8)>>3
```

DI5 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 16)>>4
```

DI6 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 32)>>5
```

DI7 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 64)>>6
```

DI8 Reed-Kontakt

Lesen

```taphome
(MODBUSR(H, $[DIRegister], Int16) & 128)>>7
```

**Verbindung:** Modbus RTU • 9600 baud• 8N1 • Slave ID: $\[SlaveId]

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard      |
|----------------------|---------------|
| DO Register          | `1`           |
| DI Register          | `2`           |
| Slave-ID             | `1`           |
| IP-Adresse           | `192.168.0.1` |

## Verwandte Dokumentation

- [Modbus Integration](https://taphome.com/de/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/de/docs/integration/modbus/)
- [Einfache Konfiguration mit Vorlagen](https://taphome.com/de/docs/integration/modbus/templates/)
- [Modbus-Skripte und Prefetch](https://taphome.com/de/docs/script/modbus-scripts/)
- [Modbus-Funktionen](https://taphome.com/de/docs/script/modbus/)
- [Modbus-Datentypen](https://taphome.com/de/docs/script/modbus-data-types/)

