TapHome

Czujnik poziomu cieczy

Modbus RTU
Dodane przez
Ostatnia aktualizacja: 04. 2026

Wymaga zewnętrznej bramki

TapHome Modbus Gateway — strona produktu

Czujnik poziomu cieczy

Generyczny zanurzeniowy hydrostatyczny czujnik poziomu cieczy z Modbus RTU do monitorowania poziomu wody w zbiornikach, studniach lub zbiornikach retencyjnych. Czujnik komunikuje się przez RS-485 half-duplex i udostępnia zmierzony poziom przez holding rejestr H:4. Szablon TapHome odczytuje wartość pomiarową z automatyczną konwersją przecinka dziesiętnego, obsługując metry (m) i centymetry (cm) jako jednostki wyświetlania.

Ten szablon jest przeznaczony dla generycznych chińskich przetworników ciśnienia/poziomu, które używają tej samej mapy rejestrów Modbus. Czujnik jest zwykle zasilany napięciem 12–36 V DC i wykorzystuje 2-przewodowe połączenie RS-485 z TapHome Modbus Gateway.

Podłączenie sprzętowe

Czujnik wykorzystuje interfejs RS-485 half-duplex do komunikacji Modbus RTU. Podłącz czujnik do TapHome Modbus Gateway:

  • A+ (RS-485 Data+) na czujniku do A+ na TapHome Modbus Gateway
  • B- (RS-485 Data-) na czujniku do B- na TapHome Modbus Gateway
  • GND do wspólnej masy referencyjnej

Czujnik wymaga również oddzielnego zasilania DC (zwykle 12–36 V DC, w zależności od modelu). Przewody zasilające są oddzielone od przewodów danych RS-485.

Zapewnij wspólną masę referencyjną między czujnikiem a TapHome Modbus Gateway. Bez prawidłowego uziemienia komunikacja Modbus może być zawodna lub całkowicie nie działać.

Konfiguracja

Domyślne parametry komunikacji

Czujnik dostarczany jest z następującymi domyślnymi ustawieniami portu szeregowego:

ParametrWartość domyślna
Prędkość transmisji9600 bps
Bity danych8
ParzystośćBrak
Bity stopu1
Adres slave1

Prędkość transmisji można zmienić przez rejestr H:1 (obsługiwane wartości: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200). Po zmianie prędkości transmisji wpisz 0 do rejestru H:15, aby zapisać ustawienie w obszarze użytkownika.

Wybór jednostki

Jednostka pomiarowa konfigurowana jest przez rejestr H:2. Szablon TapHome obsługuje tylko dwie jednostki:

Wartość H:2JednostkaZachowanie
16m (metry)Zwraca wartość surową bezpośrednio (z konwersją przecinka dziesiętnego)
17cm (centymetry)Zwraca wartość podzieloną przez 100
PozostałeMPa, KPa, bar, itp.Zwraca NaN — nie obsługiwane przez szablon

Jeśli czujnik jest ustawiony na jednostkę inną niż m (16) lub cm (17), szablon TapHome wyświetli NaN. Sprawdź ustawienie jednostki przed zaimportowaniem szablonu.

Precyzja miejsc dziesiętnych

Rejestr H:3 określa, ile miejsc dziesiętnych wykorzystuje surowa wartość pomiarowa:

Wartość H:3FormatDzielnik
0####1
1###.#10
2##.##100
3#.###1000
4.####10000

Szablon TapHome automatycznie dzieli surową wartość H:4 przez 10^(H:3), aby uzyskać prawidłowy odczyt. Na przykład, jeśli H:3 = 1 (jedno miejsce dziesiętne) i H:4 = 2500, wyświetlana wartość to 250,0.

Parametry importu

Podczas importu szablonu w TapHome wymagane są dwa parametry:

ParametrOpisPrzykład
Slave IdAdres Modbus slave czujnika (1–255)1
IP addressAdres IP TapHome Modbus Gateway192.168.1.100

Możliwości urządzenia

Pomiar poziomu wody

Szablon udostępnia jedno urządzenie typu czujnik (tylko do odczytu) — Water Level — które odczytuje holding rejestr H:4 (Int16). Skrypt ReadState stosuje dynamiczną konwersję:

  1. Odczytuje surową wartość całkowitą z H:4
  2. Dzieli przez 10^(H:3), aby zastosować ustawienie miejsc dziesiętnych
  3. Sprawdza H:2 (jednostka): jeśli jednostka = 16 (m), zwraca wartość bezpośrednio; jeśli jednostka = 17 (cm), dzieli przez 100; w przeciwnym razie zwraca NaN

Czujnik jest odpytywany co 15 sekund.

Diagnostyka serwisowa

Moduł udostępnia cztery atrybuty serwisowe do monitorowania konfiguracji czujnika:

  • Slave Address — aktualny adres Modbus slave (H:0)
  • Baud Rate — aktualna prędkość komunikacji, wyświetlana jako rzeczywista wartość prędkości transmisji (np. 9600, nie enum rejestru)
  • Unit — aktualnie ustawiona jednostka pomiarowa (np. „m", „cm", „MPa")
  • Decimal Points — aktualny format miejsc dziesiętnych (np. „###.#")

Akcja serwisowa Rewrite Slave Address umożliwia zmianę adresu Modbus czujnika (1–255) bezpośrednio z TapHome bez zewnętrznych narzędzi. Akcja zapisuje nowy adres i automatycznie go zachowuje w obszarze użytkownika czujnika.

Dodatkowe możliwości

Czujnik udostępnia również rejestry dla punktu zerowego zakresu (H:5) i pełnej skali (H:6) jako referencje kalibracyjne, rejestr przesunięcia bitu zerowego (H:12) do precyzyjnej regulacji wyjścia pomiarowego, 4-bajtowe wyjście pomiarowe IEEE 754 zmiennoprzecinkowe (H:22-23) oraz konfigurację parzystości portu szeregowego (H:37). Polecenie przywracania ustawień fabrycznych (H:16) może przywrócić wszystkie parametry do wartości fabrycznych. Mogą zostać dodane w przyszłej aktualizacji szablonu.

Jeśli potrzebna jest wyższa precyzja, pomiar zmiennoprzecinkowy na rejestrach H:22-23 dostarcza ten sam odczyt w formacie IEEE 754 (big-endian, kolejność bajtów ABCD) bez zaokrąglania całkowitego H:4.

Rozwiązywanie problemów

Czujnik zwraca NaN
  1. Sprawdź rejestr H:2 (Unit) — szablon obsługuje tylko jednostkę 16 (m) i 17 (cm). Wszystkie inne jednostki zwrócą NaN
  2. Użyj atrybutu serwisowego Unit w TapHome, aby zweryfikować aktualne ustawienie
  3. Jeśli jednostka jest nieprawidłowa, użyj narzędzia Modbus do wpisania prawidłowej wartości do H:2, następnie wpisz 0 do H:15, aby zapisać
Brak komunikacji
  1. Sprawdź okablowanie RS-485: A+ do A+, B- do B- i wspólna masa
  2. Upewnij się, że prędkość transmisji jest zgodna między czujnikiem a TapHome (domyślna: 9600, N, 8, 1)
  3. Potwierdź, że prawidłowy Slave ID został podany podczas importu szablonu
  4. Sprawdź, czy adres IP wskazuje na właściwy TapHome Modbus Gateway
  5. Jeśli przewody są zamienione (A+/B-), zamień je — niektóre czujniki inaczej oznaczają piny
Nieprawidłowe odczyty
  1. Sprawdź, czy ustawienie miejsc dziesiętnych (H:3) odpowiada konfiguracji fabrycznej czujnika
  2. Sprawdź ustawienie jednostki (H:2) — tryb cm (17) dzieli przez dodatkowy współczynnik 100
  3. W przypadku czujników zanurzeniowych upewnij się, że sonda jest całkowicie zanurzona, a kabel nie jest zagięty

Dostępne urządzenia

Czujnik poziomu cieczy Moduł
Atrybuty serwisowe
Adres slave
Prędkość transmisji
Jednostka
Miejsca dziesiętne
Akcje serwisowe
Przepisz adres slave

Liquid level sensor - retenčná nádrž

Atrybuty serwisowe
Slave Address
modbusr(H, 0, int16);
Baud Rate
SWITCH(modbusr(H, 1, int16),
	0, 1200,
	1, 2400,
	2, 4800,
	3, 9600,
	4, 19200,
	5, 38400,
	6, 57600,
	7, 115200,
      NaN
);
Unit
switch(modbusr(H, 2, int16),
	0, "MPa",
	1, "KPa",
	2, "Pa",
	3, "bar",
	4, "mbar",
	5, "Kgcm2",
	6, "PSI",
	7, "mH2O",
	8, "mmH2O",
	9, "inH2O",
	10, "H2O",
	11, "mHg",
	12, "mmHg",
	13, "inHg",
	14, "atm",
	15, "Torr",
	16, "m",
	17, "cm",
	18, "mm",
	19, "Kg",
	20, "°C",
	21, "PH",
	22, "°F",
	NaN
);
Decimal points
SWITCH(modbusr(H, 3, int16),
	0, "####",
	1, "###.#",
	2, "##.##",
	3, "#.###",	
	4, "#.###",
	NaN
);
Akcje serwisowe
Rewrite the Slave Address
Parametry: Slave Address (1–255 SlaveAddr)
modbusw(SH, 0, int16, SlaveAddr);
modbusw(SH, 15, int16, 0);  # Save to user area
Poziom wody Zmienna Tylko do odczytu

Pomiar poziomu cieczy w metrach lub centymetrach — odczytuje wyjście hydrostatycznego czujnika ciśnienia z konfigurowalną precyzją dziesiętną

Rejestr: H:4 Int16 Jednostka: dynamic numeric

Poziom wody

Odczyt
VAR val := MODBUSR(H, 4, Int16)/power(10, modbusr(H, 3, int16));

switch(modbusr(H, 2, int16),
	16, val,
	17, val / 100, 
	NaN
);
Połączenie: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Możliwe ulepszenia (6)
  • H:5 Range Zero Point — Int16, transmitter range zero point — factory calibration reference
  • H:6 Range Full Point — Int16, transmitter range full scale point — factory calibration reference
  • H:12 Zero Bit Offset — Int16 (R/W via 0x06), zero-bit offset value — pressure output = calibration + offset. Factory default 0
  • H:22 Floating Point Measurement — 4-byte float (IEEE 754, big-endian ABCD), 2 registers starting at 0x0016 — same measurement as H:4 but in float format
  • H:37 Serial Check Bit — Int16 (R/W via 0x06); enum: 0=None, 1=Odd, 2=Even — serial parity configuration
  • H:16 Restore Factory Parameters — Write 1 to 0x0010 to restore factory defaults — resets address, baud rate, and calibration. Requires re-searching for transmitter

Źródła

  • Modbus RTU communication protocol documentation for pressure and level transmitter