Modbus RTU su RS-485 collega contatori, azionamenti e controllori a un master lungo un'unica linea a coppia intrecciata. La messa in servizio verifica il bus fisico, le impostazioni seriali, l'identità di ogni dispositivo, il significato dei registri letti, il tempo di interrogazione e il comportamento del sistema quando un dispositivo smette di rispondere. Questa guida segue tale ordine e si conclude con un verbale di accettazione. Per le apparecchiature in rete anziché su bus seriale, la guida a Modbus TCP e RTU spiega le differenze.
Scarica il verbale di accettazione (.txt). Puoi stamparlo o compilarlo in sito.
Registra le caratteristiche dei dispositivi
Per ogni dispositivo, annota il modello e il firmware esatti, l'identificativo unità (indirizzo di stazione), la velocità in baud, la parità, i bit di dati e i bit di stop. Tutti i dispositivi sullo stesso bus usano le stesse impostazioni seriali.
Per ogni punto necessario, annota il tipo di oggetto dati, il codice funzione, l'offset del protocollo a base zero, il numero di riferimento come compare nel manuale, il numero di registri, il tipo di dato, l'ordine dei byte e delle word, il fattore di scala, l'unità, l'accesso in lettura o scrittura e l'intervallo atteso.
I manuali esprimono gli indirizzi dei registri secondo convenzioni diverse. 40001 nella notazione classica indica l'offset 0 di un registro holding, letto con il codice funzione 03:
Il convertitore di indirizzi Modbus mostra il tipo di oggetto e ogni convenzione, così uno scostamento di un registro viene rilevato prima di entrare nella mappa dei punti.
Cabla il bus RS-485
La guida Modbus per la linea seriale descrive una sola linea principale con i dispositivi collegati lungo il percorso, una terminazione a ciascuna estremità, polarizzazione (bias) in un punto e un conduttore comune. La guida al cablaggio RS-485 spiega queste regole; la guida a RS-485 e Modbus distingue l'interfaccia elettrica dal protocollo.
Controlla:
- la modalità a due o quattro fili e la denominazione dei morsetti su ciascun dispositivo (i costruttori usano A/B, D+/D− o 485+/485− e talvolta invertono le lettere);
- un'unica linea principale continua, con derivazioni corte e senza diramazioni a stella;
- una terminazione a ciascuna estremità della linea principale, e solo lì;
- una sola sorgente di polarizzazione, dove la rete la richiede; molti master e alcuni dispositivi hanno un bias inseribile;
- il conduttore comune, la schermatura e la messa a terra secondo il progetto del sito;
- ripetitori e isolatori, con la loro posizione.
Il verificatore di terminazione e polarizzazione RS-485 individua contraddizioni nella topologia, come tre terminazioni o due punti di polarizzazione. Le istruzioni dei dispositivi stabiliscono se terminazione e bias siano integrati, inseribili o esterni.
Aggiungi un dispositivo alla volta
Parti da un tratto corto e verificato con un solo dispositivo. Conferma le impostazioni seriali e leggi un valore semplice documentato. Poi aggiungi i dispositivi uno alla volta e tieni un elenco degli indirizzi. Due dispositivi con lo stesso identificativo unità rispondono alla stessa richiesta e si sovrappongono nelle risposte, dando l'impressione di un guasto intermittente.
Per i contatori più comuni, le mappe dei registri Modbus nella Directory dispositivi riportano ogni indirizzo in decimale ed esadecimale, con codice funzione, formato dei dati, fattore di scala e ordine delle word, sulla base del documento di protocollo del costruttore.
Una risposta di eccezione è una prova utile: il dispositivo ha ricevuto la richiesta e l'ha rifiutata. Il codice 02 (indirizzo dati non valido) indica spesso un offset o un numero di registri errato; il silenzio può dipendere da cablaggio, impostazioni seriali o identificativo unità. Il riferimento ai codici funzione ed eccezione Modbus elenca i codici.
Per provare una richiesta a mano, calcolane il CRC. Questa richiesta legge tre registri holding dall'unità 17 (0x11), a partire dall'offset 107 (0x6B):
Decodifica i valori: un esempio
Due registri da 16 bit possono contenere un numero in virgola mobile da 32 bit, un intero da 32 bit oppure due valori distinti. La mappa dei registri definisce il tipo di dato, l'ordine delle word e quello dei byte. Acquisisci le word grezze di un valore stabile e decodificale a mano prima di mappare il resto del dispositivo.
Per esempio, le word 436A 0000 si decodificano come numero in virgola mobile a 32 bit, con word e byte in ordine big-endian, in 234,0: una tensione di fase plausibile.
Confronta il valore decodificato con il display del dispositivo. Anche un ordine delle word errato può produrre un numero piccolo e plausibile: la corrispondenza con il display è la verifica. Conserva il vettore grezzo insieme alla configurazione, così potrai rilevare una successiva modifica del firmware o della mappa. La guida alla mappa dei registri approfondisce le convenzioni degli indirizzi, i tipi di dato, l'ordine delle word e i fattori di scala.
Interrogazione e timeout
Il tempo di trasmissione di una trama dipende dalla velocità in baud e dal formato dei caratteri. Il ciclo di interrogazione dipende anche dal tempo di risposta di ogni dispositivo, dall'intervallo tra le richieste, dalla strategia dei ritentativi e dal numero e dalla lunghezza delle richieste.
A 9.600 baud, con parità pari e un bit di stop, una richiesta da 8 byte, una risposta da 25 byte, 5 ms di ritardo di risposta e dieci dispositivi, un ciclo completo richiede circa 470 ms:
Usa il calcolo come limite inferiore e misura poi i dispositivi reali. Annota il tempo di risposta più lento rilevato durante il normale funzionamento, non solo su un banco prova senza traffico. Interrogare più rapidamente di quanto il bus consenta produce timeout, non più dati. La guida a interrogazione e ritentativi mostra quanto costa ogni ciclo un dispositivo offline; la guida alla risoluzione dei problemi distingue timeout, eccezioni e valori errati.
Qualità dei dati
L'applicazione che riceve i dati deve distinguere un valore recente da uno in cache, scaduto per timeout, associato a un'eccezione, fuori intervallo o obsoleto. Definisci:
- la data e l'ora dell'acquisizione e, se disponibile, quelle del dispositivo sorgente;
- l'età massima accettabile di un valore;
- le soglie per i ritentativi e lo stato offline;
- se l'ultimo valore resta visibile e come viene contrassegnato;
- la gestione degli azzeramenti e dei ritorni a zero dei contatori;
- che cosa fanno le regole a valle quando un valore non è valido.
Verbale di accettazione
Conserva un verbale per ciascun bus. Il modello scaricabile comprende:
| Campo | Esempio |
|---|---|
| Master, modello e firmware | Interfaccia ZMB |
| Impostazioni seriali | 9.600 baud, 8 bit di dati, parità pari, 1 bit di stop |
| Topologia | Collegamento in linea, 120 Ω al master e all'unità 3, polarizzazione al master |
| Elenco dispositivi | ID unità da 1 a 3, modelli e firmware annotati |
| Vettore grezzo per ogni tipo di dato | 436A 0000 = 234,0 V, coincide con il display |
| Ciclo di interrogazione calcolato e misurato | 470 ms calcolati, 520 ms misurati |
| Prove di guasto | Un dispositivo scollegato: gli altri continuano a rispondere, valore segnalato come obsoleto |
| Nome e data |
Ripeti le prove dopo una modifica del firmware, della mappa dei registri, della topologia, delle impostazioni seriali o dell'interrogazione. Per il progetto completo, consulta la guida all'integrazione di contatori in un BMS o SCADA, esplora i dispositivi Modbus con mappe dei registri documentate oppure configura un sistema partendo dall'elenco dei dispositivi.