Protocolli e dati

BACnet/IP e MS/TP a confronto

Confronta BACnet/IP e MS/TP: velocità, dimensione APDU, passaggio del token, capacità del bus, guasti, routing e lettura dei controllori in un retrofit.

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/IPBACnet MS/TP
Rete fisicaEthernet o qualsiasi rete IPDoppino RS-485 in linea
VelocitàEthernet a 10 o 100 Mbit/s; di solito il limite è l'elaborazione del controlloreDa 9.600 a 115.200 bit/s
APDU non segmentata massima1.476 ottetti480 ottetti
Indirizzo di un dispositivo nella propria reteIndirizzo IP e porta UDPIndirizzo MAC: da 0 a 127 per i master, fino a 254 per gli slave
Accesso alla reteOgni dispositivo può inviare in qualunque momentoSolo il master che possiede il token avvia una trasmissione
Broadcast di discoveryRestano nella sottorete IP, a meno che un BBMD li inoltriRaggiungono tutti i dispositivi del bus, ma gli slave rispondono a Who-Is solo tramite un proxy per slave
Dispositivi tipiciSupervisori, controllori degli impianti di refrigerazione e caldaia, controllori UTAControllori 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 letturaOttetti sul mezzoTempo a 9.600 bit/sTempo a 38.400 bit/sTempo a 76.800 bit/s
Richiesta ReadProperty, con intestazione di routing3233,3 ms8,3 ms4,2 ms
Risposta ReadProperty (ComplexACK)3940,6 ms10,2 ms5,1 ms
Due inversioni di direzione di 40 tempi di bit8,3 ms2,1 ms1,0 ms
Risposta del controllore, valore ipotizzato5 ms5 ms5 ms
Una letturacirca 87 mscirca 26 mscirca 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

GuastoChe cosa si osservaVerifica
Indirizzo MAC duplicatoErrori CRC e di framing, token persi, due dispositivi che appaiono e scompaiono a turnoL'indirizzo MAC su ogni dispositivo, spesso impostato con DIP switch
Velocità diversa sul busUn dispositivo non risponde mai e un analizzatore mostra errori di framing quando trasmetteVelocità di ogni dispositivo, compresi quelli con rilevamento automatico
Max_Master troppo basso su un dispositivoI master sopra il suo Max_Master non ricevono il token e non compaionoMax_Master su ogni master, non solo sul router
Terminazione mancante o in eccesso, oppure assenza di polarizzazioneErrori che aumentano con la lunghezza del cavo o con il traffico, rumore sulla linea inattiva120 Ω soltanto alle due estremità fisiche, polarizzazione in un punto
Token persoIl bus tace per 500 ms (Tno_token), poi un master genera un nuovo token; il ciclo si ripeteRumore, 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

SituazioneScelta abituale
Lettura di dati energetici da controllori MS/TP esistentiLeggi 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 EthernetBACnet/IP sulla rete di controllo dell'edificio
Molti nuovi piccoli controllori su ogni pianoBus 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 reteMS/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.