Protocolos y datos

BACnet/IP frente a MS/TP

BACnet/IP funciona sobre Ethernet en el puerto UDP 47808; BACnet MS/TP, en un bus RS-485 con paso de testigo. Compare velocidad, cableado, direcciones y BBMD.

BACnet/IP y BACnet MS/TP son dos redes distintas que conectan el mismo tipo de controladores, sensores y supervisores BACnet. BACnet/IP utiliza la red Ethernet del edificio, con cada dispositivo en una dirección IP y un puerto UDP. MS/TP (maestro-esclavo con paso de testigo) utiliza un par trenzado RS-485 a velocidades de 9.600 a 115.200 bit/s, donde cada dispositivo tiene una dirección MAC y un maestro solo puede iniciar una transmisión mientras tiene el testigo. Un BMS de un edificio comercial suele utilizar las dos: BACnet/IP entre controladores supervisores y equipos centrales, y MS/TP hasta los controladores de las unidades terminales de cada planta, unidas por un router BACnet. La lectura de un punto de un fancoil atraviesa ambas redes, cada una con sus límites de tamaño de mensaje, velocidad y direccionamiento.

BACnet/IP frente a MS/TP: comparación

BACnet/IPBACnet MS/TP
Red físicaEthernet u otra red IPPar trenzado RS-485 en cadena
VelocidadEthernet a 10 o 100 Mbit/s; normalmente limita el procesamiento del controladorDe 9.600 a 115.200 bit/s; 9.600 y 38.400 son obligatorias
CableadoCable de red a un puerto de switch, como cualquier dispositivo IPPar trenzado apantallado, terminación de 120 Ω en ambos extremos, hasta 1.200 m por segmento
APDU máximo sin segmentar1.476 octetos480 octetos
Dirección del dispositivo en su redDirección IP y puerto UDPDirección MAC: de 0 a 127 para maestros y hasta 254 para esclavos
Puerto predeterminadoUDP 47808 (0xBAC0)Ninguno: es un bus serie
Acceso a la redCualquier dispositivo puede enviar en cualquier momentoSolo el maestro que posee el testigo inicia una transmisión
Difusiones de descubrimientoPermanecen en una subred IP salvo que las reenvíen los BBMDLlegan a todos los dispositivos del bus; los esclavos solo responden a Who-Is mediante un proxy de esclavos
Entre subredes IPUn BBMD en cada subred reenvía las difusiones BACnet; un dispositivo externo se registra en unoNo aplica: un router BACnet une el bus a una red BACnet/IP
Dispositivos habitualesControladores supervisores, de enfriadoras, calderas y unidades de tratamiento de aireControladores VAV, de fancoil y de habitación

La instancia del dispositivo, los identificadores de objetos y las propiedades no cambian según la red. La guía de descubrimiento explica la diferencia entre la instancia de un dispositivo y una dirección de red.

El límite de APDU sí importa cuando un cliente BACnet/IP lee a través de un router. Cada dispositivo indica su límite en Max_APDU_Length_Accepted y lo anuncia en su I-Am. Una petición o respuesta mayor necesita segmentación, que muchos controladores MS/TP pequeños no admiten; la operación se cancela o rechaza. Una respuesta ReadPropertyMultiple ocupa alrededor de 16 octetos por cada Present_Value, de modo que caben unos 29 valores en una respuesta de 480 octetos. Algunos controladores pequeños solo admiten 50 o 128 octetos, y por tanto muchos menos valores. Ajuste las peticiones ReadPropertyMultiple al menor límite del recorrido.

BACnet/IP y nombres parecidos

Cuatro nombres se confunden a menudo en especificaciones y ofertas:

NombreQué es
BACnet/IPMensajes BACnet en paquetes UDP/IP, definidos en el anexo J de la norma 135. El puerto UDP predeterminado es 47808, que en hexadecimal es 0xBAC0.
BACnet EthernetMensajes BACnet directamente en tramas Ethernet (ISO 8802-3), sin IP, definidos en la cláusula 7. Los dispositivos se identifican por su dirección MAC y los mensajes no atraviesan routers IP. Se encuentra sobre todo en sistemas antiguos.
BACnet/SC (Secure Connect)BACnet sobre conexiones WebSocket protegidas con TLS hacia un hub, definido en el anexo AB de la norma 135-2020. Los dispositivos se autentican con certificados.
EtherNet/IPNo es BACnet. Es el Common Industrial Protocol (CIP) sobre Ethernet, de ODVA, utilizado sobre todo por PLC. Un cliente BACnet no puede leerlo.

Un dispositivo que «admite Ethernet» puede referirse a cualquiera de ellos. Pregunte qué capa de enlace de datos utiliza y, si es BACnet, pida su PICS (declaración de conformidad de la implementación del protocolo).

Cómo funciona BACnet MS/TP

Al encenderse, cada maestro espera un intervalo según su dirección MAC, de 0 a 127, y busca al siguiente maestro. Cuando recibe el testigo, puede enviar hasta Max_Info_Frames tramas. Después entrega el testigo al maestro siguiente. Cada 50 pases de testigo (Npoll), un maestro envía tramas Poll For Master a las direcciones entre la suya y la del siguiente maestro conocido para detectar dispositivos nuevos.

Si envía Poll For Master a una dirección vacía, espera una respuesta durante Tusage_timeout: al menos 20 ms según la norma, o 75 ms en la configuración flexible del router de Johnson Controls. Cada dirección vacía consultada añade ese tiempo de silencio al bus.

Los dispositivos esclavos, con direcciones MAC hasta 254, nunca poseen el testigo. Solo responden cuando un maestro les pregunta. No pueden contestar por sí mismos a una difusión Who-Is, por lo que un proxy de esclavos (añadido en el apéndice 135-2001a) envía un I-Am por ellos.

Dos parámetros de cada maestro afectan a todo el bus:

  • Max_Master es la dirección más alta de maestro que el dispositivo consultará. Un dispositivo que no permite cambiarla utiliza 127. Configúrela en cada maestro con la dirección MAC más alta en uso. Si hay 20 maestros con direcciones de 1 a 20 y Max_Master permanece en 127, el maestro de dirección 20 consulta 108 direcciones vacías: de 21 a 127 y la 0.
  • Max_Info_Frames es el número de tramas que un maestro puede enviar cada vez que posee el testigo. Un dispositivo que no permite cambiarlo utiliza 1, apropiado para un controlador de habitación. Un router reenvía tráfico de todos los clientes del lado IP, así que necesita más. Son habituales los valores predeterminados de 100; la guía del router de Johnson Controls recomienda más de 20.

Velocidad y baudios de BACnet MS/TP

La norma 135 exige que todos los dispositivos MS/TP admitan 9.600 y 38.400 bit/s. El apéndice 135-2008ab hizo obligatorio 38.400 bit/s y añadió 57.600 y 115.200 bit/s. Las velocidades de 19.200, 57.600, 76.800 y 115.200 bit/s son opcionales; compruebe que todos los dispositivos admiten la elegida. Todos los equipos de un bus deben usar la misma velocidad. El límite de longitud del cable RS-485 es 1.200 m a las velocidades estándar y 1.000 m a 115.200 bit/s, suponiendo un par trenzado de buena calidad. Los cables de alta capacitancia y las derivaciones largas reducen esas distancias.

Capacidad del bus: ejemplo

MS/TP transmite cada octeto como 10 bits: uno de inicio, ocho de datos y uno de parada, sin paridad. Una trama lleva una cabecera de 8 octetos, los datos y un CRC de 2 octetos. A 38.400 bit/s, un octeto tarda 0,26 ms, por lo que una trama de testigo tarda 2,1 ms.

Suponga que un cliente BACnet/IP lee un Present_Value analógico de un controlador MS/TP a través de un router:

Parte de la lecturaOctetos transmitidosTiempo a 9.600 bit/sTiempo a 38.400 bit/sTiempo a 76.800 bit/s
Petición ReadProperty, con cabecera de encaminamiento3233,3 ms8,3 ms4,2 ms
Respuesta ReadProperty (ComplexACK)3940,6 ms10,2 ms5,1 ms
Dos cambios de sentido de 40 tiempos de bit8,3 ms2,1 ms1,0 ms
Respuesta del controlador, supuesto5 ms5 ms5 ms
Una lecturaunos 87 msunos 26 msunos 15 ms

Por tanto, 200 puntos leídos uno a uno consumen unos 17 s de bus a 9.600 bit/s, 5 s a 38.400 bit/s y 3 s a 76.800 bit/s. Una vez por minuto, a 38.400 bit/s, eso representa alrededor del 9 % del bus. Cada 5 s a 9.600 bit/s es imposible: las lecturas tardan más que el intervalo. Por encima de 38.400 bit/s, el tiempo de respuesta del controlador constituye una parte importante de cada lectura, así que aumentar la velocidad aporta menos de lo esperado.

ReadPropertyMultiple reduce la sobrecarga. Una petición de 10 Present_Value en un mismo controlador ocupa unos 115 octetos y la respuesta unos 185. A 38.400 bit/s tarda unos 85 ms, frente a 256 ms de diez lecturas individuales.

El testigo añade espera. El router solo puede enviar mientras lo posee y transmite como máximo Max_Info_Frames peticiones por turno. Si cada maestro tarda unos 3 ms en empezar a transmitir, un anillo inactivo de 20 maestros completa una vuelta en unos 100 ms a 38.400 bit/s. Cada trama de otro maestro alarga esa vuelta. Un controlador que retrasa la respuesta hasta volver a poseer el testigo añade una vuelta completa a cada lectura.

Configure el tiempo de espera APDU del cliente por encima del peor caso: vuelta del testigo, cola del router y respuesta. Un tiempo menor provoca reintentos, que cargan aún más el bus y hacen que el cliente muestre dispositivos como desconectados cuando solo son lentos.

Fallos habituales de MS/TP

FalloQué se observaComprobación
Dirección MAC duplicadaErrores de CRC y de trama, pérdida del testigo y dos dispositivos que aparecen y desaparecen por turnosConfiguración MAC (a menudo interruptores DIP) de cada dispositivo
Velocidades distintasUn dispositivo nunca responde y el analizador muestra errores de trama cuando transmiteVelocidad de cada dispositivo, incluidos los configurados para detección automática
Max_Master demasiado bajo en un dispositivoLos maestros con direcciones superiores a su Max_Master nunca reciben el testigo ni aparecenMax_Master de todos los maestros, no solo del router
Terminación ausente o de más, o falta de polarizaciónErrores que aumentan con la longitud del cable o el tráfico, y ruido con la línea inactiva120 Ω solo en los dos extremos físicos; polarización en un punto
Pérdida del testigoEl bus queda en silencio durante 500 ms (Tno_token) y un maestro genera otro testigo; se repiteRuido, un dispositivo que se reinicia o una MAC duplicada

La guía de cableado RS-485 explica la terminación y la polarización.

Cableado de BACnet MS/TP

MS/TP sigue las mismas reglas RS-485 que Modbus RTU: bus en cadena, derivaciones cortas, terminación en los dos extremos físicos, polarización en un punto y referencia de señal. La norma 135 (cláusula 9.2.1) especifica el cable: par trenzado apantallado con una impedancia característica entre 100 y 130 Ω, una capacitancia entre conductores inferior a 100 pF por metro y entre conductores y pantalla inferior a 200 pF por metro. Se admiten pantallas de lámina o de malla. La longitud máxima recomendada de un segmento es 1.200 m con cable AWG 18 (0,82 mm²). El cable de red habitual de categoría 5 es de 100 Ω y normalmente no está apantallado, así que compruebe su capacitancia y elija un tipo apantallado antes de usarlo para MS/TP. El apéndice 135-2008y (2010) añadió diagramas y reglas sobre aislamiento, puesta a tierra y conductor de referencia. Un bus entre edificios necesita aislamiento de 1.500 V. El comprobador de terminación y polarización RS-485 muestra dónde van las resistencias de terminación y polarización en un bus concreto.

MS/TP y Modbus RTU no pueden compartir un bus. Sus tramas son diferentes y un maestro Modbus interrumpiría el paso del testigo.

Encaminamiento de MS/TP a BACnet/IP

Un router BACnet conecta un bus MS/TP con una red BACnet/IP; a menudo está integrado en el controlador supervisor del BMS. Cada red BACnet de la instalación, IP o MS/TP, necesita un número entre 1 y 65.534 que no use ninguna otra red. Dos redes con el mismo número envían mensajes al bus equivocado y los dispositivos parecen cambiar de identidad.

Un cliente IP llega a un dispositivo MS/TP a través del router mediante el número de red MS/TP y la dirección MAC del dispositivo. El cliente que descubre por instancia no necesita conocerlos: el router reenvía Who-Is al bus y devuelve las respuestas I-Am con la red y dirección de origen. Para enumerar las redes situadas detrás de un router, envíe Who-Is-Router-To-Network. Este responde con I-Am-Router-To-Network y los números de red que sirve. La guía de encaminamiento y BBMD explica cómo cruzan las difusiones las subredes IP.

Elección en una modernización

SituaciónOpción habitual
Leer datos energéticos de controladores MS/TP existentesLeer a través del router o supervisor existente por BACnet/IP. No conecte un segundo maestro al bus sin acordarlo con el responsable del BMS: necesita una dirección MAC libre, Max_Master correcto en todos los dispositivos y parte del tiempo de testigo.
Equipo nuevo con puerto EthernetBACnet/IP, en la red de control del edificio
Muchos controladores pequeños nuevos por plantaBuses MS/TP hacia un router. Dimensione cada bus con el cálculo anterior, incluidas las lecturas que añadirán los sistemas de energía y análisis.
Controladores lejos de cualquier conmutador de redMS/TP, o un sensor inalámbrico si solo se necesita monitorización

BACnet con Edge

Edge, en el Gateway ZGW-20, es un cliente BACnet/IP. Lee los controladores MS/TP a través de un router BACnet de la instalación. No se conecta directamente al bus MS/TP ni utiliza BACnet/SC. La guía de pasarelas Modbus y BACnet explica la diferencia entre un router BACnet, un convertidor de protocolos y una pasarela IoT como esta. Edge consulta Present_Value en intervalos alineados al minuto, como 60 o 300 s, o una vez por minuto en modo de transmisión en directo. No utiliza suscripciones COV. Para dimensionar el bus, cuente cada punto como una lectura por intervalo en el ejemplo anterior. La guía de BACnet frente a Modbus describe qué lee y escribe Edge; la guía de COV y consultas periódicas compara los dos métodos.

Esta guía forma parte de la serie sobre BACnet y protocolos de edificios.

Preguntas frecuentes

¿Qué es BACnet/IP?

BACnet transportado en paquetes UDP/IP por Ethernet u otra red IP, según el anexo J de la norma ASHRAE 135. Cada dispositivo se alcanza en una dirección IP y un puerto UDP, 47808 por defecto. Lo utilizan normalmente los controladores supervisores, los controladores de planta y los servidores del BMS.

¿Qué es BACnet MS/TP?

Maestro-esclavo con paso de testigo: BACnet transportado por un par trenzado RS-485, según la cláusula 9 de la norma 135. Los maestros, con direcciones MAC de 0 a 127, se pasan un testigo y solo transmiten mientras lo tienen. Funciona de 9.600 a 115.200 bit/s y suele conectar controladores de habitación, VAV y fancoil a un router BACnet.

¿Qué diferencia hay entre BACnet/IP y BACnet MS/TP?

BACnet/IP transporta mensajes BACnet en datagramas UDP por una red IP. BACnet MS/TP los transporta por un par trenzado RS-485, donde los maestros se pasan un testigo y solo transmiten cuando lo poseen. Objetos y servicios son iguales, pero cambian velocidad, direccionamiento y tamaño máximo: 1.476 octetos por APDU en BACnet/IP y 480 en MS/TP.

¿Qué puerto utiliza BACnet/IP?

El puerto UDP 47808 por defecto, 0xBAC0 en hexadecimal. El anexo J admite otros puertos UDP. Los dispositivos que deben oír directamente las difusiones de los demás utilizan el mismo puerto. MS/TP no tiene número de puerto: es un bus serie.

¿Qué velocidad utiliza BACnet MS/TP?

Todo dispositivo MS/TP debe admitir 9.600 y 38.400 bit/s. Son opcionales 19.200, 57.600, 76.800 y 115.200 bit/s; las de 57.600 y 115.200 se añadieron en el apéndice 135-2008ab, por lo que algunos equipos antiguos no las ofrecen. Todos los dispositivos del bus deben usar la misma velocidad.

¿Cuántos dispositivos admite un bus MS/TP?

Las direcciones de maestros van de 0 a 127 y las de esclavos pueden llegar a 254. Un segmento RS-485 admite 32 cargas unitarias sin repetidor. Los transceptores de media o un cuarto de carga unitaria elevan esa cifra a unos 62 o 124 dispositivos junto a un router de carga completa. Normalmente el tiempo de rotación del testigo limita el bus antes.

¿Cómo conecto dispositivos MS/TP a BACnet/IP?

Mediante un router BACnet, a menudo integrado en un controlador supervisor del BMS. El router asigna al bus MS/TP su propio número de red; así, los clientes IP pueden llegar a cada dispositivo por número de red y dirección MAC.

¿Es BACnet/IP lo mismo que EtherNet/IP?

No. BACnet/IP transporta mensajes BACnet sobre UDP, por defecto en el puerto 47808. EtherNet/IP es el Common Industrial Protocol (CIP) de ODVA, que utilizan sobre todo los PLC. Un cliente BACnet/IP no puede leer un dispositivo EtherNet/IP, ni a la inversa.

¿Qué cable utiliza BACnet MS/TP?

Par trenzado apantallado con una impedancia característica entre 100 y 130 Ω y una capacitancia entre conductores inferior a 100 pF por metro, según especifica la norma 135. La longitud máxima recomendada de un segmento es 1.200 m con cable AWG 18 (0,82 mm²). Termine los dos extremos y polarice en un punto, como en cualquier bus RS-485.