Академический Документы
Профессиональный Документы
Культура Документы
org/wiki/BACnet
BACnet
Le BACnet est un protocole spcifi par l'organisation ASHRAE (association de constructeurs et
d'utilisateurs dans le domaine du chauffage, de la ventilation et de la climatisation (CVC ou HVAC)).
1
La spcification de ce protocole est devenue un standard international normalis par l'ANSI et l'ISO.
Sommaire
1 Description
2 Architecture rseau de BACnet
2.1 Topologies des rseaux
2.2 Utilisation sur rseau IP
3 Fonctionnement de la couche application de BACnet
3.1 Les objets de BACnet
4 Gnralits
4.1 Objets de donnes
4.2 Objets fonctionnels
5 Gestion des proprits commandables
6 Les services de BACnet
7 Utilisation pour la supervision
8 Notes et rfrences
9 Liens externes
Description
La spcification BACnet intgre plusieurs aspects indpendants les uns des autres :
La spcification des supports physiques utilisables (ARCnet, MS/TP, Ethernet, ) et leurs conditions
d'utilisation ;
La spcification des donnes et des messages changs entre des lments clients et des lments
serveurs ;
La spcification, sur une base objet, des principes des changes entre les clients et les serveurs ;
La spcification des services (accs aux objets, alarmes et vnements, ) utilisables au travers du
protocole BACnet.
Un rseau BACnet et une application de supervision sont tous deux des systmes intgralement orients
objet. Du fait de cette logique objet intrinsque, il est alors possible de les intgrer (les faire communiquer)
nativement, sans passer par une conversion entre les objets BACnet et des variables de supervision.
Les couches : transport, session et prsentation ne sont pas utilises dans le cas prsent.
Les couches rseau et application font l'objet de spcifications propres au protocole BACnet. Les couches :
physique et liaison font rfrence des spcifications existantes indpendantes de BACnet :
Un systme BACnet est constitu d'un ensemble de devices interconnects. Cette interconnexion s'appuie sur
plusieurs concepts :
Le segment BACnet
Un segment BACnet est constitu d'un ensemble d'quipements (devices) connects sur un ou plusieurs
segments physiques (relis par des rpteurs) de mme nature. Un segment BACnet est homogne du point
de vue de la couche physique.
Le rseau BACnet
Un rseau BACnet est constitu d'un ensemble de segments interconnects par des ponts. Les devices d'un
rseau BACnet sont homognes du point de vue de la couche liaison.
L'inter-rseau BACnet
L'inter-rseau BACnet est constitu d'un ensemble de rseaux BACnet interconnects par des routeurs. Les
technologies rseau (couche liaison et couche physique) peuvent tre diffrentes pour chacun des rseaux
BACnet.
Adressage BACnet
Le protocole BACnet fait appel plusieurs mcanismes pour l'adressage des devices BACnet en fonction de
la couche laquelle on s'intresse :
Couche physique :
Pour la couche physique, l'adressage des devices n'est pas spcifique BACnet et se fait en fonction de la
technologie utilise. Cette adresse est identifie (vu de la couche rseau) comme la MAC address. Pour la
Couche rseau :
Pour la couche rseau, l'adressage des devices fait appel l'ensemble numro de rseau + MAC address.
Tous les devices d'un mme rseau BACnet doivent appartenir au mme domaine (ou espace) d'adressage. Si
un systme BACnet comporte des devices de mme technologie (par exemple BACnet IP) mais rpartis dans
des domaines d'adressage distincts (par exemple 192.168.10.X et 192.168.20.X), ils doivent alors tre
rpartis dans plusieurs rseaux BACnet comportant un numro de rseau distinct pour former un inter-rseau
BACnet.
Couche application :
Pour la couche application, l'adressage des devices s'appuie sur le mcanisme gnral d'adressage des objets
BACnet (le device est reprsent sur le rseau au travers d'un objet BACnet). L'adressage d'un objet BACnet
fait appel l'ensemble type d'objet + numro d'instance. Cette adresse est rfrence sous le nom
BACnetObjectIdentifier.
Des rgles unicit doivent tre respectes pour permettre un adressage non ambigu des objets (et donc des
devices) :
Chaque objet BACnet d'un mme device doit avoir un BACnetObjectIdentifier unique au sein du device ;
Chaque device BACnet doit avoir un BACnetObjectIdentifier (ou Device ID) unique au sein d'un inter-
rseau (ou systme) BACnet.
Les travaux de spcifications du protocole BACnet ont dbut en 1987 une poque o la technologie IP
n'tait pas encore la technologie rseau universelle (au moins dans la majorit des domaines) qu'elle est
devenue ce jour.
L'intgration de cette technologie dans les spcifications du protocole BACnet a fait l'objet d'une annexe
(annexe J) qui prcise les conditions de son utilisation pour ce protocole. L'utilisation du protocole BACnet
sur IP est gnralement mentionne sous l'appellation BACnet/IP.
Le choix du protocole IP utilis pour BACnet s'est port sur UDP. Le choix de ce protocole, sans garantie
d'acheminement, est bas sur le fait que la messagerie BACnet intgre elle-mme les mcanismes de garantie
d'acheminement (timeout d'acquittement de rception et tentatives multiples).
Un problme propre au protocole BACnet est pos pour son utilisation sur des rseaux IP publics ou
d'entreprise. Ce problme est li l'utilisation du principe de broadcast inhrent certains services du
protocole BACnet. Les messages broadcast tant gnralement filtrs par les quipements des rseaux non
strictement locaux, une rponse spcifique a t apporte ce problme. Cette rponse est base sur la notion
de BBMD (BACnet/IP Broadcast Management Device).
La notion de BBMD correspond une fonction de propagation dirige des messages broadcast. Une fonction
BBMD doit tre prsente sur chacun des segments de rseau qui doit tre reli un autre segment au travers
d'un dispositif qui filtre les messages broadcast. Cette fonction, de la couche rseau, se base sur des tables de
configuration (BDT et FDT) pour retransmettre, aux rseaux distants, les messages broadcast mis par les
devices locaux, et gnrer sur le rseau local les demandes de broadcast transmis par les rseaux distants.
La notion d'objet est une notion fondamentale du protocole BACnet. Les objets sont utiliss d'une part pour
reprsenter les informations gres par les devices et changes au travers du protocole, et d'autre part pour
une gestion optimale de certains services ou de fonctions applicatives.
Gnralits
Pour le protocole BACnet, un objet est caractris par une liste de proprits et par les valeurs de ces
dernires. Les spcifications de BACnet dfinissent un certain nombre de types d'objets (classes) en
indiquant la liste et les caractristiques des proprits de chacun des types. Certaines proprits sont
obligatoires pour qu'un objet soit conforme la dfinition d'un type, d'autres sont optionnelles. Un
constructeur d'quipements BACnet peut ajouter des proprits qui lui sont propres aux objets standards, et il
peut galement dfinir ses propres types d'objets.
L'identification d'un objet (son adresse) au sein d'un systme BACnet fait intervenir deux proprits
obligatoires (indpendantes) :
Object_Identifier
Cette proprit est constitue de la concatnation du type de l'objet et d'un numro d'instance. La valeur de
cette proprit doit tre unique pour le systme s'il s'agit d'un objet device, ou doit tre unique au sein du
device qui le gre pour les autres objets.
Object_Name
Cette proprit est une chane de caractres qui doit obir aux mmes rgles d'unicit que la proprit
Object_Identifier.
La dfinition du type d'un objet est indique par la proprit obligatoire Object_Type.
Objets de donnes
Dans l'ensemble des types d'objets standards de BACnet un certain nombre d'entre eux sont utiliss pour
grer une donne lmentaire du systme. Ces objets sont les suivants : Accumulator, Analog Input, Analog
Output, Analog Value, Binary Input, Binary Output, Binary Value, Multi-state Input, Multi-state Output,
Multi-state Value.
D'une faon gnrale, ces objets ont pour fonction de reprsenter la valeur d'une donne au travers de leur
proprit Present_Value. Ils peuvent comporter des conditions d'alarme et tre coupls un objet de
notification (Notification_Class) pour gnrer des alarmes ou des vnements lors du franchissement de ces
conditions.
Objets fonctionnels
Les objets fonctionnels ralisent la prise en charge d'une fonction destine piloter des proprits d'autres
objets ou laborer des rsultats localement. Les objets fonctionnels dfinis par les spcifications BACnet
sont les suivants :
Averaging : calcul d'indicateurs statistiques sur une donne (minimum, maximum, moyenne, variance)
Calendar : dfinition d'une liste de plages calendaires (est gnralement utilis par rfrence par les objets
Schedule)
Command : objet utilis pour dclencher un ensemble d'actions prconfigures au travers d'une seule
criture de la Present_Value de l'objet Command
Event Enrollment : permet de dfinir des conditions de gnration d'vnements en dehors des conditions
intrinsques aux objets
Group : est utilis pour donner accs simplement un ensemble de donnes
Loop : permet de reprsenter, de faon standardise, une boucle de rgulation
Program : permet de reprsenter, de faon standardise, un programme excut dans un device BACnet
Pulse Converter : laboration d'une grandeur physique partir d'un comptage d'impulsions
Schedule : objet de commande de proprits d'autres objets sur la base d'une programmation horaire
Trend Log : ralise l'historisation de la valeur de proprits d'autres objets
Event Log : ralise l'historisation d'vnements
Structured View : permet de dcrire une organisation (qui peut tre hirarchique) entre des objets d'un
systme BACnet
Trend Log Multiple : ralise l'historisation d'un ensemble de proprits d'autres objets.
Certains objets fonctionnels sont plus particulirement adapts pour un mtier particulier (contrle d'accs,
dtection incendie, ) :
D'autres objets fonctionnels sont utiliss en liaison avec les services proposs par le protocole BACnet :
Device : l'objet Device reprsente l'ensemble des caractristiques d'un quipement BACnet prsent sur le
rseau
Notification Class : cet objet est utilis pour dfinir les conditions de diffusion des notifications pour tout
ou partie des alarmes et des vnements
Pour les proprits commandables, une notion de priorit permet de grer des forages de valeur en fonction
du niveau de priorit utilis lors de la demande d'criture. Un tableau de priorits est gr par les objets qui
disposent d'une proprit commandable. Ce tableau dispose d'un emplacement pour chacun des 16 niveaux
de priorit possibles. Ce tableau contient la dernire valeur ventuellement crite pour un niveau donn. La
valeur prise par la proprit concerne est alors la valeur associe la priorit la plus leve. La priorit
d'criture est spcifie chaque demande d'criture. Une demande d'criture avec la valeur NULL libre le
niveau de priorit spcifi.
les services d'accs aux objets : ces services permettent de manipuler les objets
Pour les besoins de la supervision, les services utiles sont essentiellement l'accs aux objets et leurs
proprits, et la gestion des alarmes.
La mise en uvre d'un rseau BACnet pour la supervision pose des problmes spcifiques cette
technologie pour les logiciels de supervision traditionnels.
L'approche objet : les logiciels de supervision traditionnels grent des donnes unitaires qui diffrent
profondment de la notion de proprit associe une instance d'objet.
L'utilisation de proprits complexes : certaines proprits d'objets (la proprit Weekly_Schedule de
l'objet Schedule par exemple) sont accessibles uniquement sous forme d'une structure complexe qui n'est
pas manipulable comme une donne lmentaire d'un superviseur traditionnel.
L'optimisation des changes sur le rseau : d'une faon gnrale, une supervision peut tre intresse par la
totalit des proprits d'un objet pour afficher les valeurs de ces proprits ou les modifier. Cependant,
toutes les proprits, selon leur nature, n'voluent pas de la mme manire. Certaines voluent en
permanence (Present_Value), d'autres voluent occasionnellement l'initiative du device (Status_Flags),
d'autres encore voluent occasionnellement l'initiative d'un device extrieur (High_Limit), enfin certaines
proprits sont pratiquement statiques (Description).
Les superviseurs traditionnels ne sont gnralement pas capable de distinguer la nature des
informations changes et ne peuvent donc pas adapter la logique des changes sur le rseau en
fonction de cette nature. Lorsqu'il n'est pas possible de prendre en compte ces caractristiques, il faut
alors renoncer rcuprer les proprits statiques ou quasi statiques sous peine de surcharger
inutilement le rseau.Il est noter qu'il existe un service de notification qui permet un device client
de s'abonner des notifications sur changement de valeur. Ce service ne s'applique cependant qu'
certaines proprits.
L'utilisation d'objets d'historisation locale : certains objets (Trend Log par exemple) ralisent une
mmorisation locale au device de l'volution des valeurs de proprits. La prise en compte de ces valeurs
historises ncessitent une implmentation spcifique BACnet de la gestion de ces objets
L'utilisation d'un service de gestion d'alarmes le couplage entre un logiciel de supervision et un service
externe de gestion des alarmes n'est pas habituel et les mcanismes utiliss par le protocole BACnet lui
sont spcifiques. Ici aussi, il est ncessaire de disposer d'une implmentation native de la gestion des
alarmes BACnet dans la supervision pour pouvoir disposer de l'ensemble des fonctions ncessaires :
synchronisation de l'tat, propagation des acquittements,
La notion de proprit commandable : traditionnellement, la commande des installations supervises est
ralise au travers d'une simple criture dans les donnes qui reprsentent les actionneurs (ou les
consignes). Le protocole BACnet a introduit la notion de proprit commandable qui permet, un device
client, de prendre la main sur une commande. L'utilisation d'un niveau de priorit adquat permet alors
ce device d'empcher toute action par un device moins prioritaire. Ce mcanisme, propre BACnet,
ncessite galement une implmentation spcifique ce protocole au sein de la supervision.
La faon d'apporter une rponse ces problmes doit tre un critre de choix de premier niveau pour le
logiciel de supervision d'un systme BACnet.
Notes et rfrences
1. ANSI/ASHRAE Standard 135-2008 ISSN 1041-2336
Liens externes
Site web de BACnet (http://www.bacnet.org/)