Protocoles et données

BACnet/IP et MS/TP : comparaison

BACnet/IP fonctionne sur Ethernet en UDP, port 47808 ; BACnet MS/TP sur un bus RS-485 à jeton. Comparez débit, câblage, adressage, BBMD, routeurs et capacité.

BACnet/IP et BACnet MS/TP sont deux réseaux différents qui relient le même type de contrôleurs, de capteurs et de superviseurs BACnet. BACnet/IP utilise le réseau Ethernet du bâtiment, chaque appareil ayant une adresse IP et un port UDP. MS/TP (master-slave/token-passing) utilise une paire torsadée RS-485 de 9 600 à 115 200 bit/s : chaque appareil a une adresse MAC, et un maître ne peut lancer une transmission que lorsqu’il détient le jeton. Un système de gestion technique de bâtiment (GTB) commercial utilise souvent les deux : BACnet/IP entre les contrôleurs de supervision et les équipements techniques centraux, et MS/TP jusqu’aux contrôleurs terminaux de chaque étage, reliés par un routeur BACnet. La lecture d’un point sur un ventilo-convecteur traverse les deux réseaux, chacun ayant ses propres limites de taille de message, de débit et d’adressage.

BACnet/IP ou MS/TP : comparaison

BACnet/IPBACnet MS/TP
Réseau physiqueEthernet ou autre réseau IPPaire torsadée RS-485 en ligne
DébitEthernet à 10 ou 100 Mbit/s ; le traitement par le contrôleur est généralement le facteur limitant9 600 à 115 200 bit/s ; 9 600 et 38 400 sont obligatoires
CâblageCâble réseau vers un port de commutateur, comme pour tout appareil IPPaire torsadée blindée, terminaison de 120 Ω aux deux extrémités, jusqu’à 1 200 m par segment
APDU non segmentée maximale1 476 octets480 octets
Adresse d’un appareil sur son réseauAdresse IP et port UDPAdresse MAC : 0 à 127 pour les maîtres, jusqu’à 254 pour les esclaves
Port par défautUDP 47808 (0xBAC0)Aucun : bus série
Accès au réseauTout appareil peut transmettre à tout momentSeul le maître qui détient le jeton peut lancer une transmission
Diffusions de découverteRestent sur un sous-réseau IP, sauf si des BBMD les relaientAtteignent tous les appareils du bus, mais les esclaves ne répondent à Who-Is que par l’intermédiaire d’un proxy d’esclave
Entre sous-réseaux IPUn BBMD sur chaque sous-réseau relaie les diffusions BACnet ; un appareil étranger s’enregistre auprès d’un BBMDSans objet : un routeur BACnet relie le bus à un réseau BACnet/IP
Appareils courantsContrôleurs de supervision, de groupes frigorifiques, de chaudières et de centrales de traitement d’airContrôleurs VAV, de ventilo-convecteurs et d’ambiance

L’instance d’appareil, les identifiants d’objet et les propriétés ne changent pas selon le réseau. Le guide de découverte distingue l’instance d’appareil de l’adresse réseau.

La limite de taille des APDU importe lorsqu’un client BACnet/IP lit un appareil par l’intermédiaire d’un routeur. Chaque appareil indique sa limite dans Max_APDU_Length_Accepted et l’annonce dans I-Am. Si un client construit une requête ou attend une réponse plus grande, il faut la segmentation, que beaucoup de petits contrôleurs MS/TP ne prennent pas en charge. La requête est alors abandonnée ou rejetée. Une réponse ReadPropertyMultiple contient environ 16 octets par Present_Value : environ 29 valeurs peuvent donc tenir dans une réponse de 480 octets. Certains petits contrôleurs n’acceptent que 50 ou 128 octets, ce qui réduit encore ce nombre. Dimensionnez les requêtes ReadPropertyMultiple selon la plus petite limite sur le trajet.

BACnet/IP et les noms qui lui ressemblent

Quatre noms sont souvent confondus dans les cahiers des charges et les devis :

NomDescription
BACnet/IPMessages BACnet dans des paquets UDP/IP, définis à l’annexe J de la norme 135. Le port UDP par défaut est 47808, soit 0xBAC0 en hexadécimal.
BACnet EthernetMessages BACnet placés directement dans des trames Ethernet (ISO 8802-3), sans IP, définis à la clause 7. Les appareils sont adressés par leur adresse MAC et les messages ne traversent pas les routeurs IP. On le trouve surtout sur des systèmes anciens.
BACnet/SC (Secure Connect)BACnet sur des connexions WebSocket sécurisées par TLS vers un hub, défini à l’annexe AB de la norme 135-2020. Les appareils s’authentifient par certificat.
EtherNet/IPPas du BACnet. C’est le Common Industrial Protocol (CIP) sur Ethernet, publié par l’ODVA et utilisé surtout par les automates. Un client BACnet ne peut pas le lire.

Un appareil qui « prend en charge Ethernet » peut correspondre à n’importe lequel de ces cas. Demandez quelle couche liaison l’appareil utilise et, pour BACnet, demandez sa PICS (déclaration de conformité de l’implémentation du protocole).

Fonctionnement de BACnet MS/TP

Au démarrage, chaque maître attend un créneau déterminé par son adresse MAC, comprise entre 0 et 127, puis recherche le maître suivant. Lorsqu’il reçoit le jeton, il peut envoyer jusqu’à Max_Info_Frames trames avant de transmettre le jeton au maître suivant. Tous les 50 passages du jeton (Npoll), un maître envoie des trames Poll For Master aux adresses situées entre la sienne et celle du prochain maître connu, afin de détecter de nouveaux appareils.

Lorsqu’un maître interroge une adresse vide par Poll For Master, il attend une réponse pendant Tusage_timeout : au moins 20 ms selon la norme, ou 75 ms avec le réglage tolérant du routeur Johnson Controls. Chaque adresse vide interrogée ajoute ce temps d’attente au bus.

Les appareils esclaves, dont les adresses MAC peuvent aller jusqu’à 254, ne détiennent jamais le jeton. Ils répondent seulement aux demandes d’un maître. Ils ne peuvent donc pas répondre eux-mêmes à une diffusion Who-Is : un proxy d’esclave, ajouté par l’addendum 135-2001a, émet I-Am pour eux.

Deux réglages de chaque maître affectent tout le bus :

  • Max_Master est la plus haute adresse de maître que l’appareil interrogera. Un appareil où ce réglage n’est pas modifiable utilise 127. Réglez-le sur chaque maître à la plus haute adresse MAC de maître utilisée. Avec 20 maîtres aux adresses 1 à 20 et Max_Master laissé à 127, le maître à l’adresse 20 sonde 108 adresses vides : 21 à 127, puis 0.
  • Max_Info_Frames est le nombre de trames qu’un maître peut envoyer chaque fois qu’il détient le jeton. Un appareil où ce réglage n’est pas modifiable utilise 1, ce qui convient à un contrôleur d’ambiance. Le routeur relaie le trafic de tous les clients du côté IP et a donc besoin d’une valeur plus élevée. Les valeurs par défaut de 100 sont courantes sur les routeurs ; le guide du routeur Johnson Controls recommande une valeur supérieure à 20.

Débits de BACnet MS/TP

La norme 135 exige que chaque appareil MS/TP prenne en charge 9 600 et 38 400 bit/s. L’addendum 135-2008ab a rendu 38 400 bit/s obligatoire et a ajouté 57 600 et 115 200 bit/s. Les débits de 19 200, 57 600, 76 800 et 115 200 bit/s sont facultatifs : vérifiez que tous les appareils les prennent en charge avant d’en choisir un. Tous les appareils du bus doivent utiliser le même débit. La limite de longueur du câble RS-485 est de 1 200 m aux débits standard et de 1 000 m à 115 200 bit/s. Ces chiffres supposent une paire torsadée de qualité ; une forte capacité du câble ou de longues dérivations réduisent la portée.

Capacité du bus : exemple chiffré

MS/TP transmet chaque octet sur 10 bits : 1 bit de départ, 8 bits de données et 1 bit d’arrêt, sans parité. Une trame possède un en-tête de 8 octets, suivi des données et d’un CRC de 2 octets. À 38 400 bit/s, un octet prend 0,26 ms ; une trame de jeton prend donc 2,1 ms.

Prenons un client BACnet/IP qui lit un Present_Value analogique d’un contrôleur MS/TP par l’intermédiaire d’un routeur :

Partie de la lectureOctets transmisDurée à 9 600 bit/sDurée à 38 400 bit/sDurée à 76 800 bit/s
Requête ReadProperty avec en-tête de routage3233,3 ms8,3 ms4,2 ms
Réponse ReadProperty (ComplexACK)3940,6 ms10,2 ms5,1 ms
Deux changements de sens de 40 temps de bit8,3 ms2,1 ms1,0 ms
Temps de réponse du contrôleur, supposé5 ms5 ms5 ms
Une lectureenviron 87 msenviron 26 msenviron 15 ms

Lire 200 points un par un occupe donc environ 17 s de bus à 9 600 bit/s, 5 s à 38 400 bit/s et 3 s à 76 800 bit/s. Une répétition toutes les minutes à 38 400 bit/s représente environ 9 % du temps du bus. Toutes les 5 s à 9 600 bit/s, c’est impossible : les lectures prennent plus de temps que l’intervalle. Au-delà de 38 400 bit/s, le temps de réponse du contrôleur constitue une grande part de chaque lecture ; augmenter le débit apporte alors moins de gain qu’attendu.

ReadPropertyMultiple réduit la surcharge. Une requête portant sur 10 Present_Value d’un même contrôleur compte environ 115 octets, et la réponse environ 185 octets. À 38 400 bit/s, cela représente environ 85 ms, contre 256 ms pour 10 lectures individuelles.

Le jeton ajoute encore de l’attente. Le routeur ne peut transmettre que lorsqu’il le détient et envoie au maximum Max_Info_Frames requêtes à chaque passage. Si chaque maître met environ 3 ms à commencer à transmettre, un anneau inactif de 20 maîtres effectue un tour en environ 100 ms à 38 400 bit/s. Chaque trame envoyée par un autre maître rallonge ce tour. Un contrôleur qui reporte sa réponse jusqu’à son prochain passage du jeton ajoute un tour complet à chaque lecture.

Réglez le délai d’expiration APDU du client au-dessus du pire cas : durée du tour du jeton, attente dans la file du routeur et temps de réponse. Un délai plus court provoque des tentatives répétées, qui chargent davantage le bus. Le client risque alors de déclarer hors ligne des appareils simplement lents.

Défauts courants de MS/TP

DéfautSymptômeVérification
Adresse MAC en doubleErreurs de CRC et de trame, jetons perdus, deux appareils qui apparaissent et disparaissent tour à tourAdresse MAC de chaque appareil, souvent réglée par des commutateurs DIP
Débits différentsUn appareil ne répond jamais et un analyseur voit des erreurs de trame lorsqu’il émetDébit de chaque appareil, y compris ceux réglés en détection automatique
Max_Master trop bas sur un appareilLes maîtres dont l’adresse dépasse son Max_Master ne reçoivent jamais le jeton et n’apparaissent jamaisMax_Master sur chaque maître, pas seulement sur le routeur
Terminaison absente ou en trop, ou polarisation absenteErreurs qui augmentent avec la longueur du câble ou le trafic, bruit sur une ligne au repos120 Ω aux deux extrémités physiques seulement, polarisation en un seul point
Jeton perduLe bus reste silencieux pendant 500 ms (Tno_token), puis un maître crée un nouveau jeton ; le phénomène se répèteBruit, réinitialisation d’un appareil ou adresse MAC en double

Le guide de câblage RS-485 détaille la terminaison et la polarisation.

Câblage de BACnet MS/TP

MS/TP suit les mêmes règles RS-485 que Modbus RTU : ligne principale en chaîne, dérivations courtes, terminaison aux deux extrémités physiques, polarisation en un point et conducteur de référence du signal. La norme 135 (clause 9.2.1) spécifie le câble : paire torsadée blindée d’impédance caractéristique comprise entre 100 et 130 Ω, de capacité inférieure à 100 pF par mètre entre conducteurs et à 200 pF par mètre entre conducteurs et blindage. Un blindage par feuillard ou par tresse convient. La longueur maximale recommandée d’un segment est de 1 200 m avec un câble AWG 18 (0,82 mm²). Le câble réseau ordinaire de catégorie 5 présente une impédance de 100 Ω et n’est généralement pas blindé : vérifiez sa capacité et choisissez un type blindé avant de l’utiliser pour MS/TP. L’addendum 135-2008y (2010) a ajouté des schémas et des règles sur l’isolation, la mise à la terre et le conducteur de référence. Un bus entre bâtiments nécessite une isolation de 1 500 V. Le vérificateur de terminaison et de polarisation RS-485 indique où placer les résistances de terminaison et de polarisation sur un bus donné.

MS/TP et Modbus RTU ne peuvent pas partager le même bus. Leurs trames sont différentes et un maître Modbus perturberait le passage du jeton.

Routage de MS/TP vers BACnet/IP

Un routeur BACnet relie un bus MS/TP à un réseau BACnet/IP. Il est souvent intégré au contrôleur de supervision du BMS. Chaque réseau BACnet du site, IP ou MS/TP, doit avoir un numéro distinct compris entre 1 et 65 534. Si deux réseaux portent le même numéro, les messages risquent d’être envoyés au mauvais bus et les appareils semblent changer d’identité.

Un client IP atteint un appareil MS/TP par le routeur, au moyen du numéro de réseau MS/TP et de l’adresse MAC de l’appareil. Le client qui découvre les appareils par leur instance n’a pas besoin de connaître ces valeurs : le routeur relaie Who-Is vers le bus et renvoie les réponses I-Am avec le réseau et l’adresse d’origine. Pour énumérer les réseaux derrière un routeur, envoyez Who-Is-Router-To-Network. Il répond par I-Am-Router-To-Network en indiquant les numéros des réseaux qu’il dessert. Le guide du routage et des BBMD explique comment les diffusions traversent les sous-réseaux IP.

Choisir dans une rénovation

SituationChoix habituel
Lire les données énergétiques de contrôleurs MS/TP existantsPasser par le routeur ou le superviseur existant en BACnet/IP. Ne raccordez pas un second maître au bus sans l’accord du responsable du BMS : il lui faut une adresse MAC libre, un Max_Master correct sur chaque appareil et une part du temps de jeton.
Nouvelle installation dotée d’un port EthernetBACnet/IP sur le réseau de gestion du bâtiment
Nombreux petits contrôleurs neufs à chaque étageBus MS/TP vers un routeur. Dimensionnez chaque bus avec le calcul ci-dessus, y compris les lectures supplémentaires des systèmes énergétiques et analytiques.
Contrôleurs éloignés de tout commutateur réseauMS/TP, ou capteur sans fil si seule la mesure est nécessaire

BACnet avec Edge

Edge, sur le Gateway ZGW-20, est un client BACnet/IP. Il lit les contrôleurs MS/TP par le routeur BACnet du site ; il ne se connecte pas directement au bus MS/TP et n’utilise pas BACnet/SC. Le guide des passerelles Modbus et BACnet explique la différence entre un routeur BACnet, une passerelle de protocole et une passerelle IoT telle que le Gateway ZGW-20. Edge interroge Present_Value à un intervalle aligné sur la minute, par exemple 60 ou 300 s, ou une fois par minute en mode de flux en direct. Il n’utilise pas d’abonnements COV. Pour dimensionner le bus, comptez une lecture par point et par intervalle dans l’exemple ci-dessus. Le guide BACnet et Modbus décrit les lectures et écritures d’Edge, et le guide COV et interrogation compare les deux méthodes.

Ce guide fait partie de la série BACnet et protocoles du bâtiment.

Questions fréquentes

Qu’est-ce que BACnet/IP ?

BACnet transporté dans des paquets UDP/IP sur Ethernet ou un autre réseau IP, comme le définit l’annexe J de la norme ASHRAE 135. Chaque appareil est joint par une adresse IP et un port UDP, 47808 par défaut. Les contrôleurs de supervision, les contrôleurs d’équipements centraux et les serveurs de GTB l’utilisent en général.

Qu’est-ce que BACnet MS/TP ?

Master-slave/token-passing : BACnet transporté sur une paire torsadée RS-485, comme le définit la clause 9 de la norme 135. Les maîtres, aux adresses MAC de 0 à 127, se passent un jeton et ne transmettent que lorsqu’ils le détiennent. MS/TP fonctionne de 9 600 à 115 200 bit/s et relie en général les contrôleurs d’ambiance, VAV et de ventilo-convecteurs à un routeur BACnet.

Quelle est la différence entre BACnet/IP et BACnet MS/TP ?

BACnet/IP transporte les messages BACnet dans des datagrammes UDP sur un réseau IP. BACnet MS/TP les transporte sur une paire torsadée RS-485, où les maîtres se passent un jeton et ne transmettent que lorsqu’ils le détiennent. Les objets et services sont les mêmes. Le débit, l’adressage et la taille maximale des messages diffèrent : APDU de 1 476 octets en BACnet/IP contre 480 en MS/TP.

Quel port utilise BACnet/IP ?

Le port UDP 47808 par défaut, soit 0xBAC0 en hexadécimal. L’annexe J autorise d’autres ports UDP. Les appareils qui doivent recevoir directement les diffusions les uns des autres utilisent le même port. MS/TP n’a pas de numéro de port : c’est un bus série.

Quels débits BACnet MS/TP utilise-t-il ?

Tous les appareils MS/TP doivent prendre en charge 9 600 et 38 400 bit/s. Les débits de 19 200, 57 600, 76 800 et 115 200 bit/s sont facultatifs ; 57 600 et 115 200 n’ont été ajoutés que dans l’addendum 135-2008ab et peuvent manquer sur les anciens appareils. Tous les appareils d’un même bus doivent utiliser le même débit.

Combien d’appareils un bus MS/TP peut-il accueillir ?

Les adresses de maître vont de 0 à 127 et celles des esclaves jusqu’à 254. Un segment RS-485 porte 32 charges unitaires sans répéteur. Des émetteurs-récepteurs d’une demi-charge ou d’un quart de charge portent ce nombre à environ 62 ou 124 appareils en plus d’un routeur à charge entière. Le temps de rotation du jeton limite généralement le bus avant ces seuils.

Comment raccorder des appareils MS/TP à BACnet/IP ?

Au moyen d’un routeur BACnet, souvent intégré à un contrôleur de supervision BMS. Le routeur attribue au bus MS/TP son propre numéro de réseau ; les clients IP peuvent ainsi atteindre chaque appareil MS/TP par ce numéro et son adresse MAC.

BACnet/IP est-il identique à EtherNet/IP ?

Non. BACnet/IP transporte les messages BACnet sur UDP, par défaut sur le port 47808. EtherNet/IP est le Common Industrial Protocol (CIP) de l’ODVA, utilisé surtout par les automates. Un client BACnet/IP ne peut pas lire un appareil EtherNet/IP, et l’inverse est également vrai.

Quel câble BACnet MS/TP utilise-t-il ?

Une paire torsadée blindée d’impédance caractéristique comprise entre 100 et 130 Ω et de capacité entre conducteurs inférieure à 100 pF par mètre, comme le spécifie la norme 135. La longueur maximale recommandée d’un segment est de 1 200 m avec un câble AWG 18 (0,82 mm²). Terminez les deux extrémités et polarisez en un seul point, comme pour tout bus RS-485.