Komunikační protokol
BACnet J. Novák, V. Trnka
Úvod – historie, vlastnosti
Potřeba otevřeného standardu pro domovní automatizaci – komunikace zařízení od různých výrobců
Vyvíjen od r. 1987 v Nashville na zahaj. schůzi Standard Project Comitee
1995 – ASHRAE/ANSI Standard 135
2003 – ISO 16484-5
Hlavní důvody úspěchu:
Objektově orientovaný přístup k reprezentaci procesů a dat v zařízení Poskytuje standardní služby pro přístup k datům Poskytuje více fyzických rozhraní pro malé, střední a velké systémy
Výsledkem je zmenšení nákladů na údržbu a instalaci
Architektura
4 – vrstvá architektura
BACnet navržen pro více linkových/fyzických vrstev, dnes hlavně Ethernet
PTP (point-to-point) - modemy (V.32, V.42) a také přímé spojení přes EIA-232 - rychlost 9,6 kBit/s – 56 kBit/s
MS/TP - EIA-485 - STP LAN - 9,6 kBit/s – 76 kBit/s
ARCNET - token passing - 150 kBit/s na EIA-485 (STP) - až 7,5 Mbit/s na koax, optika
LONtalk - vyžaduje speciální sw a hw
Žádná konkrétní síťová topologie
Aplikační vrstva
Aplikační proces – funkcionalita systému, požadované zpracování informací pro aplikaci
Aplikační entita – část procesu vztahující se k BACnetu
BACnet Application Service Element (ASE) – sada funkcí a aplikačních služeb
BACnet User Element - uchování informace o kontextu transakce; čítače doby požadavku
Výměna informací mezi procesy = výměna abstraktních servisních primitiv
4 primitiva – žádost (request), indication, odpověď (response), potvrzení (confirm)
Informace v primitivech je přenášena použitím různých Protocol Data Units (PDU) x Service Data Units (SDU)
Označení:
CONF_SERV.request (indication, response, confirm) UNCONF_SERV.request; UNCONF_SERV.indication ERROR.request; ERROR.indication
Aplikační vrstva
Přístup aplikace k BACnet User Element přes API
Některé parametry API jsou přeneseny sítí přímo (adresa zařízení, kam má být service request poslán)
Ostatní tvoří aplikační servisní primitiva, která jsou předána od BACnet User Element k BACnet ASE
APDU – datová část síťového servisního primitiva, která je předána síťové vrstvě přes NSAP (Network Service Access Point)
Aplikační entita si s programem vyměňuje také interface control information (ICI) parametry přes API - Obsah ICI závisí na typu servisního primitiva - ICI parametry přijaté aplikační entitou obsahují informace pro nižší vrsvy, aby mohly sestavit své PDU - ICI parametry předané aplikační entitou programu obsahují informace získané z nížsích vrstev (PDU)
destination_address (DA) : adresa zařízení, které má dostat primitivum source_address (SA) : adresa zařízení, od kterého bylo primitivum posláno network_priority (NP) : 4 stupně data_expecting_reply (DER) : Boolean parametr indikuje, zda je pro službu posláno reply service primitivum
Aplikační vrstva
Potvrzované aplikační služby (Confirmed Application Services) založeny na komunikačním modelu klient-server
CONF_SERV.request,, CONF_SERV.indication, CONF_SERV.response,
CONF_SERV.confirm
Nepotvrzované aplikační služby
UNCONF_SERV.request, UNCONF_SERV.indication
Client-Server Relations
Síťová vrstva
Poskytuje prostředky, kterými jsou zprávy mezi sítěmi přenášeny (nezávisle na spoj.vrstvě – lok.sítě)
Směrování zpráv ke vzdálenému zařízení, vysílání na vzdálenou síť, nebo vysílání globálně na všechna zařízení na všech sítích
BACnet zařízení je unikátně označeno síťovým číslem a MAC adresou
Pro propojení dvou rozdílných BACnet LAN (např. Ethernet a ARCNET) se používají BACnet routery
Routery vytvoří a uchovávají tabulky automaticky pomocí síťových protokolových zpráv
Některé funkce síťové vrstvy podle OSI nejsou v BACnet potřebné - hledání cesty mezi zdrojem a cílem - segmentace a skládání zpráv
Síťová vrstva
N-UNITDATA.request ( destination_address, data, network_priority, data_expecting_reply )
N-UNITDATA.indication ( source_address, destination_address, data, network_priority, data_expecting_reply )
Parametr „data“ je network service data unit (NSDU) předáváný aplikační vrstvou a skládá se ze zakodovaného APDU
Po přijetí primitiva N-UNITDATA.request od aplikační vrstvy se síťová vrstva pokusí poslat NSDU
Po přijetí NSDU od rovnocenné síťové entity, síťová entita by měla buď 1. 2. 3.
Poslat NSDU do cílového místo přes přímo připojenou síť Poslat NSDU na další BACnet router na cestě k cíli Pokud cílová adresa odpovídá aplikační entitě ve stejné síti, vygeneruje N-UNITDATA.indication primitivum
Síťová vrstva
Síťová vrstva NPDU formát :
Control – indikuje přítomnost určitých PCI polí DNET – síťové číslo cíle DADR – adresa cíle v MAC vrstvě SNET – síťové číslo zdroje SADR – adresa zdroje v MAC vrstvě Hop Count – snižující se čítač, který zajistí, že zpráva není donekonečna posílána v kruhu
Message Type:
Who-Is-Router-To-Network – zjištění příštího routeru v cílové síti nebo (u routerů) pro vytvoření aktuální routovací tabulky
I-Am-Router-To-Network – indikuje síťová čísla sítí přístupných routeru vysílající zprávu
I-Could-Be-Router-To-Network – odpovídá na Who-Is-Router-To-Network, když odpovídající půl router má schopnost založit PTP spojení, které dosáhne do požadované sítě
Reject-Message-To-Network – důvod odmítnutí a síťové číslo, které je nasměrováno na uzel, kde vzniklo odmítnutí zprávy
Router-Busy-To-Network – redukce příjmu zpráv pro specifické či všechna DNET
Router-Available-To-Network – podobné jako 5.
Síťová vrstva
Initialize-Routing-Table – inicializace routovací tabulky nebo dotazu na obsah současné routovací tabulky
Initialize-Routing-Table-Ack – indikace, že routovací tabulka se změnila nebo byl dotaz na tabulku přes Initialize-Routing-Table
Establish-Connection-To-Network – instrukce k půl routeru, aby vytvořil PTP spojení k určené síti
Disconnect-Connection-To-Network – obdobně jako 9.
BACnet router - spojuje BACnet sítě - užívá protokolové zprávy síťové vrstvy pro správu routovacích tabulek - každé spojení sítí je skrze port
Routovací tabulka – obsahuje pro každý port
MAC adresu propojení portu ke své síti Síťové číslo přímo připojené sítě Seznam síťových čísel dosažitelných přes port spolu s MAC adresou dalšího routeru na cestě k další síti a “reachability status“ každé sítě
Zahajovací fáze – každý router vyšle na každý port zprávu I-Am-Router-To-Network, která obsahuje síťová čísla dosažitelných sítí, kromě sítě, na které se vysílá
Objektově orientovaná technologie
Objekty, vlastnosti (Properties), služby (Services)
Objekty = reprezentace dat na síti
Objekty mají požadovaná (required) i volitelná (optional) data (O,R,W)
Analog Input
Analog Output
Analog Value
Binary Input
Binary Output
Binary Value
Calendar
Command
Device
Event Enrollment
File
Group
Loop
Multi-state Input
Multi-state Output
Notification Class
Program
Schedule
Averaging
Multi-state value
Trend Log
Life Safety Point
Life Safety Zone
Accumulator
Pulse Converter
Event Log
Trend Log Multiple
Load Control
Structured -View
Access Door
Definováno 30 typů objektů:
Analog Input – vstup sensoru Analog Input – výstup regulátoru Binary Input – vstup spínače Binary Output – výstup relé Program – spustí/vypne program na zařízení Command – zapisuje sadu hodnot do skupiny vlastností objektů Schedule – definuje plánování operací Loop – přístup k regulační smyčce
Objektově orientovaná technologie - objekty
Objektově orientovaná technologie - vlastnosti
Analog Input - Object_Type – příslušnost do třídy objektů - Status_Flags – IN_ALARM, FAULT, OVERRIDDEN, OUT_OF_SERVICE
Objektově orientovaná technologie - služby
Služby – Komunikace mezi zařízeními (akce, události)
38 služeb, jediná Read-property musí být podporována všemi
PICS (Protocol Implementation Conformance Statement) – seznam vlastností, které dané zařízení podporuje (konformní třídy - 6)
Služby pro správu alarmů a událostí (Alarm and Event Services) - 3 mechanismy:
1.
Hlášení změny hodnot (COV) – klient se zapíše na COV serveru (stálo/dočasně) a dostává zprávy o změnách urč. odkaz. hodnoty na základě pevných kritérií
2.
Intrinsické hlášení – jeden či více zdrojů událostí/alarmů (Notification Class object)
3.
Algoritmické hlášení změny – jeden či více zdrojů událostí/alarmů (Event Enrollment object), 6 algoritmů
Služby pro přístup k souborům (File Acces Services) - každý soubor, který je přístupný přes služby, má mít souborový objekt v zařízení - atomické operace čtení a zápisu
COV mechanismus COV Client MS60 - Shell
File
Edit
Applications
Settings
O n
2 3 2
Out sit e: 29.5 C
2 2 .4 C
Date: 2.9.94 Time: 14:45
Help
2P 2 . 4
C
21.0C
0
Of f
75 %
User : Muller Level: 3
%
7 5
%
On
Unacknowledged alarms: 1 High priority alarms :3
2
1 Router 4
Router 1
3
4
2
COV Server
COV Client
3
COV Server
Objektově orientovaná technologie – služby
Služby pro přístup k objektu (Object Access Services) - 9 služeb
AddListElement RemoveListElement CreateObject – nová instance objektu DeleteObject – většina objektů chráněno ReadProperty ReadPropertyConditional – požadavek na obj. identifikátory a vlastnosti splňující kritéria ReadPropertyMultiple WriteProperty WritePropertyMultiple
Služby pro správu vzdáleného zařízení (Remote Device Management Services)
DeviceCommunicationControl – stop inicializaci a odpovědi na všechna APDU po určitý čas ConfirmedPrivateTransfer – spuštění proprietárních služeb na zařízení (mechanismus specifikace služeb) UnconfirmedPrivateTransfer ReinitializeDevice – cold start/warm start, většinou operátorem pro diagnostiku ConfirmedTextMessage – není broadcast/multicast služba UnconfirmedTextMessage TimeSynchronization Who-Has and I-Have Who-Is and I-Am
Objektově orientovaná technologie – služby Virtuální terminálové služby – založení spojení se serverem na jiném zařízení - 1. program se chová jako terminálový emulátor - 2. program - operátorské rozhraní - spojení označovány jako VT relace (session) - VT uživatel – klientský program a program serveru - služby poskytují:
Prostředky pro vytvoření spojení mezi VT uživateli Prostředky pro výběr mezi VT třídami Prostředky pro kontrolu integrity komunikace Prostředky pro ukončení VT relace jednostranně Prostředky pro výměnu virtuálních terminálových dat
Virtuální terminálový model - po vytvoření relace je výměna dat pomocí virtuálních terminálových front (VTQ) – FIFO - cílem je oddělit implementaci aplikačního procesu - 2 FIFO pro obousměrnou výměnu dat
Objektově orientovaná technologie – služby
Virtuální terminálové služby
VT-Open VT-Close VT-Data – výměna dat
Současný trend = webové služby
Integrace domovní automatizace s aplikacemi používající SOAP/XML technologie
Použití Microsoft.Net nebo Java
Zdroje
ANSI/ASHRAE Standard 135-1995
http://www.rtaautomation.com/bacnet/
Prezentace BACnet Basics René Quirighetti Siemens Switzerland Ltd., Building Technologies Group
Prezentace BACnet – Global standard for open building management solutions Christian Mueller Honeywell Building Solutions Germany
http://www.wikipedia.org/