Protocolli e dati

BACnet: istanze, indirizzi e rilevamento dei dispositivi

Discovery BACnet con Who-Is e I-Am: istanze di dispositivo, numeri di rete, indirizzi MAC e diagnosi se un dispositivo non compare.

BACnet trova i dispositivi trasmettendo una domanda in broadcast e ascoltando le risposte. Un client invia Who-Is e ogni dispositivo corrispondente risponde con I-Am, comunicando l’istanza del dispositivo e il proprio indirizzo. Perché funzioni, ogni dispositivo deve avere un’istanza unica, ogni rete un numero di rete unico e il broadcast deve raggiungere la rete in cui si trova il dispositivo. La maggior parte dei problemi di rilevamento viola una di queste tre condizioni.

Questa guida fa parte della serie su BACnet e i protocolli per gli edifici.

Tre identificativi

IdentificativoChe cos’èAmbito di unicitàEsempio
Istanza del dispositivoNumero di istanza dell’oggetto Device, da 0 a 4 194 302Unico nell’intero sito20102
Numero di reteNumero di una rete BACnet, da 1 a 65 534Unico nell’intero sito12
Indirizzo sulla reteIndirizzo IP e porta UDP in BACnet/IP, oppure indirizzo MAC da 0 a 254 in MS/TPUnico su quella rete10.20.4.31:47808 oppure MAC 7

L’istanza del dispositivo è l’identificativo stabile. I client trovano un dispositivo tramite la sua istanza e poi ne ricordano l’indirizzo. Se il dispositivo cambia indirizzo IP, un nuovo rilevamento lo ritrova con la stessa istanza.

La guida introduttiva del comitato BACnet stabilisce la regola: il numero di istanza dell’oggetto Device deve essere unico nell’intera internetwork BACnet. Gli identificatori degli oggetti all’interno del dispositivo, per esempio analog-input 3, devono essere unici soltanto all’interno del dispositivo stesso.

Come funzionano Who-Is e I-Am

  1. Il client trasmette Who-Is in broadcast. Può interrogare tutti i dispositivi oppure solo quelli con istanze comprese in un intervallo.
  2. Ogni dispositivo corrispondente trasmette I-Am in broadcast. La risposta contiene l’istanza del dispositivo, la dimensione massima dei messaggi accettati, il supporto della segmentazione e l’identificativo del produttore.
  3. Il client registra l’indirizzo di origine di I-Am e associa l’istanza del dispositivo a quell’indirizzo.
  4. Il client legge poi l’oggetto Device, di solito la sua Object_List, per trovare gli altri oggetti.

Una coppia di servizi collegata, Who-Has e I-Have, trova un dispositivo in base al nome o all’identificatore di un oggetto che contiene.

Alcuni dispositivi non possono partecipare direttamente. L’articolo di Karg su MS/TP spiega che i dispositivi slave MS/TP non detengono mai il token, quindi non possono rispondere autonomamente a Who-Is. Risponde per loro un router o uno slave proxy; in alternativa, il client li associa staticamente a un indirizzo configurato. La guida a BACnet/IP e MS/TP spiega il passaggio del token e i dispositivi slave.

Perché un dispositivo non compare

SintomoCausa probabile
Compaiono i dispositivi sulla subnet locale, ma non gli altriI broadcast si fermano ai router IP; servono BBMD o la registrazione come foreign device
Non compare alcun dispositivoUn firewall blocca UDP 47808, il client ascolta sull’interfaccia di rete sbagliata oppure usa un’altra porta UDP
Manca un solo dispositivoLa sua istanza è fuori dall’intervallo Who-Is, si trova su un bus MS/TP dietro un router con numero di rete errato oppure è uno slave MS/TP
Un dispositivo compare e scompare, oppure i valori passano da un impianto all’altroDue dispositivi condividono la stessa istanza
I dispositivi dietro due router vengono confusiDue reti condividono lo stesso numero di rete
Il rilevamento funziona, ma le letture scadonoIl dispositivo risponde ai broadcast ma non ai messaggi diretti: NAT, regola del firewall o messaggio più grande di quanto accetti

La guida all’instradamento e ai BBMD spiega come i broadcast raggiungono altre subnet.

Ping, rilevamento e lettura dimostrano cose diverse

Esegui le prove in quest’ordine e registrane i risultati:

ProvaCosa dimostra se riesce
Ping dell’indirizzo IPL’interfaccia di rete del dispositivo è raggiungibile. ICMP può essere bloccato, quindi un fallimento dimostra poco
Who-Is e I-AmIl dispositivo esegue BACnet su questa rete e ha l’istanza prevista
Lettura di Present_Value di un oggettoIl client può indirizzare direttamente il dispositivo e l’oggetto esiste
Aggiornamento dei valori nel tempoLe interrogazioni o le notifiche COV proseguono, con un timestamp recente per ogni punto

Un esito positivo in un passaggio non dimostra che riuscirà il successivo. Un dispositivo che risponde al ping potrebbe avere BACnet disattivato. Uno che risponde a Who-Is potrebbe rifiutare una richiesta ReadPropertyMultiple che non supporta.

Prima di collegare un nuovo client

Concorda questi punti con il responsabile del BMS:

  • la porta UDP e la subnet IP di ogni rete BACnet/IP;
  • i numeri di rete già in uso e il piano delle istanze dei dispositivi;
  • se ci sono BBMD, dove si trovano e se il nuovo client può registrarsi con uno di essi;
  • l’orario del rilevamento in un sito grande, perché un Who-Is globale provoca una raffica di risposte I-Am.

Rilevamento con Edge

Edge sul Gateway ZGW-20 è un client BACnet/IP che usa per impostazione predefinita la porta UDP 47808. Rileva i dispositivi con un broadcast sulla rete locale e identifica ciascuno con la sua istanza. Il suo test di connessione è un ping. Rilevamento, lettura di un punto e avanzamento regolare del timestamp sono i passaggi successivi della sequenza descritta sopra. Per i controller su altre subnet, la rete BACnet del sito deve fornire la gestione dei broadcast o l’instradamento.

Domande frequenti

Che cos’è un’istanza di dispositivo BACnet?

È il numero nell’identificatore dell’oggetto Device del dispositivo, da 0 a 4 194 302. Deve essere unico nell’intera internetwork BACnet del sito, perché i client trovano i dispositivi e stabiliscono un’associazione con essi tramite questo numero.

A cosa servono Who-Is e I-Am in BACnet?

Who-Is è un broadcast che chiede ai dispositivi di identificarsi, facoltativamente solo a quelli in un intervallo di istanze. Ogni dispositivo corrispondente risponde con I-Am, che contiene la sua istanza, la dimensione massima dei messaggi, il supporto della segmentazione e l’identificativo del produttore. Il client ricava l’indirizzo del dispositivo dalla risposta.

Perché non riesco a rilevare un dispositivo BACnet?

Tra le cause comuni: il dispositivo è su un’altra subnet IP senza BBMD; un firewall blocca UDP 47808; l’istanza è fuori dall’intervallo Who-Is; ci sono istanze duplicate; uno slave MS/TP non può rispondere ai broadcast; oppure il client usa l’interfaccia di rete sbagliata.

Che cos’è un numero di rete BACnet?

È un numero da 1 a 65 534 che identifica una rete BACnet del sito, per esempio una subnet IP utilizzata da BACnet oppure un bus MS/TP. I router lo usano per inoltrare i messaggi. Ogni rete del sito deve avere un numero diverso.