Questa è una vecchia versione del documento!


Cablaggio del bus RS485

Modbus è un protocollo di comunicazione seriale creato da un importante produttore di PLC nel lontano 1979. A differenza di molti altri protocolli di comunicazione è pubblicato apertamente ed è “royalty-free”, ciò ha permesso ad ogni produttore di PLC, Touch Panel ed in genere di schede elettroniche di implementarlo all’interno dei propri dispositivi, rendendolo così lo standard defacto per l’Automazione e la Domotica.
Modbus è un protocollo sicuro, infatti integra il controllo CRC su ogni messaggio per verificare l’integrità dei dati; tipicamente viene utilizzato su linee seriali RS- 232 e RS-485 denominato “Modbus RTU”, mentre la versione TCP-IP è denominata “Modbus TCP”.

Per chi volesse approfondire gli aspetti tecnici di questo protocollo di comunicazione vi consiglio di leggere questa interessante guida: Il protocollo ModBus

La possibilità di disporre di un’uscita RS485 sul contatore permette di poter installare nel nostro impianto fino a 32 contatori per monitorare quanti e quali carichi vogliamo. Basterà infatti collegarli fra loro con un semplice doppino ritorto e collegarli al Raspberry mediante un economico adattatore USB-RS485, per poter monitorare e loggare tutti parametri energetici che desideriamo, mediante i già noti software 123solar e MeterN:

sdm120c_4.jpg

Grazie ad un software sviluppato da Gianfranco Di Prinzio (gianfrdp del forum energeticamebiente.it) che ha messo gentilmente a disposizione su Github, è possibile leggere tutti i valori da questo contatore.

Il software prevede inoltre le necessarie integrazioni per poter utilizzare il contatore mediante i software MeterN e 123solar. Infatti la possibilità di poter leggere più contatori sullo stesso bus, permette di utilizzare 123solar anche con inverter non direttamente compatibili, ma leggendo anche la produzione fotovoltaica (e non solo i consumi) mediante un contatore.

Come potete vedere il collegamento nelle varie configurazioni è comunque molto semplice. Basterà collegare mediante un doppino ritorto le uscite RS485 del contatore (identificate con le lettere A e B) con le rispettive lettere riportate sulla chiavetta usb.

FATE ATTENZIONE A RISPETTARE LA POLARITA’ E COLLEGARE IL TUTTO CORRETTAMENTE
Collegate i dispositivi sul bus solo a sistema NON alimentato

Nel caso si installino più dispositivi sullo stesso bus si dovrà creare una catena come l’immagine seguente, mettendo in parallelo tutti i dispositivi del bus:

rs485_wiring.jpg

A differenza della rete di computer LAN o del cablaggio a 230 V di casa, con molti bus la disposizione ed il collegamento dei dispositivi non sono casuali. Con il bus RS485, i singoli elementi devono essere collegati in sequenza a un’unica linea continua, come perle in una collana. In questa tipologia, le ramificazioni non sono consentite

rete_rs485.jpg

Eventuali tronconi di derivazione dal bus devono avere una lunghezza massima di 2m

Se per qualche motivo non potete fare a meno di usare un bus con diramazioni a stella, è necessario utilizzare degli apparecchi appositi (RS485 HUB) che isolano con un appropriato driver ogni singolo ramo, che verrà poi terminato normalmente. Esempio

Queste sono le specifiche fornite da ABB (PowerOne) per lo specifico cavo per reti RS485 da utilizzare:


Da notare che nel caso si utilizzino degli adattatori USB-RS485 dotati anche del polo GND (massa) non si deve collegare l'eventuale schermatura del cavo a questo polo, ma entrambi i conduttori di un ulteriore doppino.


E' possibile anche l'utilizzo dei cavi LAN per la realizzazione dei collegamenti modbus in sostituzione dello specifico cavo (più costoso e più difficile da trovare).

Personalmente ho utilizzato il cavo di rete per lunghezze fino a circa 30-40m senza particolari problemi.

E' comunque importante che il cavo di rete abbia le seguenti caratteristiche:

  • sezione conduttori AWG24 (molto spesso sono AWG26 e quindi più sottili)
  • impedenza prossima a 120ohm
  • sia un cavo schermato
  • si utilizzino due fili che costituiscono un doppino ritorto ( :!: NON UTILIZZATE 2 DOPPINI DIVERSI PER I DUE FILI DEL BUS :!: )
  • non vi siano possibilmente giunzioni nel cavo
  • si utilizzi per l'eventuale polo GND i due fili in parallelo di un ulteriore doppino (come visibile nella prima immagine)
  • non utilizzare la schermatura come cavo GND

Per approfondimenti sul cavo da utilizzare: Cavi per seriale RS485 e cavi LAN

La capacità parassita della linea di trasmissione aumenta all’aumentare della lunghezza della linea, limitando di conseguenza la massima velocità del bus. Una legge empirica fornisce i seguenti valori:

  • 115200bps: fino a 85m
  • 57600bps: fino a 170m
  • 38400bps: fino a 250m
  • 19200bps: fino a 500m
  • 9600bps: fino a 1000m
  • 8400bps: fino a 1200m (lunghezza max)

Personalmente per l'impiego indicato sul wiki consiglio di utilizzare la velocità di 9600 bps che sono compatibili con i contatori impiegati

I cavi RS-485 hanno impedenza tipica di 120Ω. Di conseguenza è necessario inserire una resistenza di terminazione all’inizio del bus RS-485 (tipicamente sull'adattatore USB-RS485) ed alla fine (tipicamente in concomitanza dell’ultimo slave).
È opportuno scegliere resistenze da 120Ω con tolleranza 1%, per evitare sbilanciamenti nel bus di trasmissione.
Alcuni dispositivi, ad esempio gli inverter e/o gli adattatori USB-RS485, integrano internamente delle resistenze di terminazione, in alcuni casi attivabili con dip-switch; in questo caso occorre verificare che solamente il primo e l’ultimo dispositivo del bus abbiano la resistenza di terminazione attivata.

  • Su bus RS-485 particolarmente corti è possibile non inserire le resistenze di terminazione


Fino a 30-35m personalmente non ho avuto problemi e non ho avuto bisogno delle resistenze di terminazione

Attenzione che alcuni adattatori USB-RS485 hanno già al loro interno la resistenza di terminazione da 120 ohm.
Prima di mettere una resistenza sull'adattatore, verificate che non sia già integrata!!

Molti dispositivi RS-485 dispongono del morsetto GND (ground), allo scopo di fornire un riferimento di tensione comune a tutti i ricetrasmettitori RS-485 del bus. In questo caso, occorre collegare tutti i pin GND dei dispositivi tra di loro, utilizzando un altro filo del cavo RS-485.


Il pin GND non è comunque necessario alle schede alimentate in tensione continua, in quanto il riferimento di tensione comune è rappresentato dal polo negativo.

Non collegare il pin GND alla messa a terra dell'impianto e non si deve collegare alla schermatura del cavo ma utilizzare un altro filo del cavo RS-485

Per un approfondimento tecnico sulle reti RS485 suggerisco di leggersi i seguenti documenti:

  • metern_modbus.1536137264.txt.gz
  • Ultima modifica: 2018/09/05 10:47
  • da flane