Un système de gestion technique de bâtiment (GTB) commercial utilise souvent deux réseaux BACnet : BACnet/IP entre les contrôleurs de supervision et les équipements techniques centraux, et BACnet MS/TP (master-slave/token-passing) sur une paire torsadée RS-485 jusqu’aux contrôleurs terminaux de chaque étage. 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.
Comparaison
| BACnet/IP | BACnet MS/TP | |
|---|---|---|
| Réseau physique | Ethernet ou autre réseau IP | Paire torsadée RS-485 en ligne |
| Débit | Ethernet à 10 ou 100 Mbit/s ; le traitement par le contrôleur est généralement le facteur limitant | 9 600 à 115 200 bit/s |
| APDU non segmentée maximale | 1 476 octets | 480 octets |
| Adresse d’un appareil sur son réseau | Adresse IP et port UDP | Adresse MAC : 0 à 127 pour les maîtres, jusqu’à 254 pour les esclaves |
| Accès au réseau | Tout appareil peut transmettre à tout moment | Seul le maître qui détient le jeton peut lancer une transmission |
| Diffusions de découverte | Restent sur un sous-réseau IP, sauf si des BBMD les relaient | Atteignent tous les appareils du bus, mais les esclaves ne répondent à Who-Is que par l’intermédiaire d’un proxy d’esclave |
| Appareils courants | Contrôleurs de supervision, de groupes frigorifiques, de chaudières et de centrales de traitement d’air | Contrô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.
Fonctionnement de 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ébit
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 lecture | Octets transmis | Durée à 9 600 bit/s | Durée à 38 400 bit/s | Durée à 76 800 bit/s |
|---|---|---|---|---|
| Requête ReadProperty avec en-tête de routage | 32 | 33,3 ms | 8,3 ms | 4,2 ms |
| Réponse ReadProperty (ComplexACK) | 39 | 40,6 ms | 10,2 ms | 5,1 ms |
| Deux changements de sens de 40 temps de bit | 8,3 ms | 2,1 ms | 1,0 ms | |
| Temps de réponse du contrôleur, supposé | 5 ms | 5 ms | 5 ms | |
| Une lecture | environ 87 ms | environ 26 ms | environ 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éfaut | Symptôme | Vérification |
|---|---|---|
| Adresse MAC en double | Erreurs de CRC et de trame, jetons perdus, deux appareils qui apparaissent et disparaissent tour à tour | Adresse MAC de chaque appareil, souvent réglée par des commutateurs DIP |
| Débits différents | Un appareil ne répond jamais et un analyseur voit des erreurs de trame lorsqu’il émet | Débit de chaque appareil, y compris ceux réglés en détection automatique |
| Max_Master trop bas sur un appareil | Les maîtres dont l’adresse dépasse son Max_Master ne reçoivent jamais le jeton et n’apparaissent jamais | Max_Master sur chaque maître, pas seulement sur le routeur |
| Terminaison absente ou en trop, ou polarisation absente | Erreurs qui augmentent avec la longueur du câble ou le trafic, bruit sur une ligne au repos | 120 Ω aux deux extrémités physiques seulement, polarisation en un seul point |
| Jeton perdu | Le bus reste silencieux pendant 500 ms (Tno_token), puis un maître crée un nouveau jeton ; le phénomène se répète | Bruit, 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
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. 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.
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
| Situation | Choix habituel |
|---|---|
| Lire les données énergétiques de contrôleurs MS/TP existants | Passer 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 Ethernet | BACnet/IP sur le réseau de gestion du bâtiment |
| Nombreux petits contrôleurs neufs à chaque étage | Bus 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éseau | MS/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. Il 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
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.
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.