BACnet/IP e BACnet MS/TP sono due reti diverse che collegano lo stesso tipo di controllori, sensori e supervisori BACnet. BACnet/IP usa la rete Ethernet dell'edificio, con ogni dispositivo a un indirizzo IP e a una porta UDP. MS/TP (master-slave/token-passing) usa un doppino RS-485 da 9.600 a 115.200 bit/s, dove ogni dispositivo ha un indirizzo MAC e un master può avviare una trasmissione solo mentre possiede il token. Un BMS commerciale usa spesso entrambe: BACnet/IP tra supervisori e impianti centrali e MS/TP verso i controllori delle unità terminali di ogni piano, unite da un router BACnet. La lettura di un punto da un ventilconvettore attraversa entrambe, ciascuna con limiti propri di dimensione dei messaggi, velocità e indirizzamento.
Differenze tra BACnet/IP e MS/TP
| 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; 9.600 e 38.400 sono obbligatorie |
| Cablaggio | Cavo di rete verso una porta dello switch, come per qualsiasi dispositivo IP | Doppino schermato, terminazione da 120 Ω alle due estremità, fino a 1.200 m per segmento |
| 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 |
| Porta predefinita | UDP 47808 (0xBAC0) | Nessuna: è un bus seriale |
| 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 |
| Tra sottoreti IP | Un BBMD in ogni sottorete inoltra i broadcast BACnet; un foreign device si registra presso un BBMD | Non applicabile: un router BACnet collega il bus a una rete BACnet/IP |
| 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.
BACnet/IP e nomi simili
Quattro nomi vengono spesso confusi in capitolati e offerte:
| Nome | Che cos'è |
|---|---|
| BACnet/IP | Messaggi BACnet in pacchetti UDP/IP, definiti nell'Annex J della norma 135. La porta UDP predefinita è 47808, cioè 0xBAC0 in esadecimale. |
| BACnet Ethernet | Messaggi BACnet direttamente in frame Ethernet (ISO 8802-3), senza IP, definiti nella Clause 7. I dispositivi sono indirizzati tramite indirizzo MAC e i messaggi non attraversano i router IP. Si trova soprattutto negli impianti meno recenti. |
| BACnet/SC (Secure Connect) | BACnet su connessioni WebSocket protette da TLS verso un hub, definito nell'Annex AB della norma 135-2020. I dispositivi si autenticano con certificati. |
| EtherNet/IP | Non è BACnet. È il Common Industrial Protocol (CIP) su Ethernet, di ODVA, usato soprattutto dai PLC. Un client BACnet non può leggerlo. |
Un dispositivo che "supporta Ethernet" può indicare uno qualsiasi di questi. Chiedi quale data link usa il dispositivo e, per BACnet, chiedi il suo PICS (protocol implementation conformance statement).
Come funziona BACnet 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à e baud rate di BACnet MS/TP
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 di BACnet MS/TP
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. La norma 135 (Clause 9.2.1) specifica il cavo: doppino schermato con impedenza caratteristica tra 100 e 130 Ω, capacità tra i conduttori inferiore a 100 pF per metro e tra conduttori e schermo inferiore a 200 pF per metro. Sono ammessi schermi a lamina o a treccia. La lunghezza massima consigliata di un segmento è 1.200 m con cavo AWG 18 (0,82 mm²). Il normale cavo di rete di Categoria 5 è da 100 Ω e di solito non schermato: verificane la capacità e scegli un tipo schermato prima di usarlo per MS/TP. 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. La verifica di terminazione e polarizzazione RS-485 mostra dove vanno le resistenze di terminazione e polarizzazione su un bus specifico.
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 e non usa BACnet/SC. La guida ai gateway Modbus e BACnet spiega la differenza tra un router BACnet, un gateway di protocollo e un gateway IoT come questo. 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
Che cos'è BACnet/IP?
BACnet trasportato in pacchetti UDP/IP su Ethernet o un'altra rete IP, come definito nell'allegato J della norma ASHRAE 135. Ogni dispositivo si raggiunge a un indirizzo IP e a una porta UDP, 47808 di default. Lo usano di solito supervisori, controllori degli impianti centrali e server del BMS.
Che cos'è BACnet MS/TP?
Master-slave/token-passing: BACnet trasportato su un doppino RS-485, come definito nella clausola 9 della norma 135. I master, con indirizzi MAC da 0 a 127, si passano un token e trasmettono solo mentre lo possiedono. Funziona da 9.600 a 115.200 bit/s e di solito collega controllori ambiente, VAV e ventilconvettori a un router BACnet.
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 porta usa BACnet/IP?
La porta UDP 47808 di default, cioè 0xBAC0 in esadecimale. L'allegato J ammette altre porte UDP. I dispositivi che devono ricevere direttamente i broadcast l'uno dell'altro usano la stessa porta. MS/TP non ha un numero di porta: è un bus seriale.
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.
BACnet/IP è la stessa cosa di EtherNet/IP?
No. BACnet/IP trasporta messaggi BACnet su UDP, per impostazione predefinita sulla porta 47808. EtherNet/IP è il Common Industrial Protocol (CIP) di ODVA, usato soprattutto dai PLC. Un client BACnet/IP non può leggere un dispositivo EtherNet/IP, e vale anche il contrario.
Quale cavo usa BACnet MS/TP?
Doppino schermato con impedenza caratteristica tra 100 e 130 Ω e capacità tra i conduttori inferiore a 100 pF per metro, come specifica la norma 135. La lunghezza massima consigliata di un segmento è 1.200 m con cavo AWG 18 (0,82 mm²). Termina le due estremità e polarizza in un solo punto, come per qualsiasi bus RS-485.