BACnet
Protokol BACnet
Protokol BACnet (Building Automation and Control Networks) je implementácia štandardu ANSI/ASHRAE 135-2001.
Implementácia bola testovaná na nasledovných zariadeniach:
Siemens
Desigo PXM20 (ovládacia jednotka, LON interface, BACnet over LON)
Desigo PXC22 (riadiaca stanica, LON interface, BACnet over LON)
Desigo PXC22-E.D (riadiaca stanica, Ethernet interface, BACnet/IP)
Desigo PXG80-N (BACnet router, Ethernet interface, LON interface, BACnet/IP, BACnet over LON)
Desigo PXC36-E.D (riadiaca stanica, Ethernet interface, BACnet/IP) - testovaná bola časová synchronizácia
Delta Controls
DSC-1212E (System controller, Ethernet interface, BACnet/IP)
DAC-633 (Application controller, MS/TP interface pripojené k DSC-1212E, ktorý funguje ako BACnet router)
DAC-633 (Application controller, MS/TP interface pripojené k Moxa 5250 serial/ethernet prevodníku a nakomunikované priamo ako BACnet MS/TP zariadenie v UDP móde)
DAC-1146 - (Application controller, MS/TP interface pripojené k DSC-1212E, ktorý funguje ako BACnet router)
Sauter
EYK220F001 (automatizačná stanica, Ethernet interface, BACnet/IP)
EYR203F001 (univerzálny regulátor, pripojený k EYK220F001)
EYR207F001 (univerzálny regulátor, pripojený k EYK220F001)
York
BACnet MS/TP MicroGateway (komunikačná karta pre chladiče York, RS485 rozhranie, BACnet MS/TP)
SE-Elektronic GmbH:
E-DDC3.1 (DDC automatizačná stanica, Ethernet interface, BACnet/IP)
Klimasoft
BACnet/Mbus prevodník MBG-MSTP: prevodník z BACnet na Mbus protokol(RS485 interface, BACnet MS/TP)
Vlastnosti aktuálnej verzie sú:
komunikácia v sieťach Ethernet (BACnet/IP) a LONTalk
obmedzená podpora MS/TP siete (master-slave token-passing na RS-485): bez automatického vyhľadávania Master staníc
podpora BACnet routra (prepojenie medzi BACnet/IP a LONTalk sieťami)
čítanie a zápis jednoduchých hodnôt (binárne, celočíselné, reálne, reťazce, dátum, čas atď.) aj ľubovoľných ASN sekvencií
podpora pollingového spôsobu čítania dát (správy ReadProperty-Request a ReadPropertyMultiple-Request)
podpora zmenového spôsobu čítania dát (voliteľná registrácia pomocou správ SubscribeCOV-Request, resp. SubscribeCOVProperty-Request a následné spracovanie ConfirmedCOVNotification-Request a UnconfirmedCOVNotification-Request)
zápis hodnôt správou WriteProperty-Request
dynamická zmena adresy meraného bodu pomocou TELL príkazu SETPTADDR (na načítanie hodnôt objektov typu schedule)
práca s objektmi typu schedule (časové plány)
Protokol BACnet sa pozerá na všetkých účastníkov komunikácie ako na sieťové zariadenia (network devices). Každé sieťové zariadenie obsahuje aspoň jeden (väčšinou práve jeden) objekt typu Device (jeho Object Identifier musí byť unikátny v celej sieti). Tento objekt obsahuje ďalšie objekty zadefinovaných typov (Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Calendar, Command, Event, Group, File atď.) Zisťovanie objektov - viď popis Request type Who-Is a Who-Has.
Jednotlivé objekty majú vlastnosti (properties), pričom norma definuje pre jednotlivé typy objektov povinné a voliteľné vlastnosti a navyše každý výrobca BACnet zariadení môže implementovať ďalšie rozširujúce vlastnosti podľa potreby.
Správy protokolu BACnet sa týkajú manipulácie s objektmi a ich vlastnosťami. Správy sú definované pomocou ASN.1 (Abstract Syntax Notation version 1) a zakódované pomocou zjednodušenej verzie BER (Basic Encoding Rules - základné kódovanie ASN.1 správ).
Definícia správ obsahuje okrem pevne definovaných položiek aj položky typu 'Abstract Syntax & Notation', čo znamená, že na danom mieste správy môže byť ľubovoľná sekvencia (resp. 'strom'), ktorej význam určuje implementátor. Použitie BER umožňuje parsovanie aj takejto správy s vopred neznámymi položkami. BER definuje dva základné typy položiek (tagov): aplikačné a kontextové. Aplikačné tagy sú preddefinované:
Null - prázdna hodnota
Boolean - hodnota typu áno/nie
Unsigned - kladné celé číslo
Signed - celé číslo
Real - 4-bajtové reálne číslo
Double- 8-bajtové reálne číslo
Octet String - postupnosť znakov
Character String - znaková sada + textový reťazec
Bit String - postupnosť bitov
Enumerated Value - vymenovaný typ
Date - dátum
Time - čas
Object Identifier - identifikátor objektu (32-bitové číslo, skladá sa z 10-bitového čísla typu-Object Type a 22-bitového čísla inštancie-Instance)
Kontextové tagy sú závislé na kontexte (na mieste v správe). Bez znalosti kontextu (popisu správy, ktorá sa parsuje) je možné zistiť, že na konkrétnom mieste sa nachádza kontextový tag č. 5 s dĺžkou 4 bajty, ale je potrebná dodatočná informácia, či je to Unsigned, Signed, Real, Bitstring alebo iný typ hodnoty.
Okrem jednoduchých aplikačných a kontextových tagov môžu byť vlastnosti aj komplexné:
Sequence - postupnosť, ktorá sa skladá z ďalších vlastností (jednoduchých aj komplexných), tieto sú buď povinné alebo voliteľné. Príklad:
Sequence of - postupnosť N-tíc vlastností
Choice - jedna z N možností
O protokole BACnet si môžete prečítať aj blogy:
Komunikácia - BACnet protokol
Komunikácia - BACnet protokol, časť 2
Komunikácia - BACnet protokol, časť 3