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/IP | BACnet MS/TP | |
|---|---|---|
| Physisches Netz | Ethernet oder anderes IP-Netz | RS-485-Leiterpaar in Linienstruktur |
| Geschwindigkeit | Ethernet mit 10 oder 100 Mbit/s; meist begrenzt die Verarbeitung im Controller | 9.600 bis 115.200 Bit/s |
| Größte unsegmentierte APDU | 1.476 Oktette | 480 Oktette |
| Adresse eines Geräts im Netz | IP-Adresse und UDP-Port | MAC-Adresse: 0 bis 127 für Master, bis 254 für Slaves |
| Zugriff auf das Netz | Jedes Gerät kann jederzeit senden | Nur der Master mit Token beginnt eine Übertragung |
| Discovery-Broadcasts | Bleiben in einem IP-Subnetz, außer BBMDs leiten sie weiter | Erreichen jedes Gerät auf dem Bus; Slaves beantworten Who-Is nur über einen Slave-Proxy |
| Typische Geräte | Leitcontroller, Controller für Kältemaschinen, Kessel und Lüftungsanlagen | VAV-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 Lesevorgangs | Oktette auf der Leitung | Zeit bei 9.600 Bit/s | Zeit bei 38.400 Bit/s | Zeit bei 76.800 Bit/s |
|---|---|---|---|---|
| ReadProperty-Anfrage mit Routing-Header | 32 | 33,3 ms | 8,3 ms | 4,2 ms |
| ReadProperty-Antwort (ComplexACK) | 39 | 40,6 ms | 10,2 ms | 5,1 ms |
| Zwei Richtungswechsel mit je 40 Bitzeiten | 8,3 ms | 2,1 ms | 1,0 ms | |
| Angenommene Controllerantwortzeit | 5 ms | 5 ms | 5 ms | |
| Ein Lesevorgang | etwa 87 ms | etwa 26 ms | etwa 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
| Fehler | Beobachtung | Prüfung |
|---|---|---|
| Doppelte MAC-Adresse | CRC- und Framing-Fehler, verlorene Tokens, zwei Geräte erscheinen und verschwinden abwechselnd | MAC-Einstellung jedes Geräts, oft DIP-Schalter |
| Unterschiedliche Baudraten | Ein Gerät antwortet nie; ein Analysator zeigt Framing-Fehler beim Senden | Baudrate jedes Geräts, auch bei automatischer Erkennung |
| Zu niedriger Max_Master auf einem Gerät | Master oberhalb dieses Werts erhalten nie das Token und erscheinen nicht | Max_Master auf jedem Master, nicht nur auf dem Router |
| Fehlender oder zusätzlicher Abschluss oder fehlender Bias | Fehler nehmen mit Leitungslänge oder Verkehr zu; Rauschen auf ruhender Leitung | 120 Ω nur an den beiden physischen Enden, Bias an einer Stelle |
| Verlorenes Token | Bus schweigt 500 ms (Tno_token), dann erzeugt ein Master ein neues Token; das wiederholt sich | Rauschen, 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-Anschluss | BACnet/IP im Gebäudesteuernetz |
| Viele kleine neue Controller je Etage | MS/TP-Busse zu einem Router. Jeden Bus mit obiger Rechnung auslegen, einschließlich der Abfragen von Energie- und Analysesystemen. |
| Controller weit von jedem Netzwerkswitch | MS/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.