Protokol BACnet

Protokol BACnet (Building Automation Control Network) vznikl jako standard pro komunikaci mezi zařízeními starající se o automatizaci budov. Jeho koncept cílí na snadnou pochopitelnost, značnou robustnost a možnost implementace v jednoduchých a tedy levných zařízeních. Vývoj začal již v osmdesátých letech, ale plné ISO certifikace se dočkal až v roce 2003 pod číslem 16484-5 s poslední aktualizací v roce 2017.

Specifikace protokolu se nejvíce věnuje samotné výměně dat a definuje přes jaká fyzická rozhraní komunikace může probíhat. K dispozici je mimo jiné BACnet/IP pro síťovou komunikaci, BACnet MS/TP pro RS485 ale i BACnet/Zigbee pro úsporné bezdrátové sítě typu “mesh”.

Stejně jako oborově nejbližší protokol Modbus i BACnet funguje v režimu master/slave. Jedno (či více) master zařízení iniciuje komunikaci se slave zařízeními a vyčítá nebo zapisuje do nich hodnoty. Zajímavé je, že zařízení může být zároveň master i slave a může tak propojit komunikaci mezi různými fyzickými rozhraními. Efektivně se tak bude chovat jako router a přeposílat komunikaci např. mezi BACnet/IP a BACnet MS/TP.

Stěžejním prvkem BACnetu je způsob výměny informací. Z protokolu Modbus jsme zvyklí, že musíme předem znát přesnou definici zařízení se kterým budeme komunikovat. BACnet nám umožňuje si neznámé zařízení “osahat” a zjistit, jaké objekty a vlastnosti nám jsou dostupné. Právě “objekt” (angl. object) je jeden ze základních pojmů, které budeme s protokolem BACnet používat.

Každé BACnet zařízení sdílí informace pomocí objektů, což je definice podobná datovému bodu. Objekt tedy reprezentuje např. konkrétní vstup nebo výstup, provozní hodnotu zařízení apod. Každý objekt má své “vlastnosti” (angl. properties), což jsou skutečné hodnoty daného objektu. Abychom měli práci s neznámým zařízením jednodušší, definuje standard seznam vlastností, které každý objekt musí implementovat. Jsou jím např. název vlastnosti, její jednoznačný číselný identifikátor a její aktuální hodnota. Dalšími vlastnostmi mohou být název jednotky ve které je aktuální hodnota, její mezní hodnoty apod. Těchto vlastností je definováno více jak 500 a další jsou ponechané jako volně definovatelné pro výrobce zařízení.

Z Modbusu jsme zvyklí na komunikaci pomocí funkcí pro vyčítání a zapisování dat do registrů a coilů. BACnet tyto funkce pojmenovává službami (angl. services) a definuje jich přes 30. Služeb, které každé zařízení musí podporovat a se kterými přijdete nejčastěji do styku je ale jenom pár. Jsou to služby pro hledání zařízení na síti (služba Who-is), zjištování jeho objektů (služba Who-has) a služby pro vyčítání a zapisování hodnot vlastností (Read-property a Write-property).

Instalačním technikům je ale většina definic důkladně skryta a umožňuje tak soustředit se na to nejdůležitější - uvedení zařízení do provozu. BACnet zařízení lze jednoduše přidávat a vyměňovat a protokol dává záruku, že zařízení různých výrobců spolu bude fungovat.