---
title: "Sensore di livello liquido"
description: "Monitoraggio livello acqua via Modbus RTU su RS-485. Unità configurabili (m, cm) e precisione decimale. Template TapHome per sensori di livello."
url: "https://taphome.com/it/compatibility/liquid-level-sensor/"
language: it
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","sensor","rs485","liquid-level","hydrostatic","water-tank"]
  questions: ["Come integrare un sensore di livello Modbus RTU con TapHome?","Quali unità supporta il template TapHome per il sensore di livello?","Come collegare un sensore di livello sommergibile via RS-485 a TapHome?","Perché il sensore di livello mostra NaN in TapHome?","Come cambiare l'indirizzo slave di un sensore di livello Modbus?","Come configurare i decimali su un sensore di livello Modbus?"]
---

# Sensore di livello liquido

Comunicazione: Modbus RTU

## Guida all'integrazione

Un sensore di livello idrostatico sommergibile generico con Modbus RTU per il monitoraggio del livello dell'acqua in serbatoi, pozzi o vasche di ritenzione. Il sensore comunica tramite RS-485 half-duplex e fornisce il livello misurato attraverso l'holding register H:4. Il template TapHome legge il valore misurato con conversione automatica del punto decimale, supportando metri (m) e centimetri (cm) come unità di visualizzazione.

Questo template è progettato per trasmettitori di pressione/livello generici di fabbricazione cinese che utilizzano la stessa mappa dei registri Modbus. Il sensore è tipicamente alimentato a 12–36 V DC e utilizza una connessione RS-485 a 2 fili verso un convertitore Modbus-LAN (RS-485 su Ethernet).

## Collegamento hardware

Il sensore utilizza un'interfaccia RS-485 half-duplex per la comunicazione Modbus RTU. Collega il sensore al convertitore Modbus-LAN:

- **A+** (RS-485 Data+) sul sensore ad **A+** sul convertitore Modbus-LAN
- **B-** (RS-485 Data-) sul sensore a **B-** sul convertitore Modbus-LAN
- **GND** a un riferimento di massa comune

Il sensore richiede anche un'alimentazione DC separata (tipicamente 12–36 V DC, a seconda del modello). I cavi di alimentazione sono separati dai cavi dati RS-485.

> [!WARNING]
> Assicura un riferimento di massa comune tra il sensore e il convertitore Modbus-LAN. Senza una corretta messa a terra, la comunicazione Modbus potrebbe essere inaffidabile o non funzionare affatto.

## Configurazione

### Parametri di comunicazione predefiniti

Il sensore viene fornito con le seguenti impostazioni seriali predefinite:

| Parametro | Predefinito |
|-----------|-------------|
| Baud rate | 9600 bps |
| Bit dati | 8 |
| Parità | Nessuna |
| Bit di stop | 1 |
| Indirizzo slave | 1 |

Il baud rate può essere modificato tramite il registro H:1 (valori supportati: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200). Dopo aver modificato il baud rate, scrivi 0 nel registro H:15 per salvare l'impostazione nell'area utente.

### Selezione dell'unità

L'unità di misura si configura tramite il registro H:2. Il template TapHome supporta solo due unità:

| Valore H:2 | Unità | Comportamento |
|-------------|-------|---------------|
| 16 | **m** (metri) | Restituisce il valore grezzo direttamente (con conversione del punto decimale) |
| 17 | **cm** (centimetri) | Restituisce il valore diviso per 100 |
| Altri | MPa, KPa, bar, ecc. | **Restituisce NaN** — non supportato dal template |

> [!WARNING]
> Se il sensore è configurato su un'unità diversa da m (16) o cm (17), il template TapHome mostrerà NaN. Verifica l'impostazione dell'unità prima di importare il template.

### Precisione decimale

Il registro H:3 controlla quanti decimali utilizza il valore di misura grezzo:

| Valore H:3 | Formato | Fattore di divisione |
|-------------|---------|----------------------|
| 0 | #### | 1 |
| 1 | ###.# | 10 |
| 2 | ##.## | 100 |
| 3 | #.### | 1000 |
| 4 | .#### | 10000 |

Il template TapHome divide automaticamente il valore grezzo H:4 per 10^(H:3) per ottenere la lettura corretta. Ad esempio, se H:3 = 1 (un decimale) e H:4 = 2500, il valore visualizzato è 250,0.

### Parametri di importazione

Durante l'importazione del template in TapHome, sono necessari due parametri:

| Parametro | Descrizione | Esempio |
|-----------|-------------|---------|
| **Slave Id** | Indirizzo Modbus slave del sensore (intervallo Modbus valido 1–247) | `1` |
| **IP address** | Indirizzo IP del convertitore Modbus-LAN | `192.168.1.100` |

## Capacità del dispositivo

### Misurazione del livello dell'acqua

Il template fornisce un singolo dispositivo sensore di sola lettura — **Water Level** — che legge l'holding register H:4 (Int16). Lo script ReadState applica una conversione dinamica:

1. Legge il valore intero grezzo da H:4
2. Divide per 10^(H:3) per applicare l'impostazione dei decimali
3. Valuta H:2 (unità): se unità = 16 (m), restituisce il valore direttamente; se unità = 17 (cm), divide per 100; altrimenti restituisce NaN

Il sensore viene interrogato ogni 15 secondi.

### Diagnostica di servizio

Il modulo espone quattro attributi di servizio per il monitoraggio della configurazione del sensore:

- **Slave Address** — indirizzo Modbus slave corrente (H:0)
- **Baud Rate** — velocità di comunicazione corrente, visualizzata come valore effettivo del baud rate (es. 9600, non l'enum del registro)
- **Unit** — unità di misura attualmente configurata (es. "m", "cm", "MPa")
- **Decimal Points** — formato decimale corrente (es. "###.#")

Un'azione di servizio **Rewrite Slave Address** consente di modificare l'indirizzo Modbus del sensore (intervallo Modbus valido 1–247) direttamente da TapHome senza strumenti esterni. L'azione scrive il nuovo indirizzo e lo salva automaticamente nell'area utente del sensore.

### Capacità aggiuntive

Il sensore espone anche registri per il punto zero del range (H:5) e il fondo scala (H:6) come riferimenti di calibrazione, un registro di offset del bit zero (H:12) per la regolazione fine dell'uscita di misura, un'uscita di misura in virgola mobile IEEE 754 a 4 byte (H:22-23) e la configurazione della parità seriale (H:37). Un comando di ripristino delle impostazioni di fabbrica (H:16) può ripristinare tutti i parametri ai valori di fabbrica. Questi possono essere aggiunti in un futuro aggiornamento del template.

> [!TIP]
> Se è necessaria una maggiore precisione, la misura in virgola mobile ai registri H:22-23 fornisce la stessa lettura in formato IEEE 754 (ordine byte big-endian ABCD) senza l'arrotondamento intero di H:4.

## Risoluzione dei problemi

### Il sensore restituisce NaN

1. Controlla il registro H:2 (Unit) — il template supporta solo l'unità 16 (m) e 17 (cm). Tutte le altre unità restituiranno NaN
2. Usa l'attributo di servizio **Unit** in TapHome per verificare l'impostazione corrente
3. Se l'unità è errata, usa uno strumento Modbus per scrivere il valore corretto in H:2, poi scrivi 0 in H:15 per salvare

### Nessuna comunicazione

1. Verifica il cablaggio RS-485: A+ ad A+, B- a B- e massa comune
2. Controlla che il baud rate corrisponda tra sensore e TapHome (predefinito: 9600, N, 8, 1)
3. Conferma che è stato inserito il corretto Slave ID durante l'importazione del template
4. Verifica che l'indirizzo IP punti al corretto convertitore Modbus-LAN
5. Se i fili sono invertiti (A+/B-), invertili — alcuni sensori etichettano i pin diversamente

### Letture errate

1. Verifica che l'impostazione dei decimali (H:3) corrisponda alla configurazione di fabbrica del sensore
2. Controlla l'impostazione dell'unità (H:2) — la modalità cm (17) divide per un fattore aggiuntivo di 100
3. Per sensori sommergibili, assicurati che la sonda sia completamente immersa e il cavo non sia piegato

## Dispositivi disponibili 1

Questi dispositivi compaiono in TapHome dopo l'importazione.

Sensore di livello liquido Modulo

Attributi di servizio

|                 |
|-----------------|
| Indirizzo slave |
| Baud rate       |
| Unità           |
| Punti decimali  |

Azioni di servizio

|                          |
|--------------------------|
| Riscrivi indirizzo slave |

Attributi di servizio

Slave Address

```taphome
modbusr(H, 0, int16);
```

Baud Rate

```taphome
SWITCH(modbusr(H, 1, int16),
	0, 1200,
	1, 2400,
	2, 4800,
	3, 9600,
	4, 19200,
	5, 38400,
	6, 57600,
	7, 115200,
      NaN
);
```

Unit

```taphome
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

```taphome
SWITCH(modbusr(H, 3, int16),
	0, "####",
	1, "###.#",
	2, "##.##",
	3, "#.###",	
	4, "#.###",
	NaN
);
```

Azioni di servizio

Rewrite the Slave Address

Parametri: Slave Address (1–255 SlaveAddr)

```taphome
modbusw(SH, 0, int16, SlaveAddr);
modbusw(SH, 15, int16, 0);  # Save to user area
```

Livello acqua Variabile Solo lettura

Misurazione del livello del liquido in metri o centimetri — legge l'uscita del sensore di pressione idrostatico con precisione decimale configurabile

Registro: H:4 Int16 Unità: dynamic numeric

Lettura

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

switch(modbusr(H, 2, int16),
	16, val,
	17, val / 100, 
	NaN
);
```

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

Possibili miglioramenti (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

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app | Predefinito   |
|--------------------|---------------|
| Slave Id           | `1`           |
| IP address         | `192.168.1.0` |

## Fonti

- Modbus RTU communication protocol documentation for pressure and level transmitter

## Documentazione correlata

- [Modbus Integration](https://taphome.com/it/compatibility/modbus-guide/)
- [Modbus - Configurazione](https://taphome.com/it/docs/integration/modbus/)
- [Configurazione semplice utilizzando modelli](https://taphome.com/it/docs/integration/modbus/templates/)
- [Script Modbus e prefetch](https://taphome.com/it/docs/script/modbus-scripts/)
- [Funzioni Modbus](https://taphome.com/it/docs/script/modbus/)
- [Tipi di dati Modbus](https://taphome.com/it/docs/script/modbus-data-types/)

