---
title: "ComWinTop CWT-ULS Ultradźwiękowy czujnik poziomu"
description: "Ultradźwiękowy czujnik poziomu ComWinTop CWT-ULS z Modbus RTU przez RS-485. Bezkontaktowy pomiar poziomu cieczy, odległości od powierzchni i temperatury."
url: "https://taphome.com/pl/compatibility/comwintop-ultrasonic-level-sensor/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","sensor","rs485","level-measurement","ultrasonic","relay"]
  questions: ["Jak zintegrować ultradźwiękowy czujnik poziomu ComWinTop CWT-ULS z TapHome?","Co mierzy szablon ultradźwiękowego czujnika poziomu ComWinTop w TapHome?","Jak podłączyć ComWinTop CWT-ULS przez RS-485 do TapHome?","Jak skonfigurować wysokość montażu do obliczania poziomu cieczy?","Jak ustawić progi przekaźników na ultradźwiękowym czujniku poziomu ComWinTop przez TapHome?","Jakie jest ograniczenie strefy martwej czujnika ultradźwiękowego CWT-ULS?"]
---

# ComWinTop CWT-ULS Ultradźwiękowy czujnik poziomu

Komunikacja: Modbus RTU

- [Strona produktu ComWinTop CWT-ULS](https://store.comwintop.com/products/non-contact-ultrasonic-transmitter-ultrasonic-level-sensor-liquid-fuel-integrated-smart-level-measurement-indicator-4-20ma-rs485)

## Poradnik integracji

ComWinTop CWT-ULS to bezkontaktowy ultradźwiękowy czujnik poziomu, który łączy się z TapHome przez Modbus RTU po RS-485. Czujnik mierzy odległość do powierzchni cieczy za pomocą impulsów ultradźwiękowych i oblicza poziom cieczy na podstawie konfigurowalnej wysokości montażu. Dostępne są dwa modele: CWT-ULS-I-10M (zintegrowany) i CWT-ULS-S-10M (oddzielna sonda z kablem).

Szablon TapHome udostępnia wysokość poziomu cieczy, odległość od powierzchni, wbudowany czujnik temperatury oraz dwa wirtualne przekaźniki z konfigurowalnymi progami histerezy. Wszystkie wartości rejestrów wykorzystują 32-bitowe kodowanie zmiennoprzecinkowe IEEE 754, przy czym każda wartość zajmuje dwa rejestry Modbus.

## Podłączenie sprzętowe

### Specyfikacja techniczna

| Parametr | Wartość |
|----------|---------|
| **Zakres pomiaru** | 0,5–20 m |
| **Strefa martwa** | 0,35–0,5 m |
| **Dokładność** | 0,5% |
| **Rozdzielczość** | 1 mm |
| **Zasilanie** | 12–28 VDC |
| **Pobór mocy** | < 0,6 W |
| **Temperatura pracy** | -40 °C do +80 °C |
| **Stopień ochrony** | IP65 |
| **Protokół** | Modbus RTU Slave, RS-485 |
| **Prędkość transmisji** | 9600 (domyślna), konfigurowalna 600–115200 |
| **Gwint** | G2, średnica 60 mm |

### Okablowanie RS-485

Czujnik wykorzystuje 4-przewodowe połączenie z kolorowymi przewodami:

| Kolor przewodu | Funkcja | Para zacisków |
|----------------|---------|---------------|
| **Brązowy** | Zasilanie + (12–28 VDC) | 05–06 |
| **Czarny** | Zasilanie - (GND) | 05–06 |
| **Żółto-zielony** | RS-485 A+ | 01–02 |
| **Niebieski** | RS-485 B- | 01–02 |

Podłącz przewody RS-485 do TapHome:

- **A+** (żółto-zielony) → A+/D+ na TapHome RS-485
- **B-** (niebieski) → B-/D- na TapHome RS-485

Czujnik posiada również dwa wyjścia przekaźnikowe, każde na własnej parze zacisków:

| Para zacisków | Funkcja |
|---------------|---------|
| **08–09** | Wyjście przekaźnika 1 |
| **10–11** | Wyjście przekaźnika 2 |

> [!WARNING]
> **Ograniczenie strefy martwej**
>
> Czujnik nie jest w stanie mierzyć odległości krótszych niż 0,35–0,5 m od czoła czujnika (strefa martwa). Zamontuj czujnik tak, aby nawet przy maksymalnym poziomie cieczy powierzchnia pozostawała co najmniej 0,5 m poniżej czoła czujnika.

### Wskazówki dotyczące instalacji

- Zamontuj czujnik z dala od wlotów zbiornika, aby uniknąć zakłóceń od turbulencji
- Unikaj przeszkód w stożku pomiarowym ultradźwięków
- Uwzględnij geometrię zbiornika — kształty stożkowe lub kuliste mogą wpływać na odczyty
- Jeśli powierzchnia cieczy zawiera zanieczyszczenia lub turbulencje, zastosuj rurę prowadzącą o średnicy większej niż 120 mm

## Konfiguracja

Komunikacja Modbus RTU jest zawsze aktywna na interfejsie RS-485 — nie są wymagane żadne kroki aktywacji.

### Slave ID i prędkość transmisji

Domyślne Slave ID to **1**, a domyślna prędkość transmisji to **9600** (8N1). Obie wartości można zmienić poprzez akcje serwisowe TapHome na module po zaimportowaniu szablonu:

- Akcja serwisowa **Slave ID** — zapisuje H:20 (Float), zakres 1–254
- Akcja serwisowa **Prędkość transmisji** — zapisuje H:22 (Float), konfigurowalna 600–115200

Bieżące Slave ID i prędkość transmisji są odczytywalne jako atrybuty serwisowe na poziomie modułu.

> [!WARNING]
> Po zmianie Slave ID lub prędkości transmisji przez akcje serwisowe czujnik natychmiast zacznie odpowiadać na nowym adresie/prędkości. Zaktualizuj ustawienia połączenia modułu w TapHome, aby były zgodne.

### Ustawienie wysokości montażu

Aby aktywować obliczanie poziomu cieczy, należy skonfigurować wysokość montażu (odległość od czoła czujnika do dna zbiornika):

1. Otwórz urządzenie **Wysokość poziomu cieczy** w TapHome
2. Przejdź do ustawień serwisowych
3. Użyj akcji serwisowej **Wysokość montażu**, aby ustawić wysokość instalacji w metrach (0–11 m)

Bez skonfigurowanej wysokości montażu urządzenie **Wysokość poziomu cieczy** wyświetla ostrzeżenie i zwraca 0. Urządzenie **Odległość od powierzchni** raportuje surową wyświetlaną wartość z H:0, dopóki wysokość montażu nie zostanie ustawiona; potem zwraca wysokość montażu minus wyświetlaną wartość.

## Możliwości urządzenia

### Pomiar poziomu

Szablon udostępnia dwa uzupełniające się urządzenia pomiarowe:

- **Wysokość poziomu cieczy** (H:0 + H:10, Float) — obliczony poziom cieczy w metrach. Czujnik odczytuje wyświetlaną wartość z H:0 i wysokość montażu z H:10, zwracając obliczony poziom. Jeśli wysokość montażu nie jest ustawiona (H:10 = 0), generowane jest ostrzeżenie, a wartość zwraca 0. Wysokość montażu można wyświetlić jako atrybut serwisowy i skonfigurować przez akcję serwisową.

- **Odległość od powierzchni** (H:0 + H:10, Float) — odległość od czujnika do powierzchni cieczy w metrach. Gdy wysokość montażu nie jest ustawiona, zwraca surową wyświetlaną wartość. Gdy wysokość montażu jest ustawiona, zwraca obliczenie odwrotne (wysokość montażu minus wyświetlana wartość).

### Czujnik temperatury

- **Czujnik temperatury** (H:2, Float) — wbudowany czujnik temperatury w °C. Czujnik wykorzystuje tę wartość wewnętrznie do kompensacji prędkości dźwięku ultradźwięków, ale jest również udostępniana jako odczytywalna temperatura. Przydatna do monitorowania temperatury otoczenia w miejscu instalacji czujnika.

### Wyjścia przekaźnikowe

Szablon udostępnia dwa wirtualne przekaźniki ze sterowaniem histerezowym:

- **Przekaźnik 1** (H:0 vs H:28/H:30, Float) — aktywuje się lub dezaktywuje na podstawie przekroczenia konfigurowalnych progów włączenia i wyłączenia przez zmierzoną odległość
- **Przekaźnik 2** (H:0 vs H:32/H:34, Float) — ta sama logika co przekaźnik 1 z niezależnymi progami

**Logika histerezy:** Zachowanie przekaźnika zależy od relacji między progami włączenia i wyłączenia:

- Jeśli **próg włączenia < próg wyłączenia** — przekaźnik aktywuje się, gdy zmierzona wartość spadnie poniżej progu włączenia, i dezaktywuje się, gdy wzrośnie powyżej progu wyłączenia. Stosuj dla alarmów niskiego poziomu (np. aktywacja pompy przy niskim poziomie zbiornika).
- Jeśli **próg włączenia > próg wyłączenia** — przekaźnik aktywuje się, gdy zmierzona wartość wzrośnie powyżej progu włączenia, i dezaktywuje się, gdy spadnie poniżej progu wyłączenia. Stosuj dla alarmów wysokiego poziomu (np. zamknięcie zaworu, gdy zbiornik jest prawie pełny).

Każdy przekaźnik ma dwa atrybuty serwisowe pokazujące bieżące progi włączenia i wyłączenia w metrach oraz dwie akcje serwisowe do ich konfiguracji (zakres 0–10 m).

> [!TIP]
> Progi przekaźników zawsze porównują się z wyświetlaną wartością w H:0. Bez wysokości montażu H:0 to odległość od powierzchni; po ustawieniu wysokości montażu H:0 zawiera obliczony poziom cieczy. Ustaw progi odpowiednio.

### Dodatkowe możliwości

Czujnik CWT-ULS udostępnia również rejestry do monitorowania napięcia zasilania, skumulowanego czasu pracy, wyboru trybu poziomu cieczy vs. poziomu obiektu, typu medium pomiarowego (powietrze, woda, niestandardowe) do obliczania prędkości dźwięku, okresu pomiaru, konfiguracji strefy martwej i poziomów filtrowania sygnału (brak, bardzo szybki, szybki, normalny, stabilny). Zakres wyjścia analogowego 4–20 mA można skalibrować za pomocą rejestrów punktu początkowego/końcowego. Funkcje te mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Brak komunikacji Modbus

1. **Sprawdź kable RS-485** — upewnij się, że A+ (żółto-zielony) jest podłączony do A+/D+ na TapHome, a B- (niebieski) do B-/D- na TapHome. Zamienione przewody są najczęstszą przyczyną awarii komunikacji
2. **Sprawdź zasilanie** — czujnik wymaga 12–28 VDC na zaciskach 05–06
3. **Sprawdź Slave ID** — domyślne to 1. Jeśli zostało zmienione przez wyświetlacz czujnika lub wcześniejszy zapis Modbus, upewnij się, że TapHome jest skonfigurowany z odpowiednim adresem
4. **Potwierdź prędkość transmisji** — domyślna to 9600 baud, 8 bitów danych, brak parzystości, 1 bit stopu. Sprawdź, czy ustawienia magistrali TapHome są zgodne
5. **Terminacja magistrali** — przy długich trasach kablowych lub wielu urządzeniach zapewnij prawidłową terminację magistrali RS-485 (rezystor 120 Ω na każdym końcu magistrali)

### Poziom cieczy pokazuje 0 z ostrzeżeniem

Wysokość montażu nie została skonfigurowana. Otwórz urządzenie Wysokość poziomu cieczy → ustawienia serwisowe → ustaw wysokość montażu przez akcję serwisową. Wartość musi być większa niż 0.

### Niestabilne lub błędne odczyty

1. **Sprawdź przeszkody** — upewnij się, że stożek pomiarowy ultradźwięków jest wolny od przeszkód
2. **Zmniejsz turbulencje** — jeśli powierzchnia cieczy jest wzburzona, rozważ użycie rury prowadzącej (średnica > 120 mm) lub dostosowanie trybu filtrowania przez rejestr H:70 (0=brak do 4=stabilny)
3. **Sprawdź typ medium** — jeśli mierzysz przez medium inne niż powietrze, ustawienie prędkości dźwięku (rejestr H:54) może wymagać korekty
4. **Sprawdź strefę martwą** — jeśli cel jest bliżej niż 0,35–0,5 m od czoła czujnika, pomiary będą niewiarygodne

## Dostępne urządzenia 5

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

ComWinTop CWT-ULS Moduł

Atrybuty serwisowe

|                     |
|---------------------|
| Slave ID            |
| Prędkość transmisji |

Akcje serwisowe

|                     |
|---------------------|
| Slave ID            |
| Prędkość transmisji |

Atrybuty serwisowe

Slave ID

```taphome
modbusr(H, 20, float)
```

Baud rate

```taphome
modbusr(H, 22, float)
```

Akcje serwisowe

Slave ID

Parametry: ID (1–254 ID)

```taphome
modbusw(H, 20, float, ID)
```

Baud rate

Parametry: baud (1–500000 baud)

```taphome
modbusw(H, 22, float, baud)
```

Przekaźnik 1 Kontakt reed Tylko do odczytu

Wirtualny przekaźnik z histerezą — aktywuje się, gdy zmierzona odległość przekroczy próg włączenia, dezaktywuje się przy progu wyłączenia

Rejestr: H:0 Float numeric

Atrybuty serwisowe

|                     |
|---------------------|
| Przekaźnik WŁ \[m]  |
| Przekaźnik WYŁ \[m] |

Akcje serwisowe

|                |
|----------------|
| Przekaźnik WŁ  |
| Przekaźnik WYŁ |

Odczyt

```taphome
if D < H
	if X < D
		return(1);
	elseif X > H
		return(0);
	else
		return(Rc);
	end
elseif D > H
	if X > D
		return(1);
	elseif X < H
		return(0);
	else
		return(Rc);
	end
else
	return(0);
end
```

Odczyt (moduł)

```taphome
D := modbusr(H, 28, float);
H := modbusr(H, 30, float);
X := modbusr(H, 0, float);
```

Atrybuty serwisowe

Relé ON \[m]

```taphome
D
```

Relé OFF \[m]

```taphome
H
```

Akcje serwisowe

Relé ON

Parametry: Vzdialenost (0–10 m)

```taphome
modbusw(H, 28, float, m)
```

Relé OFF

Parametry: Vzdialenost (0–10 m)

```taphome
modbusw(H, 30, float, m)
```

Przekaźnik 2 Kontakt reed Tylko do odczytu

Wirtualny przekaźnik z histerezą — aktywuje się, gdy zmierzona odległość przekroczy próg włączenia, dezaktywuje się przy progu wyłączenia

Rejestr: H:0 Float numeric

Atrybuty serwisowe

|                     |
|---------------------|
| Przekaźnik WŁ \[m]  |
| Przekaźnik WYŁ \[m] |

Akcje serwisowe

|                |
|----------------|
| Przekaźnik WŁ  |
| Przekaźnik WYŁ |

Odczyt

```taphome
if D < H
	if X < D
		return(1);
	elseif X > H
		return(0);
	else
		return(Rc);
	end
elseif D > H
	if X > D
		return(1);
	elseif X < H
		return(0);
	else
		return(Rc);
	end
else
	return(0);
end
```

Odczyt (moduł)

```taphome
D := modbusr(H, 32, float);
H := modbusr(H, 34, float);
X := modbusr(H, 0, float);
```

Atrybuty serwisowe

Relé ON \[m]

```taphome
D
```

Relé OFF \[m]

```taphome
H
```

Akcje serwisowe

Relé ON

Parametry: Vzdialenost (0–10 m)

```taphome
modbusw(H, 32, float, m)
```

Relé OFF

Parametry: Vzdialenost (0–10 m)

```taphome
modbusw(H, 34, float, m)
```

Czujnik temperatury Czujnik temperatury Tylko do odczytu

Rejestr: H:2 Float Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 2, float)
```

Wysokość poziomu cieczy Zmienna Tylko do odczytu

Obliczony poziom cieczy — wymaga skonfigurowania wysokości montażu przez akcję serwisową

Rejestr: H:0 Float Jednostka: m numeric

Atrybuty serwisowe

|                       |
|-----------------------|
| Wysokość montażu \[m] |

Akcje serwisowe

|                  |
|------------------|
| Wysokość montażu |

Odczyt

```taphome
var mnt := MODBUSR(H, 10, float);
var val := MODBUSR(H, 0, float);
if mnt = 0
	addwarning("Montážna výška nie je nastavená");
	return(0);
else
	return(val);
end
```

Atrybuty serwisowe

Montážna výška \[m]

```taphome
MODBUSR(H, 10, float)
```

Akcje serwisowe

Montážna výška

Parametry: Výška (0–11 m)

```taphome
modbusw(H, 10, float, m)
```

Odległość od powierzchni Zmienna Tylko do odczytu

Odległość od czujnika do powierzchni cieczy — surowy pomiar gdy wysokość montażu nie jest ustawiona, obliczenie odwrotne w przeciwnym przypadku

Rejestr: H:0 Float Jednostka: m numeric

Odczyt

```taphome
var mnt := MODBUSR(H, 10, float);
var val := MODBUSR(H, 0, float);
if mnt = 0
	return(val);
else
	return(mnt - val);
end
```

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

Możliwe ulepszenia (13)

- H:4 Supply Voltage — Read-only supply voltage — useful for remote power monitoring and diagnostics
- H:6 Operating Time — Read-only cumulative operating time — useful for maintenance scheduling
- H:8 Liquid Level / Object Level Mode — 1=Liquid level, 0=Object level — determines measurement interpretation
- H:14 Open/Closed State — 1=Open, 0=Closed — relay output mode configuration
- H:16 Output Starting Point — 4–20mA analog output starting point calibration
- H:18 Output End Point — 4–20mA analog output end point calibration
- H:44 Units — Display unit selection — 0 for mm
- H:54 Media Type — 0=Air, 1=Water, Custom — affects sound velocity calculation
- H:56 Custom Sound Velocity — Custom sound velocity value — used when Media Type is set to Custom
- H:60 Measurement Period — Measurement cycle period in milliseconds
- H:62 Blind Area — Minimum measurable distance from sensor face (0.35–0.5m typical)
- H:70 Filtering — Signal filtering level: 0=None, 1=Rapid, 2=Fast, 3=Normal, 4=Stable
- H:76 Range — Maximum measurement range in meters

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Slave Id            | `1`           |
| IP address          | `192.168.1.0` |

## Źródła

- CWT-ULS Ultrasonic Level Meter Protocol
  
  2026-03-27
  
  [PDF](https://taphome.com/compatibility/devices/comwintop-ultrasonic-level-sensor/manufacturer/protocol-manual.pdf)
- ComWinTop Store — CWT-ULS Product Page
  
  [store.comwintop.com](https://store.comwintop.com/products/non-contact-ultrasonic-transmitter-ultrasonic-level-sensor-liquid-fuel-integrated-smart-level-measurement-indicator-4-20ma-rs485) 2026-03-27
- TapHome Hardware — Ultrasonic Level Sensor
  
  [hardware.taphome.com](https://hardware.taphome.com/en/ultrasonic-liquid-level-sensor/) 2026-03-27

Dokumenty producentów są © ich właścicieli. Udostępniamy je w formie opublikowanej przez producenta, wyłącznie w celach informacyjnych.

## 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/)

