Un BMS commerciale usa spesso due reti BACnet: BACnet/IP tra supervisori e impianti centrali e BACnet MS/TP (master-slave/token-passing) su doppino RS-485 verso i controllori delle unità terminali di ogni piano. La lettura di un punto da un ventilconvettore attraversa entrambe, ciascuna con limiti propri di dimensione dei messaggi, velocità e indirizzamento.
A confronto
| BACnet/IP | BACnet MS/TP | |
|---|---|---|
| Rete fisica | Ethernet o qualsiasi rete IP | Doppino RS-485 in linea |
| Velocità | Ethernet a 10 o 100 Mbit/s; di solito il limite è l'elaborazione del controllore | Da 9.600 a 115.200 bit/s |
| APDU non segmentata massima | 1.476 ottetti | 480 ottetti |
| Indirizzo di un dispositivo nella propria rete | Indirizzo IP e porta UDP | Indirizzo MAC: da 0 a 127 per i master, fino a 254 per gli slave |
| Accesso alla rete | Ogni dispositivo può inviare in qualunque momento | Solo il master che possiede il token avvia una trasmissione |
| Broadcast di discovery | Restano nella sottorete IP, a meno che un BBMD li inoltri | Raggiungono tutti i dispositivi del bus, ma gli slave rispondono a Who-Is solo tramite un proxy per slave |
| Dispositivi tipici | Supervisori, controllori degli impianti di refrigerazione e caldaia, controllori UTA | Controllori VAV, ventilconvettori e ambiente |
L'istanza del dispositivo, gli identificatori degli oggetti e le proprietà non cambiano con la rete. La guida alla discovery spiega la differenza tra istanza del dispositivo e indirizzo di rete.
Il limite APDU conta quando un client su BACnet/IP legge attraverso un router. Ogni dispositivo dichiara il proprio limite in Max_APDU_Length_Accepted e lo annuncia nel messaggio I-Am. Un client che costruisce una richiesta o si aspetta una risposta oltre quel limite ha bisogno della segmentazione, che molti piccoli controllori MS/TP non supportano. La richiesta viene quindi abortita o rifiutata. Una risposta ReadPropertyMultiple contiene circa 16 ottetti per Present_Value, perciò in una risposta da 480 ottetti entrano circa 29 valori. Alcuni controllori piccoli accettano solo 50 o 128 ottetti, quindi molti meno valori. Dimensiona le richieste ReadPropertyMultiple secondo il limite minimo del percorso.
Come funziona MS/TP
All'avvio ogni master attende una finestra temporale basata sul proprio indirizzo MAC, da 0 a 127, poi cerca il master successivo. Quando riceve il token, può inviare fino a Max_Info_Frames frame. Passa quindi il token al master successivo. Ogni 50 passaggi del token (Npoll), un master invia frame Poll For Master agli indirizzi compresi tra il proprio e quello del master successivo che conosce, per cercare nuovi dispositivi.
Se un master invia Poll For Master a un indirizzo vuoto, attende la risposta per Tusage_timeout: almeno 20 ms secondo la norma e 75 ms nell'impostazione tollerante del router Johnson Controls. Ogni indirizzo vuoto sondato aggiunge quel silenzio al bus.
I dispositivi slave, con indirizzi MAC fino a 254, non possiedono mai il token. Rispondono soltanto quando un master li interroga. Non possono rispondere da soli a un broadcast Who-Is; un proxy per slave (introdotto nell'Addendum 135-2001a) risponde con un I-Am per loro.
Due impostazioni su ogni master influenzano tutto il bus:
- Max_Master è l'indirizzo master più alto che il dispositivo cercherà. Un dispositivo che non consente di cambiarlo usa 127. Impostalo su ogni master all'indirizzo MAC master più alto in uso. Con 20 master agli indirizzi da 1 a 20 e Max_Master lasciato a 127, il master all'indirizzo 20 sonda 108 indirizzi vuoti: da 21 a 127, più 0.
- Max_Info_Frames è il numero di frame che un master può inviare ogni volta che possiede il token. Un dispositivo che non consente di cambiarlo usa 1, adatto a un controllore ambiente. Un router inoltra il traffico di tutti i client dal lato IP e ha quindi bisogno di un valore maggiore. Sono comuni valori predefiniti di 100 sui router; la guida Johnson Controls consiglia un valore superiore a 20.
Velocità
La norma 135 richiede a ogni dispositivo MS/TP il supporto di 9.600 e 38.400 bit/s. L'Addendum 135-2008ab ha reso obbligatori i 38.400 bit/s e introdotto 57.600 e 115.200 bit/s. I valori 19.200, 57.600, 76.800 e 115.200 bit/s sono facoltativi: verifica che tutti i dispositivi supportino la velocità scelta. Tutti i dispositivi dello stesso bus devono usare la stessa velocità. Il limite di lunghezza del cavo RS-485 è 1.200 m alle velocità standard e 1.000 m a 115.200 bit/s. Questi valori presuppongono un doppino di buona qualità. Cavi ad alta capacità e derivazioni lunghe li riducono.
Capacità del bus: esempio svolto
MS/TP invia ogni ottetto come 10 bit: 1 bit di start, 8 bit di dati e 1 bit di stop, senza parità. Un frame ha un'intestazione di 8 ottetti, poi i dati e un CRC di 2 ottetti. A 38.400 bit/s un ottetto richiede 0,26 ms; un frame token richiede quindi 2,1 ms.
Consideriamo un client BACnet/IP che legge un Present_Value analogico da un controllore MS/TP attraverso un router:
| Parte della lettura | Ottetti sul mezzo | Tempo a 9.600 bit/s | Tempo a 38.400 bit/s | Tempo a 76.800 bit/s |
|---|---|---|---|---|
| Richiesta ReadProperty, con intestazione di routing | 32 | 33,3 ms | 8,3 ms | 4,2 ms |
| Risposta ReadProperty (ComplexACK) | 39 | 40,6 ms | 10,2 ms | 5,1 ms |
| Due inversioni di direzione di 40 tempi di bit | 8,3 ms | 2,1 ms | 1,0 ms | |
| Risposta del controllore, valore ipotizzato | 5 ms | 5 ms | 5 ms | |
| Una lettura | circa 87 ms | circa 26 ms | circa 15 ms |
Duecento punti letti uno per volta occupano quindi circa 17 s di bus a 9.600 bit/s, 5 s a 38.400 bit/s e 3 s a 76.800 bit/s. Una volta al minuto, a 38.400 bit/s, sono circa il 9 % del bus. Ogni 5 s a 9.600 bit/s è impossibile: le letture richiedono più tempo dell'intervallo. Oltre 38.400 bit/s il tempo di risposta del controllore costituisce una parte importante di ogni lettura, quindi aumentare la velocità rende meno di quanto sembri.
ReadPropertyMultiple riduce il sovraccarico. Una richiesta per 10 Present_Value sullo stesso controllore occupa circa 115 ottetti e la risposta circa 185. A 38.400 bit/s sono circa 85 ms, contro 256 ms per 10 letture singole.
Il token aggiunge attesa. Il router può trasmettere soltanto mentre lo possiede e invia al massimo Max_Info_Frames richieste ogni volta. Se ogni master impiega circa 3 ms per iniziare a trasmettere, un anello inattivo di 20 master completa un giro in circa 100 ms a 38.400 bit/s. Ogni frame inviato da un altro master allunga il giro. Un controllore che rinvia la risposta finché non riottiene il token aggiunge un giro completo a ogni lettura.
Imposta il timeout APDU del client oltre il caso peggiore: giro del token, coda nel router e risposta. Un timeout più breve genera ritrasmissioni, che caricano ulteriormente il bus. Il client segnala allora come offline dispositivi soltanto lenti.
Guasti comuni di MS/TP
| Guasto | Che cosa si osserva | Verifica |
|---|---|---|
| Indirizzo MAC duplicato | Errori CRC e di framing, token persi, due dispositivi che appaiono e scompaiono a turno | L'indirizzo MAC su ogni dispositivo, spesso impostato con DIP switch |
| Velocità diversa sul bus | Un dispositivo non risponde mai e un analizzatore mostra errori di framing quando trasmette | Velocità di ogni dispositivo, compresi quelli con rilevamento automatico |
| Max_Master troppo basso su un dispositivo | I master sopra il suo Max_Master non ricevono il token e non compaiono | Max_Master su ogni master, non solo sul router |
| Terminazione mancante o in eccesso, oppure assenza di polarizzazione | Errori che aumentano con la lunghezza del cavo o con il traffico, rumore sulla linea inattiva | 120 Ω soltanto alle due estremità fisiche, polarizzazione in un punto |
| Token perso | Il bus tace per 500 ms (Tno_token), poi un master genera un nuovo token; il ciclo si ripete | Rumore, dispositivo che si riavvia o indirizzo MAC duplicato |
La guida al cablaggio RS-485 tratta terminazione e polarizzazione.
Cablaggio
MS/TP segue le stesse regole RS-485 di Modbus RTU: dorsale in linea, derivazioni corte, terminazione alle due estremità fisiche, polarizzazione in un punto e riferimento di segnale. L'Addendum 135-2008y (2010) ha introdotto schemi e regole per isolamento, messa a terra e conduttore di riferimento. Un bus fra edifici richiede isolamento di 1.500 V.
MS/TP e Modbus RTU non possono condividere lo stesso bus. I loro frame sono diversi e un master Modbus disturberebbe il passaggio del token.
Collegare MS/TP a BACnet/IP
Un router BACnet collega un bus MS/TP a una rete BACnet/IP. Spesso è integrato nel supervisore BMS. Ogni rete BACnet del sito, IP o MS/TP, ha bisogno di un numero di rete da 1 a 65.534 unico nel sito. Due reti con lo stesso numero inviano messaggi al bus sbagliato e i dispositivi sembrano cambiare identità.
Un client IP raggiunge un dispositivo MS/TP attraverso il router usando il numero della rete MS/TP e l'indirizzo MAC del dispositivo. Un client che scopre i dispositivi tramite numero d'istanza non deve conoscere questi valori: il router inoltra Who-Is al bus e restituisce le risposte I-Am con rete e indirizzo sorgente. Per elencare le reti dietro un router, invia Who-Is-Router-To-Network. Il router risponde con I-Am-Router-To-Network e i numeri delle reti servite. La guida a routing e BBMD spiega come i broadcast attraversano le sottoreti IP.
Scelta in un retrofit
| Situazione | Scelta abituale |
|---|---|
| Lettura di dati energetici da controllori MS/TP esistenti | Leggi tramite il router o supervisore esistente su BACnet/IP. Non collegare un secondo master al bus senza l'accordo del responsabile BMS: servono un indirizzo MAC libero, Max_Master corretto su ogni dispositivo e una quota del tempo di possesso del token. |
| Nuovo impianto con porta Ethernet | BACnet/IP sulla rete di controllo dell'edificio |
| Molti nuovi piccoli controllori su ogni piano | Bus MS/TP verso un router. Dimensiona ogni bus con il calcolo sopra, includendo le letture aggiunte dai sistemi energetici e di analisi. |
| Controllori lontani da uno switch di rete | MS/TP oppure un sensore wireless quando serve soltanto il monitoraggio |
BACnet con Edge
Edge sul Gateway ZGW-20 è un client BACnet/IP. Legge i controllori MS/TP tramite un router BACnet presente sul sito. Non si collega direttamente al bus MS/TP. Interroga Present_Value a intervalli allineati al minuto, per esempio 60 o 300 s, oppure una volta al minuto in modalità live. Non usa sottoscrizioni COV. Per dimensionare il bus, considera ogni punto come una lettura per intervallo nell'esempio svolto sopra. La guida BACnet e Modbus descrive che cosa Edge legge e scrive; la guida COV e polling confronta i metodi.
Questa guida fa parte della serie BACnet e protocolli per gli edifici.
Domande frequenti
Qual è la differenza tra BACnet/IP e BACnet MS/TP?
BACnet/IP trasporta i messaggi BACnet in datagrammi UDP su una rete IP. BACnet MS/TP li trasporta su doppino RS-485, dove i master si passano un token e trasmettono solo quando lo possiedono. Oggetti e servizi sono gli stessi. Cambiano velocità, indirizzamento e dimensione massima del messaggio: 1.476 ottetti per APDU su BACnet/IP e 480 su MS/TP.
Quale velocità usa BACnet MS/TP?
Ogni dispositivo MS/TP deve supportare 9.600 e 38.400 bit/s. I valori 19.200, 57.600, 76.800 e 115.200 bit/s sono facoltativi; 57.600 e 115.200 sono stati introdotti solo nell’Addendum 135-2008ab, quindi dispositivi più vecchi potrebbero non supportarli. Tutti i dispositivi dello stesso bus devono usare la stessa velocità.
Quanti dispositivi possono stare su un bus MS/TP?
Gli indirizzi master vanno da 0 a 127 e quelli slave fino a 254. Un segmento RS-485 supporta 32 unità di carico senza ripetitore. Transceiver da metà o un quarto di unità di carico portano il limite a circa 62 o 124 dispositivi oltre a un router a pieno carico. Di solito è il tempo di rotazione del token a limitare il bus prima di questi numeri.
Come collego i dispositivi MS/TP a BACnet/IP?
Tramite un router BACnet, spesso integrato nel supervisore BMS. Il router assegna al bus MS/TP un proprio numero di rete; i client IP raggiungono ogni dispositivo MS/TP tramite numero di rete e indirizzo MAC.