---
title: "Noname Generic 8DI/8DO module"
description: "8 przełączników i 8 styków z ogólnego modułu I/O Modbus RTU przez RS-485, odczyt jako maski bitowe dwóch rejestrów holding. Sprawdź tabelę rejestrów."
url: "https://taphome.com/pl/compatibility/noname-generic-8di-8do-module/"
language: pl
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","i/o-module","digital-io","holding-registers","bitmask"]
  questions: ["Jak zintegrować ogólny moduł 8DI/8DO Modbus RTU z TapHome?","Czym steruje szablon TapHome Generic 8DI/8DO module?","Jak podłączyć moduł 8DI/8DO na RS-485 do TapHome przez Modbus RTU?","Czy szablon Generic 8DI/8DO działa z modułami, które używają cewek (coils) i wejść dyskretnych (discrete inputs)?","Jakie adresy rejestrów wpisać w DO Register i DI Register?","Dlaczego moduł 8DI/8DO odpowiada błędem Illegal data address?"]
---

# Noname Generic 8DI/8DO module

Komunikacja: Modbus RTU

## Poradnik integracji

Ten szablon łączy z TapHome przez RS-485 ogólny moduł I/O Modbus RTU bez marki z **8 wyjściami cyfrowymi i 8 wejściami cyfrowymi**. Tworzy osiem urządzeń **Przełącznik** (DO1–DO8) i osiem urządzeń **Kontaktron** (DI1–DI8). Szablon nie ma stałego producenta ani modelu: pasuje tylko do modułu, którego tabela rejestrów odpowiada opisanemu niżej układowi, dlatego przed użyciem szablonu sprawdź tabelę rejestrów modułu.

## Zanim użyjesz tego szablonu

Szablon odczytuje i zapisuje **wyłącznie rejestry holding** (funkcja Modbus 03 do odczytu, funkcja 06 do zapisu). Oczekuje następującego układu rejestrów:

| Dane | Typ rejestru | Rejestr | Zawartość |
|---|---|---|---|
| Wyjścia DO1–DO8 | Holding | jeden rejestr, parametr importu **DO Register** | bity 0–7 = stan DO1–DO8 |
| Wejścia DI1–DI8 | Holding | jeden rejestr, parametr importu **DI Register** | bity 0–7 = stan DI1–DI8 |

> [!WARNING]
> Wiele tanich modułów 8DI/8DO na RS-485 opisuje swoje wyjścia jako **cewki (coils)** (funkcje 01, 05, 0F), a wejścia jako **wejścia dyskretne (discrete inputs)** (funkcja 02), rejestrów holding zaś używa tylko do konfiguracji. Takiego modułu nie da się sterować tym szablonem bez zmian. Przed instalacją modułu sprawdź w jego tabeli rejestrów, czy wyjścia są dostępne jako maska bitowa w jednym rejestrze holding, a wejścia jako maska bitowa w jednym rejestrze holding.

Typ rejestru jest ustalony w skryptach szablonu; przy imporcie można zmienić tylko dwa adresy rejestrów i Slave ID.

## Podłączenie sprzętu

Moduł podłącza się do magistrali RS-485 jednostki sterującej Core:

- **A do A, B do B.** Oznaczenia zacisków różnią się w zależności od producenta (A/B, A+/B−, D+/D−). Jeśli moduł nie odpowiada, zamień oba przewody.
- **Wspólna masa:** przy dłuższych liniach połącz GND modułu z GND magistrali, jeśli moduł ma do tego zacisk.
- **Topologia magistrali:** magistrala liniowa z terminacją na obu końcach. To, czy moduł ma wbudowany rezystor terminujący i jak się go włącza, zależy od modułu — sprawdź to na module.
- **Unikalny Slave ID:** każde urządzenie na tej samej linii RS-485 potrzebuje własnego Slave ID.

Przed okablowaniem sprawdź na module: napięcie zasilania, typ wejść (styk bezpotencjałowy, NPN lub PNP, wejście napięciowe) i typ wyjść (przekaźnikowe lub tranzystorowe) oraz ich parametry znamionowe. Szablon od nich nie zależy, ale podłączenie obciążeń i czujników już tak.

## Konfiguracja

### Ustawienia komunikacji w module

Szablon proponuje dla interfejsu Modbus RTU w TapHome następujące parametry linii:

| Parametr | Wartość |
|---|---|
| Prędkość transmisji | 9600 |
| Bity danych | 8 |
| Parzystość | Brak |
| Bity stopu | 1 |

Moduł musi używać tej samej prędkości transmisji i formatu ramki, a jego Slave ID musi odpowiadać parametrowi importu. Miejsce ustawienia tych wartości — przełączniki DIP, rejestr konfiguracyjny lub oprogramowanie konfiguracyjne producenta — zależy od modułu; sprawdź to w dokumentacji modułu lub na samym module.

### Parametry importu

| Parametr | Domyślnie | Znaczenie |
|---|---|---|
| **DO Register** | `1` | adres rejestru holding z bitami wyjść |
| **DI Register** | `2` | adres rejestru holding z bitami wejść |
| **Slave ID** | `1` | adres Modbus modułu |

TapHome wysyła adres rejestru do modułu bez zmian i liczy od 0. Jeśli tabela rejestrów modułu numeruje rejestry od 1 (na przykład 40001, 40002), odejmij 1 — zobacz [Adresowanie rejestrów Modbus](https://taphome.com/pl/docs/integration/modbus/). Parametr importu **Adres IP** nie ma wpływu na interfejs Modbus RTU i może pozostać na wartości domyślnej.

W TapHome dodaj interfejs Modbus RTU z powyższymi parametrami linii i zaimportuj szablon ze Slave ID i dwoma adresami rejestrów modułu.

## Funkcje urządzenia

### Wyjścia cyfrowe DO1–DO8

Każde wyjście jest urządzeniem **Przełącznik**. Jego stan jest odczytywany co 1000 ms z bitów od 0 (DO1) do 7 (DO8) rejestru **DO Register**. Przełączaniem zajmuje się skrypt zapisu modułu w TapHome, a nie poszczególne wyjścia: gdy zmieni się którekolwiek wyjście, TapHome zapisuje maskę bitową wszystkich ośmiu wyjść do **DO Register** jednym zapisem (funkcja 06), i to tylko wtedy, gdy wartość się zmienia. Bity 8–15 zapisywanej wartości są zawsze równe 0.

### Wejścia cyfrowe DI1–DI8

Każde wejście jest urządzeniem **Kontaktron**, które pokazuje bity od 0 (DI1) do 7 (DI8) rejestru **DI Register**, odczytywanego co 1000 ms. Nadaje się do czujników otwarcia drzwi i okien, wyłączników pływakowych lub styków pomocniczych przekaźników podłączonych do wejść modułu.

> [!NOTE]
> Sprawdź na module, czy bit 0 rzeczywiście odpowiada pierwszemu kanałowi i czy moduł akceptuje maskę bitową zapisaną funkcją 06 do rejestru wyjść.

## Rozwiązywanie problemów

### Brak odpowiedzi z modułu

1. Sprawdź okablowanie RS-485 i w razie potrzeby zamień A i B.
2. Sprawdź, czy Slave ID modułu odpowiada parametrowi importu **Slave ID**.
3. Sprawdź, czy prędkość transmisji, parzystość i bity stopu modułu są zgodne z interfejsem Modbus RTU (proponowane 9600, 8N1).
4. Sprawdź terminację na obu końcach magistrali.

### Błąd „Illegal data address”

Adres rejestru jest przesunięty o 1 (dokumentacja modułu numeruje rejestry od 1) albo moduł w ogóle nie ma tego układu rejestrów — na przykład gdy jego wyjścia są cewkami (coils), a wejścia wejściami dyskretnymi (discrete inputs). Porównaj parametry importu z tabelą rejestrów modułu.

### Wyjścia lub wejścia są przypisane do niewłaściwych kanałów

Kolejność bitów w module różni się od szablonu (bit 0 = kanał 1). Sprawdź przypisanie bitów w tabeli rejestrów modułu.

## Dostępne urządzenia 16

Te urządzenia pojawią się w TapHome po imporcie.

Generic 8DI/8DO module Moduł

Zapis (moduł)

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

DO1 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO2 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO3 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO4 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO5 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO6 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO7 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DO8 Przełącznik

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

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

DI1 Kontakt reed

Odczyt

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

DI2 Kontakt reed

Odczyt

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

DI3 Kontakt reed

Odczyt

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

DI4 Kontakt reed

Odczyt

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

DI5 Kontakt reed

Odczyt

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

DI6 Kontakt reed

Odczyt

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

DI7 Kontakt reed

Odczyt

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

DI8 Kontakt reed

Odczyt

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

**Połączenie:** Modbus RTU • 9600 baud• 8N1 • Slave ID: $\[SlaveId]

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| DO Register         | `1`           |
| DI Register         | `2`           |
| Slave ID            | `1`           |
| Adres IP            | `192.168.0.1` |

## Powiązana dokumentacja

- [Modbus Integration](https://taphome.com/pl/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/pl/docs/integration/modbus/)
- [Prosta konfiguracja za pomocą szablonów](https://taphome.com/pl/docs/integration/modbus/templates/)
- [Skrypty Modbus i prefetch](https://taphome.com/pl/docs/script/modbus-scripts/)
- [Funkcje Modbus](https://taphome.com/pl/docs/script/modbus/)
- [Typy danych Modbus](https://taphome.com/pl/docs/script/modbus-data-types/)

