BACnet™
É un protocollo di Comunicazione standard per l’automazione e controllo degli impianti, sviluppato dalla società ASHRAE (American Society of Heating, Refrigerating and Air-Conditioning Engineers), ed è acronimo di Building Automation and Control networks.
BACnet comincia a svilupparsi nel 1987, ma occorre aspettare fino al 1995 per vederlo pubblicato. L’anno successivo si forma il Comitato del progetto SSPC 135 che lo condurrà fino al 2003 quando ottiene lo standard ISO 16484-5 e ISO 16484-6.
Feature
Cenni tecnici
BACnet non definisce né la configurazione interna né le strutture dati né tanto meno la logica di controllo sui dispositivi che lo usano. Il focus è spostato sull’informazione che transita sulla rete astraendo dai dettagli implementativi; il tutto si realizza attraverso l’uso di oggetti standard. Il mapping tra oggetti e i dati, o i processi sottostanti, sono lasciati a carico dei produttori. Un ricco insieme di servizi è definito dallo standard, ma sono contemplate anche una serie di specifiche affinché possa essere implementato senza ambiguità.
I servizi includono “Who-Is”, “I-Am”, “Who-Has”, “I-Have”, i quali vengono utilizzati per il rilevamento di dispositivi e oggetti. Per la condivisione dei dati vengono utilizzati servizi come “Read-Property” e “Write-Property”. A partire da ANSI/ASHRAE 135-2016 il protocollo BACnet definisce 60 tipi di oggetti su cui agiscono i servizi. BACnet fornisce anche un modello per trasferire dati:
- valori di binary input e output;
- valori presi dall’Hardware come analog input e output;
- informazioni come allarmi ed eventi;
- quelli contenuti all’interno di un file, o ricavati dalla logica di controllo.
Gestisce fino a 4.194.305 dispositivi
e poiché ogni dispositivo va identificato con un address unico quelli disponibili andranno da 0 a 4.194.304. Il generico dispositivo BACnet viene modellato per essere visto come un contenitore di oggetti.
Lo standard richiede un solo tipo di oggetto
“device”, il quale ha il compito di mantenere nelle sue proprietà tutte quelle informazioni che caratterizzano il dispositivo.
Lo stato dell’internetwork BACnet è dinamico
in quanto i dispositivi possono essere rintracciati “a caldo”, per cui la rete BACnet riesce a gestire autonomamente i cambi di stato di un dispositivo.
Il livello fisico supporta
i più comuni mezzi fisici di trasmissione, dall’uso della comunicazione punto-punto, alle reti LON per arrivare alla rete Ethernet su TCP/IP, che assicura una completa connettività anche da e verso il mondo esterno.
Properties
Gli oggetti
Dato che il design di un dispositivo è soggettivo, BACnet definisce una collezione di strutture dati astratte chiamate oggetti a cui ogni produttore si riferisce. Un oggetto è una collezione di proprietà che rappresentano i vari aspetti hardware, software e operazionali tipici di quel dispositivo.
Attraverso gli oggetti, BACnet fornisce un mezzo di identificazione e di accesso alle informazioni senza richiedere conoscenze di dettaglio sulla progettazione interna del dispositivo. All’interno dello standard sono definite le seguenti tipologie di oggetti:
Oggetto | Modalità d'uso |
Analog Input | Sensor input, mostra il valore registrato da un generico sensore. |
Analog Output | Control output, raccoglie dei dati che l'utente deve inserire. |
Analog Value | Un Setpoint o altro parametro del sistema di controllo analogico. |
Binary Input | Switch input in formato binario (i valori possibili sono (1|0). |
Binary Output | Per trasmettere dei valori binari in output. |
Binary Value | Parametro del sistema di controllo in Binario (digitale). |
Calendar | Denisce una lista di date, come le ferie o eventi speciali, per lo scheduling. |
Command | Per scrivere valori multipli su multipli oggetti in molteplici dispositivi che dovranno adempiere uno specico scopo. Per esempio per passare da una modalità giorno a una modalità notte, o modalità emergenza (dove in generale possono essere coinvolti più entità). |
Device | Le Properties di questo oggetto mantengono informazioni come - quali oggetti e servizi il dispositivo supporta, ma anche informazioni specifiche del dispositivo come il produttore o la revisione del firmware ecc. . . Questo oggetto è sempre presente in un'unica istanza all'interno di un dispositivo BACnet. |
Event Enrollment | Descrive un evento che può essere una condizione di errore (per es: l'Input è out of range) o un allarme che altri dispositivi sanno riconoscere. Può dire direttamente a un dispositivo di usare un oggetto della Notification Class o dirlo a molteplici dispositivi. |
File | Permette l'accesso in lettura e in scrittura ai dati del file supportati dal dispositivo. |
Group | Fornisce l'accesso a multiple properties o a multipli oggetti in una singola operazione di lettura. |
Loop | Fornisce un accesso standardizzato ai "control loop". |
Multi-state Input | Rappresenta lo status di un processo multi-status. Per esempio può modellare lo stato di un refrigeratore che può essere in stato On, Off o nel ciclo di sbrinamento. |
Multi-state Output | Rappresenta lo stato desiderato di un processo multistatus (Per esempio il refrigeratore è in fase di raffreddamento, vorrebbe essere abilitato il passaggio alla fase di sbrinamento). |
Notication Class | Contiene una lista di dispositivi che devono essere informati qualora un oggetto di Event Enrollment stabilisce che è necessario spedire un warning o un messaggio di allarme. |
Program | Dato un programma eseguibile nel dispositivo, con questo oggetto è possibile conoscere lo stato di avanzamento. Inoltre, permette dall'esterno la modifica di tale stato di avanzamento. Per esempio si può decidere di mandare in esecuzione, stoppare, caricare o scaricare il programma. |
Schedule | Definisce uno scheduling settimanale di operazioni (realizzate scrivendo a una lista specifica di oggetti con eccezioni come le ferie. Può usare un oggetto Calendar per le eccezioni). |
Le proprietà
Lo standard BACnet identifica 123 Properties che possono essere contenute all’interno degli Oggetti. A riguardo la specifica definisce i seguenti vincoli:
- ciascun tipo di Oggetto ha associato un sottoinsieme di Properties definito dalle specifiche;
- l’identificativo di una Property caratterizza il valore contenuto all’interno d’essa;
- alcune Properties devono essere presenti qualunque sia il tipo di Oggetto, altre Properties sono invece opzionali;
- le Properties sono tutte leggibili, opzionalmente anche scrivibili;
- è possibile definire nuove Properties proprietarie, ma è onere del produttore stabilirne le modalità di accesso.
I servizi
Se gli oggetti esprimono la rappresentazione astratta della porzione di dati del dispositivo BACnet che dovrà essere “visibile dalla rete”, i servizi sono il mezzo attraverso cui un dispositivo BACnet:
- acquisisce quelle informazioni “visibili dalla rete” da un altro dispositivo;
- richiede ad un altro dispositivo l’esecuzione di qualche azione;
- annuncia a uno o a più dispositivi che qualche evento è avvenuto.