Che cos’è l’RS485?
RS485 è una norma per la trasmissione elettrica, non un protocollo. I dati viaggiano come differenza di tensione tra due fili, di solito chiamati A e B, a volte D+ e D−. Poiché il ricevitore valuta solo la differenza, i disturbi che colpiscono allo stesso modo entrambi i fili si annullano in gran parte. Per questo l’RS485 funziona anche in quadri con inverter e su lunghe distanze.
Classicamente un segmento sopporta 32 utenti (unit load); i driver moderni caricano il bus solo con una frazione di questo valore. La linea può essere lunga circa 1200 m, meno a baud rate elevati.
Sull’RS485 funzionano diversi protocolli, oltre al Modbus RTU per esempio il BACnet MS/TP. Per un contatore di energia RS485 è quindi solo insieme al protocollo che si sa come leggerlo.
Come si cabla correttamente un bus RS485?
- Posare a linea: da apparecchio ad apparecchio, senza stella e senza lunghe derivazioni.
- Inserire una resistenza di terminazione da 120 Ω a ciascuna delle due estremità della linea, non su ogni apparecchio.
- Usare un cavo dati twistato e schermato, idealmente con un’impedenza caratteristica di circa 120 Ω.
- Portare con sé la massa di riferimento (GND) se gli apparecchi sono lontani o alimentati in modo diverso.
- Impostare su tutti gli apparecchi lo stesso baud rate, la stessa parità e gli stessi bit di stop.
Gli ostacoli più frequenti nella realizzazione del bus sono descritti nell’articolo Modbus RTU su RS-485: i cinque ostacoli più frequenti.
Che cos’è il Modbus RTU?
Il Modbus è un protocollo aperto che Modicon ha sviluppato nel 1979 per i controllori. RTU sta per Remote Terminal Unit e indica la variante binaria per le linee seriali. Un master, per esempio un PLC, un data logger o un sistema di gestione dell’energia, invia una richiesta a un indirizzo slave e solo quell’apparecchio risponde. Uno slave non trasmette mai di propria iniziativa.
Un telegramma è composto da indirizzo, codice funzione, dati e una somma di controllo CRC16. Tra due telegrammi c’è una pausa di almeno 3,5 caratteri, dalla quale gli apparecchi riconoscono inizio e fine.
| Codice funzione | Significato | Impiego tipico |
|---|---|---|
| 03 | Leggere holding register | Valori misurati e impostazioni |
| 04 | Leggere input register | Valori misurati |
| 06 | Scrivere un registro | Modificare un’impostazione |
| 16 | Scrivere più registri | Scrivere più valori in un blocco |
Come si leggono correttamente i registri Modbus?
Il Modbus conosce solo registri a 16 bit. Una lettura a 32 o 64 bit si distribuisce su due o quattro registri consecutivi. Se la parola più significativa venga prima lo decide ogni costruttore. Se un sistema fornisce valori senza senso, di solito l’ordine dei byte o delle parole è invertito.
Anche la numerazione degli indirizzi varia: alcuni manuali contano da 0, altri da 1. Se un valore è spostato esattamente di un registro, il motivo è quasi sempre questo.
Quando è adatto il Modbus RTU su RS485?
Il Modbus RTU è adatto quando un controllore o un data logger interroga direttamente contatori nello stesso quadro o edificio e nessuna rete arriva ai contatori. Con molti contatori in più edifici o più sistemi di destinazione conviene un gateway. Il confronto con la variante di rete si trova nell’articolo Modbus TCP o Modbus RTU? e nella pagina Che cos’è il Modbus TCP?.
RS485 e Modbus RTU con gli apparecchi EMU
Il contatore di energia RS485 EMU Professional II parla Modbus RTU, come EMU Professional II 3/100 per inserzione diretta fino a 100 A o come 3/5 per inserzione tramite TA.
L’EMU M-Center ha due porte RS485, legge fino a 64 apparecchi Modbus RTU e inoltra i valori via BACnet IP o MQTT.