TapHome

Sensore di livello liquido

Modbus RTU
Inviato da
Ultimo aggiornamento: 04. 2026

Richiede gateway esterno

TapHome Modbus Gateway — pagina prodotto

Sensore di livello liquido

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 il TapHome Modbus Gateway.

Collegamento hardware

Il sensore utilizza un’interfaccia RS-485 half-duplex per la comunicazione Modbus RTU. Collega il sensore al TapHome Modbus Gateway:

  • A+ (RS-485 Data+) sul sensore ad A+ sul TapHome Modbus Gateway
  • B- (RS-485 Data-) sul sensore a B- sul TapHome Modbus Gateway
  • 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.

Assicura un riferimento di massa comune tra il sensore e il TapHome Modbus Gateway. 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:

ParametroPredefinito
Baud rate9600 bps
Bit dati8
ParitàNessuna
Bit di stop1
Indirizzo slave1

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:2UnitàComportamento
16m (metri)Restituisce il valore grezzo direttamente (con conversione del punto decimale)
17cm (centimetri)Restituisce il valore diviso per 100
AltriMPa, KPa, bar, ecc.Restituisce NaN — non supportato dal template

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:3FormatoFattore 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:

ParametroDescrizioneEsempio
Slave IdIndirizzo Modbus slave del sensore (1–255)1
IP addressIndirizzo IP del TapHome Modbus Gateway192.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 (1–255) 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.

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 TapHome Modbus Gateway
  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

Sensore di livello liquido Modulo
Attributi di servizio
Indirizzo slave
Baud rate
Unità
Punti decimali
Azioni di servizio
Riscrivi indirizzo slave

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

Attributi di servizio
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
);
Azioni di servizio
Rewrite the Slave Address
Parametri: Slave Address (1–255 SlaveAddr)
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

Livello acqua

Lettura
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

Fonti

  • Modbus RTU communication protocol documentation for pressure and level transmitter