Protokolle und Daten

BACnet/IP und MS/TP im Vergleich

BACnet/IP und MS/TP vergleichen: Netzwerk, Tokenweitergabe, APDU-Größe und Buskapazität. Mit Rechenbeispiel und Hinweisen zum Routing.

Ein typisches gewerbliches BMS nutzt zwei BACnet-Netze: BACnet/IP zwischen Leitcontrollern und zentraler Anlagentechnik sowie BACnet MS/TP (Master-Slave/Token-Passing) auf einer verdrillten RS-485-Leitung zu den Controllern der Räume oder Zonen. Ein Datenpunkt aus einem Gebläsekonvektor durchquert beide Netze. Jedes hat eigene Grenzen bei Nachrichtengröße, Geschwindigkeit und Adressierung.

Im Vergleich

BACnet/IPBACnet MS/TP
Physisches NetzEthernet oder anderes IP-NetzRS-485-Leiterpaar in Linienstruktur
GeschwindigkeitEthernet mit 10 oder 100 Mbit/s; meist begrenzt die Verarbeitung im Controller9.600 bis 115.200 Bit/s
Größte unsegmentierte APDU1.476 Oktette480 Oktette
Adresse eines Geräts im NetzIP-Adresse und UDP-PortMAC-Adresse: 0 bis 127 für Master, bis 254 für Slaves
Zugriff auf das NetzJedes Gerät kann jederzeit sendenNur der Master mit Token beginnt eine Übertragung
Discovery-BroadcastsBleiben in einem IP-Subnetz, außer BBMDs leiten sie weiterErreichen jedes Gerät auf dem Bus; Slaves beantworten Who-Is nur über einen Slave-Proxy
Typische GeräteLeitcontroller, Controller für Kältemaschinen, Kessel und LüftungsanlagenVAV-Regler, Gebläsekonvektor- und Raumcontroller

Geräteinstanz, Objektkennungen und Eigenschaften bleiben beim Wechsel des Netzes gleich. Der Discovery-Leitfaden unterscheidet Geräteinstanz und Netzadresse.

Die APDU-Grenze ist wichtig, wenn ein Client auf BACnet/IP durch einen Router liest. Jedes Gerät nennt seine Grenze in Max_APDU_Length_Accepted und meldet sie in I-Am. Wenn eine Anfrage oder erwartete Antwort darüber liegt, braucht der Client Segmentierung; viele kleine MS/TP-Controller unterstützen sie nicht. Die Anfrage wird dann abgebrochen oder abgelehnt. Eine ReadPropertyMultiple-Antwort enthält etwa 16 Oktette je Present_Value; in 480 Oktette passen daher ungefähr 29 Werte. Manche kleinen Controller akzeptieren nur 50 oder 128 Oktette. Legen Sie die Größe der ReadPropertyMultiple-Anfragen nach der kleinsten Grenze auf dem Pfad fest.

So funktioniert MS/TP

Beim Start wartet jeder Master auf ein von seiner MAC-Adresse zwischen 0 und 127 abhängiges Zeitfenster und sucht danach den nächsten Master. Erhält ein Master das Token, darf er bis zu Max_Info_Frames Frames senden. Dann reicht er das Token weiter. Alle 50 Tokenweitergaben (Npoll) sendet ein Master Poll-For-Master-Frames an die Adressen zwischen sich und dem nächsten bekannten Master, um neu hinzugekommene Geräte zu finden.

Sendet ein Master Poll For Master an eine unbelegte Adresse, wartet er Tusage_timeout auf eine Antwort: mindestens 20 ms nach Standard, 75 ms mit der toleranten Einstellung des Johnson-Controls-Routers. Jede erfolglos abgefragte Adresse fügt diese Wartezeit dem Bus hinzu.

Slaves mit MAC-Adressen bis 254 halten nie das Token. Sie antworten nur auf Anfragen eines Masters. Einen Who-Is-Broadcast können sie nicht selbst beantworten; ein mit Addendum 135-2001a eingeführter Slave-Proxy antwortet mit I-Am für sie.

Zwei Einstellungen jedes Masters beeinflussen den ganzen Bus:

  • Max_Master ist die höchste Masteradresse, die das Gerät abfragt. Ein Gerät ohne Einstellmöglichkeit verwendet 127. Setzen Sie den Wert auf jedem Master auf die höchste tatsächlich genutzte Master-MAC-Adresse. Bei 20 Mastern mit Adressen 1 bis 20 und Max_Master 127 prüft der Master auf Adresse 20 weitere 108 unbelegte Adressen: 21 bis 127 und 0.
  • Max_Info_Frames begrenzt die Frames, die ein Master je Tokenbesitz senden darf. Ein nicht einstellbares Gerät nutzt 1; das passt zu einem Raumcontroller. Ein Router leitet Verkehr aller Clients auf der IP-Seite weiter und benötigt daher mehr. Router haben häufig 100 als Vorgabe; die Anleitung des Johnson-Controls-Routers empfiehlt einen Wert über 20.

Geschwindigkeit

Standard 135 verlangt von jedem MS/TP-Gerät Unterstützung für 9.600 und 38.400 Bit/s. Addendum 135-2008ab machte 38.400 Bit/s verpflichtend und ergänzte 57.600 und 115.200 Bit/s. Die Raten 19.200, 57.600, 76.800 und 115.200 Bit/s sind optional. Prüfen Sie vor der Auswahl, ob jedes Gerät die Rate unterstützt. Auf einem Bus müssen alle dieselbe verwenden. Für hochwertiges verdrilltes Kabel gilt bei den Standardraten eine RS-485-Längengrenze von 1.200 m, bei 115.200 Bit/s von 1.000 m. Kabel mit hoher Kapazität und lange Stichleitungen verkürzen diese Grenzen.

Buskapazität: ein Rechenbeispiel

MS/TP überträgt jedes Oktett als 10 Bit: ein Startbit, acht Datenbits und ein Stoppbit, ohne Parität. Ein Frame besteht aus acht Header-Oktetten, Daten und einer CRC aus zwei Oktetten. Bei 38.400 Bit/s dauert ein Oktett 0,26 ms, ein Token-Frame also 2,1 ms.

Ein Client auf BACnet/IP liest über einen Router einen analogen Present_Value von einem MS/TP-Controller:

Teil des LesevorgangsOktette auf der LeitungZeit bei 9.600 Bit/sZeit bei 38.400 Bit/sZeit bei 76.800 Bit/s
ReadProperty-Anfrage mit Routing-Header3233,3 ms8,3 ms4,2 ms
ReadProperty-Antwort (ComplexACK)3940,6 ms10,2 ms5,1 ms
Zwei Richtungswechsel mit je 40 Bitzeiten8,3 ms2,1 ms1,0 ms
Angenommene Controllerantwortzeit5 ms5 ms5 ms
Ein Lesevorgangetwa 87 msetwa 26 msetwa 15 ms

200 einzeln gelesene Punkte belegen daher bei 9.600 Bit/s etwa 17 s Buszeit, bei 38.400 Bit/s 5 s und bei 76.800 Bit/s 3 s. Einmal pro Minute sind 5 s bei 38.400 Bit/s etwa 9 % des Busses. Alle fünf Sekunden sind dieselben 200 Lesevorgänge bei 9.600 Bit/s unmöglich: Sie dauern länger als das Intervall. Oberhalb von 38.400 Bit/s macht die Controllerantwortzeit einen großen Teil jedes Lesevorgangs aus; eine höhere Baudrate bringt daher weniger, als sie vermuten lässt.

ReadPropertyMultiple reduziert den Aufwand. Eine Anfrage für zehn Present_Values desselben Controllers umfasst etwa 115 Oktette, die Antwort etwa 185. Bei 38.400 Bit/s dauert das ungefähr 85 ms, gegenüber 256 ms für zehn einzelne Lesevorgänge.

Das Token fügt Wartezeit hinzu. Der Router kann nur mit Token senden und höchstens Max_Info_Frames Anfragen pro Besitz. Wenn jeder Master etwa 3 ms bis zum Senden braucht, rotiert das Token in einem ruhigen Ring mit 20 Mastern bei 38.400 Bit/s in etwa 100 ms. Jeder Frame eines anderen Masters verlängert den Umlauf. Ein Controller, der seine Antwort bis zu seinem nächsten Tokenbesitz aufschiebt, fügt jedem Lesevorgang einen vollen Umlauf hinzu.

Setzen Sie den APDU-Timeout des Clients über den ungünstigsten Fall aus Tokenumlauf, Warteschlange am Router und Antwortzeit. Ein kürzerer Timeout löst Wiederholungen aus. Diese belasten den Bus weiter und lassen Geräte als offline erscheinen, obwohl sie nur langsam antworten.

Häufige MS/TP-Fehler

FehlerBeobachtungPrüfung
Doppelte MAC-AdresseCRC- und Framing-Fehler, verlorene Tokens, zwei Geräte erscheinen und verschwinden abwechselndMAC-Einstellung jedes Geräts, oft DIP-Schalter
Unterschiedliche BaudratenEin Gerät antwortet nie; ein Analysator zeigt Framing-Fehler beim SendenBaudrate jedes Geräts, auch bei automatischer Erkennung
Zu niedriger Max_Master auf einem GerätMaster oberhalb dieses Werts erhalten nie das Token und erscheinen nichtMax_Master auf jedem Master, nicht nur auf dem Router
Fehlender oder zusätzlicher Abschluss oder fehlender BiasFehler nehmen mit Leitungslänge oder Verkehr zu; Rauschen auf ruhender Leitung120 Ω nur an den beiden physischen Enden, Bias an einer Stelle
Verlorenes TokenBus schweigt 500 ms (Tno_token), dann erzeugt ein Master ein neues Token; das wiederholt sichRauschen, neu startendes Gerät oder doppelte MAC-Adresse

Der RS-485-Verdrahtungsleitfaden erklärt Abschluss und Bias ausführlich.

Verdrahtung

MS/TP folgt denselben RS-485-Grundregeln wie Modbus RTU: Linienstruktur, kurze Stichleitungen, Abschlüsse an beiden physischen Enden, Bias an einer Stelle und eine Signalreferenz. Addendum 135-2008y (2010) ergänzte Verdrahtungspläne und Regeln für galvanische Trennung, Erdung und Referenzleiter. Ein Bus zwischen Gebäuden benötigt eine Trennung für 1.500 V.

MS/TP und Modbus RTU dürfen keinen Bus teilen. Ihre Frames unterscheiden sich, und ein Modbus-Master würde die Tokenweitergabe stören.

MS/TP nach BACnet/IP routen

Ein BACnet-Router verbindet einen MS/TP-Bus mit einem BACnet/IP-Netz. Häufig ist er in die BMS-Zentrale integriert. Jedes BACnet-Netz am Standort, ob IP oder MS/TP, benötigt eine im Standort eindeutige Netznummer von 1 bis 65.534. Zwei Netze mit derselben Nummer schicken Nachrichten zum falschen Bus; Geräte scheinen ihre Identität zu wechseln.

Ein IP-Client erreicht ein MS/TP-Gerät durch den Router anhand der MS/TP-Netznummer und der MAC-Adresse des Geräts. Ein Client, der nach Geräteinstanz entdeckt, muss diese Werte nicht kennen: Der Router leitet Who-Is an den Bus weiter und liefert I-Am-Antworten mit Quellnetz und Adresse zurück. Eine Anfrage Who-Is-Router-To-Network listet die Netze hinter einem Router. Der Router antwortet mit I-Am-Router-To-Network und den bedienten Netznummern. Der Leitfaden zu Routing und BBMD erklärt Broadcasts über IP-Subnetze.

Auswahl beim Nachrüsten

SituationÜbliche Wahl
Energiedaten von bestehenden MS/TP-Controllern lesenÜber bestehenden Router oder BMS-Zentrale auf BACnet/IP lesen. Keinen zweiten Master ohne Zustimmung des BMS-Verantwortlichen auf den Bus setzen: Er braucht eine freie MAC-Adresse, korrektes Max_Master auf jedem Gerät und Tokenzeit.
Neue Anlage mit Ethernet-AnschlussBACnet/IP im Gebäudesteuernetz
Viele kleine neue Controller je EtageMS/TP-Busse zu einem Router. Jeden Bus mit obiger Rechnung auslegen, einschließlich der Abfragen von Energie- und Analysesystemen.
Controller weit von jedem NetzwerkswitchMS/TP oder ein drahtloser Sensor, wenn nur Monitoring erforderlich ist

BACnet mit Edge

Edge auf dem ZGW-20 Gateway ist ein BACnet/IP-Client. Es liest MS/TP-Controller über einen BACnet-Router am Standort; eine direkte Verbindung zum MS/TP-Bus unterstützt es nicht. Es fragt Present_Value in einem an der Uhr ausgerichteten Intervall wie 60 oder 300 s ab oder im Live-Modus einmal pro Minute. COV-Abonnements verwendet es nicht. Für die Busauslegung zählt jeder Punkt als ein Lesevorgang je Intervall gemäß obigem Beispiel. Der Vergleich von BACnet und Modbus beschreibt Lese- und Schreibfunktionen von Edge. Der Leitfaden zu COV und Polling vergleicht beide Verfahren.

Dieser Leitfaden gehört zur Reihe über BACnet und Gebäudeprotokolle.

Häufige Fragen

Was ist der Unterschied zwischen BACnet/IP und BACnet MS/TP?

BACnet/IP transportiert BACnet-Nachrichten als UDP-Datagramme über ein IP-Netz. BACnet MS/TP nutzt ein verdrilltes RS-485-Leiterpaar, auf dem Master ein Token weiterreichen und nur während ihres Tokenbesitzes senden. Objekte und Dienste sind gleich; Geschwindigkeit, Adressierung und maximale Nachrichtengröße unterscheiden sich: 1.476 Oktette je APDU auf BACnet/IP und 480 auf MS/TP.

Welche Baudrate verwendet BACnet MS/TP?

Jedes MS/TP-Gerät muss 9.600 und 38.400 Bit/s unterstützen. 19.200, 57.600, 76.800 und 115.200 Bit/s sind optional. 57.600 und 115.200 wurden erst mit Addendum 135-2008ab ergänzt und können älteren Geräten fehlen. Alle Geräte eines Busses müssen dieselbe Rate verwenden.

Wie viele Geräte passen auf einen MS/TP-Bus?

Masteradressen reichen von 0 bis 127, Slaveadressen bis 254. Ohne Repeater trägt ein RS-485-Segment 32 Unit Loads. Transceiver mit halber oder viertel Unit Load erhöhen die Grenze neben einem Router mit voller Last auf etwa 62 beziehungsweise 124 Geräte. Meist begrenzt die Tokenumlaufzeit den Bus früher.

Wie verbinde ich MS/TP-Geräte mit BACnet/IP?

Über einen BACnet-Router, der oft in eine BMS-Zentrale integriert ist. Der Router gibt dem MS/TP-Bus eine eigene Netznummer. So erreichen IP-Clients jedes MS/TP-Gerät anhand von Netznummer und MAC-Adresse.