# BACnet

BACnet is een datacommunicatieprotocol voor gebouwautomatiseringssystemen en staat voor Building Automation and Control Network. Het is een ASHRAE, ANSI en ISO gestandaardiseerd protocol. De formele standaard is ASHRAE/ANSI Standard 135 of ISO 16484-5. BACnet is de enige echte open standaard voor gebouwbeheersystemen die opgezet is door een consortium van eindgebruikers en fabrikanten van gebouwbeheersystemen.
De meer dan 500 pagina dikke protocolspecificatie is een gedetailleerde beschrijving over hoe een BACnet-systeem moet functioneren. Het beschrijft alle regels die nodig zijn om systemen met elkaar data te laten uitwisselen, hoe dit gedaan wordt, de communicatie mediums die gebruikt kunnen worden, de diensten die beschikbaar zijn en de informatie over hoe de data geïnterpreteerd moet worden. In het kort bevat het de basisregels voor verschillende systemen om open met elkaar te kunnen communiceren, onafhankelijk van de fabrikant.
BACnet is een volledige open en onafhankelijke standaard. Dit betekent dat er geen fabrikanten afhankelijk chipset of protocol gebruikt wordt. Dit is het grote verschil tussen andere protocollen, zoals LonWorks, die een fabrikanten afhankelijke Neuron-chip nodig heeft in elke regelaar. Extra informatie betreffende het vergelijk tussen BACnet en LonWorks is te vinden in een online white paper.

## Definitie

BACnet, een ASHRAE-protocol, was speciaal ontworpen om aan de communicatiebehoefte te voldoen binnen gebouwbeheer en regelapplicaties zoals verwarming-, ventilatie-, airconditioning-, verlichting-, toegangscontrole- en branddetectie-systemen en de daarbij behorende apparatuur. Het BACnet-protocol beschrijft een mechanisme waarmee gecomputeriseerde apparaten informatie met elkaar kunnen uitwisselen, ongeacht de specifieke functie die het apparaat binnen het gebouw vervult. Hierdoor kan het BACnet-protocol gebruikt worden voor bediening en managementsoftware, complexe en minder complexe regelaars, applicatie specifieke regelaars en sensor en actuator.

## Geschiedenis

De ontwikkeling van het BACnet-protocol begon in juni 1987, tijdens een openbare bijeenkomst van de ASHRAE Standaardisatie Project comité (Standard Project Comitee (SPC)) in Nashville, Tennessee (VS). H. Michael Newman, de eerste voorzitter van dit comité, leidde deze bijeenkomst. Deze eerste bijeenkomst leverde een lijst op met wensen voor een goed protocol, waaruit het BACnet-protocol uiteindelijke ontstaan is: interoperabiliteit, efficiëntie, weinig overhead, de hoogste gemene deler, gebruik van standaard netwerken, OSI gelaagde netwerkopbouw, flexibel, uitbreidbaar, kosten effectief, betrouwbare overdracht, toepasbaar in real-time applicaties, maximale eenvoud, mogelijkheid tot prioritering, gelijke netwerktoegang en stabiel bij realistische belastingen.
Het comité werd opgedeeld in werkgroepen om eenvoudiger consensus te bereiken en de taken te verdelen bij het maken van de standaard. De werkgroepen richtten zich op specifieke gebieden en leverde informatie en aanbevelingen aan het hoofd comité. De eerste drie werkgroepen waren ‘Data Type and Attribute’, ‘Primitive Data format’ en ‘Application Services’.
BACnet werd een ASHRAE/ANSI-standaard 135 in 1995 en een ISO-standaard 16484-5 in 2003. De methode voor het testen van de conformiteit aan de BACnet standaard werd gepubliceerd in 2003 als de ASHRAE standaard 135.1 en is een ISO standaard 16484-6 in 2004 geworden. Aan de BACnet-standaard wordt nog continu gewerkt en onderhoud gepleegd door de ASHRAE SSPC 135 (Standing Standard Project Committee). De verschillende werkgroepen binnen de SSPC 135 definiëren toevoegingen op het BACnet-protocol, via zogenaamde addenda. De bestaande standaard + een aantal addenda leidt tot de definitie van een nieuwe standaard. De laatste standaard is die van 2008.
BACnet had een bijna directe impact op de HVAC gebouwautomatisering, die in 1996, in Amerika, werd gedomineerd door Siemens Building Technologies. Hoewel verschillende fabrikanten BACnet apparaten ontwikkeld hadden, was het een kleiner bedrijf, Alerton, dat in 1996 aankondigde een complete productlijn voor de HVAC op de markt te brengen, van bediening en managementpakket tot kleine VAV regelaars. Automated logic en Delta Controls volgden al snel, andere fabrikanten die inmiddels een volledige productlijn op BACnet hebben, zijn Contemporary Controls Ltd, Distech Controls, Johnson Controls Inc., Kieback&Peter, DIGICONTROL Benelux, KMC Controls, Priva, Reliable Controls, SAIA, Sauter, Schneider Electric, Siemens Building Technologies, TAC, Teletrol Systems, Webeasy en LOYTEC.
H. Michael (Mike) Newman, hoofd van de computersectie voor Utiliteit en Energie management aan de universiteit van Cornell, was de voorzitter van het BACnet-comité tot juni 2000, en werd na 13 jaar opgevolgd door Steven (Steve) Bushby van NIST (National Institute of Standards and Technology). Tijdens de 4-jarige ambtstermijn van Steve Bushby als voorzitter van de BACnet-standaard werd de standaard twee keer opnieuw uitgebracht, in 2001 en 2004, telkens met nieuwe toevoegingen. De in 2001 uitgebrachte standaard bracht onder andere een extensie voor ondersteuning van brandbeveiligingssystemen. In juni 2004, 17 jaar na de eerste BACnet-bijeenkomst in Nashville, begon William (Bill) Swan, ook bekend als BACnet Bill, van Alerton aan zijn termijn als voorzitter van de BACnet-standaard. Tijdens zijn termijn werd het aantal werkgroepen uitgebreid naar 11, met aandachtsgebieden als verlichting, toegangscontrole, energie en utiliteit integratie, webservices en draadloze communicatie. Op dit moment wordt het voorzitterschap gevoerd door David (Dave) Robin van Automated Logic.
In januari 2006 werden de BMA (BACnet Manufacturers Association) en de BIG-NA (BACnet Interest Group of North America) samengevoegd tot één nieuwe organisatie BACnet International genaamd. BACnet International is een breed georiënteerde organisatie van leden die het succesvol gebruik van BACnet binnen de gebouwautomatisering aanmoedigt door, interoperabiliteit tests, opleidingstraject en promotie activiteiten. De BACnet international bestaat uit leden van fabrikanten, ontwikkelaars, system integrators, adviseurs, in bedrijfstellers en onderhoudsmonteurs voor gebouwbeheersystemen die BACnet gebruiken. Binnen Europa bestaat een gelijksoortige organisatie de BIG-EU (BACnet Interest Group Europe) genaamd. Samen met de Amerikaanse organisatie zijn ze de meeste actieve organisaties op het gebied van BACnet

## Het Protocol

Het BACnet-protocol definieert een aantal standaard diensten waarmee de communicatie tussen gebouwbeheersystemen kan worden gerealiseerd. Het protocol ondersteunt diensten als ‘Who-Is’, ‘I-Am’, ‘Who-Has’, ‘I-Have’, die gebruikt worden om apparaten en data te kunnen ontdekken op een netwerk. Diensten als ‘Read-Property’ en ‘Write-Property’ worden gebruikt om data met elkaar te delen.
Daarnaast definieert het BACnet protocol een aantal standaard Object (Data structuren) die met de diensten gebruikt kunnen worden, zoals ‘Analog Input’, ‘Analog Output’, ‘Analog Value’, ‘Binary Input’, ‘Binary Output’, ‘Binary Value’, ‘Multi-State Input’, ‘Multi-State Output’, ‘Calendar’, ‘Event-Enrollment’, ‘File’, ‘Notification-Class’, ‘Group’, ‘Loop’, ‘Program’, ‘Schedule’, ‘Command’, en ‘Device’.
Het BACnet-protocol definieert ook een aantal standaard datalink lagen en fysieke lagen, zoals ARCNET, Ethernet, BACnet/IP, Point-To-Point over RS-232, Master-Slave/Token-Passing over RS-485, en LonTalk.

## De ontwikkeling van BACnet

Al sinds de tijd dat gebouwbeheersystemen populair begonnen te worden, is de vraag naar open systemen groter en groter geworden, om bij aanbestedingen concurrerende prijzen te kunnen krijgen en niet gebonden te zijn aan één fabrikant. Consensus en verandering in houding van de industrie moest hiervoor bereikt worden.
Meestal werd de oplossingen om interoperabiliteit te bereiken, gerealiseerd door het leveren van eigen protocol gateways of omzettingen. Bijvoorbeeld, één fabrikant heeft een oplossingen gevonden om de data te kunnen lezen van een andere fabrikant en realiseert daarmee een apparaat waarmee de twee systemen met elkaar kunnen communiceren. Soms was deze ontwikkeling een samenwerking tussen twee fabrikanten, maar vaak ook niet. Het eindresultaat was echter altijd dat één fabrikant een oplossing kon bieden voor een ander bediening en management pakket of regelaar van een betreffende fabrikant.
Deze manier van aanpak heeft specifieke beperkingen. Als eerste zijn gateways dure en moeilijk te ontwikkelen apparaten, zelfs indien de andere fabrikant meewerkt, maar zeker als deze niet meewerkt. Ten tweede, dit soort apparaten heeft vaak een heel korte levenscyclus. Systemen wijzigen of volgen elkaar snel op en een gateway moet dan vaak herontwikkeling worden of een upgrade ondergaan, om het geheel werkend te houden. Ten derde zijn dit soort systemen vaak beperkt in mogelijkheden ten aan zien van wat een volledig project kan geleverd door één fabrikant. Naadloze integratie met volledig ondersteuning van mogelijkheden was vaak niet te realiseren. Ondersteuning en het up-to-date houden van documentatie is bijna onmogelijk om bij te houden onder deze omstandigheden. Voordat BACnet er was, was er voor deze industrie geen standaard waarmee een fabrikant een systeem kon ontwikkelen, waarin beschreven stond hoe er gecommuniceerd moest worden, inclusief de opbouw van berichten, de communicatie, de communicatie mediums en the processen die nodig zijn om systemen met elkaar te kunnen laten samenwerken.
Andere mogelijke oplossingen dan BACnet ontstonden ook. Één daarvan is LonWorks, wat oorspronkelijk gebaseerd is op een fabrikant specifieke communicatie chip geproduceerd door Echelon Corporation. LonWorks levert een methode voor communicatie tussen apparaten, zolang deze apparaten maar zijn uitgerust met een interface welke conform EN/14908.x ondersteund. Lonworks is tegenwoordig een ANSI, IEEE, EN en ISO standaard en voldoet aan alle kenmerken van een open standaard.
De industrie had een leider nodig die de stap zou zetten voor een standaard. In 1987 werd het BACnet comité opgericht en een start gemaakt met een standaard die door de industrie zou worden geaccepteerd. Er waren verschillende doelen die gehaald moesten worden. Primaire moest de standaard een technische toon hebben en echt fabrikant onafhankelijk zijn. Maar het moest ook nog eenvoudig te implementeren zijn. Dit waren geen makkelijke doelen om te halen, maar uiteindelijk in juni 1995, na jaren van hard werk en herzieningen, nam ASHRAE de BACnet standaard als nieuwe standaard aan voor deze industrie.

## Wat doet BACnet?

BACnet maakt een einde aan de frustratie van fabrikant gebonden systemen en verhoogt de concurrentie en de keuze mogelijkheid van de eindgebruiker. De visie van BACnet door de jaren heen is om volledige interoperabiliteit te bewerkstelligen tussen verschillende fabrikanten van gebouwbeheersystemen. Om dit doel te bereiken heeft het BACnet comité een standaard gedefinieerd voor BACnet data, beheer en communicatie functies en de keuze te maken voor standaard bestaande netwerktypen (LAN, Local Area Networks) waarover de BACnet berichten verstuurd kunnen worden.
Deze verscheidenheid aan netwerktypen levert een oplossing voor willekeurig project. In het kort worden de volgende netwerktypen ondersteund:

### PTP (point-to-point)

PTP is uniek voor BACnet en levert de mogelijkheid om netwerken te bouwen via modemverbindingen en telefoonlijnen. PTP beschikt over de moderne modem protocollen V.32bis en V.42 en levert ook de mogelijkheid voor een directe kabel verbinding volgens RS-232 standaard. De communicatie snelheid loopt van 9.6 kbit/s tot 56.0 kbit/s

### MS/TP (master slave/token passing)

MS/TP is ook uniek voor BACnet en is geïmplementeerd volgens de RS-485 signaal standaard. Deze afgeschermde twisted-pair kabel communiceert met snelheden van 9.6 kbit/s tot 76.0 kbit/s. Dit type netwerk kenmerkt zich door lage kosten en is juist goed geschikt voor communicatie tussen kleinere regelaars.

### ARCNET

(ANSI/ATA 878.1) ARCNET® is een token bus standaard en apparaten gebruiken hiervoor vaak een enkelvoudige chip waarmee de netwerk communicatie wordt afgehandeld. ARCNET kan over verschillende media gebruikt worden met snelheden van 150 kbit/s op RS-485 tot 7.5 Mbit/s over coaxkabel of glasvezel. Een typisch ARCNET netwerk communiceert op 2,5 Mbit/s over twisted pair

### Ethernet (ISO 8802-3)

Ethernet is een populaire internationale LAN standaard, die ontwikkeld is voor een brede toepassing in commerciële applicaties. Ethernet is snel en communiceert met snelheden van 10Mbit/s tot 10Gbit/s op media als afgeschermde twisted pair, coax-kabel of glasvezel. Net als ARCNET, heeft ook Ethernet een speciale chip nodig die de netwerk communicatie afhandelt.

## BACnet methode voor bericht uitwisseling

Bij de definitie van het BACnet communicatie formaat, heeft het BACnet comité gekozen voor een flexibele object georiënteerd aanpak. Alle data in een BACnet systeem wordt beschreven door middel van objecten, eigenschappen en diensten. Deze standaard methode voor data representatie en acties is waardoor het mogelijk is om BACnet apparaten van verschillende fabrikanten met elkaar data te laten uitwisselen. Het begrijpen van de object georiënteerde aanpak en beschrijving is essentieel om BACnet te begrijpen.

### Objects

Alle informatie binnen een BACnet systeem wordt gerepresenteerd in termen van objecten. Elk object heeft een identificatie, bijvoorbeeld AI-1, waarmee het mogelijk is voor een BACnet systeem om ze te identificeren. Een object mag informatie representeren van een enkele fysieke ingang of uitgang. De informatie van zo'n enkele in- of uitgang staat binnen de HVAC markt bekend als een datapunt. Een object mag ook informatie representeren van logische groepen van datapunten die een bepaalde functie vervullen, zoals een instelling (Setpoint). Het verschil tussen een volledig object en een datapunt is, dat een datapunt meestal maar één waarde bevat terwijl een object bestaat uit meerdere vastgelegde eigenschappen (properties), waarvan de huidige waarde (Present Value) slecht één eigenschap is. Door middel van deze eigenschappen kan de status bekeken worden of kan er bediend worden.
Om het verschil nog beter te verduidelijken, vergelijk een ruimte temperatuur als een datapunt met een analoog ingangsobject (AI, Analog Input) die de ruimte temperatuur weergeeft in BACnet. Beide zijn gerelateerd aan de ruimtetemperatuur gemeten via een fysieke ingang. Wanneer je het datapunt opvraagt zul je alleen de informatie krijgen van de ruimtetemperatuurmeting, bijvoorbeeld 22. Bij een AI object wordt de ruimtetemperatuur echter ook weergegeven als 22, het grote verschil is echter dat dit alleen de waarde is van de property Present Value. De overige properties geven nog meer informatie, bijvoorbeeld dat de waarde gemeten is in °C, de Device Type property geeft aan dat het gemeten is met een 10k NTC, de omschrijving (Description) geeft aan dat het gaat om de ruimtetemperatuur, etc. Zoals je kunt zien is een AI object van veel meer waarde dan slechts dat ene datapunt. Alle objecten in BACnet hebben verplichte eigenschappen en optionele eigenschappen.

### Properties

Zoals in het bovenstaande stuk over objecten al beschreven staat worden objecten gevisualiseerd en bediend door middel van properties. BACnet specificeert inmiddels meer dan 200 properties voor verschillende objecten. Drie van deze properties, Object-identifier, Object-name, en Object-type moeten in ieder object aanwezig zijn. BACnet kan ook specificeren dat bepaalde andere properties aanwezig moeten zijn binnen een object. Het object type en device type bepalen welke properties in een object aanwezig moeten zijn. Sommige properties kunnen schrijfbaar zijn, andere kunnen alleen gelezen worden.

### Services

Wanneer een property gelezen of beschreven wordt, dan is deze actie beter bekend als service. Services zijn de diensten die het mogelijk maakt om van een BACnet apparaat informatie op te vragen of om een apparaat te bedienen (door de objecten en properties uiteraard) of om een apparaat te laten weten dat er iets gebeurd is. In totaal zijn er 39 verschillende services in de BACnet standaard gedefinieerd.
Als een system integrator of eindgebruiker hoef je niet te weten hoe zo’n service uitgevoerd wordt of hoe het proces van de verwerking van services is, dit is transparant en geautomatiseerd. Als adviseur of system integrator moet je weten welke diensten (services) en objecten er ondersteund worden door een apparaat. Deze informatie is terug te vinden in de PICS protocol implementation conformance statement (PICS).

## PICS

Omdat niet elk type apparaten hetzelfde niveau van functionaliteit hoeft te hebben, is dit binnen de BACnet standaard gecategoriseerd door middel van Device Profiles en BACnet Interoperability Building Blocks (BIBB’s). In de 1995 standaard was dit de zogeheten Conformance Class, deze is in de BACnet standaard van 2001 vervangen. Hiermee wordt beschreven welke functionaliteit, groepen van services, en objecten ondersteund worden. BACnet verplicht de fabrikant deze informatie te beschrijven in een protocol implementation conformance statement (PICS) document en die publiekelijk toegankelijk te maken. Het document is eigenlijk een opsomming van welke services het apparaat kan uitvoeren of initiëren en over welke objecten het kan beschikken. Door het vergelijken van de PICS van een apparaat met de project eisen of met een apparaat van een andere fabrikant, kan bepaald worden in hoeverre er kan worden samengewerkt.

### BIBB’s

BACnet Interoperability Building Blocks (BIBB’s) zijn een verzameling van één of meer BACnet services. Deze services zijn voorzien van de term A of B, wat aangeeft dat een apparaat een service kan initiëren (cliënt) of de service kan uitvoeren (server). Als één apparaat een bepaalde BIBB kan initiëren en een ander apparaat kan dezelfde BIBB uitvoeren, kunnen de twee apparaten met elkaar samenwerken. De BIBB’s zijn ondergebracht in 5 categorieën, Data-Sharing, Alarm & Events, Scheduling, Trending, Device & Network Management.

### Device Profiles

Binnen de BACnet standaard wordt onderscheid gemaakt in zes type BACnet apparaten. Indien een apparaat alle verplichte BACnet diensten ondersteund voor een bepaalde categorie, mag het apparaat die categorie vermelden in het PICS document. Een apparaat mag meer ondersteunen dan wat er geëist wordt voor een bepaalde categorie. De verschillende categorieën die de BACnet standaard definiëren zijn, BACnet Operator Workstation, BACnet Building Controller, BACnet Advanced Application Controller, BACnet Application Specific Controller, BACnet Smart Actuator, and BACnet Smart Sensor.

## Werkgroepen

* Internet Protocol
* Lighting Applications
* MS/TP
* Objects and Services
* Utility Integration
* XML
* Testing and Interoperability