---
title: "Noname Generic 8DI/8DO module"
description: "8 întrerupătoare și 8 contacte pe un modul I/O Modbus RTU generic prin RS-485, ca măști de biți din două registre holding. Verificați tabelul de registre."
url: "https://taphome.com/ro/compatibility/noname-generic-8di-8do-module/"
language: ro
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","i/o-module","digital-io","holding-registers","bitmask"]
  questions: ["Cum se integrează un modul Modbus RTU generic 8DI/8DO cu TapHome?","Ce controlează șablonul TapHome Generic 8DI/8DO module?","Cum se conectează un modul RS-485 8DI/8DO la TapHome prin Modbus RTU?","Funcționează șablonul Generic 8DI/8DO cu module care folosesc coils și discrete inputs?","Ce adrese de registru se introduc pentru DO Register și DI Register?","De ce răspunde modulul 8DI/8DO cu eroarea Illegal data address?"]
---

# Noname Generic 8DI/8DO module

Comunicație: Modbus RTU

## Ghid de integrare

Acest șablon conectează la TapHome, prin RS-485, un modul I/O Modbus RTU generic, fără marcă, cu **8 ieșiri digitale și 8 intrări digitale**. Creează opt dispozitive **Întrerupător** (DO1–DO8) și opt dispozitive **Contact Reed** (DI1–DI8). Șablonul nu are un producător sau un model fix: se potrivește numai unui modul al cărui tabel de registre corespunde structurii descrise mai jos, de aceea tabelul de registre al modulului trebuie verificat înainte de utilizarea șablonului.

## Înainte de a folosi acest șablon

Șablonul citește și scrie **numai registre holding** (funcția Modbus 03 pentru citire, funcția 06 pentru scriere). Se așteaptă la următoarea structură a registrelor:

| Date | Tip registru | Registru | Conținut |
|---|---|---|---|
| Ieșiri DO1–DO8 | Holding | un registru, parametrul de import **DO Register** | biții 0–7 = starea DO1–DO8 |
| Intrări DI1–DI8 | Holding | un registru, parametrul de import **DI Register** | biții 0–7 = starea DI1–DI8 |

> [!WARNING]
> Multe module RS-485 8DI/8DO ieftine își documentează ieșirile ca **coils** (funcțiile 01, 05, 0F) și intrările ca **discrete inputs** (funcția 02) și folosesc registrele holding numai pentru configurare. Un astfel de modul nu poate fi controlat de acest șablon fără modificări. Înainte de montarea modulului, verificați în tabelul de registre al modulului că ieșirile sunt disponibile ca mască de biți într-un registru holding, iar intrările ca mască de biți într-un registru holding.

Tipul de registru este fixat în scripturile șablonului; la import se pot modifica numai cele două adrese de registru și Slave ID-ul.

## Conectarea hardware

Modulul se conectează la magistrala RS-485 a TapHome Core:

- **A la A, B la B.** Marcajele bornelor diferă de la un producător la altul (A/B, A+/B−, D+/D−). Dacă modulul nu răspunde, inversați cele două fire.
- **Masă comună:** pe linii mai lungi, conectați GND-ul modulului la GND-ul magistralei, dacă modulul are o bornă pentru aceasta.
- **Topologia magistralei:** magistrală liniară, cu terminare la ambele capete. Dacă modulul are un rezistor de terminare integrat și cum se activează acesta depinde de modul — verificați pe modul.
- **Slave ID unic:** fiecare dispozitiv de pe aceeași linie RS-485 are nevoie de propriul Slave ID.

Înainte de cablare, verificați pe modul tensiunea de alimentare, tipul intrărilor (contact uscat, NPN sau PNP, intrare de tensiune) și tipul ieșirilor (releu sau tranzistor), precum și valorile lor nominale. Șablonul nu depinde de acestea, dar cablarea sarcinilor și a senzorilor depinde.

## Configurare

### Setările de comunicație pe modul

Șablonul propune următorii parametri de linie pentru interfața Modbus RTU din TapHome:

| Parametru | Valoare |
|---|---|
| Viteză de transmisie (baud rate) | 9600 |
| Biți de date | 8 |
| Paritate | Fără |
| Biți de stop | 1 |

Modulul trebuie să folosească aceeași viteză de transmisie și același format de cadru, iar Slave ID-ul său trebuie să corespundă parametrului de import. Unde se setează acestea — comutatoare DIP, un registru de configurare sau software-ul de configurare al producătorului — depinde de modul; verificați în documentația modulului sau pe modulul însuși.

### Parametrii de import

| Parametru | Implicit | Semnificație |
|---|---|---|
| **DO Register** | `1` | adresa registrului holding cu biții ieșirilor |
| **DI Register** | `2` | adresa registrului holding cu biții intrărilor |
| **Slave ID** | `1` | adresa Modbus a modulului |

TapHome trimite adresa registrului către modul nemodificată și numără de la 0. Dacă tabelul de registre al modulului numerotează registrele de la 1 (de exemplu 40001, 40002), scădeți 1 (consultați [Adresarea registrelor Modbus](https://taphome.com/ro/docs/integration/modbus/)). Parametrul de import **Adresa IP** nu are niciun efect pe o interfață Modbus RTU și poate rămâne la valoarea implicită.

În TapHome, adăugați o interfață Modbus RTU cu parametrii de linie de mai sus și importați șablonul cu Slave ID-ul și cele două adrese de registru ale modulului.

## Funcțiile dispozitivului

### Ieșiri digitale DO1–DO8

Fiecare ieșire este un dispozitiv **Întrerupător**. Starea sa se citește la fiecare 1000 ms din bitul 0 (DO1) până la bitul 7 (DO8) al registrului **DO Register**. Comutarea este gestionată de scriptul de scriere al modulului TapHome, nu de fiecare ieșire în parte: când se schimbă oricare ieșire, TapHome scrie masca de biți a tuturor celor opt ieșiri în registrul **DO Register** printr-o singură scriere (funcția 06) și numai atunci când valoarea se schimbă. Biții 8–15 ai valorii scrise sunt întotdeauna 0.

### Intrări digitale DI1–DI8

Fiecare intrare este un dispozitiv **Contact Reed** care afișează bitul 0 (DI1) până la bitul 7 (DI8) al registrului **DI Register**, citit la fiecare 1000 ms. Este potrivit pentru contacte de ușă și fereastră, întrerupătoare cu plutitor sau contacte auxiliare de releu conectate la intrările modulului.

> [!NOTE]
> Verificați pe modul că bitul 0 corespunde într-adevăr primului canal și că modulul acceptă o mască de biți scrisă cu funcția 06 în registrul ieșirilor.

## Rezolvarea problemelor

### Modulul nu răspunde

1. Verificați cablajul RS-485 și, dacă este necesar, inversați A și B.
2. Verificați că Slave ID-ul modulului corespunde parametrului de import **Slave ID**.
3. Verificați că viteza de transmisie, paritatea și biții de stop ai modulului corespund interfeței Modbus RTU (recomandat: 9600, 8N1).
4. Verificați terminarea la ambele capete ale magistralei.

### Eroarea „Illegal data address”

Adresa registrului este decalată cu 1 (documentația modulului numerotează registrele de la 1) sau modulul nu are deloc această structură a registrelor — de exemplu, când ieșirile sale sunt coils, iar intrările discrete inputs. Comparați parametrii de import cu tabelul de registre al modulului.

### Ieșirile sau intrările corespund altor canale

Ordinea biților modulului diferă de cea a șablonului (bitul 0 = canalul 1). Verificați alocarea biților în tabelul de registre al modulului.

## Dispozitive disponibile 16

Aceste dispozitive apar în TapHome după import.

Generic 8DI/8DO module Modul

Scriere (modul)

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

DO1 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO2 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO3 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO4 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO5 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO6 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO7 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DO8 Comutator

Valori / Stări: ON · OFF

Citirea stării comutatorului

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

DI1 Contact reed

Citire

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

DI2 Contact reed

Citire

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

DI3 Contact reed

Citire

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

DI4 Contact reed

Citire

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

DI5 Contact reed

Citire

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

DI6 Contact reed

Citire

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

DI7 Contact reed

Citire

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

DI8 Contact reed

Citire

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

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

## Parametri de import

Introduceți aceste valori când importați XML-ul.

| Solicitat în aplicație | Implicit      |
|------------------------|---------------|
| DO Register            | `1`           |
| DI Register            | `2`           |
| Slave ID               | `1`           |
| Adresă IP              | `192.168.0.1` |

## Documentație asociată

- [Modbus Integration](https://taphome.com/ro/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/ro/docs/integration/modbus/)
- [Configurare simplă cu ajutorul șabloanelor](https://taphome.com/ro/docs/integration/modbus/templates/)
- [Scripturi Modbus și prefetch](https://taphome.com/ro/docs/script/modbus-scripts/)
- [Funcții Modbus](https://taphome.com/ro/docs/script/modbus/)
- [Tipuri de date Modbus](https://taphome.com/ro/docs/script/modbus-data-types/)

