M-Bus cablato è un'interfaccia comune sui contatori europei di calore, acqua e gas. EN 13757-2 riguarda gli strati fisico e di collegamento, mentre EN 13757-3 riguarda lo strato applicativo che trasporta le letture. Il guasto più costoso nella messa in servizio raramente è un bus inattivo: è un valore plausibile proveniente dal record sbagliato, per esempio l'energia archiviata alla scadenza dell'anno scorso mappata come lettura attuale.
Scarica la scheda di accettazione (.txt). Stampala o compilala sul sito.
Come funziona un segmento M-Bus cablato
Il master invia dati commutando la tensione del bus. Un mark (1 logico) è compreso fra 24 e 42 V al master; un valore comune è 36 V. Uno space (0 logico) è circa 12 V più basso, quindi un master a 36 V scende a 24 V. Un contatore risponde variando la propria corrente. A riposo assorbe al massimo 1,5 mA per ogni carico unitario. Per inviare uno space, assorbe da 11 a 20 mA in più. Il master interpreta un gradino di corrente oltre 50 mA come una collisione, quale quella prodotta da due contatori che rispondono insieme (OMS TR09, sezioni 2.6 e 2.7).
Il bus resta alimentato in entrambi gli stati, quindi un contatore può ricavare dal bus l'energia per la comunicazione. I contatori sono collegati in parallelo e i due fili non hanno polarità. Sono ammesse topologie a stella e ad albero. Gli anelli chiusi e le resistenze di terminazione non lo sono.
L'interfaccia M-Bus ZHM di EpiSensor è un master per un solo contatore. Ha un cavo volante di 2 m, supporta fino a 1.000 m di cavo verso il contatore e interroga da 300 a 9600 baud. Trasmette le letture attraverso la rete mesh Zigbee al Gateway. Un segmento con un solo contatore non presenta né un bilancio dei carichi né conflitti di indirizzo da risolvere. La mappa dei record, il confronto con il display e le prove di guasto qui sotto valgono comunque per intero. Per un segmento condiviso con molti contatori e un solo master, esegui ogni passaggio.
Inventariare il segmento
Registra per ogni contatore:
- produttore, modello e firmware, se il contatore li mostra;
- numero identificativo letto sul bus;
- carichi unitari, dal datasheet o dall'etichetta (OMS richiede il numero su entrambi);
- indirizzo primario e velocità in baud;
- valori di cui hai bisogno.
L'indirizzo secondario occupa 8 byte: numero identificativo BCD a 8 cifre, codice del produttore a 2 byte, byte della versione e byte del fluido. Il numero identificativo coincide spesso con il seriale stampato, ma non sempre. TR09 segnala anche contatori che inseriscono nell'intestazione del telegramma un ID diverso da quello a cui rispondono. Registra l'ID effettivamente letto dal master.
Metti i contatori previsti in una colonna separata. Il bilancio dei carichi deve includerli; il controllo degli indirizzi e il conteggio dei dispositivi rilevati no.
Verificare gli indirizzi
Gli indirizzi primari da 1 a 250 sono destinati ai contatori. Molti escono dalla fabbrica con indirizzo 0: su un bus nuovo più contatori possono quindi rispondere allo 0. Gli indirizzi 251 e 252 sono riservati. L'indirizzo 253 indica al contatore che è stato selezionato tramite indirizzo secondario. All'indirizzo 254 rispondono tutti, causando una collisione su ogni bus con più di un contatore: usalo soltanto con uno solo. All'indirizzo 255 non risponde nessuno. Due contatori con lo stesso indirizzo primario rispondono insieme e il master rileva una collisione o un errore di checksum invece delle singole risposte.
Il pianificatore degli indirizzi trova duplicati e valori speciali nell'elenco. Qui trova l'indirizzo 5 assegnato due volte:
L'indirizzamento secondario evita i duplicati degli indirizzi primari. Il master seleziona un contatore tramite il suo indirizzo secondario completo e poi lo legge all'indirizzo 253. Una ricerca con caratteri jolly individua contatori sconosciuti restringendo l'ID una cifra alla volta. TR09 indica meno di 10 minuti per un bus piccolo e fino a varie ore per uno grande. OMS richiede che i contatori supportino l'indirizzamento secondario, ma i modelli più vecchi potrebbero non farlo. Verificalo per ciascun modello prima di farvi affidamento.
Calcolare i margini elettrici
Un carico unitario (UL) equivale a 1,5 mA. EN 13757-2 ammette fino a 4 UL per contatore; i contatori da 2 UL sono comuni. Somma i carichi unitari di tutti i contatori installati e previsti. Confronta il totale con la capacità nominale del master.
Il cavo presenta due limiti distinti. Il limite resistivo dipende dalla resistenza dell'anello fra master e contatore più lontano. La corrente a riposo di tutto il bus attraverso tale resistenza produce una caduta di tensione prima dell'ultimo contatore; TR09 richiede almeno 24 V CC a ogni contatore. Il limite capacitivo dipende dalla lunghezza totale di tutti i cavi del segmento, diramazioni comprese. I limiti OMS per la capacità totale sono 1.000 nF a 300 baud, 400 nF a 2400 baud e 100 nF a 9600 baud; ogni contatore può aggiungere fino a 0,5 nF. Una stella mantiene breve il percorso resistivo ma aumenta la lunghezza capacitiva. Una linea singola fa l'opposto.
TR09 raccomanda cavo J-Y(St)Y 2×2×0,8 mm: conduttori da 0,5 mm², 37 Ω/km per conduttore e 100 nF/km. L'anello ha due conduttori, quindi 800 m fino al contatore più lontano danno 0,8 × 2 × 37 = 59 Ω. Il cavo LiYCY 2×1,5 mm² presenta 13 Ω/km e 120 nF/km.
Considera un master in centrale tecnica, nominalmente da 60 UL, con mark a 36 V. Alimenta 40 contatori da 1 UL, con riserva di 10 UL per quelli previsti. Il contatore più lontano è a 800 m e le diramazioni portano il cavo totale a 1,2 km. La corrente a riposo è 50 × 1,5 = 75 mA. All'ultimo contatore arrivano 36 − 0,075 × 59 = 31,6 V, cioè 7,6 V oltre l'obiettivo di 24 V. La capacità è 1,2 × 100 + 40 × 0,5 = 140 nF. Non va bene a 9600 baud; va bene a 2400 baud con 260 nF di margine:
La tabella 2 di TR09 concorda: con 50 contatori su cavo da 0,5 mm², a 9600 baud si arriva a 1.000 m e a 2400 baud a 2.000 m. La maggior parte dei segmenti usa 2400 baud. EN 13757-2 rende obbligatori i 300 baud per i contatori; OMS richiede sia 300 sia 2400 baud.
Verificare rilevamento e identità
Imposta il master alla velocità in baud del sito. Collega un contatore noto, poi aggiungine gruppi da cinque a dieci. Dopo ogni gruppo, esegui una scansione e confronta il conteggio con l'inventario.
Una lettura inizia con SND_NKE, che azzera lo strato di collegamento del contatore. REQ_UD2 richiede poi i dati e il contatore risponde con una trama lunga RSP_UD. Se il contatore non risponde entro 330 tempi di bit più 50 ms, il master ripete la richiesta fino ad altre due volte. A 2400 baud un tentativo attende circa 190 ms, quindi un contatore guasto aggiunge circa 0,6 s a ogni ciclo d'interrogazione.
In questa fase i guasti presentano segnali tipici:
- Il numero rilevato smette di crescere quando aggiungi un gruppo. Cerca un indirizzo primario duplicato o un contatore rimasto all'indirizzo 0.
- Un indirizzo restituisce errori di checksum o di trama. Due contatori lo condividono.
- Un contatore risponde a 300 baud ma non a 2400. Non rileva automaticamente la velocità; impostala al valore del bus dal master o dal menu del contatore.
- Un contatore risponde e poi tace. Molti contatori di calore a batteria limitano le letture M-Bus per risparmiare la batteria e smettono di rispondere per un periodo (TR09, sezione 2.12).
- Manca un intero gruppo. Cerca il guasto nel cablaggio con le verifiche di tensione, corrente e resistenza della sezione 4 di TR09.
Non interrogare più spesso di quanto richiedano i valori. TR09 indica letture giornaliere per la fatturazione di calore e acqua e letture ogni minuto per contatori di calore usati nel controllo. Una lettura richiede circa 2 s per contatore a 2400 baud e 8 s a 300 baud: 40 contatori a 2400 baud richiedono almeno 80 s per ciclo.
Quando sostituisci un contatore, registra il cambiamento. Il nuovo ha un nuovo ID e può avere una diversa struttura dei record, quindi richiede una propria mappa.
Mappare i record del telegramma
Ogni valore in un telegramma RSP_UD è un record. Inizia con un campo informazioni dati (DIF), eventuali estensioni (DIFE) e un campo informazioni valore (VIF), seguito dai dati. Il DIF indica tipo e lunghezza dei dati, funzione (istantaneo, massimo, minimo o valore durante errore) e bit meno significativo del numero di memoria. Il DIFE contiene il resto del numero di memoria, la tariffa e la sotto-unità. Il VIF indica grandezza, unità e moltiplicatore decimale.
Due record di un contatore di calore mostrano perché è importante:
| Byte | DIF | VIF | Valore |
|---|---|---|---|
| 04 06 C5 BC 00 00 | Intero a 32 bit, memoria 0 | Energia, kWh | 48.325 kWh, lettura attuale |
| 44 06 1A 9E 00 00 | Intero a 32 bit, memoria 1 | Energia, kWh | 40.474 kWh, archiviata all'ultima scadenza |
I due record hanno lo stesso VIF e differiscono di un bit nel DIF. Un punto mappato come «energia in kWh» senza numero di memoria può usare l'uno o l'altro; entrambi sembrano plausibili. Il moltiplicatore è una seconda insidia. VIF 06 rappresenta kWh, VIF 07 rappresenta 10 kWh e VIF 0E rappresenta MJ: una mappa che ignora il VIF sbaglia di un fattore 10 o 3,6. In un contatore combinato di calore e freddo, l'energia frigorifera è di solito un secondo record di energia con lo stesso VIF, distinto da tariffa o sotto-unità nel DIFE. La descrizione dei telegrammi M-Bus del produttore indica quale.
Per ogni valore registra unità e moltiplicatore, numero di memoria, tariffa, sotto-unità e funzione. La scheda di accettazione ha una colonna per ciascuno.
Confrontare con il display del contatore
Per un contatore di calore, il riferimento è il calcolatore interno. Usa una coppia abbinata di sensori di temperatura, il sensore di portata e le proprietà configurate del fluido. Leggi sul display energia, volume e temperature e acquisisci i valori raccolti dalla stessa interrogazione.
Confronta alla risoluzione del display. Un contatore che indica 48,325 MWh e trasmette 48.325 kWh concorda. Se mostra soltanto MWh interi, una differenza fino a 1 MWh dal telegramma può essere corretta. Qualsiasi altra differenza indica un errore di mappatura o moltiplicatore. Verifica anche cosa succede quando un registro raggiunge il limite: un registro BCD a 8 cifre passa da 99.999.999 a 0 e il percorso dati deve registrare un ritorno a zero al limite, non un azzeramento.
Un calcolo da portata e differenza di temperatura rivela errori di unità, segno e ordine di grandezza nel record di potenza. La potenza termica è portata massica × calore specifico × differenza di temperatura. Con 10 m³/h e mandata a 70 °C e ritorno a 50 °C, la portata massica è 10 × 977,8 ÷ 3600 = 2,716 kg/s. La potenza è 2,716 × 4,19 × 20 = 227,6 kW:
Con portata costante, il record di potenza del contatore dovrebbe concordare entro pochi punti percentuali, poiché il contatore usa densità e capacità termica proprie alle temperature misurate. Un fattore 10 o 1.000 suggerisce il moltiplicatore VIF. Un fattore 3,6 suggerisce la confusione fra kWh e MJ. Potenza negativa o temperatura di ritorno superiore a quella di mandata indicano di solito sensori di temperatura invertiti o energia frigorifera mappata come calore. È una verifica del percorso dati. Per la fatturazione resta valido il registro energetico approvato del contatore.
Prove di guasto e freschezza
Concorda le prove con il sito prima di iniziare, perché interrompono le letture. Poi esegui:
- Scollega un contatore dal bus. Solo quello diventa obsoleto; il master continua a interrogare gli altri all'intervallo normale.
- Togli alimentazione al master per un intervallo noto, poi ripristinala. I totali cumulativi riprendono dagli ultimi valori e nessuna lettura viene duplicata.
- Con uno ZHM, interrompi il collegamento al Gateway per un intervallo noto. ZHM conserva fino a 70.000 letture nella memoria flash. Verifica che le letture dell'intervallo arrivino al ritorno del collegamento, con i timestamp originali.
- Confronta data e ora del contatore (VIF 6D) con il timestamp raccolto e registra lo scarto. Un valore archiviato alla scadenza usa l'orologio del contatore, non quello del Gateway.
- Verifica che i valori obsoleti non siano mostrati come attuali e che ogni allarme si cancelli soltanto al ritorno di dati validi.
Scheda di accettazione
Conserva una scheda per ciascun segmento. Il modello scaricabile comprende questi campi. Gli esempi provengono dal segmento di 40 contatori sopra:
| Campo | Esempio |
|---|---|
| Master o interfaccia, modello e firmware | Master da 60 UL, mark a 36 V, 2400 baud |
| Produttore e modello del contatore, ID letto sul bus e indirizzo primario | Contatore di calore, ID 67214018, indirizzo primario 7, 1 UL |
| Carichi unitari, tensione finale (calcolata e misurata) | 50 UL con riserva; 31,6 V calcolati, 31,2 V misurati all'ultimo contatore |
| Record mappati: energia, volume, temperatura di mandata e ritorno | Energia: DIF 04, VIF 06 (kWh), memoria 0, tariffa 0 |
| Confronto con display (contatore e valore raccolto, stessa lettura) | Display 48,325 MWh, valore raccolto 48.325 kWh |
| Prove di guasto superate | Contatore 12 scollegato; master spento per 10 minuti |
| Nome e data |
Ripeti le prove dopo la sostituzione di un contatore, una modifica al bus o un cambio del firmware o della decodifica del master. Prosegui con la guida applicativa a M-Bus cablato, oppure configura un sistema partendo dall'elenco dei contatori.